diff options
Diffstat (limited to 'editors/emacs21/patches')
26 files changed, 1385 insertions, 0 deletions
diff --git a/editors/emacs21/patches/patch-aa b/editors/emacs21/patches/patch-aa new file mode 100644 index 00000000000..2de50a5b2b5 --- /dev/null +++ b/editors/emacs21/patches/patch-aa @@ -0,0 +1,34 @@ +$NetBSD: patch-aa,v 1.3 2007/06/11 13:38:33 markd Exp $ + +--- man/Makefile.in.orig Wed Apr 24 16:54:15 2002 ++++ man/Makefile.in Wed Apr 24 16:55:45 2002 +@@ -34,7 +34,7 @@ + MAKEINFO = makeinfo + INFO_TARGETS = ../info/emacs ../info/ccmode ../info/cl \ + ../info/dired-x ../info/ediff ../info/forms ../info/gnus \ +- ../info/info ../info/message ../info/mh-e ../info/reftex \ ++ ../info/message ../info/mh-e ../info/reftex \ + ../info/sc ../info/vip ../info/viper ../info/widget \ + ../info/efaq ../info/ada-mode ../info/autotype \ + ../info/idlwave ../info/eudc ../info/ebrowse ../info/pcl-cvs \ +@@ -100,6 +100,7 @@ + ${srcdir}/glossary.texi \ + ${srcdir}/ack.texi + ++all: info + info: $(INFO_TARGETS) + + dvi: $(DVI_TARGETS) +@@ -112,12 +113,6 @@ + # The following target uses an explicit -o switch to work around + # the @setfilename directive in info.texi, which is required for + # the Texinfo distribution. +- +-../info/info: ${INFOSOURCES} +- cd $(srcdir); $(MAKEINFO) --no-split info.texi -o $@ +- +-info.dvi: ${INFOSOURCES} +- $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi + + ../info/emacs: ${EMACSSOURCES} + cd $(srcdir); $(MAKEINFO) emacs.texi diff --git a/editors/emacs21/patches/patch-ab b/editors/emacs21/patches/patch-ab new file mode 100644 index 00000000000..f48cbd6a6c0 --- /dev/null +++ b/editors/emacs21/patches/patch-ab @@ -0,0 +1,64 @@ +$NetBSD: patch-ab,v 1.1 2007/06/11 13:38:33 markd Exp $ + +--- configure.orig 2003-03-18 14:19:12.000000000 +0000 ++++ configure +@@ -822,9 +822,17 @@ case "${canonical}" in + sparc*-*-netbsd*) machine=sparc ;; + vax-*-netbsd*) machine=vax ;; + arm-*-netbsd*) machine=arm ;; ++ x86_64-*-netbsd*) machine=amd64 ;; ++ hppa-*-netbsd*) machine=hp800 ;; ++ shle-*-netbsd*) machine=sh3el ;; + esac + ;; + ++ ## Darwin / Mac OS X ++ powerpc-apple-darwin* ) ++ machine=powermac opsys=darwin ;; ++ i386-apple-darwin* ) ++ machine=intel386 opsys=darwin ;; + ## OpenBSD ports + *-*-openbsd* ) + opsys=openbsd +@@ -909,6 +917,10 @@ case "${canonical}" in + machine=macppc opsys=gnu-linux + ;; + ++ x86_64-*-linux* ) ++ machine=amd64 opsys=gnu-linux ++ ;; ++ + ## Altos 3068 + m68*-altos-sysv* ) + machine=altos opsys=usg5-2 +@@ -1659,6 +1671,7 @@ case "${canonical}" in + *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; + *-386bsd* ) opsys=386bsd ;; + *-freebsd* ) opsys=freebsd ;; ++ *-dragonfly* ) opsys=dragonfly ;; + *-nextstep* ) opsys=nextstep ;; + ## Otherwise, we'll fall through to the generic opsys code at the bottom. + esac +@@ -9124,6 +9137,22 @@ EOF + fi + + ++# NETBSD: NetBSD's newer run-time linker fix. ++if test $opsys = netbsd; then ++ if test -f /usr/lib/crti.o; then ++ cat >> confdefs.h <<\EOF ++#define HAVE_NETBSD_CRTI 1 ++EOF ++ ++ fi ++ if test -f /usr/lib/crtn.o; then ++ cat >> confdefs.h <<\EOF ++#define HAVE_NETBSD_CRTN 1 ++EOF ++ ++ fi ++fi ++ + # Set up the CFLAGS for real compilation, so we can substitute it. + CFLAGS="$REAL_CFLAGS" + CPPFLAGS="$REAL_CPPFLAGS" diff --git a/editors/emacs21/patches/patch-ac b/editors/emacs21/patches/patch-ac new file mode 100644 index 00000000000..d723997ba58 --- /dev/null +++ b/editors/emacs21/patches/patch-ac @@ -0,0 +1,16 @@ +$NetBSD: patch-ac,v 1.1 2007/06/11 13:38:34 markd Exp $ + +--- src/m/hp800.h.orig 1996-01-15 01:15:02.000000000 -0800 ++++ src/m/hp800.h 2005-10-04 10:49:46.000000000 -0700 +@@ -181,3 +181,11 @@ + #define rindex strrchr + + #endif /* __hpux */ ++ ++/* Systems with GCC don't need to lose. */ ++#ifdef __NetBSD__ ++# ifdef __GNUC__ ++# define alloca __builtin_alloca ++# define HAVE_ALLOCA ++# endif /* __GNUC__ */ ++#endif /* __NetBSD__ */ diff --git a/editors/emacs21/patches/patch-ad b/editors/emacs21/patches/patch-ad new file mode 100644 index 00000000000..7cbd4fb134e --- /dev/null +++ b/editors/emacs21/patches/patch-ad @@ -0,0 +1,7 @@ +$NetBSD: patch-ad,v 1.3 2007/06/11 13:38:34 markd Exp $ + +--- etc/ctags.1.orig Sun Oct 3 14:14:21 1999 ++++ etc/ctags.1 Wed Apr 24 16:57:49 2002 +@@ -1 +1 @@ +-.so man1/etags.1 ++.so man1/emacs-etags.1 diff --git a/editors/emacs21/patches/patch-ae b/editors/emacs21/patches/patch-ae new file mode 100644 index 00000000000..f33d10decd7 --- /dev/null +++ b/editors/emacs21/patches/patch-ae @@ -0,0 +1,52 @@ +$NetBSD: patch-ae,v 1.4 2007/06/11 13:38:34 markd Exp $ + +--- Makefile.in.orig Sat Oct 19 10:21:01 2002 ++++ Makefile.in +@@ -430,28 +430,24 @@ + chmod a+r ${infodir}/dir); \ + fi; \ + cd ${srcdir}/info ; \ +- for f in ada-mode* autotype* ccmode* cl* dired-x* ebrowse* ediff* efaq* emacs* eshell* eudc* forms* gnus* idlwave* info* message* mh-e* pcl-cvs* reftex* sc* speedbar* vip* widget* woman*; do \ ++ for f in ada-mode* autotype* ccmode* cl* dired-x* ebrowse* ediff* efaq* emacs* eshell* eudc* forms* gnus* idlwave* message* mh-e* pcl-cvs* reftex* sc* speedbar* vip* widget* woman*; do \ + (cd $${thisdir}; \ +- ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \ +- chmod a+r ${infodir}/$$f); \ ++ ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f); \ + done); \ + else true; fi + -unset CDPATH; \ +- thisdir=`/bin/pwd`; \ +- if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \ +- then \ +- for f in ada-mode autotype ccmode cl dired-x ebrowse ediff efaq emacs emacs-mime eshell eudc forms gnus idlwave info message mh-e pcl-cvs reftex sc speedbar vip viper widget woman; do \ +- (cd $${thisdir}; \ +- ${INSTALL_INFO} --info-dir=${infodir} ${infodir}/$$f); \ +- done; \ +- else true; fi +- -chmod -R a+r ${datadir}/emacs ${COPYDESTS} ${infodir} ++ chmod -R a+r ${datadir}/emacs ${COPYDESTS} ${infodir} + thisdir=`/bin/pwd`; \ + cd ${srcdir}/etc; \ + for page in emacs etags ctags gfdl ; do \ + (cd $${thisdir}; \ +- ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${man1dir}/$${page}${manext}; \ +- chmod a+r ${man1dir}/$${page}${manext}); \ ++ if [ $${page} = emacs ]; then \ ++ ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${man1dir}/$${page}${manext}; \ ++ chmod a+r ${man1dir}/$${page}${manext}; \ ++ else \ ++ ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${man1dir}/emacs-$${page}${manext}; \ ++ chmod a+r ${man1dir}/emacs-$${page}${manext}; \ ++ fi) \ + done + + ### Install LEIM files. Although they are machine-independent, we +@@ -506,7 +502,7 @@ + done + (cd ${archlibdir} && rm -f fns-*) + -rm -rf ${libexecdir}/emacs/${version} +- (cd ${infodir} && rm -f cl* ada-mode* autotype* ccmode* ebrowse* efaq* eshell* eudc* idlwave* message* pcl-cvs* reftex* speedbar* widget* woman* dired-x* ediff* emacs* forms* gnus* info* mh-e* sc* vip*) ++ (cd ${infodir} && rm -f cl* ada-mode* autotype* ccmode* ebrowse* efaq* eshell* eudc* idlwave* message* pcl-cvs* reftex* speedbar* widget* woman* dired-x* ediff* emacs* forms* gnus* mh-e* sc* vip*) + (cd ${man1dir} && rm -f emacs.1 etags.1 ctags.1) + (cd ${bindir} && rm -f emacs-${version} $(EMACS)) + diff --git a/editors/emacs21/patches/patch-af b/editors/emacs21/patches/patch-af new file mode 100644 index 00000000000..e33b94f6677 --- /dev/null +++ b/editors/emacs21/patches/patch-af @@ -0,0 +1,23 @@ +$NetBSD: patch-af,v 1.1 2007/06/11 13:38:34 markd Exp $ + +--- src/m/pmax.h.orig 2006-11-02 00:11:05.000000000 +1300 ++++ src/m/pmax.h +@@ -22,13 +22,17 @@ NOTE-END */ + #ifdef MACH + #define START_FILES pre-crt0.o /usr/lib/crt0.o + #else ++#if !defined (__NetBSD__) + /* This line starts being needed with ultrix 4.0. */ + /* You must delete it for version 3.1. */ + #define START_FILES pre-crt0.o /usr/lib/cmplrs/cc/crt0.o + #endif ++#endif + +-#if defined (__NetBSD__) || defined (__OpenBSD__) ++#if defined (__OpenBSD__) + #undef START_FILES ++#endif ++#if defined (__NetBSD__) || defined (__OpenBSD__) + #undef RUN_TIME_REMAP + #undef UNEXEC + #define UNEXEC unexelf.o diff --git a/editors/emacs21/patches/patch-ag b/editors/emacs21/patches/patch-ag new file mode 100644 index 00000000000..b236c1a86ef --- /dev/null +++ b/editors/emacs21/patches/patch-ag @@ -0,0 +1,17 @@ +$NetBSD: patch-ag,v 1.1 2007/06/11 13:38:35 markd Exp $ + +--- src/config.in.orig Tue Jul 9 07:23:31 2002 ++++ src/config.in +@@ -354,6 +354,12 @@ Boston, MA 02111-1307, USA. */ + /* Define for large files, on AIX-style hosts. */ + #undef _LARGE_FILES + ++/* On NetBSD, Define HAVE_NETBSD_CRT{I,N} if a given system has crt{i,n}.o ++ installed under /usr/lib. These should be linked against temacs, ++ or it won't boot. */ ++#undef HAVE_NETBSD_CRTI ++#undef HAVE_NETBSD_CRTN ++ + #undef EMACS_CONFIGURATION + + #undef EMACS_CONFIG_OPTIONS diff --git a/editors/emacs21/patches/patch-ah b/editors/emacs21/patches/patch-ah new file mode 100644 index 00000000000..011beba8b44 --- /dev/null +++ b/editors/emacs21/patches/patch-ah @@ -0,0 +1,32 @@ +$NetBSD: patch-ah,v 1.1 2007/06/11 13:38:35 markd Exp $ + +--- src/unexelf.c.orig 2002-10-16 03:21:44.000000000 +1300 ++++ src/unexelf.c +@@ -971,8 +971,13 @@ unexec (new_name, old_name, data_start, + } + else + { +- /* Any section that was original placed AFTER the bss +- section should now be off by NEW_DATA2_SIZE. */ ++ /* Any section that was originally placed after the .bss ++ section should now be off by NEW_DATA2_SIZE. If a ++ section overlaps the .bss section, consider it to be ++ placed after the .bss section. Overlap can occur if the ++ section just before .bss has less-strict alignment; this ++ was observed between .symtab and .bss on Solaris 2.5.1 ++ (sparc) with GCC snapshot 960602. */ + #ifdef SOLARIS_POWERPC + /* On PPC Reference Platform running Solaris 2.5.1 + the plt section is also of type NOBI like the bss section. +@@ -986,9 +991,8 @@ unexec (new_name, old_name, data_start, + >= OLD_SECTION_H (old_bss_index-1).sh_offset) + NEW_SECTION_H (nn).sh_offset += new_data2_size; + #else +- if (round_up (NEW_SECTION_H (nn).sh_offset, +- OLD_SECTION_H (old_bss_index).sh_addralign) +- >= new_data2_offset) ++ if (NEW_SECTION_H (nn).sh_offset + NEW_SECTION_H (nn).sh_size ++ > new_data2_offset) + NEW_SECTION_H (nn).sh_offset += new_data2_size; + #endif + /* Any section that was originally placed after the section diff --git a/editors/emacs21/patches/patch-ai b/editors/emacs21/patches/patch-ai new file mode 100644 index 00000000000..0417f77d745 --- /dev/null +++ b/editors/emacs21/patches/patch-ai @@ -0,0 +1,12 @@ +$NetBSD: patch-ai,v 1.1 2007/06/11 13:38:35 markd Exp $ + +--- src/m/intel386.h.orig 1997-08-30 07:18:39.000000000 +0000 ++++ src/m/intel386.h +@@ -239,3 +239,7 @@ NOTE-END */ + + #define SEGMENT_MASK ((SEGMENT_SIZE)-1) + #endif ++ ++#ifdef MAC_OSX ++#define CANNOT_DUMP ++#endif diff --git a/editors/emacs21/patches/patch-aj b/editors/emacs21/patches/patch-aj new file mode 100644 index 00000000000..19f7bc1d54c --- /dev/null +++ b/editors/emacs21/patches/patch-aj @@ -0,0 +1,12 @@ +$NetBSD: patch-aj,v 1.1 2007/06/11 13:38:36 markd Exp $ + +--- lib-src/emacsclient.c.orig 2005-12-29 13:22:18.000000000 +0000 ++++ lib-src/emacsclient.c +@@ -226,7 +226,6 @@ main (argc, argv) + #include <errno.h> + + extern char *strerror (); +-extern int errno; + + /* Three possibilities: + 2 - can't be `stat'ed (sets errno) diff --git a/editors/emacs21/patches/patch-ak b/editors/emacs21/patches/patch-ak new file mode 100644 index 00000000000..ac98af9e5fc --- /dev/null +++ b/editors/emacs21/patches/patch-ak @@ -0,0 +1,40 @@ +$NetBSD: patch-ak,v 1.4 2007/06/11 13:38:36 markd Exp $ + +--- lib-src/Makefile.in.orig Fri Oct 19 02:31:27 2001 ++++ lib-src/Makefile.in Thu May 2 20:53:52 2002 +@@ -85,6 +85,7 @@ + INSTALL = @INSTALL@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ + # By default, we uphold the dignity of our programs. + INSTALL_STRIP = + +@@ -288,7 +289,7 @@ + if [ `(cd ${archlibdir} && /bin/pwd)` \ + != `(cd ${srcdir} && /bin/pwd)` ]; then \ + for file in ${SCRIPTS}; do \ +- $(INSTALL_PROGRAM) ${srcdir}/$$file ${archlibdir}/$$file; \ ++ $(INSTALL_SCRIPT) ${srcdir}/$$file ${archlibdir}/$$file; \ + done ; \ + fi + +@@ -296,12 +297,14 @@ + @echo + @echo "Installing utilities for users to run." + for file in ${INSTALLABLES} ; do \ +- $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} ${bindir}/$${file} ; \ +- chmod a+rx ${bindir}/$${file}; \ ++ if [ $${file} = emacsclient ] ; then \ ++ $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} ${bindir}/$${file} ; \ ++ else \ ++ $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} ${bindir}/emacs-$${file} ; \ ++ fi ; \ + done + for file in ${INSTALLABLE_SCRIPTS} ; do \ +- $(INSTALL_PROGRAM) ${srcdir}/$${file} ${bindir}/$${file} ; \ +- chmod a+rx ${bindir}/$${file}; \ ++ $(INSTALL_SCRIPT) ${srcdir}/$${file} ${bindir}/emacs-$${file} ; \ + done + + uninstall: diff --git a/editors/emacs21/patches/patch-am b/editors/emacs21/patches/patch-am new file mode 100644 index 00000000000..d57bbec4873 --- /dev/null +++ b/editors/emacs21/patches/patch-am @@ -0,0 +1,13 @@ +$NetBSD: patch-am,v 1.1 2007/06/11 13:38:36 markd Exp $ + +--- src/xterm.c.orig 2005-12-29 13:24:55.000000000 +0000 ++++ src/xterm.c +@@ -370,8 +370,6 @@ extern Lisp_Object Vx_no_window_manager; + + extern Lisp_Object Qface, Qmouse_face; + +-extern int errno; +- + /* A mask of extra modifier bits to put into every keyboard char. */ + + extern int extra_keyboard_modifiers; diff --git a/editors/emacs21/patches/patch-an b/editors/emacs21/patches/patch-an new file mode 100644 index 00000000000..2b7018bcebf --- /dev/null +++ b/editors/emacs21/patches/patch-an @@ -0,0 +1,14 @@ +$NetBSD: patch-an,v 1.1 2007/06/11 13:38:36 markd Exp $ + +--- src/emacs.c.orig 2005-12-29 13:27:49.000000000 +0000 ++++ src/emacs.c +@@ -712,9 +712,6 @@ main (argc, argv, envp) + char stack_bottom_variable; + int do_initial_setlocale; + int skip_args = 0; +-#ifndef USE_CRT_DLL +- extern int errno; +-#endif + #ifdef HAVE_SETRLIMIT + struct rlimit rlim; + #endif diff --git a/editors/emacs21/patches/patch-ao b/editors/emacs21/patches/patch-ao new file mode 100644 index 00000000000..51107f26a60 --- /dev/null +++ b/editors/emacs21/patches/patch-ao @@ -0,0 +1,15 @@ +$NetBSD: patch-ao,v 1.1 2007/06/11 13:38:36 markd Exp $ + +--- src/keyboard.c.orig 2005-12-29 13:28:32.000000000 +0000 ++++ src/keyboard.c +@@ -77,10 +77,6 @@ Boston, MA 02111-1307, USA. */ + /* Include systime.h after xterm.h to avoid double inclusion of time.h. */ + #include "systime.h" + +-#ifndef USE_CRT_DLL +-extern int errno; +-#endif +- + /* Variables for blockinput.h: */ + + /* Non-zero if interrupt input is blocked right now. */ diff --git a/editors/emacs21/patches/patch-ap b/editors/emacs21/patches/patch-ap new file mode 100644 index 00000000000..3677330a9e4 --- /dev/null +++ b/editors/emacs21/patches/patch-ap @@ -0,0 +1,15 @@ +$NetBSD: patch-ap,v 1.1 2007/06/11 13:38:36 markd Exp $ + +--- src/buffer.c.orig 2005-12-29 13:29:35.000000000 +0000 ++++ src/buffer.c +@@ -27,10 +27,6 @@ Boston, MA 02111-1307, USA. */ + #include <errno.h> + #include <stdio.h> + +-#ifndef USE_CRT_DLL +-extern int errno; +-#endif +- + #ifndef MAXPATHLEN + /* in 4.1, param.h fails to define this. */ + #define MAXPATHLEN 1024 diff --git a/editors/emacs21/patches/patch-aq b/editors/emacs21/patches/patch-aq new file mode 100644 index 00000000000..ab36e42f4d3 --- /dev/null +++ b/editors/emacs21/patches/patch-aq @@ -0,0 +1,17 @@ +$NetBSD: patch-aq,v 1.1 2007/06/11 13:38:37 markd Exp $ + +--- src/fileio.c.orig 2005-12-29 13:30:15.000000000 +0000 ++++ src/fileio.c +@@ -64,12 +64,6 @@ Boston, MA 02111-1307, USA. */ + + #include <errno.h> + +-#ifndef vax11c +-#ifndef USE_CRT_DLL +-extern int errno; +-#endif +-#endif +- + #ifdef APOLLO + #include <sys/time.h> + #endif diff --git a/editors/emacs21/patches/patch-ar b/editors/emacs21/patches/patch-ar new file mode 100644 index 00000000000..2dfcccf4a0c --- /dev/null +++ b/editors/emacs21/patches/patch-ar @@ -0,0 +1,14 @@ +$NetBSD: patch-ar,v 1.1 2007/06/11 13:38:38 markd Exp $ + +--- src/floatfns.c.orig 2005-12-29 13:31:17.000000000 +0000 ++++ src/floatfns.c +@@ -107,9 +107,6 @@ extern double logb (); + #ifdef FLOAT_CHECK_ERRNO + # include <errno.h> + +-#ifndef USE_CRT_DLL +-extern int errno; +-#endif + #endif + + /* Avoid traps on VMS from sinh and cosh. diff --git a/editors/emacs21/patches/patch-as b/editors/emacs21/patches/patch-as new file mode 100644 index 00000000000..8b36cbdd72b --- /dev/null +++ b/editors/emacs21/patches/patch-as @@ -0,0 +1,15 @@ +$NetBSD: patch-as,v 1.1 2007/06/11 13:38:40 markd Exp $ + +--- src/lread.c.orig 2005-12-29 13:32:39.000000000 +0000 ++++ src/lread.c +@@ -72,10 +72,6 @@ Boston, MA 02111-1307, USA. */ + #define file_tell ftell + #endif + +-#ifndef USE_CRT_DLL +-extern int errno; +-#endif +- + Lisp_Object Qread_char, Qget_file_char, Qstandard_input, Qcurrent_load_list; + Lisp_Object Qvariable_documentation, Vvalues, Vstandard_input, Vafter_load_alist; + Lisp_Object Qascii_character, Qload, Qload_file_name; diff --git a/editors/emacs21/patches/patch-at b/editors/emacs21/patches/patch-at new file mode 100644 index 00000000000..b93af8fafdf --- /dev/null +++ b/editors/emacs21/patches/patch-at @@ -0,0 +1,14 @@ +$NetBSD: patch-at,v 1.1 2007/06/11 13:38:41 markd Exp $ + +--- src/process.c.orig 2005-12-29 13:33:52.000000000 +0000 ++++ src/process.c +@@ -147,9 +147,6 @@ Lisp_Object Qlast_nonmenu_event; + + extern void set_waiting_for_input P_ ((EMACS_TIME *)); + +-#ifndef USE_CRT_DLL +-extern int errno; +-#endif + #ifdef VMS + extern char *sys_errlist[]; + #endif diff --git a/editors/emacs21/patches/patch-au b/editors/emacs21/patches/patch-au new file mode 100644 index 00000000000..729f5654673 --- /dev/null +++ b/editors/emacs21/patches/patch-au @@ -0,0 +1,15 @@ +$NetBSD: patch-au,v 1.1 2007/06/11 13:38:42 markd Exp $ + +--- src/callproc.c.orig 2005-12-29 13:34:29.000000000 +0000 ++++ src/callproc.c +@@ -25,10 +25,6 @@ Boston, MA 02111-1307, USA. */ + #include <errno.h> + #include <stdio.h> + +-#ifndef USE_CRT_DLL +-extern int errno; +-#endif +- + /* Define SIGCHLD as an alias for SIGCLD. */ + + #if !defined (SIGCHLD) && defined (SIGCLD) diff --git a/editors/emacs21/patches/patch-av b/editors/emacs21/patches/patch-av new file mode 100644 index 00000000000..fb4651be2cb --- /dev/null +++ b/editors/emacs21/patches/patch-av @@ -0,0 +1,14 @@ +$NetBSD: patch-av,v 1.1 2007/06/11 13:38:42 markd Exp $ + +--- src/dispnew.c.orig 2005-12-29 13:38:38.000000000 +0000 ++++ src/dispnew.c +@@ -5820,9 +5820,6 @@ window_change_signal (signalnum) /* If w + int signalnum; /* some compilers complain in signal calls. */ + { + int width, height; +-#ifndef USE_CRT_DLL +- extern int errno; +-#endif + int old_errno = errno; + + get_frame_size (&width, &height); diff --git a/editors/emacs21/patches/patch-az b/editors/emacs21/patches/patch-az new file mode 100644 index 00000000000..0c522582e2e --- /dev/null +++ b/editors/emacs21/patches/patch-az @@ -0,0 +1,13 @@ +$NetBSD: patch-az,v 1.1 2007/06/11 13:38:43 markd Exp $ + +--- src/ralloc.c.orig 2001-02-20 01:19:40.000000000 +1300 ++++ src/ralloc.c +@@ -328,7 +328,7 @@ static void + relinquish () + { + register heap_ptr h; +- int excess = 0; ++ long excess = 0; + + /* Add the amount of space beyond break_value + in all heaps which have extend beyond break_value at all. */ diff --git a/editors/emacs21/patches/patch-ba b/editors/emacs21/patches/patch-ba new file mode 100644 index 00000000000..6516533e01b --- /dev/null +++ b/editors/emacs21/patches/patch-ba @@ -0,0 +1,13 @@ +$NetBSD: patch-ba,v 1.1 2007/06/11 13:38:43 markd Exp $ + +--- lisp/sort.el.orig 2001-07-16 04:15:34.000000000 +1200 ++++ lisp/sort.el +@@ -493,7 +493,7 @@ Use \\[untabify] to convert tabs to spac + ;; Use the sort utility if we can; it is 4 times as fast. + ;; Do not use it if there are any properties in the region, + ;; since the sort utility would lose the properties. +- (let ((sort-args (list (if reverse "-rt\n" "-t\n") ++ (let ((sort-args (list (if reverse "-rt\t" "-t\t") + (concat "+0." (int-to-string col-start)) + (concat "-0." (int-to-string col-end))))) + (when sort-fold-case diff --git a/editors/emacs21/patches/patch-bb b/editors/emacs21/patches/patch-bb new file mode 100644 index 00000000000..e1ae22cdb1b --- /dev/null +++ b/editors/emacs21/patches/patch-bb @@ -0,0 +1,853 @@ +$NetBSD: patch-bb,v 1.1 2007/06/11 13:38:43 markd Exp $ + +--- lisp/mail/smtpmail.el.orig 2006-09-02 00:23:45.000000000 +0300 ++++ lisp/mail/smtpmail.el +@@ -1,12 +1,15 @@ + ;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail + +-;; Copyright (C) 1995, 1996, 2001 Free Software Foundation, Inc. ++;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004, 2005, ++;; 2006 Free Software Foundation, Inc. + + ;; Author: Tomoji Kagatani <kagatani@rbc.ncl.omron.co.jp> +-;; Maintainer: Brian D. Carlstrom <bdc@ai.mit.edu> ++;; Maintainer: Simon Josefsson <simon@josefsson.org> ++;; w32 Maintainer: Brian D. Carlstrom <bdc@ai.mit.edu> + ;; ESMTP support: Simon Leinen <simon@switch.ch> + ;; Hacked by Mike Taylor, 11th October 1999 to add support for + ;; automatically appending a domain to RCPT TO: addresses. ++;; AUTH=LOGIN support: Stephen Cranefield <scranefield@infoscience.otago.ac.nz> + ;; Keywords: mail + + ;; This file is part of GNU Emacs. +@@ -23,8 +26,8 @@ + + ;; You should have received a copy of the GNU General Public License + ;; along with GNU Emacs; see the file COPYING. If not, write to the +-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +-;; Boston, MA 02111-1307, USA. ++;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++;; Boston, MA 02110-1301, USA. + + ;;; Commentary: + +@@ -33,20 +36,48 @@ + ;; Please add these lines in your .emacs(_emacs) or use customize. + ;; + ;;(setq send-mail-function 'smtpmail-send-it) ; if you use `mail' +-;;(setq message-send-mail-function 'smtpmail-send-it) ; if you are using Gnus. ++;;(setq message-send-mail-function 'smtpmail-send-it) ; if you use message/Gnus + ;;(setq smtpmail-default-smtp-server "YOUR SMTP HOST") + ;;(setq smtpmail-local-domain "YOUR DOMAIN NAME") + ;;(setq smtpmail-sendto-domain "YOUR DOMAIN NAME") + ;;(setq smtpmail-debug-info t) ; only to debug problems ++;;(setq smtpmail-auth-credentials ; or use ~/.authinfo ++;; '(("YOUR SMTP HOST" 25 "username" "password"))) ++;;(setq smtpmail-starttls-credentials ++;; '(("YOUR SMTP HOST" 25 "~/.my_smtp_tls.key" "~/.my_smtp_tls.cert"))) ++;; Where the 25 equals the value of `smtpmail-smtp-service', it can be an ++;; integer or a string, just as long as they match (eq). + + ;; To queue mail, set smtpmail-queue-mail to t and use + ;; smtpmail-send-queued-mail to send. + ++;; Modified by Stephen Cranefield <scranefield@infoscience.otago.ac.nz>, ++;; 22/6/99, to support SMTP Authentication by the AUTH=LOGIN mechanism. ++;; See http://help.netscape.com/products/server/messaging/3x/info/smtpauth.html ++;; Rewritten by Simon Josefsson to use same credential variable as AUTH ++;; support below. ++ ++;; Modified by Simon Josefsson <jas@pdc.kth.se>, 22/2/99, to support SMTP ++;; Authentication by the AUTH mechanism. ++;; See http://www.ietf.org/rfc/rfc2554.txt ++ ++;; Modified by Simon Josefsson <simon@josefsson.org>, 2000-10-07, to support ++;; STARTTLS. Requires external program ++;; ftp://ftp.opaopa.org/pub/elisp/starttls-*.tar.gz. ++;; See http://www.ietf.org/rfc/rfc2246.txt, http://www.ietf.org/rfc/rfc2487.txt + + ;;; Code: + + (require 'sendmail) +-(require 'time-stamp) ++(autoload 'starttls-open-stream "starttls") ++(autoload 'starttls-negotiate "starttls") ++(autoload 'mail-strip-quoted-names "mail-utils") ++(autoload 'message-make-date "message") ++(autoload 'message-make-message-id "message") ++(autoload 'rfc2104-hash "rfc2104") ++(autoload 'netrc-parse "netrc") ++(autoload 'netrc-machine "netrc") ++(autoload 'netrc-get "netrc") + + ;;; + (defgroup smtpmail nil +@@ -55,7 +86,8 @@ + + + (defcustom smtpmail-default-smtp-server nil +- "*Specify default SMTP server." ++ "*Specify default SMTP server. ++This only has effect if you specify it before loading the smtpmail library." + :type '(choice (const nil) string) + :group 'smtpmail) + +@@ -66,8 +98,9 @@ + :group 'smtpmail) + + (defcustom smtpmail-smtp-service 25 +- "*SMTP service port number. smtp or 25 ." +- :type 'integer ++ "*SMTP service port number. ++The default value would be \"smtp\" or 25 ." ++ :type '(choice (integer :tag "Port") (string :tag "Service")) + :group 'smtpmail) + + (defcustom smtpmail-local-domain nil +@@ -94,7 +127,15 @@ buffer includes an exchange like: + :group 'smtpmail) + + (defcustom smtpmail-debug-info nil +- "*smtpmail debug info printout. messages and process buffer." ++ "Whether to print info in buffer *trace of SMTP session to <somewhere>*. ++See also `smtpmail-debug-verb' which determines if the SMTP protocol should ++be verbose as well." ++ :type 'boolean ++ :group 'smtpmail) ++ ++(defcustom smtpmail-debug-verb nil ++ "Whether this library sends the SMTP VERB command or not. ++The commands enables verbose information from the SMTP server." + :type 'boolean + :group 'smtpmail) + +@@ -115,6 +156,34 @@ and sent with `smtpmail-send-queued-mail + :type 'directory + :group 'smtpmail) + ++(defcustom smtpmail-auth-credentials "~/.authinfo" ++ "Specify username and password for servers, directly or via .netrc file. ++This variable can either be a filename pointing to a file in netrc(5) ++format, or list of four-element lists that contain, in order, ++`servername' (a string), `port' (an integer), `user' (a string) and ++`password' (a string, or nil to query the user when needed). If you ++need to enter a `realm' too, add it to the user string, so that it ++looks like `user@realm'." ++ :type '(choice file ++ (repeat (list (string :tag "Server") ++ (integer :tag "Port") ++ (string :tag "Username") ++ (choice (const :tag "Query when needed" nil) ++ (string :tag "Password"))))) ++ :version "22.1" ++ :group 'smtpmail) ++ ++(defcustom smtpmail-starttls-credentials '(("" 25 "" "")) ++ "Specify STARTTLS keys and certificates for servers. ++This is a list of four-element list with `servername' (a string), ++`port' (an integer), `key' (a filename) and `certificate' (a filename)." ++ :type '(repeat (list (string :tag "Server") ++ (integer :tag "Port") ++ (file :tag "Key") ++ (file :tag "Certificate"))) ++ :version "21.1" ++ :group 'smtpmail) ++ + (defcustom smtpmail-warn-about-unknown-extensions nil + "*If set, print warnings about unknown SMTP extensions. + This is mainly useful for development purposes, to learn about +@@ -130,19 +199,26 @@ This is relative to `smtpmail-queue-dir' + (defvar smtpmail-address-buffer) + (defvar smtpmail-recipient-address-list) + ++(defvar smtpmail-queue-counter 0) ++ + ;; Buffer-local variable. + (defvar smtpmail-read-point) + + (defvar smtpmail-queue-index (concat smtpmail-queue-dir + smtpmail-queue-index-file)) + ++(defconst smtpmail-auth-supported '(cram-md5 plain login) ++ "List of supported SMTP AUTH mechanisms.") ++ + ;;; + ;;; + ;;; + ++(defvar smtpmail-mail-address nil ++ "Value to use for envelope-from address for mail from ambient buffer.") ++ + ;;;###autoload + (defun smtpmail-send-it () +- (require 'mail-utils) + (let ((errbuf (if mail-interactive + (generate-new-buffer " smtpmail errors") + 0)) +@@ -150,6 +226,11 @@ This is relative to `smtpmail-queue-dir' + (case-fold-search nil) + delimline + (mailbuf (current-buffer)) ++ ;; Examine this variable now, so that ++ ;; local binding in the mail buffer will take effect. ++ (smtpmail-mail-address ++ (or (and mail-specify-envelope-from (mail-envelope-from)) ++ user-mail-address)) + (smtpmail-code-conv-from + (if enable-multibyte-characters + (let ((sendmail-coding-system smtpmail-code-conv-from)) +@@ -190,7 +271,7 @@ This is relative to `smtpmail-queue-dir' + ;; they put one in themselves. + (goto-char (point-min)) + (if (not (re-search-forward "^From:" delimline t)) +- (let* ((login user-mail-address) ++ (let* ((login smtpmail-mail-address) + (fullname (user-full-name))) + (cond ((eq mail-from-style 'angles) + (insert "From: " fullname) +@@ -232,6 +313,14 @@ This is relative to `smtpmail-queue-dir' + (insert ")\n")) + ((null mail-from-style) + (insert "From: " login "\n"))))) ++ ;; Insert a `Message-Id:' field if there isn't one yet. ++ (goto-char (point-min)) ++ (unless (re-search-forward "^Message-Id:" delimline t) ++ (insert "Message-Id: " (message-make-message-id) "\n")) ++ ;; Insert a `Date:' field if there isn't one yet. ++ (goto-char (point-min)) ++ (unless (re-search-forward "^Date:" delimline t) ++ (insert "Date: " (message-make-date) "\n")) + ;; Insert an extra newline if we need it to work around + ;; Sun's bug that swallows newlines. + (goto-char (1+ delimline)) +@@ -242,8 +331,7 @@ This is relative to `smtpmail-queue-dir' + (if (re-search-forward "^FCC:" delimline t) + (mail-do-fcc delimline)) + (if mail-interactive +- (save-excursion +- (set-buffer errbuf) ++ (with-current-buffer errbuf + (erase-buffer)))) + ;; + ;; +@@ -261,19 +349,23 @@ This is relative to `smtpmail-queue-dir' + smtpmail-recipient-address-list tembuf)) + (error "Sending failed; SMTP protocol error")) + (error "Sending failed; no recipients")) +- (let* ((file-data (concat +- smtpmail-queue-dir +- (concat (time-stamp-yyyy-mm-dd) +- "_" (time-stamp-hh:mm:ss)))) +- (file-data (convert-standard-filename file-data)) +- (file-elisp (concat file-data ".el")) ++ (let* ((file-data ++ (expand-file-name ++ (format "%s_%i" ++ (format-time-string "%Y-%m-%d_%H:%M:%S") ++ (setq smtpmail-queue-counter ++ (1+ smtpmail-queue-counter))) ++ smtpmail-queue-dir)) ++ (file-data (convert-standard-filename file-data)) ++ (file-elisp (concat file-data ".el")) + (buffer-data (create-file-buffer file-data)) + (buffer-elisp (create-file-buffer file-elisp)) + (buffer-scratch "*queue-mail*")) +- (save-excursion +- (set-buffer buffer-data) ++ (unless (file-exists-p smtpmail-queue-dir) ++ (make-directory smtpmail-queue-dir t)) ++ (with-current-buffer buffer-data + (erase-buffer) +- (insert-buffer tembuf) ++ (insert-buffer-substring tembuf) + (write-file file-data) + (set-buffer buffer-elisp) + (erase-buffer) +@@ -299,35 +391,33 @@ This is relative to `smtpmail-queue-dir' + (defun smtpmail-send-queued-mail () + "Send mail that was queued as a result of setting `smtpmail-queue-mail'." + (interactive) +- ;;; Get index, get first mail, send it, get second mail, etc... +- (let ((buffer-index (find-file-noselect smtpmail-queue-index)) +- (file-msg "") +- (tembuf nil)) +- (save-excursion +- (set-buffer buffer-index) +- (beginning-of-buffer) ++ (with-temp-buffer ++ ;;; Get index, get first mail, send it, update index, get second ++ ;;; mail, send it, etc... ++ (let ((file-msg "")) ++ (insert-file-contents smtpmail-queue-index) ++ (goto-char (point-min)) + (while (not (eobp)) +- (setq file-msg (buffer-substring (point) (save-excursion +- (end-of-line) +- (point)))) ++ (setq file-msg (buffer-substring (point) (line-end-position))) + (load file-msg) + ;; Insert the message literally: it is already encoded as per + ;; the MIME headers, and code conversions might guess the + ;; encoding wrongly. +- (setq tembuf (find-file-noselect file-msg nil t)) +- (if (not (null smtpmail-recipient-address-list)) +- (if (not (smtpmail-via-smtp smtpmail-recipient-address-list +- tembuf)) +- (error "Sending failed; SMTP protocol error")) +- (error "Sending failed; no recipients")) ++ (with-temp-buffer ++ (let ((coding-system-for-read 'no-conversion)) ++ (insert-file-contents file-msg)) ++ (let ((smtpmail-mail-address ++ (or (and mail-specify-envelope-from (mail-envelope-from)) ++ user-mail-address))) ++ (if (not (null smtpmail-recipient-address-list)) ++ (if (not (smtpmail-via-smtp smtpmail-recipient-address-list ++ (current-buffer))) ++ (error "Sending failed; SMTP protocol error")) ++ (error "Sending failed; no recipients")))) + (delete-file file-msg) + (delete-file (concat file-msg ".el")) +- (kill-buffer tembuf) +- (kill-line 1)) +- (set-buffer buffer-index) +- (save-buffer smtpmail-queue-index) +- (kill-buffer buffer-index) +- ))) ++ (delete-region (point-at-bol) (point-at-bol 2))) ++ (write-region (point-min) (point-max) smtpmail-queue-index)))) + + ;(defun smtpmail-via-smtp (host,port,sender,destination,smtpmail-text-buffer) + +@@ -336,17 +426,175 @@ This is relative to `smtpmail-queue-dir' + (concat (system-name) "." smtpmail-local-domain) + (system-name))) + ++(defsubst smtpmail-cred-server (cred) ++ (nth 0 cred)) ++ ++(defsubst smtpmail-cred-port (cred) ++ (nth 1 cred)) ++ ++(defsubst smtpmail-cred-key (cred) ++ (nth 2 cred)) ++ ++(defsubst smtpmail-cred-user (cred) ++ (nth 2 cred)) ++ ++(defsubst smtpmail-cred-cert (cred) ++ (nth 3 cred)) ++ ++(defsubst smtpmail-cred-passwd (cred) ++ (nth 3 cred)) ++ ++(defun smtpmail-find-credentials (cred server port) ++ (catch 'done ++ (let ((l cred) el) ++ (while (setq el (pop l)) ++ (when (and (equal server (smtpmail-cred-server el)) ++ (equal port (smtpmail-cred-port el))) ++ (throw 'done el)))))) ++ + (defun smtpmail-maybe-append-domain (recipient) + (if (or (not smtpmail-sendto-domain) + (string-match "@" recipient)) + recipient + (concat recipient "@" smtpmail-sendto-domain))) + ++(defun smtpmail-intersection (list1 list2) ++ (let ((result nil)) ++ (dolist (el2 list2) ++ (when (memq el2 list1) ++ (push el2 result))) ++ (nreverse result))) ++ ++(defvar starttls-extra-args) ++(defvar starttls-extra-arguments) ++ ++(defun smtpmail-open-stream (process-buffer host port) ++ (let ((cred (smtpmail-find-credentials ++ smtpmail-starttls-credentials host port))) ++ (if (null (and cred (condition-case () ++ (with-no-warnings ++ (require 'starttls) ++ (call-process (if starttls-use-gnutls ++ starttls-gnutls-program ++ starttls-program))) ++ (error nil)))) ++ ;; The normal case. ++ (open-network-stream "SMTP" process-buffer host port) ++ (let* ((cred-key (smtpmail-cred-key cred)) ++ (cred-cert (smtpmail-cred-cert cred)) ++ (starttls-extra-args ++ (append ++ starttls-extra-args ++ (when (and (stringp cred-key) (stringp cred-cert) ++ (file-regular-p ++ (setq cred-key (expand-file-name cred-key))) ++ (file-regular-p ++ (setq cred-cert (expand-file-name cred-cert)))) ++ (list "--key-file" cred-key "--cert-file" cred-cert)))) ++ (starttls-extra-arguments ++ (append ++ starttls-extra-arguments ++ (when (and (stringp cred-key) (stringp cred-cert) ++ (file-regular-p ++ (setq cred-key (expand-file-name cred-key))) ++ (file-regular-p ++ (setq cred-cert (expand-file-name cred-cert)))) ++ (list "--x509keyfile" cred-key "--x509certfile" cred-cert))))) ++ (starttls-open-stream "SMTP" process-buffer host port))))) ++ ++(defun smtpmail-try-auth-methods (process supported-extensions host port) ++ (let* ((mechs (cdr-safe (assoc 'auth supported-extensions))) ++ (mech (car (smtpmail-intersection smtpmail-auth-supported mechs))) ++ (cred (if (stringp smtpmail-auth-credentials) ++ (let* ((netrc (netrc-parse smtpmail-auth-credentials)) ++ (port-name (format "%s" (or port "smtp"))) ++ (hostentry (netrc-machine netrc host port-name ++ port-name))) ++ (when hostentry ++ (list host port ++ (netrc-get hostentry "login") ++ (netrc-get hostentry "password")))) ++ (smtpmail-find-credentials ++ smtpmail-auth-credentials host port))) ++ (passwd (when cred ++ (or (smtpmail-cred-passwd cred) ++ (read-passwd ++ (format "SMTP password for %s:%s: " ++ (smtpmail-cred-server cred) ++ (smtpmail-cred-port cred)))))) ++ ret) ++ (when (and cred mech) ++ (cond ++ ((eq mech 'cram-md5) ++ (smtpmail-send-command process (upcase (format "AUTH %s" mech))) ++ (if (or (null (car (setq ret (smtpmail-read-response process)))) ++ (not (integerp (car ret))) ++ (>= (car ret) 400)) ++ (throw 'done nil)) ++ (when (eq (car ret) 334) ++ (let* ((challenge (substring (cadr ret) 4)) ++ (decoded (base64-decode-string challenge)) ++ (hash (rfc2104-hash 'md5 64 16 passwd decoded)) ++ (response (concat (smtpmail-cred-user cred) " " hash)) ++ (encoded (base64-encode-string response))) ++ (smtpmail-send-command process (format "%s" encoded)) ++ (if (or (null (car (setq ret (smtpmail-read-response process)))) ++ (not (integerp (car ret))) ++ (>= (car ret) 400)) ++ (throw 'done nil))))) ++ ((eq mech 'login) ++ (smtpmail-send-command process "AUTH LOGIN") ++ (if (or (null (car (setq ret (smtpmail-read-response process)))) ++ (not (integerp (car ret))) ++ (>= (car ret) 400)) ++ (throw 'done nil)) ++ (smtpmail-send-command ++ process (base64-encode-string (smtpmail-cred-user cred))) ++ (if (or (null (car (setq ret (smtpmail-read-response process)))) ++ (not (integerp (car ret))) ++ (>= (car ret) 400)) ++ (throw 'done nil)) ++ (smtpmail-send-command process (base64-encode-string passwd)) ++ (if (or (null (car (setq ret (smtpmail-read-response process)))) ++ (not (integerp (car ret))) ++ (>= (car ret) 400)) ++ (throw 'done nil))) ++ ((eq mech 'plain) ++ ;; We used to send an empty initial request, and wait for an ++ ;; empty response, and then send the password, but this ++ ;; violate a SHOULD in RFC 2222 paragraph 5.1. Note that this ++ ;; is not sent if the server did not advertise AUTH PLAIN in ++ ;; the EHLO response. See RFC 2554 for more info. ++ (smtpmail-send-command process ++ (concat "AUTH PLAIN " ++ (base64-encode-string ++ (concat "\0" ++ (smtpmail-cred-user cred) ++ "\0" ++ passwd)))) ++ (if (or (null (car (setq ret (smtpmail-read-response process)))) ++ (not (integerp (car ret))) ++ (not (equal (car ret) 235))) ++ (throw 'done nil))) ++ ++ (t ++ (error "Mechanism %s not implemented" mech))) ++ ;; Remember the password. ++ (when (and (not (stringp smtpmail-auth-credentials)) ++ (null (smtpmail-cred-passwd cred))) ++ (setcar (cdr (cdr (cdr cred))) passwd))))) ++ + (defun smtpmail-via-smtp (recipient smtpmail-text-buffer) + (let ((process nil) + (host (or smtpmail-smtp-server + (error "`smtpmail-smtp-server' not defined"))) + (port smtpmail-smtp-service) ++ ;; smtpmail-mail-address should be set to the appropriate ++ ;; buffer-local value by the caller, but in case not: ++ (envelope-from (or smtpmail-mail-address ++ (and mail-specify-envelope-from ++ (mail-envelope-from)) ++ user-mail-address)) + response-code + greeting + process-buffer +@@ -358,19 +606,18 @@ This is relative to `smtpmail-queue-dir' + (get-buffer-create (format "*trace of SMTP session to %s*" host))) + + ;; clear the trace buffer of old output +- (save-excursion +- (set-buffer process-buffer) ++ (with-current-buffer process-buffer ++ (setq buffer-undo-list t) + (erase-buffer)) + + ;; open the connection to the server +- (setq process (open-network-stream "SMTP" process-buffer host port)) ++ (setq process (smtpmail-open-stream process-buffer host port)) + (and (null process) (throw 'done nil)) + + ;; set the send-filter + (set-process-filter process 'smtpmail-process-filter) + +- (save-excursion +- (set-buffer process-buffer) ++ (with-current-buffer process-buffer + (set-buffer-process-coding-system 'raw-text-unix 'raw-text-unix) + (make-local-variable 'smtpmail-read-point) + (setq smtpmail-read-point (point-min)) +@@ -382,32 +629,58 @@ This is relative to `smtpmail-queue-dir' + (throw 'done nil) + ) + ++ (let ((do-ehlo t) ++ (do-starttls t)) ++ (while do-ehlo + ;; EHLO + (smtpmail-send-command process (format "EHLO %s" (smtpmail-fqdn))) + +- (if (or (null (car (setq response-code (smtpmail-read-response process)))) ++ (if (or (null (car (setq response-code ++ (smtpmail-read-response process)))) + (not (integerp (car response-code))) + (>= (car response-code) 400)) + (progn + ;; HELO +- (smtpmail-send-command process (format "HELO %s" (smtpmail-fqdn))) ++ (smtpmail-send-command ++ process (format "HELO %s" (smtpmail-fqdn))) + +- (if (or (null (car (setq response-code (smtpmail-read-response process)))) ++ (if (or (null (car (setq response-code ++ (smtpmail-read-response process)))) + (not (integerp (car response-code))) + (>= (car response-code) 400)) + (throw 'done nil))) +- (let ((extension-lines (cdr (cdr response-code)))) +- (while extension-lines +- (let ((name (intern (downcase (car (split-string (substring (car extension-lines) 4) "[ ]")))))) ++ (dolist (line (cdr (cdr response-code))) ++ (let ((name (mapcar (lambda (s) (intern (downcase s))) ++ (split-string (substring line 4) "[ ]")))) ++ (and (eq (length name) 1) ++ (setq name (car name))) + (and name +- (cond ((memq name '(verb xvrb 8bitmime onex xone ++ (cond ((memq (if (consp name) (car name) name) ++ '(verb xvrb 8bitmime onex xone + expn size dsn etrn +- help xusr)) ++ enhancedstatuscodes ++ help xusr ++ auth=login auth starttls)) + (setq supported-extensions + (cons name supported-extensions))) + (smtpmail-warn-about-unknown-extensions +- (message "Unknown extension %s" name))))) +- (setq extension-lines (cdr extension-lines))))) ++ (message "Unknown extension %s" name))))))) ++ ++ (if (and do-starttls ++ (smtpmail-find-credentials smtpmail-starttls-credentials host port) ++ (member 'starttls supported-extensions) ++ (numberp (process-id process))) ++ (progn ++ (smtpmail-send-command process (format "STARTTLS")) ++ (if (or (null (car (setq response-code (smtpmail-read-response process)))) ++ (not (integerp (car response-code))) ++ (>= (car response-code) 400)) ++ (throw 'done nil)) ++ (starttls-negotiate process) ++ (setq do-starttls nil)) ++ (setq do-ehlo nil)))) ++ ++ (smtpmail-try-auth-methods process supported-extensions host port) + + (if (or (member 'onex supported-extensions) + (member 'xone supported-extensions)) +@@ -418,7 +691,7 @@ This is relative to `smtpmail-queue-dir' + (>= (car response-code) 400)) + (throw 'done nil)))) + +- (if (and smtpmail-debug-info ++ (if (and smtpmail-debug-verb + (or (member 'verb supported-extensions) + (member 'xvrb supported-extensions))) + (progn +@@ -436,22 +709,17 @@ This is relative to `smtpmail-queue-dir' + (>= (car response-code) 400)) + (throw 'done nil)))) + +- ;; MAIL FROM: <sender> ++ ;; MAIL FROM:<sender> + (let ((size-part +- (if (member 'size supported-extensions) ++ (if (or (member 'size supported-extensions) ++ (assoc 'size supported-extensions)) + (format " SIZE=%d" +- (save-excursion +- (set-buffer smtpmail-text-buffer) ++ (with-current-buffer smtpmail-text-buffer + ;; size estimate: + (+ (- (point-max) (point-min)) + ;; Add one byte for each change-of-line +- ;; because or CR-LF representation: +- (count-lines (point-min) (point-max)) +- ;; For some reason, an empty line is +- ;; added to the message. Maybe this +- ;; is a bug, but it can't hurt to add +- ;; those two bytes anyway: +- 2))) ++ ;; because of CR-LF representation: ++ (count-lines (point-min) (point-max))))) + "")) + (body-part + (if (member '8bitmime supported-extensions) +@@ -471,8 +739,8 @@ This is relative to `smtpmail-queue-dir' + "") + ""))) + ; (smtpmail-send-command process (format "MAIL FROM:%s@%s" (user-login-name) (smtpmail-fqdn))) +- (smtpmail-send-command process (format "MAIL FROM: <%s>%s%s" +- user-mail-address ++ (smtpmail-send-command process (format "MAIL FROM:<%s>%s%s" ++ envelope-from + size-part + body-part)) + +@@ -482,10 +750,10 @@ This is relative to `smtpmail-queue-dir' + (throw 'done nil) + )) + +- ;; RCPT TO: <recipient> ++ ;; RCPT TO:<recipient> + (let ((n 0)) + (while (not (null (nth n recipient))) +- (smtpmail-send-command process (format "RCPT TO: <%s>" (smtpmail-maybe-append-domain (nth n recipient)))) ++ (smtpmail-send-command process (format "RCPT TO:<%s>" (smtpmail-maybe-append-domain (nth n recipient)))) + (setq n (1+ n)) + + (setq response-code (smtpmail-read-response process)) +@@ -523,8 +791,7 @@ This is relative to `smtpmail-queue-dir' + ; (throw 'done nil)) + t )) + (if process +- (save-excursion +- (set-buffer (process-buffer process)) ++ (with-current-buffer (process-buffer process) + (smtpmail-send-command process "QUIT") + (smtpmail-read-response process) + +@@ -533,12 +800,13 @@ This is relative to `smtpmail-queue-dir' + ; (>= (car response-code) 400)) + ; (throw 'done nil) + ; ) +- (delete-process process)))))) ++ (delete-process process) ++ (unless smtpmail-debug-info ++ (kill-buffer process-buffer))))))) + + + (defun smtpmail-process-filter (process output) +- (save-excursion +- (set-buffer (process-buffer process)) ++ (with-current-buffer (process-buffer process) + (goto-char (point-max)) + (insert output))) + +@@ -548,49 +816,49 @@ This is relative to `smtpmail-queue-dir' + (response-continue t) + (return-value '(nil ())) + match-end) +- +- (while response-continue +- (goto-char smtpmail-read-point) +- (while (not (search-forward "\r\n" nil t)) +- (accept-process-output process) +- (goto-char smtpmail-read-point)) +- +- (setq match-end (point)) +- (setq response-strings +- (cons (buffer-substring smtpmail-read-point (- match-end 2)) +- response-strings)) +- +- (goto-char smtpmail-read-point) +- (if (looking-at "[0-9]+ ") +- (let ((begin (match-beginning 0)) +- (end (match-end 0))) +- (if smtpmail-debug-info +- (message "%s" (car response-strings))) +- +- (setq smtpmail-read-point match-end) +- +- ;; ignore lines that start with "0" +- (if (looking-at "0[0-9]+ ") +- nil ++ (catch 'done ++ (while response-continue ++ (goto-char smtpmail-read-point) ++ (while (not (search-forward "\r\n" nil t)) ++ (unless (memq (process-status process) '(open run)) ++ (throw 'done nil)) ++ (accept-process-output process) ++ (goto-char smtpmail-read-point)) ++ ++ (setq match-end (point)) ++ (setq response-strings ++ (cons (buffer-substring smtpmail-read-point (- match-end 2)) ++ response-strings)) ++ ++ (goto-char smtpmail-read-point) ++ (if (looking-at "[0-9]+ ") ++ (let ((begin (match-beginning 0)) ++ (end (match-end 0))) ++ (if smtpmail-debug-info ++ (message "%s" (car response-strings))) ++ ++ (setq smtpmail-read-point match-end) ++ ++ ;; ignore lines that start with "0" ++ (if (looking-at "0[0-9]+ ") ++ nil ++ (setq response-continue nil) ++ (setq return-value ++ (cons (string-to-number ++ (buffer-substring begin end)) ++ (nreverse response-strings))))) ++ ++ (if (looking-at "[0-9]+-") ++ (progn (if smtpmail-debug-info ++ (message "%s" (car response-strings))) ++ (setq smtpmail-read-point match-end) ++ (setq response-continue t)) ++ (progn ++ (setq smtpmail-read-point match-end) + (setq response-continue nil) + (setq return-value +- (cons (string-to-int +- (buffer-substring begin end)) +- (nreverse response-strings))))) +- +- (if (looking-at "[0-9]+-") +- (progn (if smtpmail-debug-info +- (message "%s" (car response-strings))) +- (setq smtpmail-read-point match-end) +- (setq response-continue t)) +- (progn +- (setq smtpmail-read-point match-end) +- (setq response-continue nil) +- (setq return-value +- (cons nil (nreverse response-strings))) +- ) +- ))) +- (setq smtpmail-read-point match-end) ++ (cons nil (nreverse response-strings))))))) ++ (setq smtpmail-read-point match-end)) + return-value)) + + +@@ -623,41 +891,21 @@ This is relative to `smtpmail-queue-dir' + ) + + (defun smtpmail-send-data (process buffer) +- (let +- ((data-continue t) +- (sending-data nil) +- this-line +- this-line-end) +- +- (save-excursion +- (set-buffer buffer) ++ (let ((data-continue t) sending-data) ++ (with-current-buffer buffer + (goto-char (point-min))) +- + (while data-continue +- (save-excursion +- (set-buffer buffer) +- (beginning-of-line) +- (setq this-line (point)) +- (end-of-line) +- (setq this-line-end (point)) +- (setq sending-data nil) +- (setq sending-data (buffer-substring this-line this-line-end)) +- (if (/= (forward-line 1) 0) +- (setq data-continue nil))) +- +- (smtpmail-send-data-1 process sending-data) +- ) +- ) +- ) +- ++ (with-current-buffer buffer ++ (setq sending-data (buffer-substring (point-at-bol) (point-at-eol))) ++ (end-of-line 2) ++ (setq data-continue (not (eobp)))) ++ (smtpmail-send-data-1 process sending-data)))) + + (defun smtpmail-deduce-address-list (smtpmail-text-buffer header-start header-end) + "Get address list suitable for smtp RCPT TO: <address>." +- (require 'mail-utils) ;; pick up mail-strip-quoted-names +- + (unwind-protect +- (save-excursion +- (set-buffer smtpmail-address-buffer) (erase-buffer) ++ (with-current-buffer smtpmail-address-buffer ++ (erase-buffer) + (let + ((case-fold-search t) + (simple-address-list "") +@@ -668,9 +916,11 @@ This is relative to `smtpmail-queue-dir' + (goto-char (point-min)) + ;; RESENT-* fields should stop processing of regular fields. + (save-excursion +- (if (re-search-forward "^Resent-\\(to\\|cc\\|bcc\\):" header-end t) +- (setq addr-regexp "^Resent-\\(to\\|cc\\|bcc\\):") +- (setq addr-regexp "^\\(To:\\|Cc:\\|Bcc:\\)"))) ++ (setq addr-regexp ++ (if (re-search-forward "^Resent-\\(to\\|cc\\|bcc\\):" ++ header-end t) ++ "^Resent-\\(to\\|cc\\|bcc\\):" ++ "^\\(To:\\|Cc:\\|Bcc:\\)"))) + + (while (re-search-forward addr-regexp header-end t) + (replace-match "") +@@ -685,9 +935,7 @@ This is relative to `smtpmail-queue-dir' + (mail-strip-quoted-names (buffer-substring this-line this-line-end)))) + ) + (erase-buffer) +- (insert-string " ") +- (insert-string simple-address-list) +- (insert-string "\n") ++ (insert " " simple-address-list "\n") + (subst-char-in-region (point-min) (point-max) 10 ? t);; newline --> blank + (subst-char-in-region (point-min) (point-max) ?, ? t);; comma --> blank + (subst-char-in-region (point-min) (point-max) 9 ? t);; tab --> blank +@@ -729,4 +977,5 @@ many continuation lines." + + (provide 'smtpmail) + ++;;; arch-tag: a76992df-6d71-43b7-9e72-4bacc6c05466 + ;;; smtpmail.el ends here diff --git a/editors/emacs21/patches/patch-bg b/editors/emacs21/patches/patch-bg new file mode 100644 index 00000000000..a114b99c9eb --- /dev/null +++ b/editors/emacs21/patches/patch-bg @@ -0,0 +1,21 @@ +$NetBSD: patch-bg,v 1.1 2007/06/11 13:38:44 markd Exp $ + +--- configure.in.orig Fri Apr 18 19:04:25 2003 ++++ configure.in +@@ -2177,6 +2177,16 @@ + # Fixme: This should be replaced when we have autoconf 2.14. + AC_SIZE_T + ++# NETBSD: NetBSD's newer run-time linker fix. ++if test $opsys = netbsd; then ++ if test -f /usr/lib/crti.o; then ++ AC_DEFINE(HAVE_NETBSD_CRTI) ++ fi ++ if test -f /usr/lib/crtn.o; then ++ AC_DEFINE(HAVE_NETBSD_CRTN) ++ fi ++fi ++ + # Set up the CFLAGS for real compilation, so we can substitute it. + CFLAGS="$REAL_CFLAGS" + CPPFLAGS="$REAL_CPPFLAGS" diff --git a/editors/emacs21/patches/patch-xx b/editors/emacs21/patches/patch-xx new file mode 100644 index 00000000000..b5c8cc432c6 --- /dev/null +++ b/editors/emacs21/patches/patch-xx @@ -0,0 +1,30 @@ +$NetBSD: patch-xx,v 1.3 2007/06/11 13:38:44 markd Exp $ + +--- src/s/netbsd.h.orig 2002-05-31 18:29:02.000000000 +0200 ++++ src/s/netbsd.h +@@ -60,9 +60,17 @@ + #endif /* not NO_SHARED_LIBS and not ELF */ + + #if !defined (NO_SHARED_LIBS) && defined (__ELF__) ++#if defined(HAVE_NETBSD_CRTI) ++#define START_FILES pre-crt0.o /usr/lib/crt0.o /usr/lib/crti.o /usr/lib/crtbegin.o ++#else + #define START_FILES pre-crt0.o /usr/lib/crt0.o /usr/lib/crtbegin.o ++#endif + #define UNEXEC unexelf.o ++#if defined(HAVE_NETBSD_CRTN) ++#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o ++#else + #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o ++#endif + #undef LIB_GCC + #define LIB_GCC + #endif +@@ -123,3 +131,7 @@ + + #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS + ++/* Use sigprocmask(2) and friends instead of sigblock(2); the man page ++ of sigblock says it is obsolete. */ ++ ++#define POSIX_SIGNALS 1 |