From 629f94b32ec0e83bcb511c2c78b21e4e4e42d2c4 Mon Sep 17 00:00:00 2001 From: markd Date: Mon, 11 Jun 2007 13:38:24 +0000 Subject: Reimport existing emacs packages as emacs21{,-nox11} to allow subsequent update of emacs packages to version 22. --- editors/emacs21/DESCR | 13 + editors/emacs21/Makefile | 46 + editors/emacs21/Makefile.common | 89 ++ editors/emacs21/PLIST | 1795 ++++++++++++++++++++++++++++++++++++ editors/emacs21/distinfo | 31 + editors/emacs21/files/amd64.h | 131 +++ editors/emacs21/files/darwin.h | 324 +++++++ editors/emacs21/files/dragonfly.h | 136 +++ editors/emacs21/files/powermac.h | 115 +++ editors/emacs21/files/sh3el.h | 107 +++ editors/emacs21/files/site-init.el | 4 + editors/emacs21/files/unexmacosx.c | 1054 +++++++++++++++++++++ editors/emacs21/patches/patch-aa | 34 + editors/emacs21/patches/patch-ab | 64 ++ editors/emacs21/patches/patch-ac | 16 + editors/emacs21/patches/patch-ad | 7 + editors/emacs21/patches/patch-ae | 52 ++ editors/emacs21/patches/patch-af | 23 + editors/emacs21/patches/patch-ag | 17 + editors/emacs21/patches/patch-ah | 32 + editors/emacs21/patches/patch-ai | 12 + editors/emacs21/patches/patch-aj | 12 + editors/emacs21/patches/patch-ak | 40 + editors/emacs21/patches/patch-am | 13 + editors/emacs21/patches/patch-an | 14 + editors/emacs21/patches/patch-ao | 15 + editors/emacs21/patches/patch-ap | 15 + editors/emacs21/patches/patch-aq | 17 + editors/emacs21/patches/patch-ar | 14 + editors/emacs21/patches/patch-as | 15 + editors/emacs21/patches/patch-at | 14 + editors/emacs21/patches/patch-au | 15 + editors/emacs21/patches/patch-av | 14 + editors/emacs21/patches/patch-az | 13 + editors/emacs21/patches/patch-ba | 13 + editors/emacs21/patches/patch-bb | 853 +++++++++++++++++ editors/emacs21/patches/patch-bg | 21 + editors/emacs21/patches/patch-xx | 30 + 38 files changed, 5230 insertions(+) create mode 100644 editors/emacs21/DESCR create mode 100644 editors/emacs21/Makefile create mode 100644 editors/emacs21/Makefile.common create mode 100644 editors/emacs21/PLIST create mode 100644 editors/emacs21/distinfo create mode 100644 editors/emacs21/files/amd64.h create mode 100644 editors/emacs21/files/darwin.h create mode 100644 editors/emacs21/files/dragonfly.h create mode 100644 editors/emacs21/files/powermac.h create mode 100644 editors/emacs21/files/sh3el.h create mode 100644 editors/emacs21/files/site-init.el create mode 100644 editors/emacs21/files/unexmacosx.c create mode 100644 editors/emacs21/patches/patch-aa create mode 100644 editors/emacs21/patches/patch-ab create mode 100644 editors/emacs21/patches/patch-ac create mode 100644 editors/emacs21/patches/patch-ad create mode 100644 editors/emacs21/patches/patch-ae create mode 100644 editors/emacs21/patches/patch-af create mode 100644 editors/emacs21/patches/patch-ag create mode 100644 editors/emacs21/patches/patch-ah create mode 100644 editors/emacs21/patches/patch-ai create mode 100644 editors/emacs21/patches/patch-aj create mode 100644 editors/emacs21/patches/patch-ak create mode 100644 editors/emacs21/patches/patch-am create mode 100644 editors/emacs21/patches/patch-an create mode 100644 editors/emacs21/patches/patch-ao create mode 100644 editors/emacs21/patches/patch-ap create mode 100644 editors/emacs21/patches/patch-aq create mode 100644 editors/emacs21/patches/patch-ar create mode 100644 editors/emacs21/patches/patch-as create mode 100644 editors/emacs21/patches/patch-at create mode 100644 editors/emacs21/patches/patch-au create mode 100644 editors/emacs21/patches/patch-av create mode 100644 editors/emacs21/patches/patch-az create mode 100644 editors/emacs21/patches/patch-ba create mode 100644 editors/emacs21/patches/patch-bb create mode 100644 editors/emacs21/patches/patch-bg create mode 100644 editors/emacs21/patches/patch-xx (limited to 'editors/emacs21') 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 . */ +#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="" */ + +/* 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 +#include +#include +#include +#include +#include +#include +#include +#include +#if defined (__ppc__) +#include +#endif +#include + +#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 . 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 + + 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 + #include + +-#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 + +-#ifndef vax11c +-#ifndef USE_CRT_DLL +-extern int errno; +-#endif +-#endif +- + #ifdef APOLLO + #include + #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 + +-#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 + #include + +-#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 +-;; Maintainer: Brian D. Carlstrom ++;; Maintainer: Simon Josefsson ++;; w32 Maintainer: Brian D. Carlstrom + ;; ESMTP support: Simon Leinen + ;; Hacked by Mike Taylor, 11th October 1999 to add support for + ;; automatically appending a domain to RCPT TO: addresses. ++;; AUTH=LOGIN support: Stephen Cranefield + ;; 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 , ++;; 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 , 22/2/99, to support SMTP ++;; Authentication by the AUTH mechanism. ++;; See http://www.ietf.org/rfc/rfc2554.txt ++ ++;; Modified by Simon Josefsson , 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 *. ++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: ++ ;; MAIL FROM: + (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: ++ ;; RCPT TO: + (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:
." +- (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 -- cgit v1.2.3