summaryrefslogtreecommitdiff
path: root/editors/emacs21
diff options
context:
space:
mode:
Diffstat (limited to 'editors/emacs21')
-rw-r--r--editors/emacs21/DESCR13
-rw-r--r--editors/emacs21/Makefile46
-rw-r--r--editors/emacs21/Makefile.common89
-rw-r--r--editors/emacs21/PLIST1795
-rw-r--r--editors/emacs21/distinfo31
-rw-r--r--editors/emacs21/files/amd64.h131
-rw-r--r--editors/emacs21/files/darwin.h324
-rw-r--r--editors/emacs21/files/dragonfly.h136
-rw-r--r--editors/emacs21/files/powermac.h115
-rw-r--r--editors/emacs21/files/sh3el.h107
-rw-r--r--editors/emacs21/files/site-init.el4
-rw-r--r--editors/emacs21/files/unexmacosx.c1054
-rw-r--r--editors/emacs21/patches/patch-aa34
-rw-r--r--editors/emacs21/patches/patch-ab64
-rw-r--r--editors/emacs21/patches/patch-ac16
-rw-r--r--editors/emacs21/patches/patch-ad7
-rw-r--r--editors/emacs21/patches/patch-ae52
-rw-r--r--editors/emacs21/patches/patch-af23
-rw-r--r--editors/emacs21/patches/patch-ag17
-rw-r--r--editors/emacs21/patches/patch-ah32
-rw-r--r--editors/emacs21/patches/patch-ai12
-rw-r--r--editors/emacs21/patches/patch-aj12
-rw-r--r--editors/emacs21/patches/patch-ak40
-rw-r--r--editors/emacs21/patches/patch-am13
-rw-r--r--editors/emacs21/patches/patch-an14
-rw-r--r--editors/emacs21/patches/patch-ao15
-rw-r--r--editors/emacs21/patches/patch-ap15
-rw-r--r--editors/emacs21/patches/patch-aq17
-rw-r--r--editors/emacs21/patches/patch-ar14
-rw-r--r--editors/emacs21/patches/patch-as15
-rw-r--r--editors/emacs21/patches/patch-at14
-rw-r--r--editors/emacs21/patches/patch-au15
-rw-r--r--editors/emacs21/patches/patch-av14
-rw-r--r--editors/emacs21/patches/patch-az13
-rw-r--r--editors/emacs21/patches/patch-ba13
-rw-r--r--editors/emacs21/patches/patch-bb853
-rw-r--r--editors/emacs21/patches/patch-bg21
-rw-r--r--editors/emacs21/patches/patch-xx30
38 files changed, 5230 insertions, 0 deletions
diff --git a/editors/emacs21/DESCR b/editors/emacs21/DESCR
new file mode 100644
index 00000000000..5856e3ec2a2
--- /dev/null
+++ b/editors/emacs21/DESCR
@@ -0,0 +1,13 @@
+GNU Emacs is a self-documenting, customizable, extensible real-time
+display editor.
+
+Users new to Emacs will be able to use basic features fairly rapidly
+by studying the tutorial and using the self-documentation features.
+Emacs also has an extensive interactive manual browser. It is easily
+extensible since its editing commands are written in Lisp.
+
+GNU Emacs's many special packages handle mail reading (RMail) and
+sending (Mail), outline editing (Outline), compiling (Compile),
+running subshells within Emacs windows (Shell), running a Lisp
+read-eval-print loop (Lisp-Interaction-Mode), automated psychotherapy
+(Doctor :-) and many more.
diff --git a/editors/emacs21/Makefile b/editors/emacs21/Makefile
new file mode 100644
index 00000000000..ee73c1e0ecc
--- /dev/null
+++ b/editors/emacs21/Makefile
@@ -0,0 +1,46 @@
+# $NetBSD: Makefile,v 1.6 2007/06/11 13:38:27 markd Exp $
+
+DISTNAME= emacs-${EMACSVERSION}a
+PKGREVISION= 10
+CATEGORIES= editors
+COMMENT= GNU editing macros (editor)
+
+.include "../../editors/emacs21/Makefile.common"
+
+USE_TOOLS+= imake
+
+CONFLICTS+= emacs-nox11-[0-9]*
+
+CONFIGURE_ARGS+= --with-x
+CONFIGURE_ARGS+= --srcdir=${WRKSRC:Q}
+
+.include "../../x11/libXpm/buildlink3.mk"
+CONFIGURE_ARGS+= --with-xpm
+.include "../../graphics/jpeg/buildlink3.mk"
+CONFIGURE_ARGS+= --with-jpeg
+.include "../../graphics/tiff/buildlink3.mk"
+CONFIGURE_ARGS+= --with-tiff
+# need 4.1.0b1 or higher (a bug in 4.1.0 can crash Emacs)
+BUILDLINK_API_DEPENDS.libungif+= libungif>=4.1.0.1
+.include "../../graphics/libungif/buildlink3.mk"
+CONFIGURE_ARGS+= --with-gif
+.include "../../graphics/png/buildlink3.mk"
+CONFIGURE_ARGS+= --with-png
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.emacs
+PKG_OPTIONS_OPTIONAL_GROUPS= toolkit
+PKG_OPTIONS_GROUP.toolkit= emacs-xaw3d motif
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Mmotif)
+.include "../../mk/motif.buildlink3.mk"
+CONFIGURE_ARGS+= --with-x-toolkit=motif
+.elif !empty(PKG_OPTIONS:Memacs-xaw3d)
+.include "../../x11/Xaw3d/buildlink3.mk"
+CONFIGURE_ARGS+= --with-x-toolkit=athena
+.else
+.include "../../x11/libXaw/buildlink3.mk"
+CONFIGURE_ARGS+= --with-x-toolkit=athena
+.endif
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/editors/emacs21/Makefile.common b/editors/emacs21/Makefile.common
new file mode 100644
index 00000000000..339667035eb
--- /dev/null
+++ b/editors/emacs21/Makefile.common
@@ -0,0 +1,89 @@
+# $NetBSD: Makefile.common,v 1.1 2007/06/11 13:38:29 markd Exp $
+
+MASTER_SITES= ${MASTER_SITE_GNU:=emacs/}
+MAINTAINER= markd@NetBSD.org
+HOMEPAGE= http://www.gnu.org/software/emacs/emacs.html
+
+CONFLICTS= mule-[0-9]*
+
+USE_TOOLS+= gmake perl:run
+GNU_CONFIGURE= yes
+
+PATCHDIR= ${.CURDIR}/../../editors/emacs21/patches
+FILESDIR= ${.CURDIR}/../../editors/emacs21/files
+DISTINFO_FILE= ${.CURDIR}/../../editors/emacs21/distinfo
+PLIST_SRC= ${.CURDIR}/../../editors/emacs21/PLIST
+
+# needed for 21.4a, can probably go away on next update
+EMACSVERSION= 21.4
+WRKSRC= ${WRKDIR}/emacs-${EMACSVERSION}
+PLIST_SUBST+= EMACSVERSION=${EMACSVERSION:Q}
+
+MAKEFLAGS+= EMACSLOADPATH=${WRKSRC}/lisp
+
+# build PATH in the dumped emacs is not a problem
+CHECK_WRKREF_SKIP+= bin/emacs
+CHECK_WRKREF_SKIP+= bin/emacs-${EMACSVERSION}
+
+.include "../../mk/bsd.prefs.mk"
+
+# This matches NetBSD <1.7 releases and 1.6A-1.6P, where ld is <2.13.2.1.
+.if (${OPSYS} == "NetBSD" && \
+ (empty(OS_VERSION:M1.[0-5]*) && \
+ empty(OS_VERSION:M1.6_*) && \
+ empty(OS_VERSION:M1.6) && \
+ empty(OS_VERSION:M1.6.[0-9]*) && \
+ empty(OS_VERSION:M1.6[A-P]*))) || \
+ ${OPSYS} == "DragonFly"
+# If using GNU ld 2.13.2.1 or later, avoid creating combined reloc
+# sections and .data reloc sections, both of which Emacs can't handle
+# properly. Analyzed by Stephen Ma.
+LDFLAGS+= -Wl,-z,nocombreloc
+.endif
+
+.if ${OPSYS} == "DragonFly" && exists(/usr/lib/crtbegin.o)
+CPPFLAGS+= -DDFLY_PRE_17_CRT
+.endif
+
+.if ${OPSYS} == "Darwin"
+PLIST_SUBST+= FNS_EL="@comment "
+PLIST_SUBST+= DOCTAIL=""
+.else
+PLIST_SUBST+= FNS_EL=""
+PLIST_SUBST+= DOCTAIL="-${EMACSVERSION}.1"
+.endif
+
+# Disable W^X.
+.if ${OPSYS} == "OpenBSD"
+LDFLAGS+= -Z
+.endif
+
+.include "../../mk/compiler.mk"
+.if !empty(CC_VERSION:Mgcc-3.*)
+CFLAGS+= -fno-zero-initialized-in-bss
+.endif
+
+INFO_FILES= # PLIST
+REPLACE_PERL= lib-src/grep-changelog
+
+post-extract:
+ ${CP} ${FILESDIR}/site-init.el ${WRKSRC}/lisp
+ ${CP} ${FILESDIR}/amd64.h ${WRKSRC}/src/m
+ ${CP} ${FILESDIR}/powermac.h ${WRKSRC}/src/m
+ ${CP} ${FILESDIR}/darwin.h ${WRKSRC}/src/s
+ ${CP} ${FILESDIR}/dragonfly.h ${WRKSRC}/src/s
+ ${CP} ${FILESDIR}/unexmacosx.c ${WRKSRC}/src
+ ${CP} ${FILESDIR}/sh3el.h ${WRKSRC}/src/m
+
+# for patch-ba
+post-build:
+ cd ${WRKSRC}/lisp && \
+ rm sort.elc && ${MAKE_PROGRAM} sort.elc && \
+ rm mail/smtpmail.elc && ${MAKE_PROGRAM} mail/smtpmail.elc
+
+pre-install:
+ @${FIND} ${WRKSRC} -type f -name "*.orig" -print | ${XARGS} ${RM} -f
+
+post-install:
+ ${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/share/emacs
+ ${CHMOD} -R go-w ${PREFIX}/share/emacs
diff --git a/editors/emacs21/PLIST b/editors/emacs21/PLIST
new file mode 100644
index 00000000000..ab6f221e22c
--- /dev/null
+++ b/editors/emacs21/PLIST
@@ -0,0 +1,1795 @@
+@comment $NetBSD: PLIST,v 1.4 2007/06/11 13:38:30 markd Exp $
+bin/emacs
+bin/emacs-${EMACSVERSION}
+bin/emacs-b2m
+bin/emacs-ctags
+bin/emacs-ebrowse
+bin/emacs-etags
+bin/emacs-grep-changelog
+bin/emacs-rcs-checkin
+bin/emacsclient
+libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}/cvtmail
+libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}/digest-doc
+libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}/emacsserver
+libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}/fakemail
+${FNS_EL}libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}/fns-${EMACSVERSION}.1.el
+libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}/hexl
+libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}/movemail
+libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}/profile
+libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}/rcs2log
+libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}/sorted-doc
+libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}/vcdiff
+libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}/yow
+info/ada-mode
+info/autotype
+info/ccmode
+info/cl
+info/dired-x
+info/ebrowse
+info/ediff
+info/efaq
+info/emacs
+info/emacs-mime
+info/eshell
+info/eudc
+info/forms
+info/gnus
+info/idlwave
+info/message
+info/mh-e
+info/pcl-cvs
+info/reftex
+info/sc
+info/speedbar
+info/vip
+info/viper
+info/widget
+info/woman
+man/man1/emacs-ctags.1
+man/man1/emacs-etags.1
+man/man1/emacs-gfdl.1
+man/man1/emacs.1
+@unexec ${RMDIR} %D/share/emacs 2>/dev/null || ${TRUE}
+share/emacs/${EMACSVERSION}/etc/BABYL
+share/emacs/${EMACSVERSION}/etc/CENSORSHIP
+share/emacs/${EMACSVERSION}/etc/COOKIES
+share/emacs/${EMACSVERSION}/etc/COPYING
+share/emacs/${EMACSVERSION}/etc/DEBUG
+share/emacs/${EMACSVERSION}/etc/DISTRIB
+share/emacs/${EMACSVERSION}/etc/DOC${DOCTAIL}
+share/emacs/${EMACSVERSION}/etc/FTP
+share/emacs/${EMACSVERSION}/etc/GNU
+share/emacs/${EMACSVERSION}/etc/HELLO
+share/emacs/${EMACSVERSION}/etc/INTERVIEW
+share/emacs/${EMACSVERSION}/etc/JOKES
+share/emacs/${EMACSVERSION}/etc/LEDIT
+share/emacs/${EMACSVERSION}/etc/LINUX-GNU
+share/emacs/${EMACSVERSION}/etc/LPF
+share/emacs/${EMACSVERSION}/etc/MACHINES
+share/emacs/${EMACSVERSION}/etc/MAILINGLISTS
+share/emacs/${EMACSVERSION}/etc/MH-E-NEWS
+share/emacs/${EMACSVERSION}/etc/MH-E-ONEWS
+share/emacs/${EMACSVERSION}/etc/MORE.STUFF
+share/emacs/${EMACSVERSION}/etc/MOTIVATION
+share/emacs/${EMACSVERSION}/etc/NEWS
+share/emacs/${EMACSVERSION}/etc/ONEWS
+share/emacs/${EMACSVERSION}/etc/ONEWS.1
+share/emacs/${EMACSVERSION}/etc/ONEWS.2
+share/emacs/${EMACSVERSION}/etc/ONEWS.3
+share/emacs/${EMACSVERSION}/etc/ONEWS.4
+share/emacs/${EMACSVERSION}/etc/ORDERS
+share/emacs/${EMACSVERSION}/etc/ORDERS.EUROPE
+share/emacs/${EMACSVERSION}/etc/ORDERS.JAPAN
+share/emacs/${EMACSVERSION}/etc/OTHER.EMACSES
+share/emacs/${EMACSVERSION}/etc/PROBLEMS
+share/emacs/${EMACSVERSION}/etc/README
+share/emacs/${EMACSVERSION}/etc/SERVICE
+share/emacs/${EMACSVERSION}/etc/TERMS
+share/emacs/${EMACSVERSION}/etc/THE-GNU-PROJECT
+share/emacs/${EMACSVERSION}/etc/TODO
+share/emacs/${EMACSVERSION}/etc/TUTORIAL
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.cs
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.de
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.es
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.fr
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.it
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.ja
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.ko
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.nl
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.pl
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.ro
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.sk
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.sl
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.sv
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.th
+share/emacs/${EMACSVERSION}/etc/TUTORIAL.translators
+share/emacs/${EMACSVERSION}/etc/WHY-FREE
+share/emacs/${EMACSVERSION}/etc/Xkeymap.txt
+share/emacs/${EMACSVERSION}/etc/celibacy.1
+share/emacs/${EMACSVERSION}/etc/condom.1
+share/emacs/${EMACSVERSION}/etc/copying.paper
+share/emacs/${EMACSVERSION}/etc/cs-dired-ref.ps
+share/emacs/${EMACSVERSION}/etc/cs-dired-ref.tex
+share/emacs/${EMACSVERSION}/etc/cs-refcard.ps
+share/emacs/${EMACSVERSION}/etc/cs-refcard.tex
+share/emacs/${EMACSVERSION}/etc/cs-survival.tex
+share/emacs/${EMACSVERSION}/etc/ctags.1
+share/emacs/${EMACSVERSION}/etc/de-refcard.ps
+share/emacs/${EMACSVERSION}/etc/de-refcard.tex
+share/emacs/${EMACSVERSION}/etc/dired-ref.ps
+share/emacs/${EMACSVERSION}/etc/dired-ref.tex
+share/emacs/${EMACSVERSION}/etc/e/eterm
+share/emacs/${EMACSVERSION}/etc/e/eterm.ti
+share/emacs/${EMACSVERSION}/etc/echo.msg
+share/emacs/${EMACSVERSION}/etc/edt-user.doc
+share/emacs/${EMACSVERSION}/etc/emacs.1
+share/emacs/${EMACSVERSION}/etc/emacs.bash
+share/emacs/${EMACSVERSION}/etc/emacs.csh
+share/emacs/${EMACSVERSION}/etc/emacs.icon
+share/emacs/${EMACSVERSION}/etc/emacs.xbm
+share/emacs/${EMACSVERSION}/etc/emacsclient.1
+share/emacs/${EMACSVERSION}/etc/emacstool.1
+share/emacs/${EMACSVERSION}/etc/enriched.doc
+share/emacs/${EMACSVERSION}/etc/etags.1
+share/emacs/${EMACSVERSION}/etc/fr-drdref.ps
+share/emacs/${EMACSVERSION}/etc/fr-drdref.tex
+share/emacs/${EMACSVERSION}/etc/fr-refcard.ps
+share/emacs/${EMACSVERSION}/etc/fr-refcard.tex
+share/emacs/${EMACSVERSION}/etc/future-bug
+share/emacs/${EMACSVERSION}/etc/gfdl.1
+share/emacs/${EMACSVERSION}/etc/gnu.xpm
+share/emacs/${EMACSVERSION}/etc/gnus-pointer.xbm
+share/emacs/${EMACSVERSION}/etc/gnus-pointer.xpm
+share/emacs/${EMACSVERSION}/etc/gnus-tut.txt
+share/emacs/${EMACSVERSION}/etc/gnus.pbm
+share/emacs/${EMACSVERSION}/etc/gnus.xpm
+share/emacs/${EMACSVERSION}/etc/ledit.l
+share/emacs/${EMACSVERSION}/etc/letter.xbm
+share/emacs/${EMACSVERSION}/etc/ms-7bkermit
+share/emacs/${EMACSVERSION}/etc/ms-kermit
+share/emacs/${EMACSVERSION}/etc/pl-refcard.ps
+share/emacs/${EMACSVERSION}/etc/pl-refcard.tex
+share/emacs/${EMACSVERSION}/etc/ps-prin0.ps
+share/emacs/${EMACSVERSION}/etc/ps-prin1.ps
+share/emacs/${EMACSVERSION}/etc/refcard.ps
+share/emacs/${EMACSVERSION}/etc/refcard.tex
+share/emacs/${EMACSVERSION}/etc/rgb.txt
+share/emacs/${EMACSVERSION}/etc/sex.6
+share/emacs/${EMACSVERSION}/etc/sk-dired-ref.ps
+share/emacs/${EMACSVERSION}/etc/sk-dired-ref.tex
+share/emacs/${EMACSVERSION}/etc/sk-refcard.ps
+share/emacs/${EMACSVERSION}/etc/sk-refcard.tex
+share/emacs/${EMACSVERSION}/etc/sk-survival.tex
+share/emacs/${EMACSVERSION}/etc/splash.pbm
+share/emacs/${EMACSVERSION}/etc/splash.xpm
+share/emacs/${EMACSVERSION}/etc/splash8.xpm
+share/emacs/${EMACSVERSION}/etc/spook.lines
+share/emacs/${EMACSVERSION}/etc/survival.tex
+share/emacs/${EMACSVERSION}/etc/tasks.texi
+share/emacs/${EMACSVERSION}/etc/termcap.src
+share/emacs/${EMACSVERSION}/etc/ulimit.hack
+share/emacs/${EMACSVERSION}/etc/vipcard.tex
+share/emacs/${EMACSVERSION}/etc/viperCard.tex
+share/emacs/${EMACSVERSION}/etc/yow.lines
+@exec ${MKDIR} %D/share/emacs/${EMACSVERSION}/leim
+share/emacs/${EMACSVERSION}/lisp/COPYING
+share/emacs/${EMACSVERSION}/lisp/README
+share/emacs/${EMACSVERSION}/lisp/abbrev.el
+share/emacs/${EMACSVERSION}/lisp/abbrev.elc
+share/emacs/${EMACSVERSION}/lisp/abbrevlist.el
+share/emacs/${EMACSVERSION}/lisp/abbrevlist.elc
+share/emacs/${EMACSVERSION}/lisp/add-log.el
+share/emacs/${EMACSVERSION}/lisp/add-log.elc
+share/emacs/${EMACSVERSION}/lisp/align.el
+share/emacs/${EMACSVERSION}/lisp/align.elc
+share/emacs/${EMACSVERSION}/lisp/allout.el
+share/emacs/${EMACSVERSION}/lisp/allout.elc
+share/emacs/${EMACSVERSION}/lisp/ansi-color.el
+share/emacs/${EMACSVERSION}/lisp/ansi-color.elc
+share/emacs/${EMACSVERSION}/lisp/apropos.el
+share/emacs/${EMACSVERSION}/lisp/apropos.elc
+share/emacs/${EMACSVERSION}/lisp/arc-mode.el
+share/emacs/${EMACSVERSION}/lisp/arc-mode.elc
+share/emacs/${EMACSVERSION}/lisp/array.el
+share/emacs/${EMACSVERSION}/lisp/array.elc
+share/emacs/${EMACSVERSION}/lisp/autoarg.el
+share/emacs/${EMACSVERSION}/lisp/autoarg.elc
+share/emacs/${EMACSVERSION}/lisp/autoinsert.el
+share/emacs/${EMACSVERSION}/lisp/autoinsert.elc
+share/emacs/${EMACSVERSION}/lisp/autorevert.el
+share/emacs/${EMACSVERSION}/lisp/autorevert.elc
+share/emacs/${EMACSVERSION}/lisp/avoid.el
+share/emacs/${EMACSVERSION}/lisp/avoid.elc
+share/emacs/${EMACSVERSION}/lisp/battery.el
+share/emacs/${EMACSVERSION}/lisp/battery.elc
+share/emacs/${EMACSVERSION}/lisp/bindings.el
+share/emacs/${EMACSVERSION}/lisp/bindings.elc
+share/emacs/${EMACSVERSION}/lisp/bookmark.el
+share/emacs/${EMACSVERSION}/lisp/bookmark.elc
+share/emacs/${EMACSVERSION}/lisp/bs.el
+share/emacs/${EMACSVERSION}/lisp/bs.elc
+share/emacs/${EMACSVERSION}/lisp/buff-menu.el
+share/emacs/${EMACSVERSION}/lisp/buff-menu.elc
+share/emacs/${EMACSVERSION}/lisp/byte-run.el
+share/emacs/${EMACSVERSION}/lisp/byte-run.elc
+share/emacs/${EMACSVERSION}/lisp/calculator.el
+share/emacs/${EMACSVERSION}/lisp/calculator.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/appt.el
+share/emacs/${EMACSVERSION}/lisp/calendar/appt.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-china.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-china.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-coptic.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-coptic.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-dst.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-dst.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-french.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-french.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-hebrew.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-hebrew.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-islam.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-islam.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-iso.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-iso.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-julian.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-julian.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-mayan.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-mayan.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-menu.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-menu.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-move.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-move.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-persia.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-persia.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-tex.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-tex.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-x.el
+share/emacs/${EMACSVERSION}/lisp/calendar/cal-x.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/calendar.el
+share/emacs/${EMACSVERSION}/lisp/calendar/calendar.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/diary-lib.el
+share/emacs/${EMACSVERSION}/lisp/calendar/diary-lib.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/holidays.el
+share/emacs/${EMACSVERSION}/lisp/calendar/holidays.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/lunar.el
+share/emacs/${EMACSVERSION}/lisp/calendar/lunar.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/solar.el
+share/emacs/${EMACSVERSION}/lisp/calendar/solar.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/timeclock.el
+share/emacs/${EMACSVERSION}/lisp/calendar/timeclock.elc
+share/emacs/${EMACSVERSION}/lisp/calendar/todo-mode.el
+share/emacs/${EMACSVERSION}/lisp/calendar/todo-mode.elc
+share/emacs/${EMACSVERSION}/lisp/case-table.el
+share/emacs/${EMACSVERSION}/lisp/case-table.elc
+share/emacs/${EMACSVERSION}/lisp/cdl.el
+share/emacs/${EMACSVERSION}/lisp/cdl.elc
+share/emacs/${EMACSVERSION}/lisp/chistory.el
+share/emacs/${EMACSVERSION}/lisp/chistory.elc
+share/emacs/${EMACSVERSION}/lisp/cmuscheme.el
+share/emacs/${EMACSVERSION}/lisp/cmuscheme.elc
+share/emacs/${EMACSVERSION}/lisp/comint.el
+share/emacs/${EMACSVERSION}/lisp/comint.elc
+share/emacs/${EMACSVERSION}/lisp/compare-w.el
+share/emacs/${EMACSVERSION}/lisp/compare-w.elc
+share/emacs/${EMACSVERSION}/lisp/complete.el
+share/emacs/${EMACSVERSION}/lisp/complete.elc
+share/emacs/${EMACSVERSION}/lisp/completion.el
+share/emacs/${EMACSVERSION}/lisp/completion.elc
+share/emacs/${EMACSVERSION}/lisp/composite.el
+share/emacs/${EMACSVERSION}/lisp/composite.elc
+share/emacs/${EMACSVERSION}/lisp/cus-dep.el
+share/emacs/${EMACSVERSION}/lisp/cus-dep.elc
+share/emacs/${EMACSVERSION}/lisp/cus-edit.el
+share/emacs/${EMACSVERSION}/lisp/cus-edit.elc
+share/emacs/${EMACSVERSION}/lisp/cus-face.el
+share/emacs/${EMACSVERSION}/lisp/cus-face.elc
+share/emacs/${EMACSVERSION}/lisp/cus-load.el
+share/emacs/${EMACSVERSION}/lisp/cus-start.el
+share/emacs/${EMACSVERSION}/lisp/custom.el
+share/emacs/${EMACSVERSION}/lisp/custom.elc
+share/emacs/${EMACSVERSION}/lisp/cvs-status.el
+share/emacs/${EMACSVERSION}/lisp/cvs-status.elc
+share/emacs/${EMACSVERSION}/lisp/dabbrev.el
+share/emacs/${EMACSVERSION}/lisp/dabbrev.elc
+share/emacs/${EMACSVERSION}/lisp/delim-col.el
+share/emacs/${EMACSVERSION}/lisp/delim-col.elc
+share/emacs/${EMACSVERSION}/lisp/delsel.el
+share/emacs/${EMACSVERSION}/lisp/delsel.elc
+share/emacs/${EMACSVERSION}/lisp/derived.el
+share/emacs/${EMACSVERSION}/lisp/derived.elc
+share/emacs/${EMACSVERSION}/lisp/desktop.el
+share/emacs/${EMACSVERSION}/lisp/desktop.elc
+share/emacs/${EMACSVERSION}/lisp/diff-mode.el
+share/emacs/${EMACSVERSION}/lisp/diff-mode.elc
+share/emacs/${EMACSVERSION}/lisp/diff.el
+share/emacs/${EMACSVERSION}/lisp/diff.elc
+share/emacs/${EMACSVERSION}/lisp/dired-aux.el
+share/emacs/${EMACSVERSION}/lisp/dired-aux.elc
+share/emacs/${EMACSVERSION}/lisp/dired-x.el
+share/emacs/${EMACSVERSION}/lisp/dired-x.elc
+share/emacs/${EMACSVERSION}/lisp/dired.el
+share/emacs/${EMACSVERSION}/lisp/dired.elc
+share/emacs/${EMACSVERSION}/lisp/dirtrack.el
+share/emacs/${EMACSVERSION}/lisp/dirtrack.elc
+share/emacs/${EMACSVERSION}/lisp/disp-table.el
+share/emacs/${EMACSVERSION}/lisp/disp-table.elc
+share/emacs/${EMACSVERSION}/lisp/dos-fns.el
+share/emacs/${EMACSVERSION}/lisp/dos-fns.elc
+share/emacs/${EMACSVERSION}/lisp/dos-vars.el
+share/emacs/${EMACSVERSION}/lisp/dos-vars.elc
+share/emacs/${EMACSVERSION}/lisp/dos-w32.el
+share/emacs/${EMACSVERSION}/lisp/dos-w32.elc
+share/emacs/${EMACSVERSION}/lisp/double.el
+share/emacs/${EMACSVERSION}/lisp/double.elc
+share/emacs/${EMACSVERSION}/lisp/ebuff-menu.el
+share/emacs/${EMACSVERSION}/lisp/ebuff-menu.elc
+share/emacs/${EMACSVERSION}/lisp/echistory.el
+share/emacs/${EMACSVERSION}/lisp/echistory.elc
+share/emacs/${EMACSVERSION}/lisp/ediff-diff.el
+share/emacs/${EMACSVERSION}/lisp/ediff-diff.elc
+share/emacs/${EMACSVERSION}/lisp/ediff-help.el
+share/emacs/${EMACSVERSION}/lisp/ediff-help.elc
+share/emacs/${EMACSVERSION}/lisp/ediff-hook.el
+share/emacs/${EMACSVERSION}/lisp/ediff-hook.elc
+share/emacs/${EMACSVERSION}/lisp/ediff-init.el
+share/emacs/${EMACSVERSION}/lisp/ediff-init.elc
+share/emacs/${EMACSVERSION}/lisp/ediff-merg.el
+share/emacs/${EMACSVERSION}/lisp/ediff-merg.elc
+share/emacs/${EMACSVERSION}/lisp/ediff-mult.el
+share/emacs/${EMACSVERSION}/lisp/ediff-mult.elc
+share/emacs/${EMACSVERSION}/lisp/ediff-ptch.el
+share/emacs/${EMACSVERSION}/lisp/ediff-ptch.elc
+share/emacs/${EMACSVERSION}/lisp/ediff-util.el
+share/emacs/${EMACSVERSION}/lisp/ediff-util.elc
+share/emacs/${EMACSVERSION}/lisp/ediff-vers.el
+share/emacs/${EMACSVERSION}/lisp/ediff-vers.elc
+share/emacs/${EMACSVERSION}/lisp/ediff-wind.el
+share/emacs/${EMACSVERSION}/lisp/ediff-wind.elc
+share/emacs/${EMACSVERSION}/lisp/ediff.el
+share/emacs/${EMACSVERSION}/lisp/ediff.elc
+share/emacs/${EMACSVERSION}/lisp/edmacro.el
+share/emacs/${EMACSVERSION}/lisp/edmacro.elc
+share/emacs/${EMACSVERSION}/lisp/ehelp.el
+share/emacs/${EMACSVERSION}/lisp/ehelp.elc
+share/emacs/${EMACSVERSION}/lisp/electric.el
+share/emacs/${EMACSVERSION}/lisp/electric.elc
+share/emacs/${EMACSVERSION}/lisp/elide-head.el
+share/emacs/${EMACSVERSION}/lisp/elide-head.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/advice.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/advice.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/assoc.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/assoc.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/authors.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/authors.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/autoload.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/autoload.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/backquote.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/backquote.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/byte-opt.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/byte-opt.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/bytecomp.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/bytecomp.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/checkdoc.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/checkdoc.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl-compat.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl-compat.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl-extra.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl-extra.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl-indent.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl-indent.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl-macs.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl-macs.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl-seq.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl-seq.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl-specs.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cl.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/copyright.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/copyright.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/crm.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/crm.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cust-print.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/cust-print.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/debug.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/debug.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/disass.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/disass.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/easy-mmode.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/easy-mmode.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/easymenu.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/easymenu.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/edebug.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/edebug.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/eldoc.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/eldoc.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/elint.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/elint.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/elp.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/elp.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/ewoc.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/ewoc.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/find-func.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/find-func.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/find-gc.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/find-gc.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/float.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/float.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/gulp.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/gulp.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/helper.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/helper.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/levents.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/levents.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/lisp-mnt.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/lisp-mnt.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/lisp-mode.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/lisp-mode.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/lisp.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/lisp.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/lmenu.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/lmenu.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/lselect.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/lselect.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/lucid.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/lucid.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/pp.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/pp.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/re-builder.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/re-builder.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/regexp-opt.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/regexp-opt.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/ring.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/ring.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/rx.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/rx.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/shadow.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/shadow.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/sregex.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/sregex.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/tq.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/tq.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/trace.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lisp/trace.elc
+share/emacs/${EMACSVERSION}/lisp/emacs-lock.el
+share/emacs/${EMACSVERSION}/lisp/emacs-lock.elc
+share/emacs/${EMACSVERSION}/lisp/emerge.el
+share/emacs/${EMACSVERSION}/lisp/emerge.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/crisp.el
+share/emacs/${EMACSVERSION}/lisp/emulation/crisp.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/edt-lk201.el
+share/emacs/${EMACSVERSION}/lisp/emulation/edt-lk201.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/edt-mapper.el
+share/emacs/${EMACSVERSION}/lisp/emulation/edt-mapper.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/edt-pc.el
+share/emacs/${EMACSVERSION}/lisp/emulation/edt-pc.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/edt-vt100.el
+share/emacs/${EMACSVERSION}/lisp/emulation/edt-vt100.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/edt.el
+share/emacs/${EMACSVERSION}/lisp/emulation/edt.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/mlconvert.el
+share/emacs/${EMACSVERSION}/lisp/emulation/mlconvert.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/mlsupport.el
+share/emacs/${EMACSVERSION}/lisp/emulation/mlsupport.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/pc-mode.el
+share/emacs/${EMACSVERSION}/lisp/emulation/pc-mode.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/pc-select.el
+share/emacs/${EMACSVERSION}/lisp/emulation/pc-select.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/tpu-edt.el
+share/emacs/${EMACSVERSION}/lisp/emulation/tpu-edt.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/tpu-extras.el
+share/emacs/${EMACSVERSION}/lisp/emulation/tpu-extras.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/tpu-mapper.el
+share/emacs/${EMACSVERSION}/lisp/emulation/tpu-mapper.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/vi.el
+share/emacs/${EMACSVERSION}/lisp/emulation/vi.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/vip.el
+share/emacs/${EMACSVERSION}/lisp/emulation/vip.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-cmd.el
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-cmd.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-ex.el
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-ex.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-init.el
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-init.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-keym.el
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-keym.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-macs.el
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-macs.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-mous.el
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-mous.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-util.el
+share/emacs/${EMACSVERSION}/lisp/emulation/viper-util.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/viper.el
+share/emacs/${EMACSVERSION}/lisp/emulation/viper.elc
+share/emacs/${EMACSVERSION}/lisp/emulation/ws-mode.el
+share/emacs/${EMACSVERSION}/lisp/emulation/ws-mode.elc
+share/emacs/${EMACSVERSION}/lisp/enriched.el
+share/emacs/${EMACSVERSION}/lisp/enriched.elc
+share/emacs/${EMACSVERSION}/lisp/env.el
+share/emacs/${EMACSVERSION}/lisp/env.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-alias.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-alias.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-banner.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-banner.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-basic.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-basic.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-cmpl.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-cmpl.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-dirs.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-dirs.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-glob.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-glob.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-hist.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-hist.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-ls.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-ls.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-pred.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-pred.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-prompt.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-prompt.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-rebind.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-rebind.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-script.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-script.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-smart.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-smart.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-term.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-term.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-unix.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-unix.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/em-xtra.el
+share/emacs/${EMACSVERSION}/lisp/eshell/em-xtra.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-arg.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-arg.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-cmd.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-cmd.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-ext.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-ext.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-groups.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-io.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-io.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-maint.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-mode.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-mode.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-module.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-module.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-opt.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-opt.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-proc.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-proc.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-test.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-test.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-util.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-util.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-var.el
+share/emacs/${EMACSVERSION}/lisp/eshell/esh-var.elc
+share/emacs/${EMACSVERSION}/lisp/eshell/eshell.el
+share/emacs/${EMACSVERSION}/lisp/eshell/eshell.elc
+share/emacs/${EMACSVERSION}/lisp/expand.el
+share/emacs/${EMACSVERSION}/lisp/expand.elc
+share/emacs/${EMACSVERSION}/lisp/facemenu.el
+share/emacs/${EMACSVERSION}/lisp/facemenu.elc
+share/emacs/${EMACSVERSION}/lisp/faces.el
+share/emacs/${EMACSVERSION}/lisp/faces.elc
+share/emacs/${EMACSVERSION}/lisp/fast-lock.el
+share/emacs/${EMACSVERSION}/lisp/fast-lock.elc
+share/emacs/${EMACSVERSION}/lisp/ffap.el
+share/emacs/${EMACSVERSION}/lisp/ffap.elc
+share/emacs/${EMACSVERSION}/lisp/filecache.el
+share/emacs/${EMACSVERSION}/lisp/filecache.elc
+share/emacs/${EMACSVERSION}/lisp/files.el
+share/emacs/${EMACSVERSION}/lisp/files.elc
+share/emacs/${EMACSVERSION}/lisp/find-dired.el
+share/emacs/${EMACSVERSION}/lisp/find-dired.elc
+share/emacs/${EMACSVERSION}/lisp/find-file.el
+share/emacs/${EMACSVERSION}/lisp/find-file.elc
+share/emacs/${EMACSVERSION}/lisp/find-lisp.el
+share/emacs/${EMACSVERSION}/lisp/find-lisp.elc
+share/emacs/${EMACSVERSION}/lisp/finder-inf.el
+share/emacs/${EMACSVERSION}/lisp/finder.el
+share/emacs/${EMACSVERSION}/lisp/finder.elc
+share/emacs/${EMACSVERSION}/lisp/float-sup.el
+share/emacs/${EMACSVERSION}/lisp/float-sup.elc
+share/emacs/${EMACSVERSION}/lisp/flow-ctrl.el
+share/emacs/${EMACSVERSION}/lisp/flow-ctrl.elc
+share/emacs/${EMACSVERSION}/lisp/foldout.el
+share/emacs/${EMACSVERSION}/lisp/foldout.elc
+share/emacs/${EMACSVERSION}/lisp/follow.el
+share/emacs/${EMACSVERSION}/lisp/follow.elc
+share/emacs/${EMACSVERSION}/lisp/font-lock.el
+share/emacs/${EMACSVERSION}/lisp/font-lock.elc
+share/emacs/${EMACSVERSION}/lisp/format.el
+share/emacs/${EMACSVERSION}/lisp/format.elc
+share/emacs/${EMACSVERSION}/lisp/forms-d2.dat
+share/emacs/${EMACSVERSION}/lisp/forms-d2.el
+share/emacs/${EMACSVERSION}/lisp/forms-pass.el
+share/emacs/${EMACSVERSION}/lisp/forms.el
+share/emacs/${EMACSVERSION}/lisp/forms.elc
+share/emacs/${EMACSVERSION}/lisp/frame.el
+share/emacs/${EMACSVERSION}/lisp/frame.elc
+share/emacs/${EMACSVERSION}/lisp/generic-x.el
+share/emacs/${EMACSVERSION}/lisp/generic.el
+share/emacs/${EMACSVERSION}/lisp/generic.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/binhex.el
+share/emacs/${EMACSVERSION}/lisp/gnus/binhex.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/catchup.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/catchup.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/cu-exit.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/cu-exit.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/describe-group.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/describe-group.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/earcon.el
+share/emacs/${EMACSVERSION}/lisp/gnus/earcon.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/exit-gnus.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/exit-gnus.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/exit-summ.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/exit-summ.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/flow-fill.el
+share/emacs/${EMACSVERSION}/lisp/gnus/flow-fill.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/followup.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/followup.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/format-spec.el
+share/emacs/${EMACSVERSION}/lisp/gnus/format-spec.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/frown.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/fuwo.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/fuwo.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/get-news.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/get-news.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/gnntg.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/gnntg.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-agent.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-agent.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-art.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-art.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-async.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-async.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-audio.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-audio.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-bcklg.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-bcklg.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-cache.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-cache.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-cite.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-cite.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-cus.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-cus.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-demon.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-demon.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-draft.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-draft.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-dup.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-dup.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-eform.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-eform.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-ems.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-ems.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-gl.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-gl.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-group.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-group.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-int.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-int.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-kill.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-kill.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-logic.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-logic.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-mh.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-mh.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-ml.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-ml.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-mlspl.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-mlspl.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-move.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-move.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-msg.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-msg.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-mule.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-mule.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-nocem.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-nocem.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-range.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-range.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-salt.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-salt.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-score.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-score.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-setup.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-setup.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-soup.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-soup.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-spec.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-spec.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-srvr.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-srvr.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-start.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-start.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-sum.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-sum.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-topic.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-topic.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-undo.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-undo.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-util.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-util.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-uu.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-uu.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-vm.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-vm.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-win.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus-win.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus.el
+share/emacs/${EMACSVERSION}/lisp/gnus/gnus.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/ietf-drums.el
+share/emacs/${EMACSVERSION}/lisp/gnus/ietf-drums.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/imap.el
+share/emacs/${EMACSVERSION}/lisp/gnus/imap.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/kill-group.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/kill-group.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/mail-parse.el
+share/emacs/${EMACSVERSION}/lisp/gnus/mail-parse.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/mail-prsvr.el
+share/emacs/${EMACSVERSION}/lisp/gnus/mail-prsvr.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/mail-reply.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/mail-reply.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/mail-source.el
+share/emacs/${EMACSVERSION}/lisp/gnus/mail-source.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/mailcap.el
+share/emacs/${EMACSVERSION}/lisp/gnus/mailcap.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/message.el
+share/emacs/${EMACSVERSION}/lisp/gnus/message.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/messcompat.el
+share/emacs/${EMACSVERSION}/lisp/gnus/messcompat.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-bodies.el
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-bodies.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-decode.el
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-decode.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-encode.el
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-encode.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-partial.el
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-partial.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-util.el
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-util.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-uu.el
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-uu.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-view.el
+share/emacs/${EMACSVERSION}/lisp/gnus/mm-view.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/mml.el
+share/emacs/${EMACSVERSION}/lisp/gnus/mml.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/next-ur.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/next-ur.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/nnagent.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnagent.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnbabyl.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnbabyl.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nndir.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nndir.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nndoc.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nndoc.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nndraft.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nndraft.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nneething.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nneething.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnfolder.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnfolder.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nngateway.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nngateway.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnheader.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnheader.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnimap.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnimap.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnkiboze.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnkiboze.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnlistserv.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnlistserv.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnmail.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnmail.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnmbox.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnmbox.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnmh.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnmh.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnml.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnml.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnoo.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnoo.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnslashdot.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnslashdot.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnsoup.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnsoup.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnspool.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnspool.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nntp.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nntp.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnultimate.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnultimate.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnvirtual.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnvirtual.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnwarchive.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnwarchive.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/nnweb.el
+share/emacs/${EMACSVERSION}/lisp/gnus/nnweb.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/parse-time.el
+share/emacs/${EMACSVERSION}/lisp/gnus/parse-time.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/pop3.el
+share/emacs/${EMACSVERSION}/lisp/gnus/pop3.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/post.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/post.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/prev-ur.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/prev-ur.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/qp.el
+share/emacs/${EMACSVERSION}/lisp/gnus/qp.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/reply-wo.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/reply-wo.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/reply.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/reply.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/rfc1843.el
+share/emacs/${EMACSVERSION}/lisp/gnus/rfc1843.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/rfc2045.el
+share/emacs/${EMACSVERSION}/lisp/gnus/rfc2045.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/rfc2047.el
+share/emacs/${EMACSVERSION}/lisp/gnus/rfc2047.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/rfc2104.el
+share/emacs/${EMACSVERSION}/lisp/gnus/rfc2104.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/rfc2231.el
+share/emacs/${EMACSVERSION}/lisp/gnus/rfc2231.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/rot13.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/rot13.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/save-aif.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/save-aif.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/save-art.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/save-art.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/score-mode.el
+share/emacs/${EMACSVERSION}/lisp/gnus/score-mode.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/smile.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/smiley-ems.el
+share/emacs/${EMACSVERSION}/lisp/gnus/smiley-ems.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/starttls.el
+share/emacs/${EMACSVERSION}/lisp/gnus/starttls.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/subscribe.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/subscribe.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/time-date.el
+share/emacs/${EMACSVERSION}/lisp/gnus/time-date.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/unsubscribe.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/unsubscribe.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/utf7.el
+share/emacs/${EMACSVERSION}/lisp/gnus/utf7.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/uu-decode.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/uu-decode.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/uu-post.pbm
+share/emacs/${EMACSVERSION}/lisp/gnus/uu-post.xpm
+share/emacs/${EMACSVERSION}/lisp/gnus/uudecode.el
+share/emacs/${EMACSVERSION}/lisp/gnus/uudecode.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/webmail.el
+share/emacs/${EMACSVERSION}/lisp/gnus/webmail.elc
+share/emacs/${EMACSVERSION}/lisp/gnus/wry.pbm
+share/emacs/${EMACSVERSION}/lisp/gs.el
+share/emacs/${EMACSVERSION}/lisp/gs.elc
+share/emacs/${EMACSVERSION}/lisp/gud.el
+share/emacs/${EMACSVERSION}/lisp/gud.elc
+share/emacs/${EMACSVERSION}/lisp/help-macro.el
+share/emacs/${EMACSVERSION}/lisp/help-macro.elc
+share/emacs/${EMACSVERSION}/lisp/help.el
+share/emacs/${EMACSVERSION}/lisp/help.elc
+share/emacs/${EMACSVERSION}/lisp/hexl.el
+share/emacs/${EMACSVERSION}/lisp/hexl.elc
+share/emacs/${EMACSVERSION}/lisp/hi-lock.el
+share/emacs/${EMACSVERSION}/lisp/hi-lock.elc
+share/emacs/${EMACSVERSION}/lisp/hilit-chg.el
+share/emacs/${EMACSVERSION}/lisp/hilit-chg.elc
+share/emacs/${EMACSVERSION}/lisp/hippie-exp.el
+share/emacs/${EMACSVERSION}/lisp/hippie-exp.elc
+share/emacs/${EMACSVERSION}/lisp/hl-line.el
+share/emacs/${EMACSVERSION}/lisp/hl-line.elc
+share/emacs/${EMACSVERSION}/lisp/icomplete.el
+share/emacs/${EMACSVERSION}/lisp/icomplete.elc
+share/emacs/${EMACSVERSION}/lisp/ielm.el
+share/emacs/${EMACSVERSION}/lisp/ielm.elc
+share/emacs/${EMACSVERSION}/lisp/image-file.el
+share/emacs/${EMACSVERSION}/lisp/image-file.elc
+share/emacs/${EMACSVERSION}/lisp/image.el
+share/emacs/${EMACSVERSION}/lisp/image.elc
+share/emacs/${EMACSVERSION}/lisp/imenu.el
+share/emacs/${EMACSVERSION}/lisp/imenu.elc
+share/emacs/${EMACSVERSION}/lisp/indent.el
+share/emacs/${EMACSVERSION}/lisp/indent.elc
+share/emacs/${EMACSVERSION}/lisp/info-look.el
+share/emacs/${EMACSVERSION}/lisp/info-look.elc
+share/emacs/${EMACSVERSION}/lisp/info.el
+share/emacs/${EMACSVERSION}/lisp/info.elc
+share/emacs/${EMACSVERSION}/lisp/informat.el
+share/emacs/${EMACSVERSION}/lisp/informat.elc
+share/emacs/${EMACSVERSION}/lisp/international/ccl.el
+share/emacs/${EMACSVERSION}/lisp/international/ccl.elc
+share/emacs/${EMACSVERSION}/lisp/international/characters.el
+share/emacs/${EMACSVERSION}/lisp/international/characters.elc
+share/emacs/${EMACSVERSION}/lisp/international/codepage.el
+share/emacs/${EMACSVERSION}/lisp/international/codepage.elc
+share/emacs/${EMACSVERSION}/lisp/international/encoded-kb.el
+share/emacs/${EMACSVERSION}/lisp/international/encoded-kb.elc
+share/emacs/${EMACSVERSION}/lisp/international/fontset.el
+share/emacs/${EMACSVERSION}/lisp/international/fontset.elc
+share/emacs/${EMACSVERSION}/lisp/international/isearch-x.el
+share/emacs/${EMACSVERSION}/lisp/international/isearch-x.elc
+share/emacs/${EMACSVERSION}/lisp/international/iso-acc.el
+share/emacs/${EMACSVERSION}/lisp/international/iso-acc.elc
+share/emacs/${EMACSVERSION}/lisp/international/iso-ascii.el
+share/emacs/${EMACSVERSION}/lisp/international/iso-ascii.elc
+share/emacs/${EMACSVERSION}/lisp/international/iso-cvt.el
+share/emacs/${EMACSVERSION}/lisp/international/iso-cvt.elc
+share/emacs/${EMACSVERSION}/lisp/international/iso-insert.el
+share/emacs/${EMACSVERSION}/lisp/international/iso-insert.elc
+share/emacs/${EMACSVERSION}/lisp/international/iso-swed.el
+share/emacs/${EMACSVERSION}/lisp/international/iso-swed.elc
+share/emacs/${EMACSVERSION}/lisp/international/iso-transl.el
+share/emacs/${EMACSVERSION}/lisp/international/iso-transl.elc
+share/emacs/${EMACSVERSION}/lisp/international/ja-dic-cnv.el
+share/emacs/${EMACSVERSION}/lisp/international/ja-dic-cnv.elc
+share/emacs/${EMACSVERSION}/lisp/international/ja-dic-utl.el
+share/emacs/${EMACSVERSION}/lisp/international/ja-dic-utl.elc
+share/emacs/${EMACSVERSION}/lisp/international/kinsoku.el
+share/emacs/${EMACSVERSION}/lisp/international/kinsoku.elc
+share/emacs/${EMACSVERSION}/lisp/international/kkc.el
+share/emacs/${EMACSVERSION}/lisp/international/kkc.elc
+share/emacs/${EMACSVERSION}/lisp/international/latin-1.el
+share/emacs/${EMACSVERSION}/lisp/international/latin-2.el
+share/emacs/${EMACSVERSION}/lisp/international/latin-3.el
+share/emacs/${EMACSVERSION}/lisp/international/latin-4.el
+share/emacs/${EMACSVERSION}/lisp/international/latin-5.el
+share/emacs/${EMACSVERSION}/lisp/international/latin-8.el
+share/emacs/${EMACSVERSION}/lisp/international/latin-9.el
+share/emacs/${EMACSVERSION}/lisp/international/latin1-disp.el
+share/emacs/${EMACSVERSION}/lisp/international/latin1-disp.elc
+share/emacs/${EMACSVERSION}/lisp/international/mule-cmds.el
+share/emacs/${EMACSVERSION}/lisp/international/mule-cmds.elc
+share/emacs/${EMACSVERSION}/lisp/international/mule-conf.el
+share/emacs/${EMACSVERSION}/lisp/international/mule-diag.el
+share/emacs/${EMACSVERSION}/lisp/international/mule-diag.elc
+share/emacs/${EMACSVERSION}/lisp/international/mule-util.el
+share/emacs/${EMACSVERSION}/lisp/international/mule-util.elc
+share/emacs/${EMACSVERSION}/lisp/international/mule.el
+share/emacs/${EMACSVERSION}/lisp/international/mule.elc
+share/emacs/${EMACSVERSION}/lisp/international/ogonek.el
+share/emacs/${EMACSVERSION}/lisp/international/ogonek.elc
+share/emacs/${EMACSVERSION}/lisp/international/quail.el
+share/emacs/${EMACSVERSION}/lisp/international/quail.elc
+share/emacs/${EMACSVERSION}/lisp/international/swedish.el
+share/emacs/${EMACSVERSION}/lisp/international/swedish.elc
+share/emacs/${EMACSVERSION}/lisp/international/titdic-cnv.el
+share/emacs/${EMACSVERSION}/lisp/international/titdic-cnv.elc
+share/emacs/${EMACSVERSION}/lisp/international/ucs-tables.el
+share/emacs/${EMACSVERSION}/lisp/international/ucs-tables.elc
+share/emacs/${EMACSVERSION}/lisp/international/utf-16.el
+share/emacs/${EMACSVERSION}/lisp/international/utf-16.elc
+share/emacs/${EMACSVERSION}/lisp/international/utf-8.el
+share/emacs/${EMACSVERSION}/lisp/international/utf-8.elc
+share/emacs/${EMACSVERSION}/lisp/isearch.el
+share/emacs/${EMACSVERSION}/lisp/isearch.elc
+share/emacs/${EMACSVERSION}/lisp/iswitchb.el
+share/emacs/${EMACSVERSION}/lisp/iswitchb.elc
+share/emacs/${EMACSVERSION}/lisp/jit-lock.el
+share/emacs/${EMACSVERSION}/lisp/jit-lock.elc
+share/emacs/${EMACSVERSION}/lisp/jka-compr.el
+share/emacs/${EMACSVERSION}/lisp/jka-compr.elc
+share/emacs/${EMACSVERSION}/lisp/kermit.el
+share/emacs/${EMACSVERSION}/lisp/kermit.elc
+share/emacs/${EMACSVERSION}/lisp/language/china-util.el
+share/emacs/${EMACSVERSION}/lisp/language/china-util.elc
+share/emacs/${EMACSVERSION}/lisp/language/chinese.el
+share/emacs/${EMACSVERSION}/lisp/language/chinese.elc
+share/emacs/${EMACSVERSION}/lisp/language/cyril-util.el
+share/emacs/${EMACSVERSION}/lisp/language/cyril-util.elc
+share/emacs/${EMACSVERSION}/lisp/language/cyrillic.el
+share/emacs/${EMACSVERSION}/lisp/language/cyrillic.elc
+share/emacs/${EMACSVERSION}/lisp/language/czech.el
+share/emacs/${EMACSVERSION}/lisp/language/czech.elc
+share/emacs/${EMACSVERSION}/lisp/language/devan-util.el
+share/emacs/${EMACSVERSION}/lisp/language/devan-util.elc
+share/emacs/${EMACSVERSION}/lisp/language/devanagari.el
+share/emacs/${EMACSVERSION}/lisp/language/devanagari.elc
+share/emacs/${EMACSVERSION}/lisp/language/english.el
+share/emacs/${EMACSVERSION}/lisp/language/english.elc
+share/emacs/${EMACSVERSION}/lisp/language/ethio-util.el
+share/emacs/${EMACSVERSION}/lisp/language/ethio-util.elc
+share/emacs/${EMACSVERSION}/lisp/language/ethiopic.el
+share/emacs/${EMACSVERSION}/lisp/language/ethiopic.elc
+share/emacs/${EMACSVERSION}/lisp/language/european.el
+share/emacs/${EMACSVERSION}/lisp/language/european.elc
+share/emacs/${EMACSVERSION}/lisp/language/greek.el
+share/emacs/${EMACSVERSION}/lisp/language/greek.elc
+share/emacs/${EMACSVERSION}/lisp/language/hebrew.el
+share/emacs/${EMACSVERSION}/lisp/language/hebrew.elc
+share/emacs/${EMACSVERSION}/lisp/language/indian.el
+share/emacs/${EMACSVERSION}/lisp/language/indian.elc
+share/emacs/${EMACSVERSION}/lisp/language/japan-util.el
+share/emacs/${EMACSVERSION}/lisp/language/japan-util.elc
+share/emacs/${EMACSVERSION}/lisp/language/japanese.el
+share/emacs/${EMACSVERSION}/lisp/language/japanese.elc
+share/emacs/${EMACSVERSION}/lisp/language/korea-util.el
+share/emacs/${EMACSVERSION}/lisp/language/korea-util.elc
+share/emacs/${EMACSVERSION}/lisp/language/korean.el
+share/emacs/${EMACSVERSION}/lisp/language/korean.elc
+share/emacs/${EMACSVERSION}/lisp/language/lao-util.el
+share/emacs/${EMACSVERSION}/lisp/language/lao-util.elc
+share/emacs/${EMACSVERSION}/lisp/language/lao.el
+share/emacs/${EMACSVERSION}/lisp/language/lao.elc
+share/emacs/${EMACSVERSION}/lisp/language/misc-lang.el
+share/emacs/${EMACSVERSION}/lisp/language/misc-lang.elc
+share/emacs/${EMACSVERSION}/lisp/language/romanian.el
+share/emacs/${EMACSVERSION}/lisp/language/romanian.elc
+share/emacs/${EMACSVERSION}/lisp/language/slovak.el
+share/emacs/${EMACSVERSION}/lisp/language/slovak.elc
+share/emacs/${EMACSVERSION}/lisp/language/thai-util.el
+share/emacs/${EMACSVERSION}/lisp/language/thai-util.elc
+share/emacs/${EMACSVERSION}/lisp/language/thai.el
+share/emacs/${EMACSVERSION}/lisp/language/thai.elc
+share/emacs/${EMACSVERSION}/lisp/language/tibet-util.el
+share/emacs/${EMACSVERSION}/lisp/language/tibet-util.elc
+share/emacs/${EMACSVERSION}/lisp/language/tibetan.el
+share/emacs/${EMACSVERSION}/lisp/language/tibetan.elc
+share/emacs/${EMACSVERSION}/lisp/language/viet-util.el
+share/emacs/${EMACSVERSION}/lisp/language/viet-util.elc
+share/emacs/${EMACSVERSION}/lisp/language/vietnamese.el
+share/emacs/${EMACSVERSION}/lisp/language/vietnamese.elc
+share/emacs/${EMACSVERSION}/lisp/lazy-lock.el
+share/emacs/${EMACSVERSION}/lisp/lazy-lock.elc
+share/emacs/${EMACSVERSION}/lisp/ledit.el
+share/emacs/${EMACSVERSION}/lisp/ledit.elc
+share/emacs/${EMACSVERSION}/lisp/loaddefs.el
+share/emacs/${EMACSVERSION}/lisp/loadhist.el
+share/emacs/${EMACSVERSION}/lisp/loadhist.elc
+share/emacs/${EMACSVERSION}/lisp/loadup.el
+share/emacs/${EMACSVERSION}/lisp/locate.el
+share/emacs/${EMACSVERSION}/lisp/locate.elc
+share/emacs/${EMACSVERSION}/lisp/log-edit.el
+share/emacs/${EMACSVERSION}/lisp/log-edit.elc
+share/emacs/${EMACSVERSION}/lisp/log-view.el
+share/emacs/${EMACSVERSION}/lisp/log-view.elc
+share/emacs/${EMACSVERSION}/lisp/lpr.el
+share/emacs/${EMACSVERSION}/lisp/lpr.elc
+share/emacs/${EMACSVERSION}/lisp/ls-lisp.el
+share/emacs/${EMACSVERSION}/lisp/ls-lisp.elc
+share/emacs/${EMACSVERSION}/lisp/macros.el
+share/emacs/${EMACSVERSION}/lisp/macros.elc
+share/emacs/${EMACSVERSION}/lisp/mail/blessmail.el
+share/emacs/${EMACSVERSION}/lisp/mail/emacsbug.el
+share/emacs/${EMACSVERSION}/lisp/mail/emacsbug.elc
+share/emacs/${EMACSVERSION}/lisp/mail/feedmail.el
+share/emacs/${EMACSVERSION}/lisp/mail/feedmail.elc
+share/emacs/${EMACSVERSION}/lisp/mail/footnote.el
+share/emacs/${EMACSVERSION}/lisp/mail/footnote.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mail-extr.el
+share/emacs/${EMACSVERSION}/lisp/mail/mail-extr.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mail-hist.el
+share/emacs/${EMACSVERSION}/lisp/mail/mail-hist.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mail-utils.el
+share/emacs/${EMACSVERSION}/lisp/mail/mail-utils.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mailabbrev.el
+share/emacs/${EMACSVERSION}/lisp/mail/mailabbrev.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mailalias.el
+share/emacs/${EMACSVERSION}/lisp/mail/mailalias.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mailheader.el
+share/emacs/${EMACSVERSION}/lisp/mail/mailheader.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mailpost.el
+share/emacs/${EMACSVERSION}/lisp/mail/mailpost.elc
+share/emacs/${EMACSVERSION}/lisp/mail/metamail.el
+share/emacs/${EMACSVERSION}/lisp/mail/metamail.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mh-comp.el
+share/emacs/${EMACSVERSION}/lisp/mail/mh-comp.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mh-e.el
+share/emacs/${EMACSVERSION}/lisp/mail/mh-e.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mh-funcs.el
+share/emacs/${EMACSVERSION}/lisp/mail/mh-funcs.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mh-mime.el
+share/emacs/${EMACSVERSION}/lisp/mail/mh-mime.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mh-pick.el
+share/emacs/${EMACSVERSION}/lisp/mail/mh-pick.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mh-seq.el
+share/emacs/${EMACSVERSION}/lisp/mail/mh-seq.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mh-utils.el
+share/emacs/${EMACSVERSION}/lisp/mail/mh-utils.elc
+share/emacs/${EMACSVERSION}/lisp/mail/mspools.el
+share/emacs/${EMACSVERSION}/lisp/mail/mspools.elc
+share/emacs/${EMACSVERSION}/lisp/mail/reporter.el
+share/emacs/${EMACSVERSION}/lisp/mail/reporter.elc
+share/emacs/${EMACSVERSION}/lisp/mail/rfc2368.el
+share/emacs/${EMACSVERSION}/lisp/mail/rfc2368.elc
+share/emacs/${EMACSVERSION}/lisp/mail/rfc822.el
+share/emacs/${EMACSVERSION}/lisp/mail/rfc822.elc
+share/emacs/${EMACSVERSION}/lisp/mail/rmail.el
+share/emacs/${EMACSVERSION}/lisp/mail/rmail.elc
+share/emacs/${EMACSVERSION}/lisp/mail/rmailedit.el
+share/emacs/${EMACSVERSION}/lisp/mail/rmailedit.elc
+share/emacs/${EMACSVERSION}/lisp/mail/rmailkwd.el
+share/emacs/${EMACSVERSION}/lisp/mail/rmailkwd.elc
+share/emacs/${EMACSVERSION}/lisp/mail/rmailmsc.el
+share/emacs/${EMACSVERSION}/lisp/mail/rmailmsc.elc
+share/emacs/${EMACSVERSION}/lisp/mail/rmailout.el
+share/emacs/${EMACSVERSION}/lisp/mail/rmailout.elc
+share/emacs/${EMACSVERSION}/lisp/mail/rmailsort.el
+share/emacs/${EMACSVERSION}/lisp/mail/rmailsort.elc
+share/emacs/${EMACSVERSION}/lisp/mail/rmailsum.el
+share/emacs/${EMACSVERSION}/lisp/mail/rmailsum.elc
+share/emacs/${EMACSVERSION}/lisp/mail/sendmail.el
+share/emacs/${EMACSVERSION}/lisp/mail/sendmail.elc
+share/emacs/${EMACSVERSION}/lisp/mail/smtpmail.el
+share/emacs/${EMACSVERSION}/lisp/mail/smtpmail.elc
+share/emacs/${EMACSVERSION}/lisp/mail/supercite.el
+share/emacs/${EMACSVERSION}/lisp/mail/supercite.elc
+share/emacs/${EMACSVERSION}/lisp/mail/uce.el
+share/emacs/${EMACSVERSION}/lisp/mail/uce.elc
+share/emacs/${EMACSVERSION}/lisp/mail/undigest.el
+share/emacs/${EMACSVERSION}/lisp/mail/undigest.elc
+share/emacs/${EMACSVERSION}/lisp/mail/unrmail.el
+share/emacs/${EMACSVERSION}/lisp/mail/unrmail.elc
+share/emacs/${EMACSVERSION}/lisp/mail/vms-pmail.el
+share/emacs/${EMACSVERSION}/lisp/mail/vms-pmail.elc
+share/emacs/${EMACSVERSION}/lisp/makesum.el
+share/emacs/${EMACSVERSION}/lisp/makesum.elc
+share/emacs/${EMACSVERSION}/lisp/man.el
+share/emacs/${EMACSVERSION}/lisp/man.elc
+share/emacs/${EMACSVERSION}/lisp/map-ynp.el
+share/emacs/${EMACSVERSION}/lisp/map-ynp.elc
+share/emacs/${EMACSVERSION}/lisp/menu-bar.el
+share/emacs/${EMACSVERSION}/lisp/menu-bar.elc
+share/emacs/${EMACSVERSION}/lisp/midnight.el
+share/emacs/${EMACSVERSION}/lisp/midnight.elc
+share/emacs/${EMACSVERSION}/lisp/minibuf-eldef.el
+share/emacs/${EMACSVERSION}/lisp/minibuf-eldef.elc
+share/emacs/${EMACSVERSION}/lisp/misc.el
+share/emacs/${EMACSVERSION}/lisp/misc.elc
+share/emacs/${EMACSVERSION}/lisp/mouse-copy.el
+share/emacs/${EMACSVERSION}/lisp/mouse-copy.elc
+share/emacs/${EMACSVERSION}/lisp/mouse-drag.el
+share/emacs/${EMACSVERSION}/lisp/mouse-drag.elc
+share/emacs/${EMACSVERSION}/lisp/mouse-sel.el
+share/emacs/${EMACSVERSION}/lisp/mouse-sel.elc
+share/emacs/${EMACSVERSION}/lisp/mouse.el
+share/emacs/${EMACSVERSION}/lisp/mouse.elc
+share/emacs/${EMACSVERSION}/lisp/msb.el
+share/emacs/${EMACSVERSION}/lisp/msb.elc
+share/emacs/${EMACSVERSION}/lisp/mwheel.el
+share/emacs/${EMACSVERSION}/lisp/mwheel.elc
+share/emacs/${EMACSVERSION}/lisp/net/ange-ftp.el
+share/emacs/${EMACSVERSION}/lisp/net/ange-ftp.elc
+share/emacs/${EMACSVERSION}/lisp/net/browse-url.el
+share/emacs/${EMACSVERSION}/lisp/net/browse-url.elc
+share/emacs/${EMACSVERSION}/lisp/net/eudc-bob.el
+share/emacs/${EMACSVERSION}/lisp/net/eudc-bob.elc
+share/emacs/${EMACSVERSION}/lisp/net/eudc-export.el
+share/emacs/${EMACSVERSION}/lisp/net/eudc-export.elc
+share/emacs/${EMACSVERSION}/lisp/net/eudc-hotlist.el
+share/emacs/${EMACSVERSION}/lisp/net/eudc-hotlist.elc
+share/emacs/${EMACSVERSION}/lisp/net/eudc-vars.el
+share/emacs/${EMACSVERSION}/lisp/net/eudc-vars.elc
+share/emacs/${EMACSVERSION}/lisp/net/eudc.el
+share/emacs/${EMACSVERSION}/lisp/net/eudc.elc
+share/emacs/${EMACSVERSION}/lisp/net/eudcb-bbdb.el
+share/emacs/${EMACSVERSION}/lisp/net/eudcb-bbdb.elc
+share/emacs/${EMACSVERSION}/lisp/net/eudcb-ldap.el
+share/emacs/${EMACSVERSION}/lisp/net/eudcb-ldap.elc
+share/emacs/${EMACSVERSION}/lisp/net/eudcb-ph.el
+share/emacs/${EMACSVERSION}/lisp/net/eudcb-ph.elc
+share/emacs/${EMACSVERSION}/lisp/net/goto-addr.el
+share/emacs/${EMACSVERSION}/lisp/net/goto-addr.elc
+share/emacs/${EMACSVERSION}/lisp/net/ldap.el
+share/emacs/${EMACSVERSION}/lisp/net/ldap.elc
+share/emacs/${EMACSVERSION}/lisp/net/net-utils.el
+share/emacs/${EMACSVERSION}/lisp/net/net-utils.elc
+share/emacs/${EMACSVERSION}/lisp/net/quickurl.el
+share/emacs/${EMACSVERSION}/lisp/net/quickurl.elc
+share/emacs/${EMACSVERSION}/lisp/net/rcompile.el
+share/emacs/${EMACSVERSION}/lisp/net/rcompile.elc
+share/emacs/${EMACSVERSION}/lisp/net/rlogin.el
+share/emacs/${EMACSVERSION}/lisp/net/rlogin.elc
+share/emacs/${EMACSVERSION}/lisp/net/snmp-mode.el
+share/emacs/${EMACSVERSION}/lisp/net/snmp-mode.elc
+share/emacs/${EMACSVERSION}/lisp/net/telnet.el
+share/emacs/${EMACSVERSION}/lisp/net/telnet.elc
+share/emacs/${EMACSVERSION}/lisp/net/webjump.el
+share/emacs/${EMACSVERSION}/lisp/net/webjump.elc
+share/emacs/${EMACSVERSION}/lisp/net/zone-mode.el
+share/emacs/${EMACSVERSION}/lisp/net/zone-mode.elc
+share/emacs/${EMACSVERSION}/lisp/newcomment.el
+share/emacs/${EMACSVERSION}/lisp/newcomment.elc
+share/emacs/${EMACSVERSION}/lisp/novice.el
+share/emacs/${EMACSVERSION}/lisp/novice.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/auto-show.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/auto-show.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/cplus-md.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/cplus-md.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/hilit19.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/hilit19.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/hscroll.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/hscroll.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/ooutline.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/ooutline.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/profile.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/profile.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/rnews.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/rnews.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/rnewspost.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/rnewspost.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/rsz-mini.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/rsz-mini.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/sc.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/sc.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/sun-curs.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/sun-curs.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/sun-fns.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/sun-fns.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/uncompress.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/uncompress.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/x-apollo.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/x-apollo.elc
+share/emacs/${EMACSVERSION}/lisp/obsolete/x-menu.el
+share/emacs/${EMACSVERSION}/lisp/obsolete/x-menu.elc
+share/emacs/${EMACSVERSION}/lisp/options.el
+share/emacs/${EMACSVERSION}/lisp/options.elc
+share/emacs/${EMACSVERSION}/lisp/paren.el
+share/emacs/${EMACSVERSION}/lisp/paren.elc
+share/emacs/${EMACSVERSION}/lisp/patcomp.el
+share/emacs/${EMACSVERSION}/lisp/paths.el
+share/emacs/${EMACSVERSION}/lisp/pcmpl-cvs.el
+share/emacs/${EMACSVERSION}/lisp/pcmpl-cvs.elc
+share/emacs/${EMACSVERSION}/lisp/pcmpl-gnu.el
+share/emacs/${EMACSVERSION}/lisp/pcmpl-gnu.elc
+share/emacs/${EMACSVERSION}/lisp/pcmpl-linux.el
+share/emacs/${EMACSVERSION}/lisp/pcmpl-linux.elc
+share/emacs/${EMACSVERSION}/lisp/pcmpl-rpm.el
+share/emacs/${EMACSVERSION}/lisp/pcmpl-rpm.elc
+share/emacs/${EMACSVERSION}/lisp/pcmpl-unix.el
+share/emacs/${EMACSVERSION}/lisp/pcmpl-unix.elc
+share/emacs/${EMACSVERSION}/lisp/pcomplete.el
+share/emacs/${EMACSVERSION}/lisp/pcomplete.elc
+share/emacs/${EMACSVERSION}/lisp/pcvs-defs.el
+share/emacs/${EMACSVERSION}/lisp/pcvs-defs.elc
+share/emacs/${EMACSVERSION}/lisp/pcvs-info.el
+share/emacs/${EMACSVERSION}/lisp/pcvs-info.elc
+share/emacs/${EMACSVERSION}/lisp/pcvs-parse.el
+share/emacs/${EMACSVERSION}/lisp/pcvs-parse.elc
+share/emacs/${EMACSVERSION}/lisp/pcvs-util.el
+share/emacs/${EMACSVERSION}/lisp/pcvs-util.elc
+share/emacs/${EMACSVERSION}/lisp/pcvs.el
+share/emacs/${EMACSVERSION}/lisp/pcvs.elc
+share/emacs/${EMACSVERSION}/lisp/play/5x5.el
+share/emacs/${EMACSVERSION}/lisp/play/5x5.elc
+share/emacs/${EMACSVERSION}/lisp/play/animate.el
+share/emacs/${EMACSVERSION}/lisp/play/animate.elc
+share/emacs/${EMACSVERSION}/lisp/play/blackbox.el
+share/emacs/${EMACSVERSION}/lisp/play/blackbox.elc
+share/emacs/${EMACSVERSION}/lisp/play/bruce.el
+share/emacs/${EMACSVERSION}/lisp/play/cookie1.el
+share/emacs/${EMACSVERSION}/lisp/play/cookie1.elc
+share/emacs/${EMACSVERSION}/lisp/play/decipher.el
+share/emacs/${EMACSVERSION}/lisp/play/decipher.elc
+share/emacs/${EMACSVERSION}/lisp/play/dissociate.el
+share/emacs/${EMACSVERSION}/lisp/play/dissociate.elc
+share/emacs/${EMACSVERSION}/lisp/play/doctor.el
+share/emacs/${EMACSVERSION}/lisp/play/doctor.elc
+share/emacs/${EMACSVERSION}/lisp/play/dunnet.el
+share/emacs/${EMACSVERSION}/lisp/play/dunnet.elc
+share/emacs/${EMACSVERSION}/lisp/play/fortune.el
+share/emacs/${EMACSVERSION}/lisp/play/fortune.elc
+share/emacs/${EMACSVERSION}/lisp/play/gamegrid.el
+share/emacs/${EMACSVERSION}/lisp/play/gamegrid.elc
+share/emacs/${EMACSVERSION}/lisp/play/gametree.el
+share/emacs/${EMACSVERSION}/lisp/play/gametree.elc
+share/emacs/${EMACSVERSION}/lisp/play/gomoku.el
+share/emacs/${EMACSVERSION}/lisp/play/gomoku.elc
+share/emacs/${EMACSVERSION}/lisp/play/handwrite.el
+share/emacs/${EMACSVERSION}/lisp/play/handwrite.elc
+share/emacs/${EMACSVERSION}/lisp/play/hanoi.el
+share/emacs/${EMACSVERSION}/lisp/play/hanoi.elc
+share/emacs/${EMACSVERSION}/lisp/play/landmark.el
+share/emacs/${EMACSVERSION}/lisp/play/landmark.elc
+share/emacs/${EMACSVERSION}/lisp/play/life.el
+share/emacs/${EMACSVERSION}/lisp/play/life.elc
+share/emacs/${EMACSVERSION}/lisp/play/meese.el
+share/emacs/${EMACSVERSION}/lisp/play/meese.elc
+share/emacs/${EMACSVERSION}/lisp/play/morse.el
+share/emacs/${EMACSVERSION}/lisp/play/morse.elc
+share/emacs/${EMACSVERSION}/lisp/play/mpuz.el
+share/emacs/${EMACSVERSION}/lisp/play/mpuz.elc
+share/emacs/${EMACSVERSION}/lisp/play/pong.el
+share/emacs/${EMACSVERSION}/lisp/play/pong.elc
+share/emacs/${EMACSVERSION}/lisp/play/snake.el
+share/emacs/${EMACSVERSION}/lisp/play/snake.elc
+share/emacs/${EMACSVERSION}/lisp/play/solitaire.el
+share/emacs/${EMACSVERSION}/lisp/play/solitaire.elc
+share/emacs/${EMACSVERSION}/lisp/play/spook.el
+share/emacs/${EMACSVERSION}/lisp/play/spook.elc
+share/emacs/${EMACSVERSION}/lisp/play/studly.el
+share/emacs/${EMACSVERSION}/lisp/play/studly.elc
+share/emacs/${EMACSVERSION}/lisp/play/tetris.el
+share/emacs/${EMACSVERSION}/lisp/play/tetris.elc
+share/emacs/${EMACSVERSION}/lisp/play/yow.el
+share/emacs/${EMACSVERSION}/lisp/play/yow.elc
+share/emacs/${EMACSVERSION}/lisp/play/zone.el
+share/emacs/${EMACSVERSION}/lisp/play/zone.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/ada-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/ada-mode.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/ada-prj.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/ada-prj.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/ada-stmt.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/ada-stmt.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/ada-xref.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/ada-xref.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/antlr-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/antlr-mode.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/asm-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/asm-mode.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/autoconf.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/autoconf.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/awk-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/awk-mode.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-align.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-align.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-bytecomp.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-bytecomp.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-cmds.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-cmds.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-compat.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-compat.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-defs.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-defs.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-engine.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-engine.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-langs.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-langs.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-menus.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-menus.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-mode.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-styles.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-styles.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-vars.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cc-vars.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cmacexp.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cmacexp.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/compile.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/compile.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cperl-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cperl-mode.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cpp.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cpp.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/cwarn.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/cwarn.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/dcl-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/dcl-mode.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/delphi.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/delphi.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/ebnf-bnf.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/ebnf-bnf.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/ebnf-iso.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/ebnf-iso.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/ebnf-otz.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/ebnf-otz.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/ebnf-yac.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/ebnf-yac.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/ebnf2ps.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/ebnf2ps.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/ebrowse.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/ebrowse.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/etags.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/etags.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/executable.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/executable.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/f90.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/f90.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/fortran.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/fortran.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/glasses.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/glasses.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/hideif.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/hideif.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/hideshow.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/hideshow.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/icon.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/icon.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/idlw-rinfo.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/idlw-rinfo.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/idlw-shell.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/idlw-shell.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/idlw-toolbar.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/idlw-toolbar.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/idlwave.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/idlwave.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/inf-lisp.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/inf-lisp.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/m4-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/m4-mode.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/make-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/make-mode.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/mantemp.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/mantemp.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/meta-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/meta-mode.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/modula2.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/modula2.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/octave-hlp.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/octave-hlp.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/octave-inf.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/octave-inf.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/octave-mod.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/octave-mod.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/pascal.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/pascal.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/perl-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/perl-mode.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/prolog.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/prolog.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/ps-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/ps-mode.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/scheme.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/scheme.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/sh-script.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/sh-script.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/simula.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/simula.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/sql.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/sql.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/tcl.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/tcl.elc
+share/emacs/${EMACSVERSION}/lisp/progmodes/vhdl-mode.el
+share/emacs/${EMACSVERSION}/lisp/progmodes/vhdl-mode.elc
+share/emacs/${EMACSVERSION}/lisp/ps-bdf.el
+share/emacs/${EMACSVERSION}/lisp/ps-bdf.elc
+share/emacs/${EMACSVERSION}/lisp/ps-mule.el
+share/emacs/${EMACSVERSION}/lisp/ps-mule.elc
+share/emacs/${EMACSVERSION}/lisp/ps-print.el
+share/emacs/${EMACSVERSION}/lisp/ps-print.elc
+share/emacs/${EMACSVERSION}/lisp/recentf.el
+share/emacs/${EMACSVERSION}/lisp/recentf.elc
+share/emacs/${EMACSVERSION}/lisp/rect.el
+share/emacs/${EMACSVERSION}/lisp/rect.elc
+share/emacs/${EMACSVERSION}/lisp/regi.el
+share/emacs/${EMACSVERSION}/lisp/regi.elc
+share/emacs/${EMACSVERSION}/lisp/register.el
+share/emacs/${EMACSVERSION}/lisp/register.elc
+share/emacs/${EMACSVERSION}/lisp/repeat.el
+share/emacs/${EMACSVERSION}/lisp/repeat.elc
+share/emacs/${EMACSVERSION}/lisp/replace.el
+share/emacs/${EMACSVERSION}/lisp/replace.elc
+share/emacs/${EMACSVERSION}/lisp/reposition.el
+share/emacs/${EMACSVERSION}/lisp/reposition.elc
+share/emacs/${EMACSVERSION}/lisp/resume.el
+share/emacs/${EMACSVERSION}/lisp/resume.elc
+share/emacs/${EMACSVERSION}/lisp/rot13.el
+share/emacs/${EMACSVERSION}/lisp/rot13.elc
+share/emacs/${EMACSVERSION}/lisp/s-region.el
+share/emacs/${EMACSVERSION}/lisp/s-region.elc
+share/emacs/${EMACSVERSION}/lisp/saveplace.el
+share/emacs/${EMACSVERSION}/lisp/saveplace.elc
+share/emacs/${EMACSVERSION}/lisp/sb-dir-minus.xpm
+share/emacs/${EMACSVERSION}/lisp/sb-dir-plus.xpm
+share/emacs/${EMACSVERSION}/lisp/sb-dir.xpm
+share/emacs/${EMACSVERSION}/lisp/sb-mail.xpm
+share/emacs/${EMACSVERSION}/lisp/sb-pg-minus.xpm
+share/emacs/${EMACSVERSION}/lisp/sb-pg-plus.xpm
+share/emacs/${EMACSVERSION}/lisp/sb-pg.xpm
+share/emacs/${EMACSVERSION}/lisp/sb-tag-gt.xpm
+share/emacs/${EMACSVERSION}/lisp/sb-tag-minus.xpm
+share/emacs/${EMACSVERSION}/lisp/sb-tag-plus.xpm
+share/emacs/${EMACSVERSION}/lisp/sb-tag-type.xpm
+share/emacs/${EMACSVERSION}/lisp/sb-tag-v.xpm
+share/emacs/${EMACSVERSION}/lisp/sb-tag.xpm
+share/emacs/${EMACSVERSION}/lisp/scroll-all.el
+share/emacs/${EMACSVERSION}/lisp/scroll-all.elc
+share/emacs/${EMACSVERSION}/lisp/scroll-bar.el
+share/emacs/${EMACSVERSION}/lisp/scroll-bar.elc
+share/emacs/${EMACSVERSION}/lisp/select.el
+share/emacs/${EMACSVERSION}/lisp/select.elc
+share/emacs/${EMACSVERSION}/lisp/server.el
+share/emacs/${EMACSVERSION}/lisp/server.elc
+share/emacs/${EMACSVERSION}/lisp/shadowfile.el
+share/emacs/${EMACSVERSION}/lisp/shadowfile.elc
+share/emacs/${EMACSVERSION}/lisp/shell.el
+share/emacs/${EMACSVERSION}/lisp/shell.elc
+share/emacs/${EMACSVERSION}/lisp/simple.el
+share/emacs/${EMACSVERSION}/lisp/simple.elc
+share/emacs/${EMACSVERSION}/lisp/site-init.el
+share/emacs/${EMACSVERSION}/lisp/skeleton.el
+share/emacs/${EMACSVERSION}/lisp/skeleton.elc
+share/emacs/${EMACSVERSION}/lisp/smerge-mode.el
+share/emacs/${EMACSVERSION}/lisp/smerge-mode.elc
+share/emacs/${EMACSVERSION}/lisp/sort.el
+share/emacs/${EMACSVERSION}/lisp/sort.elc
+share/emacs/${EMACSVERSION}/lisp/soundex.el
+share/emacs/${EMACSVERSION}/lisp/soundex.elc
+share/emacs/${EMACSVERSION}/lisp/speedbar.el
+share/emacs/${EMACSVERSION}/lisp/speedbar.elc
+share/emacs/${EMACSVERSION}/lisp/startup.el
+share/emacs/${EMACSVERSION}/lisp/startup.elc
+share/emacs/${EMACSVERSION}/lisp/strokes.el
+share/emacs/${EMACSVERSION}/lisp/strokes.elc
+share/emacs/${EMACSVERSION}/lisp/subdirs.el
+share/emacs/${EMACSVERSION}/lisp/subr.el
+share/emacs/${EMACSVERSION}/lisp/subr.elc
+share/emacs/${EMACSVERSION}/lisp/tabify.el
+share/emacs/${EMACSVERSION}/lisp/tabify.elc
+share/emacs/${EMACSVERSION}/lisp/talk.el
+share/emacs/${EMACSVERSION}/lisp/talk.elc
+share/emacs/${EMACSVERSION}/lisp/tar-mode.el
+share/emacs/${EMACSVERSION}/lisp/tar-mode.elc
+share/emacs/${EMACSVERSION}/lisp/tcp.el
+share/emacs/${EMACSVERSION}/lisp/tcp.elc
+share/emacs/${EMACSVERSION}/lisp/tempo.el
+share/emacs/${EMACSVERSION}/lisp/tempo.elc
+share/emacs/${EMACSVERSION}/lisp/term.el
+share/emacs/${EMACSVERSION}/lisp/term.elc
+share/emacs/${EMACSVERSION}/lisp/term/AT386.el
+share/emacs/${EMACSVERSION}/lisp/term/README
+share/emacs/${EMACSVERSION}/lisp/term/apollo.el
+share/emacs/${EMACSVERSION}/lisp/term/bg-mouse.el
+share/emacs/${EMACSVERSION}/lisp/term/bg-mouse.elc
+share/emacs/${EMACSVERSION}/lisp/term/bobcat.el
+share/emacs/${EMACSVERSION}/lisp/term/internal.el
+share/emacs/${EMACSVERSION}/lisp/term/iris-ansi.el
+share/emacs/${EMACSVERSION}/lisp/term/keyswap.el
+share/emacs/${EMACSVERSION}/lisp/term/linux.el
+share/emacs/${EMACSVERSION}/lisp/term/lk201.el
+share/emacs/${EMACSVERSION}/lisp/term/mac-win.el
+share/emacs/${EMACSVERSION}/lisp/term/mac-win.elc
+share/emacs/${EMACSVERSION}/lisp/term/news.el
+share/emacs/${EMACSVERSION}/lisp/term/pc-win.el
+share/emacs/${EMACSVERSION}/lisp/term/pc-win.elc
+share/emacs/${EMACSVERSION}/lisp/term/sun-mouse.el
+share/emacs/${EMACSVERSION}/lisp/term/sun-mouse.elc
+share/emacs/${EMACSVERSION}/lisp/term/sun.el
+share/emacs/${EMACSVERSION}/lisp/term/sun.elc
+share/emacs/${EMACSVERSION}/lisp/term/sup-mouse.el
+share/emacs/${EMACSVERSION}/lisp/term/sup-mouse.elc
+share/emacs/${EMACSVERSION}/lisp/term/tty-colors.el
+share/emacs/${EMACSVERSION}/lisp/term/tty-colors.elc
+share/emacs/${EMACSVERSION}/lisp/term/tvi970.el
+share/emacs/${EMACSVERSION}/lisp/term/tvi970.elc
+share/emacs/${EMACSVERSION}/lisp/term/vt100.el
+share/emacs/${EMACSVERSION}/lisp/term/vt100.elc
+share/emacs/${EMACSVERSION}/lisp/term/vt102.el
+share/emacs/${EMACSVERSION}/lisp/term/vt125.el
+share/emacs/${EMACSVERSION}/lisp/term/vt200.el
+share/emacs/${EMACSVERSION}/lisp/term/vt201.el
+share/emacs/${EMACSVERSION}/lisp/term/vt220.el
+share/emacs/${EMACSVERSION}/lisp/term/vt240.el
+share/emacs/${EMACSVERSION}/lisp/term/vt300.el
+share/emacs/${EMACSVERSION}/lisp/term/vt320.el
+share/emacs/${EMACSVERSION}/lisp/term/vt400.el
+share/emacs/${EMACSVERSION}/lisp/term/vt420.el
+share/emacs/${EMACSVERSION}/lisp/term/w32-win.el
+share/emacs/${EMACSVERSION}/lisp/term/w32-win.elc
+share/emacs/${EMACSVERSION}/lisp/term/wyse50.el
+share/emacs/${EMACSVERSION}/lisp/term/x-win.el
+share/emacs/${EMACSVERSION}/lisp/term/x-win.elc
+share/emacs/${EMACSVERSION}/lisp/term/xterm.el
+share/emacs/${EMACSVERSION}/lisp/terminal.el
+share/emacs/${EMACSVERSION}/lisp/terminal.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/artist.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/artist.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/bib-mode.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/bib-mode.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/bibtex.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/bibtex.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/fill.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/fill.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/flyspell.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/flyspell.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/ispell.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/ispell.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/makeinfo.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/makeinfo.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/nroff-mode.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/nroff-mode.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/outline.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/outline.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/page-ext.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/page-ext.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/page.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/page.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/paragraphs.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/paragraphs.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/picture.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/picture.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/refbib.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/refbib.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/refer.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/refer.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/refill.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/refill.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-auc.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-auc.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-cite.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-cite.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-dcr.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-dcr.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-global.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-global.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-index.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-index.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-parse.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-parse.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-ref.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-ref.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-sel.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-sel.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-toc.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-toc.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-vars.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex-vars.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/reftex.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/scribe.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/scribe.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/sgml-mode.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/sgml-mode.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/spell.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/spell.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/tex-mode.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/tex-mode.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/texinfmt.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/texinfmt.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/texinfo.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/texinfo.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/texnfo-upd.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/texnfo-upd.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/text-mode.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/text-mode.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/tildify.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/tildify.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/two-column.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/two-column.elc
+share/emacs/${EMACSVERSION}/lisp/textmodes/underline.el
+share/emacs/${EMACSVERSION}/lisp/textmodes/underline.elc
+share/emacs/${EMACSVERSION}/lisp/thingatpt.el
+share/emacs/${EMACSVERSION}/lisp/thingatpt.elc
+share/emacs/${EMACSVERSION}/lisp/time-stamp.el
+share/emacs/${EMACSVERSION}/lisp/time-stamp.elc
+share/emacs/${EMACSVERSION}/lisp/time.el
+share/emacs/${EMACSVERSION}/lisp/time.elc
+share/emacs/${EMACSVERSION}/lisp/timer.el
+share/emacs/${EMACSVERSION}/lisp/timer.elc
+share/emacs/${EMACSVERSION}/lisp/timezone.el
+share/emacs/${EMACSVERSION}/lisp/timezone.elc
+share/emacs/${EMACSVERSION}/lisp/tmm.el
+share/emacs/${EMACSVERSION}/lisp/tmm.elc
+share/emacs/${EMACSVERSION}/lisp/toolbar/attach.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/cancel.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/cancel.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/close.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/close.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/copy.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/copy.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/cut.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/cut.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/exit.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/exit.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/fld_open.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/fld_open.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/help.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/help.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/home.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/home.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/index.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/index.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/info.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/info.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/jump_to.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/jump_to.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/left_arrow.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/left_arrow.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/mail.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/mail.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/mail_compose.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/mail_compose.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/mail_send.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/mail_send.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/new.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/new.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/open.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/open.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/paste.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/paste.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/preferences.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/preferences.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/print.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/print.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/right_arrow.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/right_arrow.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/save.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/save.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/saveas.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/saveas.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/search-replace.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/search-replace.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/search.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/search.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/spell.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/spell.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/tool-bar.el
+share/emacs/${EMACSVERSION}/lisp/toolbar/tool-bar.elc
+share/emacs/${EMACSVERSION}/lisp/toolbar/undo.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/undo.xpm
+share/emacs/${EMACSVERSION}/lisp/toolbar/up_arrow.pbm
+share/emacs/${EMACSVERSION}/lisp/toolbar/up_arrow.xpm
+share/emacs/${EMACSVERSION}/lisp/tooltip.el
+share/emacs/${EMACSVERSION}/lisp/tooltip.elc
+share/emacs/${EMACSVERSION}/lisp/type-break.el
+share/emacs/${EMACSVERSION}/lisp/type-break.elc
+share/emacs/${EMACSVERSION}/lisp/uniquify.el
+share/emacs/${EMACSVERSION}/lisp/uniquify.elc
+share/emacs/${EMACSVERSION}/lisp/unused.el
+share/emacs/${EMACSVERSION}/lisp/unused.elc
+share/emacs/${EMACSVERSION}/lisp/userlock.el
+share/emacs/${EMACSVERSION}/lisp/userlock.elc
+share/emacs/${EMACSVERSION}/lisp/vc-cvs.el
+share/emacs/${EMACSVERSION}/lisp/vc-cvs.elc
+share/emacs/${EMACSVERSION}/lisp/vc-hooks.el
+share/emacs/${EMACSVERSION}/lisp/vc-hooks.elc
+share/emacs/${EMACSVERSION}/lisp/vc-rcs.el
+share/emacs/${EMACSVERSION}/lisp/vc-rcs.elc
+share/emacs/${EMACSVERSION}/lisp/vc-sccs.el
+share/emacs/${EMACSVERSION}/lisp/vc-sccs.elc
+share/emacs/${EMACSVERSION}/lisp/vc.el
+share/emacs/${EMACSVERSION}/lisp/vc.elc
+share/emacs/${EMACSVERSION}/lisp/vcursor.el
+share/emacs/${EMACSVERSION}/lisp/vcursor.elc
+share/emacs/${EMACSVERSION}/lisp/version.el
+share/emacs/${EMACSVERSION}/lisp/view.el
+share/emacs/${EMACSVERSION}/lisp/view.elc
+share/emacs/${EMACSVERSION}/lisp/vms-patch.el
+share/emacs/${EMACSVERSION}/lisp/vms-patch.elc
+share/emacs/${EMACSVERSION}/lisp/vmsproc.el
+share/emacs/${EMACSVERSION}/lisp/vmsproc.elc
+share/emacs/${EMACSVERSION}/lisp/vt-control.el
+share/emacs/${EMACSVERSION}/lisp/vt-control.elc
+share/emacs/${EMACSVERSION}/lisp/vt100-led.el
+share/emacs/${EMACSVERSION}/lisp/vt100-led.elc
+share/emacs/${EMACSVERSION}/lisp/w32-fns.el
+share/emacs/${EMACSVERSION}/lisp/w32-fns.elc
+share/emacs/${EMACSVERSION}/lisp/which-func.el
+share/emacs/${EMACSVERSION}/lisp/which-func.elc
+share/emacs/${EMACSVERSION}/lisp/whitespace.el
+share/emacs/${EMACSVERSION}/lisp/whitespace.elc
+share/emacs/${EMACSVERSION}/lisp/wid-browse.el
+share/emacs/${EMACSVERSION}/lisp/wid-browse.elc
+share/emacs/${EMACSVERSION}/lisp/wid-edit.el
+share/emacs/${EMACSVERSION}/lisp/wid-edit.elc
+share/emacs/${EMACSVERSION}/lisp/widget.el
+share/emacs/${EMACSVERSION}/lisp/widget.elc
+share/emacs/${EMACSVERSION}/lisp/windmove.el
+share/emacs/${EMACSVERSION}/lisp/windmove.elc
+share/emacs/${EMACSVERSION}/lisp/window.el
+share/emacs/${EMACSVERSION}/lisp/window.elc
+share/emacs/${EMACSVERSION}/lisp/winner.el
+share/emacs/${EMACSVERSION}/lisp/winner.elc
+share/emacs/${EMACSVERSION}/lisp/woman.el
+share/emacs/${EMACSVERSION}/lisp/woman.elc
+share/emacs/${EMACSVERSION}/lisp/xml.el
+share/emacs/${EMACSVERSION}/lisp/xml.elc
+share/emacs/${EMACSVERSION}/lisp/xscheme.el
+share/emacs/${EMACSVERSION}/lisp/xscheme.elc
+share/emacs/${EMACSVERSION}/lisp/xt-mouse.el
+share/emacs/${EMACSVERSION}/lisp/xt-mouse.elc
+share/emacs/${EMACSVERSION}/site-lisp/subdirs.el
+share/emacs/site-lisp/subdirs.el
+@dirrm share/emacs/${EMACSVERSION}/site-lisp
+@dirrm share/emacs/${EMACSVERSION}/lisp/toolbar
+@dirrm share/emacs/${EMACSVERSION}/lisp/textmodes
+@dirrm share/emacs/${EMACSVERSION}/lisp/term
+@dirrm share/emacs/${EMACSVERSION}/lisp/progmodes
+@dirrm share/emacs/${EMACSVERSION}/lisp/play
+@dirrm share/emacs/${EMACSVERSION}/lisp/obsolete
+@dirrm share/emacs/${EMACSVERSION}/lisp/net
+@dirrm share/emacs/${EMACSVERSION}/lisp/mail
+@dirrm share/emacs/${EMACSVERSION}/lisp/language
+@dirrm share/emacs/${EMACSVERSION}/lisp/international
+@dirrm share/emacs/${EMACSVERSION}/lisp/gnus
+@dirrm share/emacs/${EMACSVERSION}/lisp/eshell
+@dirrm share/emacs/${EMACSVERSION}/lisp/emulation
+@dirrm share/emacs/${EMACSVERSION}/lisp/emacs-lisp
+@dirrm share/emacs/${EMACSVERSION}/lisp/calendar
+@dirrm share/emacs/${EMACSVERSION}/lisp
+@dirrm share/emacs/${EMACSVERSION}/leim
+@dirrm share/emacs/${EMACSVERSION}/etc/e
+@dirrm share/emacs/${EMACSVERSION}/etc
+@dirrm share/emacs/${EMACSVERSION}
+@unexec ${RMDIR} %D/share/emacs 2>/dev/null || ${TRUE}
+@dirrm libexec/emacs/${EMACSVERSION}/${MACHINE_GNU_PLATFORM}
+@dirrm libexec/emacs/${EMACSVERSION}
+@dirrm libexec/emacs
diff --git a/editors/emacs21/distinfo b/editors/emacs21/distinfo
new file mode 100644
index 00000000000..bc611ca2b41
--- /dev/null
+++ b/editors/emacs21/distinfo
@@ -0,0 +1,31 @@
+$NetBSD: distinfo,v 1.5 2007/06/11 13:38:30 markd Exp $
+
+SHA1 (emacs-21.4a.tar.gz) = cdb33731180fe4a912838af805dd35e3f55394d4
+RMD160 (emacs-21.4a.tar.gz) = c312e739935b56d08783bbfe97992297a363cb8a
+Size (emacs-21.4a.tar.gz) = 20403483 bytes
+SHA1 (patch-aa) = fee6fe91fb9a2f75300903cc5c6e023bb8de6be5
+SHA1 (patch-ab) = 9c268f822b4422307787f27a63ebc67ae43aa8a7
+SHA1 (patch-ac) = a2de7619fece50cb42b0e23b1651b5bf742ff69a
+SHA1 (patch-ad) = 39a11bc214ae3d2f9d634c30b196a46d473ab92f
+SHA1 (patch-ae) = e2b66b23efb90608470aef5ebd0c75e27bcd6b55
+SHA1 (patch-af) = 821e0c3cce819ce11f393ce5f498f13d652e4d94
+SHA1 (patch-ag) = 3d64c0d53e3a8a737eeb04a6080a92a826b73620
+SHA1 (patch-ah) = 6cd1b122b370ee7110e096088a132cd420356714
+SHA1 (patch-ai) = 20fb931d649a55ae7ee6eb27ec5ba7cc938db0f7
+SHA1 (patch-aj) = 7f28335b3da583e5cef9e527cd1f9d4b0d92faa7
+SHA1 (patch-ak) = c37ecdcb1e0b0211b15baa7100dd43eab3f0830b
+SHA1 (patch-am) = 7109d3a5cf1470e11e33abe97297cde24cf0ec91
+SHA1 (patch-an) = b541a2e78398aba03a43bf5b38140661dd959e76
+SHA1 (patch-ao) = 6e57a5a12742a09c2365933f580717ded232cf51
+SHA1 (patch-ap) = a2f0108a6aa7e0389cd629ade74ca00c31cb1034
+SHA1 (patch-aq) = 5d040fa79de68ec4a673db93caf3a9434c22a029
+SHA1 (patch-ar) = d681a5e6daef094da957f198ab1607dca95a306a
+SHA1 (patch-as) = 15ab1dcc2d6a445b119b7f2bb8a8331b4aa1fbd0
+SHA1 (patch-at) = bdd1bf7eea72a0b81677817d9b36cddaa07a189c
+SHA1 (patch-au) = e5d90961b4d78c37dec196097a16e0b6ac22e3bb
+SHA1 (patch-av) = 9b6ea439df406a55310e2ca1af45ed56f1663263
+SHA1 (patch-az) = 43753accb1b9ffc2c63e638c31236b8e4880080b
+SHA1 (patch-ba) = ae05985ce8cabffdfbfb84905e1d6b0de7690b25
+SHA1 (patch-bb) = bf748292c57459b1240da01f9d3df16e4dc40fa2
+SHA1 (patch-bg) = 567ccce83e2b6d898a87f20763d5ff4b19c30deb
+SHA1 (patch-xx) = cf1cb21e0bd96202622ff54e39d202bdae78c942
diff --git a/editors/emacs21/files/amd64.h b/editors/emacs21/files/amd64.h
new file mode 100644
index 00000000000..de4eba0b24f
--- /dev/null
+++ b/editors/emacs21/files/amd64.h
@@ -0,0 +1,131 @@
+/* machine description file for AMD x86-64.
+ Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+
+/* The following line tells the configuration script what sort of
+ operating system this machine is likely to run.
+ USUAL-OPSYS="linux" */
+
+#define BITS_PER_LONG 64
+#define BITS_PER_EMACS_INT 64
+
+/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
+ is the most significant byte. */
+
+#undef WORDS_BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments. */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts. */
+
+/* #define WORD_MACHINE */
+
+/* Now define a symbol for the cpu type, if your compiler
+ does not define it automatically:
+ Ones defined so far include vax, m68000, ns16000, pyramid,
+ orion, tahoe, APOLLO and many others */
+/* __x86_64 defined automatically. */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines. */
+
+#define NO_UNION_TYPE
+
+/* Define the type to use. */
+#define EMACS_INT long
+#define EMACS_UINT unsigned long
+#define SPECIAL_EMACS_INT
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+ the 24-bit bit field into an int. In other words, if bit fields
+ are always unsigned.
+
+ If you use NO_UNION_TYPE, this flag does not matter. */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem. */
+
+#define LOAD_AVE_TYPE long
+
+/* Convert that into an integer that is 100 for a load average of 1.0 */
+
+#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+ Then the function dump-emacs will not be defined
+ and temacs will do (load "loadup") automatically unless told otherwise. */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+ pure and impure space as loaded can vary, and even their
+ relative order cannot be relied on.
+
+ Otherwise Emacs assumes that text space precedes data space,
+ numerically. */
+
+#define VIRT_ADDR_VARIES /* XXX */
+
+/* Define C_ALLOCA if this machine does not support a true alloca
+ and the one written in C should be used instead.
+ Define HAVE_ALLOCA to say that the system provides a properly
+ working alloca function and it should be used.
+ Define neither one if an assembler-language alloca
+ in the file alloca.s should be used. */
+
+/* #define C_ALLOCA */ /* XXX */
+#define HAVE_ALLOCA
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+ to change the boundary between the text section and data section
+ when Emacs is dumped. If you define this, the preloaded Lisp
+ code will not be sharable; but that's better than failing completely. */
+
+#define NO_REMAP /* XXX */
+
+#define PNTR_COMPARISON_TYPE unsigned long
+
+/* On the 64 bit architecture, we can use 60 bits for addresses */
+
+#define VALBITS 60
+
+/* This definition of MARKBIT is necessary because of the comparison of
+ ARRAY_MARK_FLAG and MARKBIT in an #if in lisp.h, which cpp doesn't like. */
+
+#define MARKBIT 0x8000000000000000L
+
+/* Define XINT and XUINT so that they can take arguments of type int */
+#define XINT(a) (((long) (a) << (BITS_PER_LONG - VALBITS)) >> (BITS_PER_LONG - VALBITS))
+#define XUINT(a) ((long) (a) & VALMASK)
+
+/* Define XPNTR to avoid or'ing with DATA_SEG_BITS */
+
+#define XPNTR(a) XUINT (a)
+
+/* #undef START_FILES */ /* XXX */
+/* #define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o */ /* XXX */
+
+/* #undef LIB_STANDARD */ /* XXX */
+/* #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o */ /* XXX */
diff --git a/editors/emacs21/files/darwin.h b/editors/emacs21/files/darwin.h
new file mode 100644
index 00000000000..cc46dcb31c9
--- /dev/null
+++ b/editors/emacs21/files/darwin.h
@@ -0,0 +1,324 @@
+/* System description header file for Darwin (Mac OS X).
+ Copyright (C) 2001, 02, 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+
+/*
+ * Define symbols to identify the version of Unix this is.
+ * Define all the symbols that apply correctly.
+ */
+
+/* #define UNIPLUS */
+/* #define USG5 */
+/* #define USG */
+/* #define HPUX */
+/* #define UMAX */
+/* #define BSD4_1 */
+#define BSD4_2
+/* BSD4_3 and BSD4_4 are already defined in sys/param.h */
+/* #define BSD4_3 */
+/* #define BSD4_4 */
+#define BSD_SYSTEM
+/* #define VMS */
+
+/* MAC_OS is used to conditionally compile code common to both MAC_OS8
+ and MAC_OSX. */
+#ifdef MAC_OSX
+#ifdef HAVE_CARBON
+#define MAC_OS
+#endif
+#endif
+
+/* SYSTEM_TYPE should indicate the kind of system you are using.
+ It sets the Lisp variable system-type. */
+
+#define SYSTEM_TYPE "darwin"
+
+/* NOMULTIPLEJOBS should be defined if your system's shell
+ does not have "job control" (the ability to stop a program,
+ run some other program, then continue the first one). */
+
+/* #define NOMULTIPLEJOBS */
+
+/* Emacs can read input using SIGIO and buffering characters itself,
+ or using CBREAK mode and making C-g cause SIGINT.
+ The choice is controlled by the variable interrupt_input.
+
+ Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
+
+ Emacs uses the presence or absence of the SIGIO and BROKEN_SIGIO macros
+ to indicate whether or not signal-driven I/O is possible. It uses
+ INTERRUPT_INPUT to decide whether to use it by default.
+
+ SIGIO can be used only on systems that implement it (4.2 and 4.3).
+ CBREAK mode has two disadvantages
+ 1) At least in 4.2, it is impossible to handle the Meta key properly.
+ I hear that in system V this problem does not exist.
+ 2) Control-G causes output to be discarded.
+ I do not know whether this can be fixed in system V.
+
+ Another method of doing input is planned but not implemented.
+ It would have Emacs fork off a separate process
+ to read the input and send it to the true Emacs process
+ through a pipe. */
+
+#define INTERRUPT_INPUT
+
+/* Letter to use in finding device name of first pty,
+ if system supports pty's. 'a' means it is /dev/ptya0 */
+
+#define FIRST_PTY_LETTER 'p'
+
+/*
+ * Define HAVE_TERMIOS if the system provides POSIX-style
+ * functions and macros for terminal control.
+ *
+ * Define HAVE_TERMIO if the system provides sysV-style ioctls
+ * for terminal control.
+ *
+ * Do not define both. HAVE_TERMIOS is preferred, if it is
+ * supported on your system.
+ */
+
+#define HAVE_TERMIOS
+/* #define HAVE_TERMIO */
+
+#define NO_TERMIO
+
+/*
+ * Define HAVE_PTYS if the system supports pty devices.
+ */
+
+#define HAVE_PTYS
+
+/*
+ * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
+ * The 4.2 opendir, etc., library functions.
+ */
+
+/* #define NONSYSTEM_DIR_LIBRARY */
+
+/* Define this symbol if your system has the functions bcopy, etc. */
+
+#define BSTRING
+
+/* subprocesses should be defined if you want to
+ have code for asynchronous subprocesses
+ (as used in M-x compile and M-x shell).
+ This is generally OS dependent, and not supported
+ under most USG systems. */
+
+#define subprocesses
+
+/* If your system uses COFF (Common Object File Format) then define the
+ preprocessor symbol "COFF". */
+
+/* #define COFF */
+
+/* define MAIL_USE_FLOCK if the mailer uses flock
+ to interlock access to /usr/spool/mail/$USER.
+ The alternative is that a lock file named
+ /usr/spool/mail/$USER.lock. */
+
+#define MAIL_USE_FLOCK
+
+/* Define CLASH_DETECTION if you want lock files to be written
+ so that Emacs can tell instantly when you try to modify
+ a file that someone else has modified in his Emacs. */
+
+#define CLASH_DETECTION
+
+/* Define this if your operating system declares signal handlers to
+ have a type other than the usual. `The usual' is `void' for ANSI C
+ systems (i.e. when the __STDC__ macro is defined), and `int' for
+ pre-ANSI systems. If you're using GCC on an older system, __STDC__
+ will be defined, but the system's include files will still say that
+ signal returns int or whatever; in situations like that, define
+ this to be what the system's include files want. */
+/* #define SIGTYPE int */
+
+/* If the character used to separate elements of the executable path
+ is not ':', #define this to be the appropriate character constant. */
+/* #define SEPCHAR ':' */
+
+/* Define this if the system can use mmap for buffer text allocation. */
+/* #define USE_MMAP_FOR_BUFFERS 1 */
+
+/* ============================================================ */
+
+/* Here, add any special hacks needed
+ to make Emacs work on this system. For example,
+ you might define certain system call names that don't
+ exist on your system, or that do different things on
+ your system and must be used only through an encapsulation
+ (Which you should place, by convention, in sysdep.c). */
+
+/* Some compilers tend to put everything declared static
+ into the initialized data area, which becomes pure after dumping Emacs.
+ On these systems, you must #define static as nothing to foil this.
+ Note that emacs carefully avoids static vars inside functions. */
+
+/* #define static */
+
+/* If the system's imake configuration file defines `NeedWidePrototypes'
+ as `NO', we must define NARROWPROTO manually. Such a define is
+ generated in the Makefile generated by `xmkmf'. If we don't
+ define NARROWPROTO, we will see the wrong function prototypes
+ for X functions taking float or double parameters. */
+
+/* #define NARROWPROTO 1 */
+
+/* ============================================================ */
+
+/* After adding support for a new system, modify the large case
+ statement in the `configure' script to recognize reasonable
+ configuration names, and add a description of the system to
+ `etc/MACHINES'.
+
+ If you've just fixed a problem in an existing configuration file,
+ you should also check `etc/MACHINES' to make sure its descriptions
+ of known problems in that configuration should be updated. */
+
+
+/* Avoid the use of the name init_process (process.c) because it is
+ also the name of a Mach system call. */
+#define init_process emacs_init_process
+
+/* Fix compilation problem for regex.c. */
+#define __restrict
+
+/* Used in dispnew.c. Copied from freebsd.h. */
+#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
+
+/* System uses OXTABS instead of the expected TAB3. (Copied from
+ bsd386.h.) */
+#define TAB3 OXTABS
+
+/* Darwin ld insists on the use of malloc routines in the System
+ framework. */
+#define SYSTEM_MALLOC
+
+/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
+#define HAVE_SOCKETS
+
+/* Extra initialization calls in main for Mac OS X system type. */
+#ifdef HAVE_CARBON
+#define SYMS_SYSTEM syms_of_mac()
+#endif
+
+/* Definitions for how to dump. Copied from nextstep.h. */
+
+#define UNEXEC unexmacosx.o
+
+#define START_FILES pre-crt0.o
+
+/* start_of_text isn't actually used, so make it compile without error. */
+#define TEXT_START (0)
+
+/* This seems to be right for end_of_text, but it may not be used anyway. */
+#define TEXT_END get_etext()
+
+/* This seems to be right for end_of_data, but it may not be used anyway. */
+#define DATA_END get_edata()
+
+/* Definitions for how to compile & link. */
+
+/* Indicate that we are compiling for Mac OS X and where to find Mac
+ specific headers. */
+#define C_SWITCH_SYSTEM -fpascal-strings -fno-common -DMAC_OSX -I../mac/src
+
+/* Link in the Carbon lib. The -headerpad option tells ld (see man
+ page) to leave room at the end of the header for adding load
+ commands. Needed for dumping. 0x690 is the total size of 30
+ segment load commands (at 56 each). */
+#define LD_SWITCH_SYSTEM_TEMACS -prebind -framework Carbon -framework QuickTime -lstdc++ -Xlinker -headerpad -Xlinker 690
+
+#define C_SWITCH_SYSTEM_TEMACS -Dtemacs
+
+/* The ncurses library has been moved out of the System framework in
+ Mac OS X 10.2. So if ./configure detects it, set the command-line
+ option to use it. */
+#ifdef HAVE_LIBNCURSES
+#define LIBS_TERMCAP -lncurses
+/* This prevents crashes when running Emacs in Terminal.app under
+ 10.2. */
+#define TERMINFO
+#endif
+
+/* Link this program just by running cc. */
+#define ORDINARY_LINK
+
+/* We don't have a g library, so override the -lg LIBS_DEBUG switch. */
+#define LIBS_DEBUG
+
+/* Adding -lm confuses the dynamic linker, so omit it. */
+#define LIB_MATH
+
+/* Tell src/Makefile.in to create files in the Mac OS X application
+ bundle mac/Emacs.app. */
+#ifdef HAVE_CARBON
+#define OTHER_FILES macosx-app
+#endif
+
+
+/* Define the following so emacs symbols will not conflict with those
+ in the System framework. Otherwise -prebind will not work. */
+
+/* Do not define abort in emacs.c. */
+#define NO_ABORT
+
+/* Do not define matherr in floatfns.c. */
+#define NO_MATHERR
+
+
+/* This prevents a compilation error in xfaces.c: struct kboard * is
+ used in a function protocol the first time this type appears in the
+ file, since MULTI_KBOARD is undefined for the Mac OS X build. */
+#ifndef NOT_C_CODE
+struct kboard;
+#endif
+
+/* The following solves the problem that Emacs hangs when evaluating
+ (make-comint "test0" "/nodir/nofile" nil "") when /nodir/nofile
+ does not exist. */
+#undef HAVE_WORKING_VFORK
+#define vfork fork
+#define DONT_REOPEN_PTY
+
+#ifdef temacs
+#define malloc unexec_malloc
+#define realloc unexec_realloc
+#define free unexec_free
+#endif
+
+/* Reroute calls to SELECT to the version defined in mac.c to fix the
+ problem of Emacs requiring an extra return to be typed to start
+ working when started from the command line. */
+#if defined (HAVE_CARBON) && (defined (emacs) || defined (temacs))
+#define select sys_select
+#endif
+
+/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the
+ stack. */
+#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
+
+/* arch-tag: 481d443d-4f89-43ea-b5fb-49706d95fa41
+ (do not change this comment) */
+#define GETPGRP_NO_ARG
+#define HAVE_ALLOCA
diff --git a/editors/emacs21/files/dragonfly.h b/editors/emacs21/files/dragonfly.h
new file mode 100644
index 00000000000..604cda4a62e
--- /dev/null
+++ b/editors/emacs21/files/dragonfly.h
@@ -0,0 +1,136 @@
+/* System description header for DragonFly systems.
+ This file describes the parameters that system description files
+ should define or not.
+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+ Free Software Foundation, Inc.
+
+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., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+/* Get most of the stuff from bsd4.3 */
+#include "bsd4-3.h"
+
+/* For mem-limits.h. */
+#define BSD4_2
+
+/* These aren't needed, since we have getloadavg. */
+#undef KERNEL_FILE
+#undef LDAV_SYMBOL
+
+#define PENDING_OUTPUT_COUNT(FILE) __fpending(FILE)
+
+#define LIBS_DEBUG
+#define LIBS_SYSTEM -lutil
+#define SYSV_SYSTEM_DIR
+
+/* freebsd has POSIX-style pgrp behavior. */
+#undef BSD_PGRPS
+#define GETPGRP_NO_ARG
+
+#if defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ == 4
+# ifndef DFLY_PRE_17_CRT
+#define START_FILES pre-crt0.o /usr/lib/gcc34/crt1.o /usr/lib/gcc34/crti.o /usr/lib/gcc34/crtbegin.o
+#define LIB_STANDARD -L/usr/lib/gcc34 -lgcc -lc -lgcc /usr/lib/gcc34/crtend.o /usr/lib/gcc34/crtn.o
+# else
+#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o
+#define LIB_STANDARD -L/usr/lib/gcc34 -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o
+# endif
+#else
+#error "Add compiler version magic"
+#endif
+
+#define LD_SWITCH_SYSTEM_1
+#define UNEXEC unexelf.o
+#undef LIB_GCC
+#define LIB_GCC
+
+#define HAVE_WAIT_HEADER
+#define HAVE_GETLOADAVG 1
+#define HAVE_TERMIOS
+#define NO_TERMIO
+#define DECLARE_GETPWUID_WITH_UID_T
+
+/* freebsd uses OXTABS instead of the expected TAB3. */
+#define TABDLY OXTABS
+#define TAB3 OXTABS
+
+/* this silences a few compilation warnings */
+#undef BSD_SYSTEM
+#define BSD_SYSTEM 199506
+
+/* Needed to avoid hanging when child process writes an error message
+ and exits -- enami tsugutomo <enami@ba2.so-net.or.jp>. */
+#define vfork fork
+
+/* Don't close pty in process.c to make it as controlling terminal.
+ It is already a controlling terminal of subprocess, because we did
+ ioctl TIOCSCTTY. */
+#define DONT_REOPEN_PTY
+
+/* CLASH_DETECTION is defined in bsd4-3.h.
+ In FreeBSD 2.1.5 (and other 2.1.x), this results useless symbolic links
+ remaining in /tmp or other directories with +t bit.
+ To avoid this problem, you could #undef it to use no file lock. */
+/* #undef CLASH_DETECTION */
+
+/* If the system's imake configuration file defines `NeedWidePrototypes'
+ as `NO', we must define NARROWPROTO manually. Such a define is
+ generated in the Makefile generated by `xmkmf'. If we don't
+ define NARROWPROTO, we will see the wrong function prototypes
+ for X functions taking float or double parameters. */
+
+#define NARROWPROTO 1
+
+#define C_SWITCH_SYSTEM
+#define LD_SWITCH_SYSTEM
+
+/* Circumvent a bug in FreeBSD. In the following sequence of
+ writes/reads on a PTY, read(2) returns bogus data:
+
+ write(2) 1022 bytes
+ write(2) 954 bytes, get EAGAIN
+ read(2) 1024 bytes in process_read_output
+ read(2) 11 bytes in process_read_output
+
+ That is, read(2) returns more bytes than have ever been written
+ successfully. The 1033 bytes read are the 1022 bytes written
+ successfully after processing (for example with CRs added if the
+ terminal is set up that way which it is here). The same bytes will
+ be seen again in a later read(2), without the CRs. */
+
+#define BROKEN_PTY_READ_AFTER_EAGAIN 1
+
+/* Tell that garbage collector that setjmp is known to save all
+ registers relevant for conservative garbage collection in the
+ jmp_buf. */
+
+#define GC_SETJMP_WORKS 1
+
+/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the
+ stack. */
+
+#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
+
+/* Define USE_MMAP_FOR_BUFFERS to let Emacs use mmap(2) to allocate
+ buffer text. This overrides REL_ALLOC. */
+
+#define USE_MMAP_FOR_BUFFERS 1
+
+/* Use sigprocmask(2) and friends instead of sigblock(2); the man page
+ of sigblock says it is obsolete. */
+
+#define POSIX_SIGNALS 1
diff --git a/editors/emacs21/files/powermac.h b/editors/emacs21/files/powermac.h
new file mode 100644
index 00000000000..b6803a2e32a
--- /dev/null
+++ b/editors/emacs21/files/powermac.h
@@ -0,0 +1,115 @@
+/* Machine description file for Apple Power Macintosh
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+
+/* The following line tells the configuration script what sort of
+ operating system this machine is likely to run.
+ USUAL-OPSYS="darwin" */
+
+/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
+ is the most significant byte. */
+
+#define WORDS_BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments. */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts. */
+
+/* #define WORD_MACHINE */
+
+/* Now define a symbol for the cpu type, if your compiler
+ does not define it automatically:
+ Ones defined so far include vax, m68000, ns16000, pyramid,
+ orion, tahoe, APOLLO and many others */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines. */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+ the 24-bit bit field into an int. In other words, if bit fields
+ are always unsigned.
+
+ If you use NO_UNION_TYPE, this flag does not matter. */
+
+/* #define EXPLICIT_SIGN_EXTEND */
+
+/* Data type of load average, as read out of kmem. */
+
+#define LOAD_AVE_TYPE long
+
+/* Convert that into an integer that is 100 for a load average of 1.0 */
+
+#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+ Then the function dump-emacs will not be defined
+ and temacs will do (load "loadup") automatically unless told otherwise. */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+ pure and impure space as loaded can vary, and even their
+ relative order cannot be relied on.
+
+ Otherwise Emacs assumes that text space precedes data space,
+ numerically. */
+
+/* #define VIRT_ADDR_VARIES * */
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+ to change the boundary between the text section and data section
+ when Emacs is dumped. If you define this, the preloaded Lisp
+ code will not be sharable; but that's better than failing completely. */
+
+#define NO_REMAP
+
+/* Some really obscure 4.2-based systems (like Sequent DYNIX)
+ * do not support asynchronous I/O (using SIGIO) on sockets,
+ * even though it works fine on tty's. If you have one of
+ * these systems, define the following, and then use it in
+ * config.h (or elsewhere) to decide when (not) to use SIGIO.
+ *
+ * You'd think this would go in an operating-system description file,
+ * but since it only occurs on some, but not all, BSD systems, the
+ * reasonable place to select for it is in the machine description
+ * file.
+ */
+
+/* #define NO_SOCK_SIGIO */
+
+
+/* After adding support for a new system, modify the large case
+ statement in the `configure' script to recognize reasonable
+ configuration names, and add a description of the system to
+ `etc/MACHINES'.
+
+ If you've just fixed a problem in an existing configuration file,
+ you should also check `etc/MACHINES' to make sure its descriptions
+ of known problems in that configuration should be updated. */
+
+/* arch-tag: d8af08a6-48b3-4c8a-94a0-0b4acae5e1f0
+ (do not change this comment) */
+#define CANNOT_DUMP
diff --git a/editors/emacs21/files/sh3el.h b/editors/emacs21/files/sh3el.h
new file mode 100644
index 00000000000..bdb735736c3
--- /dev/null
+++ b/editors/emacs21/files/sh3el.h
@@ -0,0 +1,107 @@
+/* machine description file for sh3el
+ Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+
+/* The following line tells the configuration script what sort of
+ operating system this machine is likely to run.
+ USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */
+
+/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
+ is the most significant byte. */
+
+#undef WORDS_BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments. */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts. */
+
+#undef WORD_MACHINE
+
+/* Now define a symbol for the cpu type, if your compiler
+ does not define it automatically:
+ Ones defined so far include vax, m68000, ns16000, pyramid,
+ orion, tahoe, APOLLO and many others */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines. */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+ the 24-bit bit field into an int. In other words, if bit fields
+ are always unsigned.
+
+ If you use NO_UNION_TYPE, this flag does not matter. */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem. */
+
+#define LOAD_AVE_TYPE long
+
+/* Convert that into an integer that is 100 for a load average of 1.0 */
+
+#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+ Then the function dump-emacs will not be defined
+ and temacs will do (load "loadup") automatically unless told otherwise. */
+
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+ pure and impure space as loaded can vary, and even their
+ relative order cannot be relied on.
+
+ Otherwise Emacs assumes that text space precedes data space,
+ numerically. */
+
+#define VIRT_ADDR_VARIES
+
+/* Define C_ALLOCA if this machine does not support a true alloca
+ and the one written in C should be used instead.
+ Define HAVE_ALLOCA to say that the system provides a properly
+ working alloca function and it should be used.
+ Define neither one if an assembler-language alloca
+ in the file alloca.s should be used. */
+
+/* #define C_ALLOCA */
+#define HAVE_ALLOCA
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+ to change the boundary between the text section and data section
+ when Emacs is dumped. If you define this, the preloaded Lisp
+ code will not be sharable; but that's better than failing completely. */
+
+#define NO_REMAP
+
+/* After adding support for a new system, modify the large case
+ statement in the `configure' script to recognize reasonable
+ configuration names, and add a description of the system to
+ `etc/MACHINES'.
+
+ If you've just fixed a problem in an existing configuration file,
+ you should also check `etc/MACHINES' to make sure its descriptions
+ of known problems in that configuration should be updated. */
+
diff --git a/editors/emacs21/files/site-init.el b/editors/emacs21/files/site-init.el
new file mode 100644
index 00000000000..6f82234fa08
--- /dev/null
+++ b/editors/emacs21/files/site-init.el
@@ -0,0 +1,4 @@
+;; $NetBSD: site-init.el,v 1.3 2007/06/11 13:38:33 markd Exp $
+
+(autoload 'send-pr "/usr/share/gnats/send-pr.el"
+ "Command to create and send a problem report." t)
diff --git a/editors/emacs21/files/unexmacosx.c b/editors/emacs21/files/unexmacosx.c
new file mode 100644
index 00000000000..b41c586d2e0
--- /dev/null
+++ b/editors/emacs21/files/unexmacosx.c
@@ -0,0 +1,1054 @@
+/* Dump Emacs in Mach-O format for use on Mac OS X.
+ Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+/* Contributed by Andrew Choi (akochoi@mac.com). */
+
+/* Documentation note.
+
+ Consult the following documents/files for a description of the
+ Mach-O format: the file loader.h, man pages for Mach-O and ld, old
+ NEXTSTEP documents of the Mach-O format. The tool otool dumps the
+ mach header (-h option) and the load commands (-l option) in a
+ Mach-O file. The tool nm on Mac OS X displays the symbol table in
+ a Mach-O file. For examples of unexec for the Mach-O format, see
+ the file unexnext.c in the GNU Emacs distribution, the file
+ unexdyld.c in the Darwin port of GNU Emacs 20.7, and unexdyld.c in
+ the Darwin port of XEmacs 21.1. Also the Darwin Libc source
+ contains the source code for malloc_freezedry and malloc_jumpstart.
+ Read that to see what they do. This file was written completely
+ from scratch, making use of information from the above sources. */
+
+/* The Mac OS X implementation of unexec makes use of Darwin's `zone'
+ memory allocator. All calls to malloc, realloc, and free in Emacs
+ are redirected to unexec_malloc, unexec_realloc, and unexec_free in
+ this file. When temacs is run, all memory requests are handled in
+ the zone EmacsZone. The Darwin memory allocator library calls
+ maintain the data structures to manage this zone. Dumping writes
+ its contents to data segments of the executable file. When emacs
+ is run, the loader recreates the contents of the zone in memory.
+ However since the initialization routine of the zone memory
+ allocator is run again, this `zone' can no longer be used as a
+ heap. That is why emacs uses the ordinary malloc system call to
+ allocate memory. Also, when a block of memory needs to be
+ reallocated and the new size is larger than the old one, a new
+ block must be obtained by malloc and the old contents copied to
+ it. */
+
+/* Peculiarity of the Mach-O files generated by ld in Mac OS X
+ (possible causes of future bugs if changed).
+
+ The file offset of the start of the __TEXT segment is zero. Since
+ the Mach header and load commands are located at the beginning of a
+ Mach-O file, copying the contents of the __TEXT segment from the
+ input file overwrites them in the output file. Despite this,
+ unexec works fine as written below because the segment load command
+ for __TEXT appears, and is therefore processed, before all other
+ load commands except the segment load command for __PAGEZERO, which
+ remains unchanged.
+
+ Although the file offset of the start of the __TEXT segment is
+ zero, none of the sections it contains actually start there. In
+ fact, the earliest one starts a few hundred bytes beyond the end of
+ the last load command. The linker option -headerpad controls the
+ minimum size of this padding. Its setting can be changed in
+ s/darwin.h. A value of 0x300, e.g., leaves room for about 15
+ additional load commands for the newly created __DATA segments (at
+ 56 bytes each). Unexec fails if there is not enough room for these
+ new segments.
+
+ The __TEXT segment contains the sections __text, __cstring,
+ __picsymbol_stub, and __const and the __DATA segment contains the
+ sections __data, __la_symbol_ptr, __nl_symbol_ptr, __dyld, __bss,
+ and __common. The other segments do not contain any sections.
+ These sections are copied from the input file to the output file,
+ except for __data, __bss, and __common, which are dumped from
+ memory. The types of the sections __bss and __common are changed
+ from S_ZEROFILL to S_REGULAR. Note that the number of sections and
+ their relative order in the input and output files remain
+ unchanged. Otherwise all n_sect fields in the nlist records in the
+ symbol table (specified by the LC_SYMTAB load command) will have to
+ be changed accordingly.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <stdarg.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <mach/mach.h>
+#include <mach-o/loader.h>
+#include <mach-o/reloc.h>
+#if defined (__ppc__)
+#include <mach-o/ppc/reloc.h>
+#endif
+#include <objc/malloc.h>
+
+#define VERBOSE 1
+
+/* Size of buffer used to copy data from the input file to the output
+ file in function unexec_copy. */
+#define UNEXEC_COPY_BUFSZ 1024
+
+/* Regions with memory addresses above this value are assumed to be
+ mapped to dynamically loaded libraries and will not be dumped. */
+#define VM_DATA_TOP (20 * 1024 * 1024)
+
+/* Used by malloc_freezedry and malloc_jumpstart. */
+int malloc_cookie;
+
+/* Type of an element on the list of regions to be dumped. */
+struct region_t {
+ vm_address_t address;
+ vm_size_t size;
+ vm_prot_t protection;
+ vm_prot_t max_protection;
+
+ struct region_t *next;
+};
+
+/* Head and tail of the list of regions to be dumped. */
+struct region_t *region_list_head = 0;
+struct region_t *region_list_tail = 0;
+
+/* Pointer to array of load commands. */
+struct load_command **lca;
+
+/* Number of load commands. */
+int nlc;
+
+/* The highest VM address of segments loaded by the input file.
+ Regions with addresses beyond this are assumed to be allocated
+ dynamically and thus require dumping. */
+vm_address_t infile_lc_highest_addr = 0;
+
+/* The lowest file offset used by the all sections in the __TEXT
+ segments. This leaves room at the beginning of the file to store
+ the Mach-O header. Check this value against header size to ensure
+ the added load commands for the new __DATA segments did not
+ overwrite any of the sections in the __TEXT segment. */
+unsigned long text_seg_lowest_offset = 0x10000000;
+
+/* Mach header. */
+struct mach_header mh;
+
+/* Offset at which the next load command should be written. */
+unsigned long curr_header_offset = sizeof (struct mach_header);
+
+/* Current adjustment that needs to be made to offset values because
+ of additional data segments. */
+unsigned long delta = 0;
+
+int infd, outfd;
+
+int in_dumped_exec = 0;
+
+malloc_zone_t *emacs_zone;
+
+/* file offset of input file's data segment */
+off_t data_segment_old_fileoff;
+
+struct segment_command *data_segment_scp;
+
+/* Read n bytes from infd into memory starting at address dest.
+ Return true if successful, false otherwise. */
+static int
+unexec_read (void *dest, size_t n)
+{
+ return n == read (infd, dest, n);
+}
+
+/* Write n bytes from memory starting at address src to outfd starting
+ at offset dest. Return true if successful, false otherwise. */
+static int
+unexec_write (off_t dest, const void *src, size_t count)
+{
+ if (lseek (outfd, dest, SEEK_SET) != dest)
+ return 0;
+
+ return write (outfd, src, count) == count;
+}
+
+/* Copy n bytes from starting offset src in infd to starting offset
+ dest in outfd. Return true if successful, false otherwise. */
+static int
+unexec_copy (off_t dest, off_t src, ssize_t count)
+{
+ ssize_t bytes_read;
+ ssize_t bytes_to_read;
+
+ char buf[UNEXEC_COPY_BUFSZ];
+
+ if (lseek (infd, src, SEEK_SET) != src)
+ return 0;
+
+ if (lseek (outfd, dest, SEEK_SET) != dest)
+ return 0;
+
+ while (count > 0)
+ {
+ bytes_to_read = count > UNEXEC_COPY_BUFSZ ? UNEXEC_COPY_BUFSZ : count;
+ bytes_read = read (infd, buf, bytes_to_read);
+ if (bytes_read <= 0)
+ return 0;
+ if (write (outfd, buf, bytes_read) != bytes_read)
+ return 0;
+ count -= bytes_read;
+ }
+
+ return 1;
+}
+
+/* Debugging and informational messages routines. */
+
+static void
+unexec_error (char *format, ...)
+{
+ va_list ap;
+
+ va_start (ap, format);
+ fprintf (stderr, "unexec: ");
+ vfprintf (stderr, format, ap);
+ fprintf (stderr, "\n");
+ va_end (ap);
+ exit (1);
+}
+
+static void
+print_prot (vm_prot_t prot)
+{
+ if (prot == VM_PROT_NONE)
+ printf ("none");
+ else
+ {
+ putchar (prot & VM_PROT_READ ? 'r' : ' ');
+ putchar (prot & VM_PROT_WRITE ? 'w' : ' ');
+ putchar (prot & VM_PROT_EXECUTE ? 'x' : ' ');
+ putchar (' ');
+ }
+}
+
+static void
+print_region (vm_address_t address, vm_size_t size, vm_prot_t prot,
+ vm_prot_t max_prot)
+{
+ printf ("%#10x %#8x ", address, size);
+ print_prot (prot);
+ putchar (' ');
+ print_prot (max_prot);
+ putchar ('\n');
+}
+
+static void
+print_region_list ()
+{
+ struct region_t *r;
+
+ printf (" address size prot maxp\n");
+
+ for (r = region_list_head; r; r = r->next)
+ print_region (r->address, r->size, r->protection, r->max_protection);
+}
+
+void
+print_regions ()
+{
+ task_t target_task = mach_task_self ();
+ vm_address_t address = (vm_address_t) 0;
+ vm_size_t size;
+ struct vm_region_basic_info info;
+ mach_msg_type_number_t info_count = VM_REGION_BASIC_INFO_COUNT;
+ mach_port_t object_name;
+
+ printf (" address size prot maxp\n");
+
+ while (vm_region (target_task, &address, &size, VM_REGION_BASIC_INFO,
+ (vm_region_info_t) &info, &info_count, &object_name)
+ == KERN_SUCCESS && info_count == VM_REGION_BASIC_INFO_COUNT)
+ {
+ print_region (address, size, info.protection, info.max_protection);
+
+ if (object_name != MACH_PORT_NULL)
+ mach_port_deallocate (target_task, object_name);
+
+ address += size;
+ }
+}
+
+/* Build the list of regions that need to be dumped. Regions with
+ addresses above VM_DATA_TOP are omitted. Adjacent regions with
+ identical protection are merged. Note that non-writable regions
+ cannot be omitted because they some regions created at run time are
+ read-only. */
+static void
+build_region_list ()
+{
+ task_t target_task = mach_task_self ();
+ vm_address_t address = (vm_address_t) 0;
+ vm_size_t size;
+ struct vm_region_basic_info info;
+ mach_msg_type_number_t info_count = VM_REGION_BASIC_INFO_COUNT;
+ mach_port_t object_name;
+ struct region_t *r;
+
+#if VERBOSE
+ printf ("--- List of All Regions ---\n");
+ printf (" address size prot maxp\n");
+#endif
+
+ while (vm_region (target_task, &address, &size, VM_REGION_BASIC_INFO,
+ (vm_region_info_t) &info, &info_count, &object_name)
+ == KERN_SUCCESS && info_count == VM_REGION_BASIC_INFO_COUNT)
+ {
+ /* Done when we reach addresses of shared libraries, which are
+ loaded in high memory. */
+ if (address >= VM_DATA_TOP)
+ break;
+
+#if VERBOSE
+ print_region (address, size, info.protection, info.max_protection);
+#endif
+
+ /* If a region immediately follows the previous one (the one
+ most recently added to the list) and has identical
+ protection, merge it with the latter. Otherwise create a
+ new list element for it. */
+ if (region_list_tail
+ && info.protection == region_list_tail->protection
+ && info.max_protection == region_list_tail->max_protection
+ && region_list_tail->address + region_list_tail->size == address)
+ {
+ region_list_tail->size += size;
+ }
+ else
+ {
+ r = (struct region_t *) malloc (sizeof (struct region_t));
+
+ if (!r)
+ unexec_error ("cannot allocate region structure");
+
+ r->address = address;
+ r->size = size;
+ r->protection = info.protection;
+ r->max_protection = info.max_protection;
+
+ r->next = 0;
+ if (region_list_head == 0)
+ {
+ region_list_head = r;
+ region_list_tail = r;
+ }
+ else
+ {
+ region_list_tail->next = r;
+ region_list_tail = r;
+ }
+
+ /* Deallocate (unused) object name returned by
+ vm_region. */
+ if (object_name != MACH_PORT_NULL)
+ mach_port_deallocate (target_task, object_name);
+ }
+
+ address += size;
+ }
+
+ printf ("--- List of Regions to be Dumped ---\n");
+ print_region_list ();
+}
+
+
+#define MAX_UNEXEC_REGIONS 200
+
+int num_unexec_regions;
+vm_range_t unexec_regions[MAX_UNEXEC_REGIONS];
+
+static void
+unexec_regions_recorder (task_t task, void *rr, unsigned type,
+ vm_range_t *ranges, unsigned num)
+{
+ while (num && num_unexec_regions < MAX_UNEXEC_REGIONS)
+ {
+ unexec_regions[num_unexec_regions++] = *ranges;
+ printf ("%#8x (sz: %#8x)\n", ranges->address, ranges->size);
+ ranges++; num--;
+ }
+ if (num_unexec_regions == MAX_UNEXEC_REGIONS)
+ fprintf (stderr, "malloc_freezedry_recorder: too many regions\n");
+}
+
+static kern_return_t
+unexec_reader (task_t task, vm_address_t address, vm_size_t size, void **ptr)
+{
+ *ptr = (void *) address;
+ return KERN_SUCCESS;
+}
+
+void
+find_emacs_zone_regions ()
+{
+ num_unexec_regions = 0;
+
+ emacs_zone->introspect->enumerator (mach_task_self(), 0,
+ MALLOC_PTR_REGION_RANGE_TYPE
+ | MALLOC_ADMIN_REGION_RANGE_TYPE,
+ (vm_address_t) emacs_zone,
+ unexec_reader,
+ unexec_regions_recorder);
+}
+
+static int
+unexec_regions_sort_compare (const void *a, const void *b)
+{
+ vm_address_t aa = ((vm_range_t *) a)->address;
+ vm_address_t bb = ((vm_range_t *) b)->address;
+
+ if (aa < bb)
+ return -1;
+ else if (aa > bb)
+ return 1;
+ else
+ return 0;
+}
+
+static void
+unexec_regions_merge ()
+{
+ int i, n;
+ vm_range_t r;
+
+ qsort (unexec_regions, num_unexec_regions, sizeof (unexec_regions[0]),
+ &unexec_regions_sort_compare);
+ n = 0;
+ r = unexec_regions[0];
+ for (i = 1; i < num_unexec_regions; i++)
+ {
+ if (r.address + r.size == unexec_regions[i].address)
+ {
+ r.size += unexec_regions[i].size;
+ }
+ else
+ {
+ unexec_regions[n++] = r;
+ r = unexec_regions[i];
+ }
+ }
+ unexec_regions[n++] = r;
+ num_unexec_regions = n;
+}
+
+
+/* More informational messages routines. */
+
+static void
+print_load_command_name (int lc)
+{
+ switch (lc)
+ {
+ case LC_SEGMENT:
+ printf ("LC_SEGMENT ");
+ break;
+ case LC_LOAD_DYLINKER:
+ printf ("LC_LOAD_DYLINKER ");
+ break;
+ case LC_LOAD_DYLIB:
+ printf ("LC_LOAD_DYLIB ");
+ break;
+ case LC_SYMTAB:
+ printf ("LC_SYMTAB ");
+ break;
+ case LC_DYSYMTAB:
+ printf ("LC_DYSYMTAB ");
+ break;
+ case LC_UNIXTHREAD:
+ printf ("LC_UNIXTHREAD ");
+ break;
+ case LC_PREBOUND_DYLIB:
+ printf ("LC_PREBOUND_DYLIB");
+ break;
+ case LC_TWOLEVEL_HINTS:
+ printf ("LC_TWOLEVEL_HINTS");
+ break;
+ default:
+ printf ("unknown ");
+ }
+}
+
+static void
+print_load_command (struct load_command *lc)
+{
+ print_load_command_name (lc->cmd);
+ printf ("%8d", lc->cmdsize);
+
+ if (lc->cmd == LC_SEGMENT)
+ {
+ struct segment_command *scp;
+ struct section *sectp;
+ int j;
+
+ scp = (struct segment_command *) lc;
+ printf (" %-16.16s %#10x %#8x\n",
+ scp->segname, scp->vmaddr, scp->vmsize);
+
+ sectp = (struct section *) (scp + 1);
+ for (j = 0; j < scp->nsects; j++)
+ {
+ printf (" %-16.16s %#10x %#8x\n",
+ sectp->sectname, sectp->addr, sectp->size);
+ sectp++;
+ }
+ }
+ else
+ printf ("\n");
+}
+
+/* Read header and load commands from input file. Store the latter in
+ the global array lca. Store the total number of load commands in
+ global variable nlc. */
+static void
+read_load_commands ()
+{
+ int n, i, j;
+
+ if (!unexec_read (&mh, sizeof (struct mach_header)))
+ unexec_error ("cannot read mach-o header");
+
+ if (mh.magic != MH_MAGIC)
+ unexec_error ("input file not in Mach-O format");
+
+ if (mh.filetype != MH_EXECUTE)
+ unexec_error ("input Mach-O file is not an executable object file");
+
+#if VERBOSE
+ printf ("--- Header Information ---\n");
+ printf ("Magic = 0x%08x\n", mh.magic);
+ printf ("CPUType = %d\n", mh.cputype);
+ printf ("CPUSubType = %d\n", mh.cpusubtype);
+ printf ("FileType = 0x%x\n", mh.filetype);
+ printf ("NCmds = %d\n", mh.ncmds);
+ printf ("SizeOfCmds = %d\n", mh.sizeofcmds);
+ printf ("Flags = 0x%08x\n", mh.flags);
+#endif
+
+ nlc = mh.ncmds;
+ lca = (struct load_command **) malloc (nlc * sizeof (struct load_command *));
+
+ for (i = 0; i < nlc; i++)
+ {
+ struct load_command lc;
+ /* Load commands are variable-size: so read the command type and
+ size first and then read the rest. */
+ if (!unexec_read (&lc, sizeof (struct load_command)))
+ unexec_error ("cannot read load command");
+ lca[i] = (struct load_command *) malloc (lc.cmdsize);
+ memcpy (lca[i], &lc, sizeof (struct load_command));
+ if (!unexec_read (lca[i] + 1, lc.cmdsize - sizeof (struct load_command)))
+ unexec_error ("cannot read content of load command");
+ if (lc.cmd == LC_SEGMENT)
+ {
+ struct segment_command *scp = (struct segment_command *) lca[i];
+
+ if (scp->vmaddr + scp->vmsize > infile_lc_highest_addr)
+ infile_lc_highest_addr = scp->vmaddr + scp->vmsize;
+
+ if (strncmp (scp->segname, SEG_TEXT, 16) == 0)
+ {
+ struct section *sectp = (struct section *) (scp + 1);
+ int j;
+
+ for (j = 0; j < scp->nsects; j++)
+ if (sectp->offset < text_seg_lowest_offset)
+ text_seg_lowest_offset = sectp->offset;
+ }
+ }
+ }
+
+ printf ("Highest address of load commands in input file: %#8x\n",
+ infile_lc_highest_addr);
+
+ printf ("Lowest offset of all sections in __TEXT segment: %#8x\n",
+ text_seg_lowest_offset);
+
+ printf ("--- List of Load Commands in Input File ---\n");
+ printf ("# cmd cmdsize name address size\n");
+
+ for (i = 0; i < nlc; i++)
+ {
+ printf ("%1d ", i);
+ print_load_command (lca[i]);
+ }
+}
+
+/* Copy a LC_SEGMENT load command other than the __DATA segment from
+ the input file to the output file, adjusting the file offset of the
+ segment and the file offsets of sections contained in it. */
+static void
+copy_segment (struct load_command *lc)
+{
+ struct segment_command *scp = (struct segment_command *) lc;
+ unsigned long old_fileoff = scp->fileoff;
+ struct section *sectp;
+ int j;
+
+ scp->fileoff += delta;
+
+ sectp = (struct section *) (scp + 1);
+ for (j = 0; j < scp->nsects; j++)
+ {
+ sectp->offset += delta;
+ sectp++;
+ }
+
+ printf ("Writing segment %-16.16s at %#8x - %#8x (sz: %#8x)\n",
+ scp->segname, scp->fileoff, scp->fileoff + scp->filesize,
+ scp->filesize);
+
+ if (!unexec_copy (scp->fileoff, old_fileoff, scp->filesize))
+ unexec_error ("cannot copy segment from input to output file");
+ if (!unexec_write (curr_header_offset, lc, lc->cmdsize))
+ unexec_error ("cannot write load command to header");
+
+ curr_header_offset += lc->cmdsize;
+}
+
+/* Copy a LC_SEGMENT load command for the __DATA segment in the input
+ file to the output file. We assume that only one such segment load
+ command exists in the input file and it contains the sections
+ __data, __bss, __common, __la_symbol_ptr, __nl_symbol_ptr, and
+ __dyld. The first three of these should be dumped from memory and
+ the rest should be copied from the input file. Note that the
+ sections __bss and __common contain no data in the input file
+ because their flag fields have the value S_ZEROFILL. Dumping these
+ from memory makes it necessary to adjust file offset fields in
+ subsequently dumped load commands. Then, create new __DATA segment
+ load commands for regions on the region list other than the one
+ corresponding to the __DATA segment in the input file. */
+static void
+copy_data_segment (struct load_command *lc)
+{
+ struct segment_command *scp = (struct segment_command *) lc;
+ struct section *sectp;
+ int j;
+ unsigned long header_offset, file_offset, old_file_offset;
+ struct region_t *r;
+
+ printf ("Writing segment %-16.16s at %#8x - %#8x (sz: %#8x)\n",
+ scp->segname, scp->fileoff, scp->fileoff + scp->filesize,
+ scp->filesize);
+
+ if (delta != 0)
+ unexec_error ("cannot handle multiple DATA segments in input file");
+
+ /* Offsets in the output file for writing the next section structure
+ and segment data block, respectively. */
+ header_offset = curr_header_offset + sizeof (struct segment_command);
+
+ sectp = (struct section *) (scp + 1);
+ for (j = 0; j < scp->nsects; j++)
+ {
+ old_file_offset = sectp->offset;
+ sectp->offset = sectp->addr - scp->vmaddr + scp->fileoff;
+ /* The __data section is dumped from memory. The __bss and
+ __common sections are also dumped from memory but their flag
+ fields require changing (from S_ZEROFILL to S_REGULAR). The
+ other three kinds of sections are just copied from the input
+ file. */
+ if (strncmp (sectp->sectname, SECT_DATA, 16) == 0)
+ {
+ if (!unexec_write (sectp->offset, (void *) sectp->addr, sectp->size))
+ unexec_error ("cannot write section %s", SECT_DATA);
+ if (!unexec_write (header_offset, sectp, sizeof (struct section)))
+ unexec_error ("cannot write section %s's header", SECT_DATA);
+ }
+ else if (strncmp (sectp->sectname, SECT_BSS, 16) == 0
+ || strncmp (sectp->sectname, SECT_COMMON, 16) == 0)
+ {
+ sectp->flags = S_REGULAR;
+ if (!unexec_write (sectp->offset, (void *) sectp->addr, sectp->size))
+ unexec_error ("cannot write section %s", SECT_DATA);
+ if (!unexec_write (header_offset, sectp, sizeof (struct section)))
+ unexec_error ("cannot write section %s's header", SECT_DATA);
+ }
+ else if (strncmp (sectp->sectname, "__la_symbol_ptr", 16) == 0
+ || strncmp (sectp->sectname, "__nl_symbol_ptr", 16) == 0
+ || strncmp (sectp->sectname, "__dyld", 16) == 0
+ || strncmp (sectp->sectname, "__const", 16) == 0
+ || strncmp (sectp->sectname, "__cfstring", 16) == 0)
+ {
+ if (!unexec_copy (sectp->offset, old_file_offset, sectp->size))
+ unexec_error ("cannot copy section %s", sectp->sectname);
+ if (!unexec_write (header_offset, sectp, sizeof (struct section)))
+ unexec_error ("cannot write section %s's header", sectp->sectname);
+ }
+ else
+ unexec_error ("unrecognized section name in __DATA segment");
+
+ printf (" section %-16.16s at %#8x - %#8x (sz: %#8x)\n",
+ sectp->sectname, sectp->offset, sectp->offset + sectp->size,
+ sectp->size);
+
+ header_offset += sizeof (struct section);
+ sectp++;
+ }
+
+ /* The new filesize of the segment is set to its vmsize because data
+ blocks for segments must start at region boundaries. Note that
+ this may leave unused locations at the end of the segment data
+ block because the total of the sizes of all sections in the
+ segment is generally smaller than vmsize. */
+ delta = scp->vmsize - scp->filesize;
+ scp->filesize = scp->vmsize;
+ if (!unexec_write (curr_header_offset, scp, sizeof (struct segment_command)))
+ unexec_error ("cannot write header of __DATA segment");
+ curr_header_offset += lc->cmdsize;
+
+ /* Create new __DATA segment load commands for regions on the region
+ list that do not corresponding to any segment load commands in
+ the input file.
+ */
+ file_offset = scp->fileoff + scp->filesize;
+ for (j = 0; j < num_unexec_regions; j++)
+ {
+ struct segment_command sc;
+
+ sc.cmd = LC_SEGMENT;
+ sc.cmdsize = sizeof (struct segment_command);
+ strncpy (sc.segname, SEG_DATA, 16);
+ sc.vmaddr = unexec_regions[j].address;
+ sc.vmsize = unexec_regions[j].size;
+ sc.fileoff = file_offset;
+ sc.filesize = unexec_regions[j].size;
+ sc.maxprot = VM_PROT_READ | VM_PROT_WRITE;
+ sc.initprot = VM_PROT_READ | VM_PROT_WRITE;
+ sc.nsects = 0;
+ sc.flags = 0;
+
+ printf ("Writing segment %-16.16s at %#8x - %#8x (sz: %#8x)\n",
+ sc.segname, sc.fileoff, sc.fileoff + sc.filesize,
+ sc.filesize);
+
+ if (!unexec_write (sc.fileoff, (void *) sc.vmaddr, sc.vmsize))
+ unexec_error ("cannot write new __DATA segment");
+ delta += sc.filesize;
+ file_offset += sc.filesize;
+
+ if (!unexec_write (curr_header_offset, &sc, sc.cmdsize))
+ unexec_error ("cannot write new __DATA segment's header");
+ curr_header_offset += sc.cmdsize;
+ mh.ncmds++;
+ }
+}
+
+/* Copy a LC_SYMTAB load command from the input file to the output
+ file, adjusting the file offset fields. */
+static void
+copy_symtab (struct load_command *lc)
+{
+ struct symtab_command *stp = (struct symtab_command *) lc;
+
+ stp->symoff += delta;
+ stp->stroff += delta;
+
+ printf ("Writing LC_SYMTAB command\n");
+
+ if (!unexec_write (curr_header_offset, lc, lc->cmdsize))
+ unexec_error ("cannot write symtab command to header");
+
+ curr_header_offset += lc->cmdsize;
+}
+
+/* Fix up relocation entries. */
+static void
+unrelocate (const char *name, off_t reloff, int nrel)
+{
+ int i, unreloc_count;
+ struct relocation_info reloc_info;
+ struct scattered_relocation_info *sc_reloc_info
+ = (struct scattered_relocation_info *) &reloc_info;
+
+ for (unreloc_count = 0, i = 0; i < nrel; i++)
+ {
+ if (lseek (infd, reloff, L_SET) != reloff)
+ unexec_error ("unrelocate: %s:%d cannot seek to reloc_info", name, i);
+ if (!unexec_read (&reloc_info, sizeof (reloc_info)))
+ unexec_error ("unrelocate: %s:%d cannot read reloc_info", name, i);
+ reloff += sizeof (reloc_info);
+
+ if (sc_reloc_info->r_scattered == 0)
+ switch (reloc_info.r_type)
+ {
+ case GENERIC_RELOC_VANILLA:
+ if (reloc_info.r_address >= data_segment_scp->vmaddr
+ && reloc_info.r_address < (data_segment_scp->vmaddr
+ + data_segment_scp->vmsize))
+ {
+ off_t src_off = data_segment_old_fileoff
+ + reloc_info.r_address - data_segment_scp->vmaddr;
+ off_t dst_off = data_segment_scp->fileoff
+ + reloc_info.r_address - data_segment_scp->vmaddr;
+
+ if (!unexec_copy (dst_off, src_off, 1 << reloc_info.r_length))
+ unexec_error ("unrelocate: %s:%d cannot copy original value",
+ name, i);
+ unreloc_count++;
+ }
+ break;
+ default:
+ unexec_error ("unrelocate: %s:%d cannot handle type = %d",
+ name, i, reloc_info.r_type);
+ }
+ else
+ switch (sc_reloc_info->r_type)
+ {
+#if defined (__ppc__)
+ case PPC_RELOC_PB_LA_PTR:
+ /* nothing to do for prebound lazy pointer */
+ break;
+#endif
+ default:
+ unexec_error ("unrelocate: %s:%d cannot handle scattered type = %d",
+ name, i, sc_reloc_info->r_type);
+ }
+ }
+
+ if (nrel > 0)
+ printf ("Fixed up %d/%d %s relocation entries in data segment.\n",
+ unreloc_count, nrel, name);
+}
+
+/* Copy a LC_DYSYMTAB load command from the input file to the output
+ file, adjusting the file offset fields. */
+static void
+copy_dysymtab (struct load_command *lc)
+{
+ struct dysymtab_command *dstp = (struct dysymtab_command *) lc;
+
+ unrelocate ("local", dstp->locreloff, dstp->nlocrel);
+ unrelocate ("external", dstp->extreloff, dstp->nextrel);
+
+ if (dstp->nextrel > 0) {
+ dstp->extreloff += delta;
+ }
+
+ if (dstp->nlocrel > 0) {
+ dstp->locreloff += delta;
+ }
+
+ if (dstp->nindirectsyms > 0)
+ dstp->indirectsymoff += delta;
+
+ printf ("Writing LC_DYSYMTAB command\n");
+
+ if (!unexec_write (curr_header_offset, lc, lc->cmdsize))
+ unexec_error ("cannot write symtab command to header");
+
+ curr_header_offset += lc->cmdsize;
+}
+
+/* Copy a LC_TWOLEVEL_HINTS load command from the input file to the output
+ file, adjusting the file offset fields. */
+static void
+copy_twolevelhints (struct load_command *lc)
+{
+ struct twolevel_hints_command *tlhp = (struct twolevel_hints_command *) lc;
+
+ if (tlhp->nhints > 0) {
+ tlhp->offset += delta;
+ }
+
+ printf ("Writing LC_TWOLEVEL_HINTS command\n");
+
+ if (!unexec_write (curr_header_offset, lc, lc->cmdsize))
+ unexec_error ("cannot write two level hint command to header");
+
+ curr_header_offset += lc->cmdsize;
+}
+
+/* Copy other kinds of load commands from the input file to the output
+ file, ones that do not require adjustments of file offsets. */
+static void
+copy_other (struct load_command *lc)
+{
+ printf ("Writing ");
+ print_load_command_name (lc->cmd);
+ printf (" command\n");
+
+ if (!unexec_write (curr_header_offset, lc, lc->cmdsize))
+ unexec_error ("cannot write symtab command to header");
+
+ curr_header_offset += lc->cmdsize;
+}
+
+/* Loop through all load commands and dump them. Then write the Mach
+ header. */
+static void
+dump_it ()
+{
+ int i;
+
+ printf ("--- Load Commands written to Output File ---\n");
+
+ for (i = 0; i < nlc; i++)
+ switch (lca[i]->cmd)
+ {
+ case LC_SEGMENT:
+ {
+ struct segment_command *scp = (struct segment_command *) lca[i];
+ if (strncmp (scp->segname, SEG_DATA, 16) == 0)
+ {
+ /* save data segment file offset and segment_command for
+ unrelocate */
+ data_segment_old_fileoff = scp->fileoff;
+ data_segment_scp = scp;
+
+ copy_data_segment (lca[i]);
+ }
+ else
+ {
+ copy_segment (lca[i]);
+ }
+ }
+ break;
+ case LC_SYMTAB:
+ copy_symtab (lca[i]);
+ break;
+ case LC_DYSYMTAB:
+ copy_dysymtab (lca[i]);
+ break;
+ case LC_TWOLEVEL_HINTS:
+ copy_twolevelhints (lca[i]);
+ break;
+ default:
+ copy_other (lca[i]);
+ break;
+ }
+
+ if (curr_header_offset > text_seg_lowest_offset)
+ unexec_error ("not enough room for load commands for new __DATA segments");
+
+ printf ("%d unused bytes follow Mach-O header\n",
+ text_seg_lowest_offset - curr_header_offset);
+
+ mh.sizeofcmds = curr_header_offset - sizeof (struct mach_header);
+ if (!unexec_write (0, &mh, sizeof (struct mach_header)))
+ unexec_error ("cannot write final header contents");
+}
+
+/* Take a snapshot of Emacs and make a Mach-O format executable file
+ from it. The file names of the output and input files are outfile
+ and infile, respectively. The three other parameters are
+ ignored. */
+void
+unexec (char *outfile, char *infile, void *start_data, void *start_bss,
+ void *entry_address)
+{
+ infd = open (infile, O_RDONLY, 0);
+ if (infd < 0)
+ {
+ unexec_error ("cannot open input file `%s'", infile);
+ }
+
+ outfd = open (outfile, O_WRONLY | O_TRUNC | O_CREAT, 0755);
+ if (outfd < 0)
+ {
+ close (infd);
+ unexec_error ("cannot open output file `%s'", outfile);
+ }
+
+ build_region_list ();
+ read_load_commands ();
+
+ find_emacs_zone_regions ();
+ unexec_regions_merge ();
+
+ in_dumped_exec = 1;
+
+ dump_it ();
+
+ close (outfd);
+}
+
+
+void
+unexec_init_emacs_zone ()
+{
+ emacs_zone = malloc_create_zone (0, 0);
+ malloc_set_zone_name (emacs_zone, "EmacsZone");
+}
+
+int
+ptr_in_unexec_regions (void *ptr)
+{
+ int i;
+
+ for (i = 0; i < num_unexec_regions; i++)
+ if ((vm_address_t) ptr - unexec_regions[i].address
+ < unexec_regions[i].size)
+ return 1;
+
+ return 0;
+}
+
+void *
+unexec_malloc (size_t size)
+{
+ if (in_dumped_exec)
+ return malloc (size);
+ else
+ return malloc_zone_malloc (emacs_zone, size);
+}
+
+void *
+unexec_realloc (void *old_ptr, size_t new_size)
+{
+ if (in_dumped_exec)
+ if (ptr_in_unexec_regions (old_ptr))
+ {
+ char *p = malloc (new_size);
+ /* 2002-04-15 T. Ikegami <ikegami@adam.uprr.pr>. The original
+ code to get size failed to reallocate read_buffer
+ (lread.c). */
+ int old_size = malloc_default_zone()->size (emacs_zone, old_ptr);
+ int size = new_size > old_size ? old_size : new_size;
+
+ if (size)
+ memcpy (p, old_ptr, size);
+ return p;
+ }
+ else
+ return realloc (old_ptr, new_size);
+ else
+ return malloc_zone_realloc (emacs_zone, old_ptr, new_size);
+}
+
+void
+unexec_free (void *ptr)
+{
+ if (in_dumped_exec)
+ {
+ if (!ptr_in_unexec_regions (ptr))
+ free (ptr);
+ }
+ else
+ malloc_zone_free (emacs_zone, ptr);
+}
+
+/* arch-tag: 1a784f7b-a184-4c4f-9544-da8619593d72
+ (do not change this comment) */
diff --git a/editors/emacs21/patches/patch-aa b/editors/emacs21/patches/patch-aa
new file mode 100644
index 00000000000..2de50a5b2b5
--- /dev/null
+++ b/editors/emacs21/patches/patch-aa
@@ -0,0 +1,34 @@
+$NetBSD: patch-aa,v 1.3 2007/06/11 13:38:33 markd Exp $
+
+--- man/Makefile.in.orig Wed Apr 24 16:54:15 2002
++++ man/Makefile.in Wed Apr 24 16:55:45 2002
+@@ -34,7 +34,7 @@
+ MAKEINFO = makeinfo
+ INFO_TARGETS = ../info/emacs ../info/ccmode ../info/cl \
+ ../info/dired-x ../info/ediff ../info/forms ../info/gnus \
+- ../info/info ../info/message ../info/mh-e ../info/reftex \
++ ../info/message ../info/mh-e ../info/reftex \
+ ../info/sc ../info/vip ../info/viper ../info/widget \
+ ../info/efaq ../info/ada-mode ../info/autotype \
+ ../info/idlwave ../info/eudc ../info/ebrowse ../info/pcl-cvs \
+@@ -100,6 +100,7 @@
+ ${srcdir}/glossary.texi \
+ ${srcdir}/ack.texi
+
++all: info
+ info: $(INFO_TARGETS)
+
+ dvi: $(DVI_TARGETS)
+@@ -112,12 +113,6 @@
+ # The following target uses an explicit -o switch to work around
+ # the @setfilename directive in info.texi, which is required for
+ # the Texinfo distribution.
+-
+-../info/info: ${INFOSOURCES}
+- cd $(srcdir); $(MAKEINFO) --no-split info.texi -o $@
+-
+-info.dvi: ${INFOSOURCES}
+- $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi
+
+ ../info/emacs: ${EMACSSOURCES}
+ cd $(srcdir); $(MAKEINFO) emacs.texi
diff --git a/editors/emacs21/patches/patch-ab b/editors/emacs21/patches/patch-ab
new file mode 100644
index 00000000000..f48cbd6a6c0
--- /dev/null
+++ b/editors/emacs21/patches/patch-ab
@@ -0,0 +1,64 @@
+$NetBSD: patch-ab,v 1.1 2007/06/11 13:38:33 markd Exp $
+
+--- configure.orig 2003-03-18 14:19:12.000000000 +0000
++++ configure
+@@ -822,9 +822,17 @@ case "${canonical}" in
+ sparc*-*-netbsd*) machine=sparc ;;
+ vax-*-netbsd*) machine=vax ;;
+ arm-*-netbsd*) machine=arm ;;
++ x86_64-*-netbsd*) machine=amd64 ;;
++ hppa-*-netbsd*) machine=hp800 ;;
++ shle-*-netbsd*) machine=sh3el ;;
+ esac
+ ;;
+
++ ## Darwin / Mac OS X
++ powerpc-apple-darwin* )
++ machine=powermac opsys=darwin ;;
++ i386-apple-darwin* )
++ machine=intel386 opsys=darwin ;;
+ ## OpenBSD ports
+ *-*-openbsd* )
+ opsys=openbsd
+@@ -909,6 +917,10 @@ case "${canonical}" in
+ machine=macppc opsys=gnu-linux
+ ;;
+
++ x86_64-*-linux* )
++ machine=amd64 opsys=gnu-linux
++ ;;
++
+ ## Altos 3068
+ m68*-altos-sysv* )
+ machine=altos opsys=usg5-2
+@@ -1659,6 +1671,7 @@ case "${canonical}" in
+ *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
+ *-386bsd* ) opsys=386bsd ;;
+ *-freebsd* ) opsys=freebsd ;;
++ *-dragonfly* ) opsys=dragonfly ;;
+ *-nextstep* ) opsys=nextstep ;;
+ ## Otherwise, we'll fall through to the generic opsys code at the bottom.
+ esac
+@@ -9124,6 +9137,22 @@ EOF
+ fi
+
+
++# NETBSD: NetBSD's newer run-time linker fix.
++if test $opsys = netbsd; then
++ if test -f /usr/lib/crti.o; then
++ cat >> confdefs.h <<\EOF
++#define HAVE_NETBSD_CRTI 1
++EOF
++
++ fi
++ if test -f /usr/lib/crtn.o; then
++ cat >> confdefs.h <<\EOF
++#define HAVE_NETBSD_CRTN 1
++EOF
++
++ fi
++fi
++
+ # Set up the CFLAGS for real compilation, so we can substitute it.
+ CFLAGS="$REAL_CFLAGS"
+ CPPFLAGS="$REAL_CPPFLAGS"
diff --git a/editors/emacs21/patches/patch-ac b/editors/emacs21/patches/patch-ac
new file mode 100644
index 00000000000..d723997ba58
--- /dev/null
+++ b/editors/emacs21/patches/patch-ac
@@ -0,0 +1,16 @@
+$NetBSD: patch-ac,v 1.1 2007/06/11 13:38:34 markd Exp $
+
+--- src/m/hp800.h.orig 1996-01-15 01:15:02.000000000 -0800
++++ src/m/hp800.h 2005-10-04 10:49:46.000000000 -0700
+@@ -181,3 +181,11 @@
+ #define rindex strrchr
+
+ #endif /* __hpux */
++
++/* Systems with GCC don't need to lose. */
++#ifdef __NetBSD__
++# ifdef __GNUC__
++# define alloca __builtin_alloca
++# define HAVE_ALLOCA
++# endif /* __GNUC__ */
++#endif /* __NetBSD__ */
diff --git a/editors/emacs21/patches/patch-ad b/editors/emacs21/patches/patch-ad
new file mode 100644
index 00000000000..7cbd4fb134e
--- /dev/null
+++ b/editors/emacs21/patches/patch-ad
@@ -0,0 +1,7 @@
+$NetBSD: patch-ad,v 1.3 2007/06/11 13:38:34 markd Exp $
+
+--- etc/ctags.1.orig Sun Oct 3 14:14:21 1999
++++ etc/ctags.1 Wed Apr 24 16:57:49 2002
+@@ -1 +1 @@
+-.so man1/etags.1
++.so man1/emacs-etags.1
diff --git a/editors/emacs21/patches/patch-ae b/editors/emacs21/patches/patch-ae
new file mode 100644
index 00000000000..f33d10decd7
--- /dev/null
+++ b/editors/emacs21/patches/patch-ae
@@ -0,0 +1,52 @@
+$NetBSD: patch-ae,v 1.4 2007/06/11 13:38:34 markd Exp $
+
+--- Makefile.in.orig Sat Oct 19 10:21:01 2002
++++ Makefile.in
+@@ -430,28 +430,24 @@
+ chmod a+r ${infodir}/dir); \
+ fi; \
+ cd ${srcdir}/info ; \
+- for f in ada-mode* autotype* ccmode* cl* dired-x* ebrowse* ediff* efaq* emacs* eshell* eudc* forms* gnus* idlwave* info* message* mh-e* pcl-cvs* reftex* sc* speedbar* vip* widget* woman*; do \
++ for f in ada-mode* autotype* ccmode* cl* dired-x* ebrowse* ediff* efaq* emacs* eshell* eudc* forms* gnus* idlwave* message* mh-e* pcl-cvs* reftex* sc* speedbar* vip* widget* woman*; do \
+ (cd $${thisdir}; \
+- ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \
+- chmod a+r ${infodir}/$$f); \
++ ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f); \
+ done); \
+ else true; fi
+ -unset CDPATH; \
+- thisdir=`/bin/pwd`; \
+- if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
+- then \
+- for f in ada-mode autotype ccmode cl dired-x ebrowse ediff efaq emacs emacs-mime eshell eudc forms gnus idlwave info message mh-e pcl-cvs reftex sc speedbar vip viper widget woman; do \
+- (cd $${thisdir}; \
+- ${INSTALL_INFO} --info-dir=${infodir} ${infodir}/$$f); \
+- done; \
+- else true; fi
+- -chmod -R a+r ${datadir}/emacs ${COPYDESTS} ${infodir}
++ chmod -R a+r ${datadir}/emacs ${COPYDESTS} ${infodir}
+ thisdir=`/bin/pwd`; \
+ cd ${srcdir}/etc; \
+ for page in emacs etags ctags gfdl ; do \
+ (cd $${thisdir}; \
+- ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${man1dir}/$${page}${manext}; \
+- chmod a+r ${man1dir}/$${page}${manext}); \
++ if [ $${page} = emacs ]; then \
++ ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${man1dir}/$${page}${manext}; \
++ chmod a+r ${man1dir}/$${page}${manext}; \
++ else \
++ ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${man1dir}/emacs-$${page}${manext}; \
++ chmod a+r ${man1dir}/emacs-$${page}${manext}; \
++ fi) \
+ done
+
+ ### Install LEIM files. Although they are machine-independent, we
+@@ -506,7 +502,7 @@
+ done
+ (cd ${archlibdir} && rm -f fns-*)
+ -rm -rf ${libexecdir}/emacs/${version}
+- (cd ${infodir} && rm -f cl* ada-mode* autotype* ccmode* ebrowse* efaq* eshell* eudc* idlwave* message* pcl-cvs* reftex* speedbar* widget* woman* dired-x* ediff* emacs* forms* gnus* info* mh-e* sc* vip*)
++ (cd ${infodir} && rm -f cl* ada-mode* autotype* ccmode* ebrowse* efaq* eshell* eudc* idlwave* message* pcl-cvs* reftex* speedbar* widget* woman* dired-x* ediff* emacs* forms* gnus* mh-e* sc* vip*)
+ (cd ${man1dir} && rm -f emacs.1 etags.1 ctags.1)
+ (cd ${bindir} && rm -f emacs-${version} $(EMACS))
+
diff --git a/editors/emacs21/patches/patch-af b/editors/emacs21/patches/patch-af
new file mode 100644
index 00000000000..e33b94f6677
--- /dev/null
+++ b/editors/emacs21/patches/patch-af
@@ -0,0 +1,23 @@
+$NetBSD: patch-af,v 1.1 2007/06/11 13:38:34 markd Exp $
+
+--- src/m/pmax.h.orig 2006-11-02 00:11:05.000000000 +1300
++++ src/m/pmax.h
+@@ -22,13 +22,17 @@ NOTE-END */
+ #ifdef MACH
+ #define START_FILES pre-crt0.o /usr/lib/crt0.o
+ #else
++#if !defined (__NetBSD__)
+ /* This line starts being needed with ultrix 4.0. */
+ /* You must delete it for version 3.1. */
+ #define START_FILES pre-crt0.o /usr/lib/cmplrs/cc/crt0.o
+ #endif
++#endif
+
+-#if defined (__NetBSD__) || defined (__OpenBSD__)
++#if defined (__OpenBSD__)
+ #undef START_FILES
++#endif
++#if defined (__NetBSD__) || defined (__OpenBSD__)
+ #undef RUN_TIME_REMAP
+ #undef UNEXEC
+ #define UNEXEC unexelf.o
diff --git a/editors/emacs21/patches/patch-ag b/editors/emacs21/patches/patch-ag
new file mode 100644
index 00000000000..b236c1a86ef
--- /dev/null
+++ b/editors/emacs21/patches/patch-ag
@@ -0,0 +1,17 @@
+$NetBSD: patch-ag,v 1.1 2007/06/11 13:38:35 markd Exp $
+
+--- src/config.in.orig Tue Jul 9 07:23:31 2002
++++ src/config.in
+@@ -354,6 +354,12 @@ Boston, MA 02111-1307, USA. */
+ /* Define for large files, on AIX-style hosts. */
+ #undef _LARGE_FILES
+
++/* On NetBSD, Define HAVE_NETBSD_CRT{I,N} if a given system has crt{i,n}.o
++ installed under /usr/lib. These should be linked against temacs,
++ or it won't boot. */
++#undef HAVE_NETBSD_CRTI
++#undef HAVE_NETBSD_CRTN
++
+ #undef EMACS_CONFIGURATION
+
+ #undef EMACS_CONFIG_OPTIONS
diff --git a/editors/emacs21/patches/patch-ah b/editors/emacs21/patches/patch-ah
new file mode 100644
index 00000000000..011beba8b44
--- /dev/null
+++ b/editors/emacs21/patches/patch-ah
@@ -0,0 +1,32 @@
+$NetBSD: patch-ah,v 1.1 2007/06/11 13:38:35 markd Exp $
+
+--- src/unexelf.c.orig 2002-10-16 03:21:44.000000000 +1300
++++ src/unexelf.c
+@@ -971,8 +971,13 @@ unexec (new_name, old_name, data_start,
+ }
+ else
+ {
+- /* Any section that was original placed AFTER the bss
+- section should now be off by NEW_DATA2_SIZE. */
++ /* Any section that was originally placed after the .bss
++ section should now be off by NEW_DATA2_SIZE. If a
++ section overlaps the .bss section, consider it to be
++ placed after the .bss section. Overlap can occur if the
++ section just before .bss has less-strict alignment; this
++ was observed between .symtab and .bss on Solaris 2.5.1
++ (sparc) with GCC snapshot 960602. */
+ #ifdef SOLARIS_POWERPC
+ /* On PPC Reference Platform running Solaris 2.5.1
+ the plt section is also of type NOBI like the bss section.
+@@ -986,9 +991,8 @@ unexec (new_name, old_name, data_start,
+ >= OLD_SECTION_H (old_bss_index-1).sh_offset)
+ NEW_SECTION_H (nn).sh_offset += new_data2_size;
+ #else
+- if (round_up (NEW_SECTION_H (nn).sh_offset,
+- OLD_SECTION_H (old_bss_index).sh_addralign)
+- >= new_data2_offset)
++ if (NEW_SECTION_H (nn).sh_offset + NEW_SECTION_H (nn).sh_size
++ > new_data2_offset)
+ NEW_SECTION_H (nn).sh_offset += new_data2_size;
+ #endif
+ /* Any section that was originally placed after the section
diff --git a/editors/emacs21/patches/patch-ai b/editors/emacs21/patches/patch-ai
new file mode 100644
index 00000000000..0417f77d745
--- /dev/null
+++ b/editors/emacs21/patches/patch-ai
@@ -0,0 +1,12 @@
+$NetBSD: patch-ai,v 1.1 2007/06/11 13:38:35 markd Exp $
+
+--- src/m/intel386.h.orig 1997-08-30 07:18:39.000000000 +0000
++++ src/m/intel386.h
+@@ -239,3 +239,7 @@ NOTE-END */
+
+ #define SEGMENT_MASK ((SEGMENT_SIZE)-1)
+ #endif
++
++#ifdef MAC_OSX
++#define CANNOT_DUMP
++#endif
diff --git a/editors/emacs21/patches/patch-aj b/editors/emacs21/patches/patch-aj
new file mode 100644
index 00000000000..19f7bc1d54c
--- /dev/null
+++ b/editors/emacs21/patches/patch-aj
@@ -0,0 +1,12 @@
+$NetBSD: patch-aj,v 1.1 2007/06/11 13:38:36 markd Exp $
+
+--- lib-src/emacsclient.c.orig 2005-12-29 13:22:18.000000000 +0000
++++ lib-src/emacsclient.c
+@@ -226,7 +226,6 @@ main (argc, argv)
+ #include <errno.h>
+
+ extern char *strerror ();
+-extern int errno;
+
+ /* Three possibilities:
+ 2 - can't be `stat'ed (sets errno)
diff --git a/editors/emacs21/patches/patch-ak b/editors/emacs21/patches/patch-ak
new file mode 100644
index 00000000000..ac98af9e5fc
--- /dev/null
+++ b/editors/emacs21/patches/patch-ak
@@ -0,0 +1,40 @@
+$NetBSD: patch-ak,v 1.4 2007/06/11 13:38:36 markd Exp $
+
+--- lib-src/Makefile.in.orig Fri Oct 19 02:31:27 2001
++++ lib-src/Makefile.in Thu May 2 20:53:52 2002
+@@ -85,6 +85,7 @@
+ INSTALL = @INSTALL@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_DATA = @INSTALL_DATA@
++INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ # By default, we uphold the dignity of our programs.
+ INSTALL_STRIP =
+
+@@ -288,7 +289,7 @@
+ if [ `(cd ${archlibdir} && /bin/pwd)` \
+ != `(cd ${srcdir} && /bin/pwd)` ]; then \
+ for file in ${SCRIPTS}; do \
+- $(INSTALL_PROGRAM) ${srcdir}/$$file ${archlibdir}/$$file; \
++ $(INSTALL_SCRIPT) ${srcdir}/$$file ${archlibdir}/$$file; \
+ done ; \
+ fi
+
+@@ -296,12 +297,14 @@
+ @echo
+ @echo "Installing utilities for users to run."
+ for file in ${INSTALLABLES} ; do \
+- $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} ${bindir}/$${file} ; \
+- chmod a+rx ${bindir}/$${file}; \
++ if [ $${file} = emacsclient ] ; then \
++ $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} ${bindir}/$${file} ; \
++ else \
++ $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} ${bindir}/emacs-$${file} ; \
++ fi ; \
+ done
+ for file in ${INSTALLABLE_SCRIPTS} ; do \
+- $(INSTALL_PROGRAM) ${srcdir}/$${file} ${bindir}/$${file} ; \
+- chmod a+rx ${bindir}/$${file}; \
++ $(INSTALL_SCRIPT) ${srcdir}/$${file} ${bindir}/emacs-$${file} ; \
+ done
+
+ uninstall:
diff --git a/editors/emacs21/patches/patch-am b/editors/emacs21/patches/patch-am
new file mode 100644
index 00000000000..d57bbec4873
--- /dev/null
+++ b/editors/emacs21/patches/patch-am
@@ -0,0 +1,13 @@
+$NetBSD: patch-am,v 1.1 2007/06/11 13:38:36 markd Exp $
+
+--- src/xterm.c.orig 2005-12-29 13:24:55.000000000 +0000
++++ src/xterm.c
+@@ -370,8 +370,6 @@ extern Lisp_Object Vx_no_window_manager;
+
+ extern Lisp_Object Qface, Qmouse_face;
+
+-extern int errno;
+-
+ /* A mask of extra modifier bits to put into every keyboard char. */
+
+ extern int extra_keyboard_modifiers;
diff --git a/editors/emacs21/patches/patch-an b/editors/emacs21/patches/patch-an
new file mode 100644
index 00000000000..2b7018bcebf
--- /dev/null
+++ b/editors/emacs21/patches/patch-an
@@ -0,0 +1,14 @@
+$NetBSD: patch-an,v 1.1 2007/06/11 13:38:36 markd Exp $
+
+--- src/emacs.c.orig 2005-12-29 13:27:49.000000000 +0000
++++ src/emacs.c
+@@ -712,9 +712,6 @@ main (argc, argv, envp)
+ char stack_bottom_variable;
+ int do_initial_setlocale;
+ int skip_args = 0;
+-#ifndef USE_CRT_DLL
+- extern int errno;
+-#endif
+ #ifdef HAVE_SETRLIMIT
+ struct rlimit rlim;
+ #endif
diff --git a/editors/emacs21/patches/patch-ao b/editors/emacs21/patches/patch-ao
new file mode 100644
index 00000000000..51107f26a60
--- /dev/null
+++ b/editors/emacs21/patches/patch-ao
@@ -0,0 +1,15 @@
+$NetBSD: patch-ao,v 1.1 2007/06/11 13:38:36 markd Exp $
+
+--- src/keyboard.c.orig 2005-12-29 13:28:32.000000000 +0000
++++ src/keyboard.c
+@@ -77,10 +77,6 @@ Boston, MA 02111-1307, USA. */
+ /* Include systime.h after xterm.h to avoid double inclusion of time.h. */
+ #include "systime.h"
+
+-#ifndef USE_CRT_DLL
+-extern int errno;
+-#endif
+-
+ /* Variables for blockinput.h: */
+
+ /* Non-zero if interrupt input is blocked right now. */
diff --git a/editors/emacs21/patches/patch-ap b/editors/emacs21/patches/patch-ap
new file mode 100644
index 00000000000..3677330a9e4
--- /dev/null
+++ b/editors/emacs21/patches/patch-ap
@@ -0,0 +1,15 @@
+$NetBSD: patch-ap,v 1.1 2007/06/11 13:38:36 markd Exp $
+
+--- src/buffer.c.orig 2005-12-29 13:29:35.000000000 +0000
++++ src/buffer.c
+@@ -27,10 +27,6 @@ Boston, MA 02111-1307, USA. */
+ #include <errno.h>
+ #include <stdio.h>
+
+-#ifndef USE_CRT_DLL
+-extern int errno;
+-#endif
+-
+ #ifndef MAXPATHLEN
+ /* in 4.1, param.h fails to define this. */
+ #define MAXPATHLEN 1024
diff --git a/editors/emacs21/patches/patch-aq b/editors/emacs21/patches/patch-aq
new file mode 100644
index 00000000000..ab36e42f4d3
--- /dev/null
+++ b/editors/emacs21/patches/patch-aq
@@ -0,0 +1,17 @@
+$NetBSD: patch-aq,v 1.1 2007/06/11 13:38:37 markd Exp $
+
+--- src/fileio.c.orig 2005-12-29 13:30:15.000000000 +0000
++++ src/fileio.c
+@@ -64,12 +64,6 @@ Boston, MA 02111-1307, USA. */
+
+ #include <errno.h>
+
+-#ifndef vax11c
+-#ifndef USE_CRT_DLL
+-extern int errno;
+-#endif
+-#endif
+-
+ #ifdef APOLLO
+ #include <sys/time.h>
+ #endif
diff --git a/editors/emacs21/patches/patch-ar b/editors/emacs21/patches/patch-ar
new file mode 100644
index 00000000000..2dfcccf4a0c
--- /dev/null
+++ b/editors/emacs21/patches/patch-ar
@@ -0,0 +1,14 @@
+$NetBSD: patch-ar,v 1.1 2007/06/11 13:38:38 markd Exp $
+
+--- src/floatfns.c.orig 2005-12-29 13:31:17.000000000 +0000
++++ src/floatfns.c
+@@ -107,9 +107,6 @@ extern double logb ();
+ #ifdef FLOAT_CHECK_ERRNO
+ # include <errno.h>
+
+-#ifndef USE_CRT_DLL
+-extern int errno;
+-#endif
+ #endif
+
+ /* Avoid traps on VMS from sinh and cosh.
diff --git a/editors/emacs21/patches/patch-as b/editors/emacs21/patches/patch-as
new file mode 100644
index 00000000000..8b36cbdd72b
--- /dev/null
+++ b/editors/emacs21/patches/patch-as
@@ -0,0 +1,15 @@
+$NetBSD: patch-as,v 1.1 2007/06/11 13:38:40 markd Exp $
+
+--- src/lread.c.orig 2005-12-29 13:32:39.000000000 +0000
++++ src/lread.c
+@@ -72,10 +72,6 @@ Boston, MA 02111-1307, USA. */
+ #define file_tell ftell
+ #endif
+
+-#ifndef USE_CRT_DLL
+-extern int errno;
+-#endif
+-
+ Lisp_Object Qread_char, Qget_file_char, Qstandard_input, Qcurrent_load_list;
+ Lisp_Object Qvariable_documentation, Vvalues, Vstandard_input, Vafter_load_alist;
+ Lisp_Object Qascii_character, Qload, Qload_file_name;
diff --git a/editors/emacs21/patches/patch-at b/editors/emacs21/patches/patch-at
new file mode 100644
index 00000000000..b93af8fafdf
--- /dev/null
+++ b/editors/emacs21/patches/patch-at
@@ -0,0 +1,14 @@
+$NetBSD: patch-at,v 1.1 2007/06/11 13:38:41 markd Exp $
+
+--- src/process.c.orig 2005-12-29 13:33:52.000000000 +0000
++++ src/process.c
+@@ -147,9 +147,6 @@ Lisp_Object Qlast_nonmenu_event;
+
+ extern void set_waiting_for_input P_ ((EMACS_TIME *));
+
+-#ifndef USE_CRT_DLL
+-extern int errno;
+-#endif
+ #ifdef VMS
+ extern char *sys_errlist[];
+ #endif
diff --git a/editors/emacs21/patches/patch-au b/editors/emacs21/patches/patch-au
new file mode 100644
index 00000000000..729f5654673
--- /dev/null
+++ b/editors/emacs21/patches/patch-au
@@ -0,0 +1,15 @@
+$NetBSD: patch-au,v 1.1 2007/06/11 13:38:42 markd Exp $
+
+--- src/callproc.c.orig 2005-12-29 13:34:29.000000000 +0000
++++ src/callproc.c
+@@ -25,10 +25,6 @@ Boston, MA 02111-1307, USA. */
+ #include <errno.h>
+ #include <stdio.h>
+
+-#ifndef USE_CRT_DLL
+-extern int errno;
+-#endif
+-
+ /* Define SIGCHLD as an alias for SIGCLD. */
+
+ #if !defined (SIGCHLD) && defined (SIGCLD)
diff --git a/editors/emacs21/patches/patch-av b/editors/emacs21/patches/patch-av
new file mode 100644
index 00000000000..fb4651be2cb
--- /dev/null
+++ b/editors/emacs21/patches/patch-av
@@ -0,0 +1,14 @@
+$NetBSD: patch-av,v 1.1 2007/06/11 13:38:42 markd Exp $
+
+--- src/dispnew.c.orig 2005-12-29 13:38:38.000000000 +0000
++++ src/dispnew.c
+@@ -5820,9 +5820,6 @@ window_change_signal (signalnum) /* If w
+ int signalnum; /* some compilers complain in signal calls. */
+ {
+ int width, height;
+-#ifndef USE_CRT_DLL
+- extern int errno;
+-#endif
+ int old_errno = errno;
+
+ get_frame_size (&width, &height);
diff --git a/editors/emacs21/patches/patch-az b/editors/emacs21/patches/patch-az
new file mode 100644
index 00000000000..0c522582e2e
--- /dev/null
+++ b/editors/emacs21/patches/patch-az
@@ -0,0 +1,13 @@
+$NetBSD: patch-az,v 1.1 2007/06/11 13:38:43 markd Exp $
+
+--- src/ralloc.c.orig 2001-02-20 01:19:40.000000000 +1300
++++ src/ralloc.c
+@@ -328,7 +328,7 @@ static void
+ relinquish ()
+ {
+ register heap_ptr h;
+- int excess = 0;
++ long excess = 0;
+
+ /* Add the amount of space beyond break_value
+ in all heaps which have extend beyond break_value at all. */
diff --git a/editors/emacs21/patches/patch-ba b/editors/emacs21/patches/patch-ba
new file mode 100644
index 00000000000..6516533e01b
--- /dev/null
+++ b/editors/emacs21/patches/patch-ba
@@ -0,0 +1,13 @@
+$NetBSD: patch-ba,v 1.1 2007/06/11 13:38:43 markd Exp $
+
+--- lisp/sort.el.orig 2001-07-16 04:15:34.000000000 +1200
++++ lisp/sort.el
+@@ -493,7 +493,7 @@ Use \\[untabify] to convert tabs to spac
+ ;; Use the sort utility if we can; it is 4 times as fast.
+ ;; Do not use it if there are any properties in the region,
+ ;; since the sort utility would lose the properties.
+- (let ((sort-args (list (if reverse "-rt\n" "-t\n")
++ (let ((sort-args (list (if reverse "-rt\t" "-t\t")
+ (concat "+0." (int-to-string col-start))
+ (concat "-0." (int-to-string col-end)))))
+ (when sort-fold-case
diff --git a/editors/emacs21/patches/patch-bb b/editors/emacs21/patches/patch-bb
new file mode 100644
index 00000000000..e1ae22cdb1b
--- /dev/null
+++ b/editors/emacs21/patches/patch-bb
@@ -0,0 +1,853 @@
+$NetBSD: patch-bb,v 1.1 2007/06/11 13:38:43 markd Exp $
+
+--- lisp/mail/smtpmail.el.orig 2006-09-02 00:23:45.000000000 +0300
++++ lisp/mail/smtpmail.el
+@@ -1,12 +1,15 @@
+ ;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail
+
+-;; Copyright (C) 1995, 1996, 2001 Free Software Foundation, Inc.
++;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004, 2005,
++;; 2006 Free Software Foundation, Inc.
+
+ ;; Author: Tomoji Kagatani <kagatani@rbc.ncl.omron.co.jp>
+-;; Maintainer: Brian D. Carlstrom <bdc@ai.mit.edu>
++;; Maintainer: Simon Josefsson <simon@josefsson.org>
++;; w32 Maintainer: Brian D. Carlstrom <bdc@ai.mit.edu>
+ ;; ESMTP support: Simon Leinen <simon@switch.ch>
+ ;; Hacked by Mike Taylor, 11th October 1999 to add support for
+ ;; automatically appending a domain to RCPT TO: addresses.
++;; AUTH=LOGIN support: Stephen Cranefield <scranefield@infoscience.otago.ac.nz>
+ ;; Keywords: mail
+
+ ;; This file is part of GNU Emacs.
+@@ -23,8 +26,8 @@
+
+ ;; You should have received a copy of the GNU General Public License
+ ;; along with GNU Emacs; see the file COPYING. If not, write to the
+-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+-;; Boston, MA 02111-1307, USA.
++;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++;; Boston, MA 02110-1301, USA.
+
+ ;;; Commentary:
+
+@@ -33,20 +36,48 @@
+ ;; Please add these lines in your .emacs(_emacs) or use customize.
+ ;;
+ ;;(setq send-mail-function 'smtpmail-send-it) ; if you use `mail'
+-;;(setq message-send-mail-function 'smtpmail-send-it) ; if you are using Gnus.
++;;(setq message-send-mail-function 'smtpmail-send-it) ; if you use message/Gnus
+ ;;(setq smtpmail-default-smtp-server "YOUR SMTP HOST")
+ ;;(setq smtpmail-local-domain "YOUR DOMAIN NAME")
+ ;;(setq smtpmail-sendto-domain "YOUR DOMAIN NAME")
+ ;;(setq smtpmail-debug-info t) ; only to debug problems
++;;(setq smtpmail-auth-credentials ; or use ~/.authinfo
++;; '(("YOUR SMTP HOST" 25 "username" "password")))
++;;(setq smtpmail-starttls-credentials
++;; '(("YOUR SMTP HOST" 25 "~/.my_smtp_tls.key" "~/.my_smtp_tls.cert")))
++;; Where the 25 equals the value of `smtpmail-smtp-service', it can be an
++;; integer or a string, just as long as they match (eq).
+
+ ;; To queue mail, set smtpmail-queue-mail to t and use
+ ;; smtpmail-send-queued-mail to send.
+
++;; Modified by Stephen Cranefield <scranefield@infoscience.otago.ac.nz>,
++;; 22/6/99, to support SMTP Authentication by the AUTH=LOGIN mechanism.
++;; See http://help.netscape.com/products/server/messaging/3x/info/smtpauth.html
++;; Rewritten by Simon Josefsson to use same credential variable as AUTH
++;; support below.
++
++;; Modified by Simon Josefsson <jas@pdc.kth.se>, 22/2/99, to support SMTP
++;; Authentication by the AUTH mechanism.
++;; See http://www.ietf.org/rfc/rfc2554.txt
++
++;; Modified by Simon Josefsson <simon@josefsson.org>, 2000-10-07, to support
++;; STARTTLS. Requires external program
++;; ftp://ftp.opaopa.org/pub/elisp/starttls-*.tar.gz.
++;; See http://www.ietf.org/rfc/rfc2246.txt, http://www.ietf.org/rfc/rfc2487.txt
+
+ ;;; Code:
+
+ (require 'sendmail)
+-(require 'time-stamp)
++(autoload 'starttls-open-stream "starttls")
++(autoload 'starttls-negotiate "starttls")
++(autoload 'mail-strip-quoted-names "mail-utils")
++(autoload 'message-make-date "message")
++(autoload 'message-make-message-id "message")
++(autoload 'rfc2104-hash "rfc2104")
++(autoload 'netrc-parse "netrc")
++(autoload 'netrc-machine "netrc")
++(autoload 'netrc-get "netrc")
+
+ ;;;
+ (defgroup smtpmail nil
+@@ -55,7 +86,8 @@
+
+
+ (defcustom smtpmail-default-smtp-server nil
+- "*Specify default SMTP server."
++ "*Specify default SMTP server.
++This only has effect if you specify it before loading the smtpmail library."
+ :type '(choice (const nil) string)
+ :group 'smtpmail)
+
+@@ -66,8 +98,9 @@
+ :group 'smtpmail)
+
+ (defcustom smtpmail-smtp-service 25
+- "*SMTP service port number. smtp or 25 ."
+- :type 'integer
++ "*SMTP service port number.
++The default value would be \"smtp\" or 25 ."
++ :type '(choice (integer :tag "Port") (string :tag "Service"))
+ :group 'smtpmail)
+
+ (defcustom smtpmail-local-domain nil
+@@ -94,7 +127,15 @@ buffer includes an exchange like:
+ :group 'smtpmail)
+
+ (defcustom smtpmail-debug-info nil
+- "*smtpmail debug info printout. messages and process buffer."
++ "Whether to print info in buffer *trace of SMTP session to <somewhere>*.
++See also `smtpmail-debug-verb' which determines if the SMTP protocol should
++be verbose as well."
++ :type 'boolean
++ :group 'smtpmail)
++
++(defcustom smtpmail-debug-verb nil
++ "Whether this library sends the SMTP VERB command or not.
++The commands enables verbose information from the SMTP server."
+ :type 'boolean
+ :group 'smtpmail)
+
+@@ -115,6 +156,34 @@ and sent with `smtpmail-send-queued-mail
+ :type 'directory
+ :group 'smtpmail)
+
++(defcustom smtpmail-auth-credentials "~/.authinfo"
++ "Specify username and password for servers, directly or via .netrc file.
++This variable can either be a filename pointing to a file in netrc(5)
++format, or list of four-element lists that contain, in order,
++`servername' (a string), `port' (an integer), `user' (a string) and
++`password' (a string, or nil to query the user when needed). If you
++need to enter a `realm' too, add it to the user string, so that it
++looks like `user@realm'."
++ :type '(choice file
++ (repeat (list (string :tag "Server")
++ (integer :tag "Port")
++ (string :tag "Username")
++ (choice (const :tag "Query when needed" nil)
++ (string :tag "Password")))))
++ :version "22.1"
++ :group 'smtpmail)
++
++(defcustom smtpmail-starttls-credentials '(("" 25 "" ""))
++ "Specify STARTTLS keys and certificates for servers.
++This is a list of four-element list with `servername' (a string),
++`port' (an integer), `key' (a filename) and `certificate' (a filename)."
++ :type '(repeat (list (string :tag "Server")
++ (integer :tag "Port")
++ (file :tag "Key")
++ (file :tag "Certificate")))
++ :version "21.1"
++ :group 'smtpmail)
++
+ (defcustom smtpmail-warn-about-unknown-extensions nil
+ "*If set, print warnings about unknown SMTP extensions.
+ This is mainly useful for development purposes, to learn about
+@@ -130,19 +199,26 @@ This is relative to `smtpmail-queue-dir'
+ (defvar smtpmail-address-buffer)
+ (defvar smtpmail-recipient-address-list)
+
++(defvar smtpmail-queue-counter 0)
++
+ ;; Buffer-local variable.
+ (defvar smtpmail-read-point)
+
+ (defvar smtpmail-queue-index (concat smtpmail-queue-dir
+ smtpmail-queue-index-file))
+
++(defconst smtpmail-auth-supported '(cram-md5 plain login)
++ "List of supported SMTP AUTH mechanisms.")
++
+ ;;;
+ ;;;
+ ;;;
+
++(defvar smtpmail-mail-address nil
++ "Value to use for envelope-from address for mail from ambient buffer.")
++
+ ;;;###autoload
+ (defun smtpmail-send-it ()
+- (require 'mail-utils)
+ (let ((errbuf (if mail-interactive
+ (generate-new-buffer " smtpmail errors")
+ 0))
+@@ -150,6 +226,11 @@ This is relative to `smtpmail-queue-dir'
+ (case-fold-search nil)
+ delimline
+ (mailbuf (current-buffer))
++ ;; Examine this variable now, so that
++ ;; local binding in the mail buffer will take effect.
++ (smtpmail-mail-address
++ (or (and mail-specify-envelope-from (mail-envelope-from))
++ user-mail-address))
+ (smtpmail-code-conv-from
+ (if enable-multibyte-characters
+ (let ((sendmail-coding-system smtpmail-code-conv-from))
+@@ -190,7 +271,7 @@ This is relative to `smtpmail-queue-dir'
+ ;; they put one in themselves.
+ (goto-char (point-min))
+ (if (not (re-search-forward "^From:" delimline t))
+- (let* ((login user-mail-address)
++ (let* ((login smtpmail-mail-address)
+ (fullname (user-full-name)))
+ (cond ((eq mail-from-style 'angles)
+ (insert "From: " fullname)
+@@ -232,6 +313,14 @@ This is relative to `smtpmail-queue-dir'
+ (insert ")\n"))
+ ((null mail-from-style)
+ (insert "From: " login "\n")))))
++ ;; Insert a `Message-Id:' field if there isn't one yet.
++ (goto-char (point-min))
++ (unless (re-search-forward "^Message-Id:" delimline t)
++ (insert "Message-Id: " (message-make-message-id) "\n"))
++ ;; Insert a `Date:' field if there isn't one yet.
++ (goto-char (point-min))
++ (unless (re-search-forward "^Date:" delimline t)
++ (insert "Date: " (message-make-date) "\n"))
+ ;; Insert an extra newline if we need it to work around
+ ;; Sun's bug that swallows newlines.
+ (goto-char (1+ delimline))
+@@ -242,8 +331,7 @@ This is relative to `smtpmail-queue-dir'
+ (if (re-search-forward "^FCC:" delimline t)
+ (mail-do-fcc delimline))
+ (if mail-interactive
+- (save-excursion
+- (set-buffer errbuf)
++ (with-current-buffer errbuf
+ (erase-buffer))))
+ ;;
+ ;;
+@@ -261,19 +349,23 @@ This is relative to `smtpmail-queue-dir'
+ smtpmail-recipient-address-list tembuf))
+ (error "Sending failed; SMTP protocol error"))
+ (error "Sending failed; no recipients"))
+- (let* ((file-data (concat
+- smtpmail-queue-dir
+- (concat (time-stamp-yyyy-mm-dd)
+- "_" (time-stamp-hh:mm:ss))))
+- (file-data (convert-standard-filename file-data))
+- (file-elisp (concat file-data ".el"))
++ (let* ((file-data
++ (expand-file-name
++ (format "%s_%i"
++ (format-time-string "%Y-%m-%d_%H:%M:%S")
++ (setq smtpmail-queue-counter
++ (1+ smtpmail-queue-counter)))
++ smtpmail-queue-dir))
++ (file-data (convert-standard-filename file-data))
++ (file-elisp (concat file-data ".el"))
+ (buffer-data (create-file-buffer file-data))
+ (buffer-elisp (create-file-buffer file-elisp))
+ (buffer-scratch "*queue-mail*"))
+- (save-excursion
+- (set-buffer buffer-data)
++ (unless (file-exists-p smtpmail-queue-dir)
++ (make-directory smtpmail-queue-dir t))
++ (with-current-buffer buffer-data
+ (erase-buffer)
+- (insert-buffer tembuf)
++ (insert-buffer-substring tembuf)
+ (write-file file-data)
+ (set-buffer buffer-elisp)
+ (erase-buffer)
+@@ -299,35 +391,33 @@ This is relative to `smtpmail-queue-dir'
+ (defun smtpmail-send-queued-mail ()
+ "Send mail that was queued as a result of setting `smtpmail-queue-mail'."
+ (interactive)
+- ;;; Get index, get first mail, send it, get second mail, etc...
+- (let ((buffer-index (find-file-noselect smtpmail-queue-index))
+- (file-msg "")
+- (tembuf nil))
+- (save-excursion
+- (set-buffer buffer-index)
+- (beginning-of-buffer)
++ (with-temp-buffer
++ ;;; Get index, get first mail, send it, update index, get second
++ ;;; mail, send it, etc...
++ (let ((file-msg ""))
++ (insert-file-contents smtpmail-queue-index)
++ (goto-char (point-min))
+ (while (not (eobp))
+- (setq file-msg (buffer-substring (point) (save-excursion
+- (end-of-line)
+- (point))))
++ (setq file-msg (buffer-substring (point) (line-end-position)))
+ (load file-msg)
+ ;; Insert the message literally: it is already encoded as per
+ ;; the MIME headers, and code conversions might guess the
+ ;; encoding wrongly.
+- (setq tembuf (find-file-noselect file-msg nil t))
+- (if (not (null smtpmail-recipient-address-list))
+- (if (not (smtpmail-via-smtp smtpmail-recipient-address-list
+- tembuf))
+- (error "Sending failed; SMTP protocol error"))
+- (error "Sending failed; no recipients"))
++ (with-temp-buffer
++ (let ((coding-system-for-read 'no-conversion))
++ (insert-file-contents file-msg))
++ (let ((smtpmail-mail-address
++ (or (and mail-specify-envelope-from (mail-envelope-from))
++ user-mail-address)))
++ (if (not (null smtpmail-recipient-address-list))
++ (if (not (smtpmail-via-smtp smtpmail-recipient-address-list
++ (current-buffer)))
++ (error "Sending failed; SMTP protocol error"))
++ (error "Sending failed; no recipients"))))
+ (delete-file file-msg)
+ (delete-file (concat file-msg ".el"))
+- (kill-buffer tembuf)
+- (kill-line 1))
+- (set-buffer buffer-index)
+- (save-buffer smtpmail-queue-index)
+- (kill-buffer buffer-index)
+- )))
++ (delete-region (point-at-bol) (point-at-bol 2)))
++ (write-region (point-min) (point-max) smtpmail-queue-index))))
+
+ ;(defun smtpmail-via-smtp (host,port,sender,destination,smtpmail-text-buffer)
+
+@@ -336,17 +426,175 @@ This is relative to `smtpmail-queue-dir'
+ (concat (system-name) "." smtpmail-local-domain)
+ (system-name)))
+
++(defsubst smtpmail-cred-server (cred)
++ (nth 0 cred))
++
++(defsubst smtpmail-cred-port (cred)
++ (nth 1 cred))
++
++(defsubst smtpmail-cred-key (cred)
++ (nth 2 cred))
++
++(defsubst smtpmail-cred-user (cred)
++ (nth 2 cred))
++
++(defsubst smtpmail-cred-cert (cred)
++ (nth 3 cred))
++
++(defsubst smtpmail-cred-passwd (cred)
++ (nth 3 cred))
++
++(defun smtpmail-find-credentials (cred server port)
++ (catch 'done
++ (let ((l cred) el)
++ (while (setq el (pop l))
++ (when (and (equal server (smtpmail-cred-server el))
++ (equal port (smtpmail-cred-port el)))
++ (throw 'done el))))))
++
+ (defun smtpmail-maybe-append-domain (recipient)
+ (if (or (not smtpmail-sendto-domain)
+ (string-match "@" recipient))
+ recipient
+ (concat recipient "@" smtpmail-sendto-domain)))
+
++(defun smtpmail-intersection (list1 list2)
++ (let ((result nil))
++ (dolist (el2 list2)
++ (when (memq el2 list1)
++ (push el2 result)))
++ (nreverse result)))
++
++(defvar starttls-extra-args)
++(defvar starttls-extra-arguments)
++
++(defun smtpmail-open-stream (process-buffer host port)
++ (let ((cred (smtpmail-find-credentials
++ smtpmail-starttls-credentials host port)))
++ (if (null (and cred (condition-case ()
++ (with-no-warnings
++ (require 'starttls)
++ (call-process (if starttls-use-gnutls
++ starttls-gnutls-program
++ starttls-program)))
++ (error nil))))
++ ;; The normal case.
++ (open-network-stream "SMTP" process-buffer host port)
++ (let* ((cred-key (smtpmail-cred-key cred))
++ (cred-cert (smtpmail-cred-cert cred))
++ (starttls-extra-args
++ (append
++ starttls-extra-args
++ (when (and (stringp cred-key) (stringp cred-cert)
++ (file-regular-p
++ (setq cred-key (expand-file-name cred-key)))
++ (file-regular-p
++ (setq cred-cert (expand-file-name cred-cert))))
++ (list "--key-file" cred-key "--cert-file" cred-cert))))
++ (starttls-extra-arguments
++ (append
++ starttls-extra-arguments
++ (when (and (stringp cred-key) (stringp cred-cert)
++ (file-regular-p
++ (setq cred-key (expand-file-name cred-key)))
++ (file-regular-p
++ (setq cred-cert (expand-file-name cred-cert))))
++ (list "--x509keyfile" cred-key "--x509certfile" cred-cert)))))
++ (starttls-open-stream "SMTP" process-buffer host port)))))
++
++(defun smtpmail-try-auth-methods (process supported-extensions host port)
++ (let* ((mechs (cdr-safe (assoc 'auth supported-extensions)))
++ (mech (car (smtpmail-intersection smtpmail-auth-supported mechs)))
++ (cred (if (stringp smtpmail-auth-credentials)
++ (let* ((netrc (netrc-parse smtpmail-auth-credentials))
++ (port-name (format "%s" (or port "smtp")))
++ (hostentry (netrc-machine netrc host port-name
++ port-name)))
++ (when hostentry
++ (list host port
++ (netrc-get hostentry "login")
++ (netrc-get hostentry "password"))))
++ (smtpmail-find-credentials
++ smtpmail-auth-credentials host port)))
++ (passwd (when cred
++ (or (smtpmail-cred-passwd cred)
++ (read-passwd
++ (format "SMTP password for %s:%s: "
++ (smtpmail-cred-server cred)
++ (smtpmail-cred-port cred))))))
++ ret)
++ (when (and cred mech)
++ (cond
++ ((eq mech 'cram-md5)
++ (smtpmail-send-command process (upcase (format "AUTH %s" mech)))
++ (if (or (null (car (setq ret (smtpmail-read-response process))))
++ (not (integerp (car ret)))
++ (>= (car ret) 400))
++ (throw 'done nil))
++ (when (eq (car ret) 334)
++ (let* ((challenge (substring (cadr ret) 4))
++ (decoded (base64-decode-string challenge))
++ (hash (rfc2104-hash 'md5 64 16 passwd decoded))
++ (response (concat (smtpmail-cred-user cred) " " hash))
++ (encoded (base64-encode-string response)))
++ (smtpmail-send-command process (format "%s" encoded))
++ (if (or (null (car (setq ret (smtpmail-read-response process))))
++ (not (integerp (car ret)))
++ (>= (car ret) 400))
++ (throw 'done nil)))))
++ ((eq mech 'login)
++ (smtpmail-send-command process "AUTH LOGIN")
++ (if (or (null (car (setq ret (smtpmail-read-response process))))
++ (not (integerp (car ret)))
++ (>= (car ret) 400))
++ (throw 'done nil))
++ (smtpmail-send-command
++ process (base64-encode-string (smtpmail-cred-user cred)))
++ (if (or (null (car (setq ret (smtpmail-read-response process))))
++ (not (integerp (car ret)))
++ (>= (car ret) 400))
++ (throw 'done nil))
++ (smtpmail-send-command process (base64-encode-string passwd))
++ (if (or (null (car (setq ret (smtpmail-read-response process))))
++ (not (integerp (car ret)))
++ (>= (car ret) 400))
++ (throw 'done nil)))
++ ((eq mech 'plain)
++ ;; We used to send an empty initial request, and wait for an
++ ;; empty response, and then send the password, but this
++ ;; violate a SHOULD in RFC 2222 paragraph 5.1. Note that this
++ ;; is not sent if the server did not advertise AUTH PLAIN in
++ ;; the EHLO response. See RFC 2554 for more info.
++ (smtpmail-send-command process
++ (concat "AUTH PLAIN "
++ (base64-encode-string
++ (concat "\0"
++ (smtpmail-cred-user cred)
++ "\0"
++ passwd))))
++ (if (or (null (car (setq ret (smtpmail-read-response process))))
++ (not (integerp (car ret)))
++ (not (equal (car ret) 235)))
++ (throw 'done nil)))
++
++ (t
++ (error "Mechanism %s not implemented" mech)))
++ ;; Remember the password.
++ (when (and (not (stringp smtpmail-auth-credentials))
++ (null (smtpmail-cred-passwd cred)))
++ (setcar (cdr (cdr (cdr cred))) passwd)))))
++
+ (defun smtpmail-via-smtp (recipient smtpmail-text-buffer)
+ (let ((process nil)
+ (host (or smtpmail-smtp-server
+ (error "`smtpmail-smtp-server' not defined")))
+ (port smtpmail-smtp-service)
++ ;; smtpmail-mail-address should be set to the appropriate
++ ;; buffer-local value by the caller, but in case not:
++ (envelope-from (or smtpmail-mail-address
++ (and mail-specify-envelope-from
++ (mail-envelope-from))
++ user-mail-address))
+ response-code
+ greeting
+ process-buffer
+@@ -358,19 +606,18 @@ This is relative to `smtpmail-queue-dir'
+ (get-buffer-create (format "*trace of SMTP session to %s*" host)))
+
+ ;; clear the trace buffer of old output
+- (save-excursion
+- (set-buffer process-buffer)
++ (with-current-buffer process-buffer
++ (setq buffer-undo-list t)
+ (erase-buffer))
+
+ ;; open the connection to the server
+- (setq process (open-network-stream "SMTP" process-buffer host port))
++ (setq process (smtpmail-open-stream process-buffer host port))
+ (and (null process) (throw 'done nil))
+
+ ;; set the send-filter
+ (set-process-filter process 'smtpmail-process-filter)
+
+- (save-excursion
+- (set-buffer process-buffer)
++ (with-current-buffer process-buffer
+ (set-buffer-process-coding-system 'raw-text-unix 'raw-text-unix)
+ (make-local-variable 'smtpmail-read-point)
+ (setq smtpmail-read-point (point-min))
+@@ -382,32 +629,58 @@ This is relative to `smtpmail-queue-dir'
+ (throw 'done nil)
+ )
+
++ (let ((do-ehlo t)
++ (do-starttls t))
++ (while do-ehlo
+ ;; EHLO
+ (smtpmail-send-command process (format "EHLO %s" (smtpmail-fqdn)))
+
+- (if (or (null (car (setq response-code (smtpmail-read-response process))))
++ (if (or (null (car (setq response-code
++ (smtpmail-read-response process))))
+ (not (integerp (car response-code)))
+ (>= (car response-code) 400))
+ (progn
+ ;; HELO
+- (smtpmail-send-command process (format "HELO %s" (smtpmail-fqdn)))
++ (smtpmail-send-command
++ process (format "HELO %s" (smtpmail-fqdn)))
+
+- (if (or (null (car (setq response-code (smtpmail-read-response process))))
++ (if (or (null (car (setq response-code
++ (smtpmail-read-response process))))
+ (not (integerp (car response-code)))
+ (>= (car response-code) 400))
+ (throw 'done nil)))
+- (let ((extension-lines (cdr (cdr response-code))))
+- (while extension-lines
+- (let ((name (intern (downcase (car (split-string (substring (car extension-lines) 4) "[ ]"))))))
++ (dolist (line (cdr (cdr response-code)))
++ (let ((name (mapcar (lambda (s) (intern (downcase s)))
++ (split-string (substring line 4) "[ ]"))))
++ (and (eq (length name) 1)
++ (setq name (car name)))
+ (and name
+- (cond ((memq name '(verb xvrb 8bitmime onex xone
++ (cond ((memq (if (consp name) (car name) name)
++ '(verb xvrb 8bitmime onex xone
+ expn size dsn etrn
+- help xusr))
++ enhancedstatuscodes
++ help xusr
++ auth=login auth starttls))
+ (setq supported-extensions
+ (cons name supported-extensions)))
+ (smtpmail-warn-about-unknown-extensions
+- (message "Unknown extension %s" name)))))
+- (setq extension-lines (cdr extension-lines)))))
++ (message "Unknown extension %s" name)))))))
++
++ (if (and do-starttls
++ (smtpmail-find-credentials smtpmail-starttls-credentials host port)
++ (member 'starttls supported-extensions)
++ (numberp (process-id process)))
++ (progn
++ (smtpmail-send-command process (format "STARTTLS"))
++ (if (or (null (car (setq response-code (smtpmail-read-response process))))
++ (not (integerp (car response-code)))
++ (>= (car response-code) 400))
++ (throw 'done nil))
++ (starttls-negotiate process)
++ (setq do-starttls nil))
++ (setq do-ehlo nil))))
++
++ (smtpmail-try-auth-methods process supported-extensions host port)
+
+ (if (or (member 'onex supported-extensions)
+ (member 'xone supported-extensions))
+@@ -418,7 +691,7 @@ This is relative to `smtpmail-queue-dir'
+ (>= (car response-code) 400))
+ (throw 'done nil))))
+
+- (if (and smtpmail-debug-info
++ (if (and smtpmail-debug-verb
+ (or (member 'verb supported-extensions)
+ (member 'xvrb supported-extensions)))
+ (progn
+@@ -436,22 +709,17 @@ This is relative to `smtpmail-queue-dir'
+ (>= (car response-code) 400))
+ (throw 'done nil))))
+
+- ;; MAIL FROM: <sender>
++ ;; MAIL FROM:<sender>
+ (let ((size-part
+- (if (member 'size supported-extensions)
++ (if (or (member 'size supported-extensions)
++ (assoc 'size supported-extensions))
+ (format " SIZE=%d"
+- (save-excursion
+- (set-buffer smtpmail-text-buffer)
++ (with-current-buffer smtpmail-text-buffer
+ ;; size estimate:
+ (+ (- (point-max) (point-min))
+ ;; Add one byte for each change-of-line
+- ;; because or CR-LF representation:
+- (count-lines (point-min) (point-max))
+- ;; For some reason, an empty line is
+- ;; added to the message. Maybe this
+- ;; is a bug, but it can't hurt to add
+- ;; those two bytes anyway:
+- 2)))
++ ;; because of CR-LF representation:
++ (count-lines (point-min) (point-max)))))
+ ""))
+ (body-part
+ (if (member '8bitmime supported-extensions)
+@@ -471,8 +739,8 @@ This is relative to `smtpmail-queue-dir'
+ "")
+ "")))
+ ; (smtpmail-send-command process (format "MAIL FROM:%s@%s" (user-login-name) (smtpmail-fqdn)))
+- (smtpmail-send-command process (format "MAIL FROM: <%s>%s%s"
+- user-mail-address
++ (smtpmail-send-command process (format "MAIL FROM:<%s>%s%s"
++ envelope-from
+ size-part
+ body-part))
+
+@@ -482,10 +750,10 @@ This is relative to `smtpmail-queue-dir'
+ (throw 'done nil)
+ ))
+
+- ;; RCPT TO: <recipient>
++ ;; RCPT TO:<recipient>
+ (let ((n 0))
+ (while (not (null (nth n recipient)))
+- (smtpmail-send-command process (format "RCPT TO: <%s>" (smtpmail-maybe-append-domain (nth n recipient))))
++ (smtpmail-send-command process (format "RCPT TO:<%s>" (smtpmail-maybe-append-domain (nth n recipient))))
+ (setq n (1+ n))
+
+ (setq response-code (smtpmail-read-response process))
+@@ -523,8 +791,7 @@ This is relative to `smtpmail-queue-dir'
+ ; (throw 'done nil))
+ t ))
+ (if process
+- (save-excursion
+- (set-buffer (process-buffer process))
++ (with-current-buffer (process-buffer process)
+ (smtpmail-send-command process "QUIT")
+ (smtpmail-read-response process)
+
+@@ -533,12 +800,13 @@ This is relative to `smtpmail-queue-dir'
+ ; (>= (car response-code) 400))
+ ; (throw 'done nil)
+ ; )
+- (delete-process process))))))
++ (delete-process process)
++ (unless smtpmail-debug-info
++ (kill-buffer process-buffer)))))))
+
+
+ (defun smtpmail-process-filter (process output)
+- (save-excursion
+- (set-buffer (process-buffer process))
++ (with-current-buffer (process-buffer process)
+ (goto-char (point-max))
+ (insert output)))
+
+@@ -548,49 +816,49 @@ This is relative to `smtpmail-queue-dir'
+ (response-continue t)
+ (return-value '(nil ()))
+ match-end)
+-
+- (while response-continue
+- (goto-char smtpmail-read-point)
+- (while (not (search-forward "\r\n" nil t))
+- (accept-process-output process)
+- (goto-char smtpmail-read-point))
+-
+- (setq match-end (point))
+- (setq response-strings
+- (cons (buffer-substring smtpmail-read-point (- match-end 2))
+- response-strings))
+-
+- (goto-char smtpmail-read-point)
+- (if (looking-at "[0-9]+ ")
+- (let ((begin (match-beginning 0))
+- (end (match-end 0)))
+- (if smtpmail-debug-info
+- (message "%s" (car response-strings)))
+-
+- (setq smtpmail-read-point match-end)
+-
+- ;; ignore lines that start with "0"
+- (if (looking-at "0[0-9]+ ")
+- nil
++ (catch 'done
++ (while response-continue
++ (goto-char smtpmail-read-point)
++ (while (not (search-forward "\r\n" nil t))
++ (unless (memq (process-status process) '(open run))
++ (throw 'done nil))
++ (accept-process-output process)
++ (goto-char smtpmail-read-point))
++
++ (setq match-end (point))
++ (setq response-strings
++ (cons (buffer-substring smtpmail-read-point (- match-end 2))
++ response-strings))
++
++ (goto-char smtpmail-read-point)
++ (if (looking-at "[0-9]+ ")
++ (let ((begin (match-beginning 0))
++ (end (match-end 0)))
++ (if smtpmail-debug-info
++ (message "%s" (car response-strings)))
++
++ (setq smtpmail-read-point match-end)
++
++ ;; ignore lines that start with "0"
++ (if (looking-at "0[0-9]+ ")
++ nil
++ (setq response-continue nil)
++ (setq return-value
++ (cons (string-to-number
++ (buffer-substring begin end))
++ (nreverse response-strings)))))
++
++ (if (looking-at "[0-9]+-")
++ (progn (if smtpmail-debug-info
++ (message "%s" (car response-strings)))
++ (setq smtpmail-read-point match-end)
++ (setq response-continue t))
++ (progn
++ (setq smtpmail-read-point match-end)
+ (setq response-continue nil)
+ (setq return-value
+- (cons (string-to-int
+- (buffer-substring begin end))
+- (nreverse response-strings)))))
+-
+- (if (looking-at "[0-9]+-")
+- (progn (if smtpmail-debug-info
+- (message "%s" (car response-strings)))
+- (setq smtpmail-read-point match-end)
+- (setq response-continue t))
+- (progn
+- (setq smtpmail-read-point match-end)
+- (setq response-continue nil)
+- (setq return-value
+- (cons nil (nreverse response-strings)))
+- )
+- )))
+- (setq smtpmail-read-point match-end)
++ (cons nil (nreverse response-strings)))))))
++ (setq smtpmail-read-point match-end))
+ return-value))
+
+
+@@ -623,41 +891,21 @@ This is relative to `smtpmail-queue-dir'
+ )
+
+ (defun smtpmail-send-data (process buffer)
+- (let
+- ((data-continue t)
+- (sending-data nil)
+- this-line
+- this-line-end)
+-
+- (save-excursion
+- (set-buffer buffer)
++ (let ((data-continue t) sending-data)
++ (with-current-buffer buffer
+ (goto-char (point-min)))
+-
+ (while data-continue
+- (save-excursion
+- (set-buffer buffer)
+- (beginning-of-line)
+- (setq this-line (point))
+- (end-of-line)
+- (setq this-line-end (point))
+- (setq sending-data nil)
+- (setq sending-data (buffer-substring this-line this-line-end))
+- (if (/= (forward-line 1) 0)
+- (setq data-continue nil)))
+-
+- (smtpmail-send-data-1 process sending-data)
+- )
+- )
+- )
+-
++ (with-current-buffer buffer
++ (setq sending-data (buffer-substring (point-at-bol) (point-at-eol)))
++ (end-of-line 2)
++ (setq data-continue (not (eobp))))
++ (smtpmail-send-data-1 process sending-data))))
+
+ (defun smtpmail-deduce-address-list (smtpmail-text-buffer header-start header-end)
+ "Get address list suitable for smtp RCPT TO: <address>."
+- (require 'mail-utils) ;; pick up mail-strip-quoted-names
+-
+ (unwind-protect
+- (save-excursion
+- (set-buffer smtpmail-address-buffer) (erase-buffer)
++ (with-current-buffer smtpmail-address-buffer
++ (erase-buffer)
+ (let
+ ((case-fold-search t)
+ (simple-address-list "")
+@@ -668,9 +916,11 @@ This is relative to `smtpmail-queue-dir'
+ (goto-char (point-min))
+ ;; RESENT-* fields should stop processing of regular fields.
+ (save-excursion
+- (if (re-search-forward "^Resent-\\(to\\|cc\\|bcc\\):" header-end t)
+- (setq addr-regexp "^Resent-\\(to\\|cc\\|bcc\\):")
+- (setq addr-regexp "^\\(To:\\|Cc:\\|Bcc:\\)")))
++ (setq addr-regexp
++ (if (re-search-forward "^Resent-\\(to\\|cc\\|bcc\\):"
++ header-end t)
++ "^Resent-\\(to\\|cc\\|bcc\\):"
++ "^\\(To:\\|Cc:\\|Bcc:\\)")))
+
+ (while (re-search-forward addr-regexp header-end t)
+ (replace-match "")
+@@ -685,9 +935,7 @@ This is relative to `smtpmail-queue-dir'
+ (mail-strip-quoted-names (buffer-substring this-line this-line-end))))
+ )
+ (erase-buffer)
+- (insert-string " ")
+- (insert-string simple-address-list)
+- (insert-string "\n")
++ (insert " " simple-address-list "\n")
+ (subst-char-in-region (point-min) (point-max) 10 ? t);; newline --> blank
+ (subst-char-in-region (point-min) (point-max) ?, ? t);; comma --> blank
+ (subst-char-in-region (point-min) (point-max) 9 ? t);; tab --> blank
+@@ -729,4 +977,5 @@ many continuation lines."
+
+ (provide 'smtpmail)
+
++;;; arch-tag: a76992df-6d71-43b7-9e72-4bacc6c05466
+ ;;; smtpmail.el ends here
diff --git a/editors/emacs21/patches/patch-bg b/editors/emacs21/patches/patch-bg
new file mode 100644
index 00000000000..a114b99c9eb
--- /dev/null
+++ b/editors/emacs21/patches/patch-bg
@@ -0,0 +1,21 @@
+$NetBSD: patch-bg,v 1.1 2007/06/11 13:38:44 markd Exp $
+
+--- configure.in.orig Fri Apr 18 19:04:25 2003
++++ configure.in
+@@ -2177,6 +2177,16 @@
+ # Fixme: This should be replaced when we have autoconf 2.14.
+ AC_SIZE_T
+
++# NETBSD: NetBSD's newer run-time linker fix.
++if test $opsys = netbsd; then
++ if test -f /usr/lib/crti.o; then
++ AC_DEFINE(HAVE_NETBSD_CRTI)
++ fi
++ if test -f /usr/lib/crtn.o; then
++ AC_DEFINE(HAVE_NETBSD_CRTN)
++ fi
++fi
++
+ # Set up the CFLAGS for real compilation, so we can substitute it.
+ CFLAGS="$REAL_CFLAGS"
+ CPPFLAGS="$REAL_CPPFLAGS"
diff --git a/editors/emacs21/patches/patch-xx b/editors/emacs21/patches/patch-xx
new file mode 100644
index 00000000000..b5c8cc432c6
--- /dev/null
+++ b/editors/emacs21/patches/patch-xx
@@ -0,0 +1,30 @@
+$NetBSD: patch-xx,v 1.3 2007/06/11 13:38:44 markd Exp $
+
+--- src/s/netbsd.h.orig 2002-05-31 18:29:02.000000000 +0200
++++ src/s/netbsd.h
+@@ -60,9 +60,17 @@
+ #endif /* not NO_SHARED_LIBS and not ELF */
+
+ #if !defined (NO_SHARED_LIBS) && defined (__ELF__)
++#if defined(HAVE_NETBSD_CRTI)
++#define START_FILES pre-crt0.o /usr/lib/crt0.o /usr/lib/crti.o /usr/lib/crtbegin.o
++#else
+ #define START_FILES pre-crt0.o /usr/lib/crt0.o /usr/lib/crtbegin.o
++#endif
+ #define UNEXEC unexelf.o
++#if defined(HAVE_NETBSD_CRTN)
++#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o
++#else
+ #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o
++#endif
+ #undef LIB_GCC
+ #define LIB_GCC
+ #endif
+@@ -123,3 +131,7 @@
+
+ #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
+
++/* Use sigprocmask(2) and friends instead of sigblock(2); the man page
++ of sigblock says it is obsolete. */
++
++#define POSIX_SIGNALS 1