diff options
author | sumikawa <sumikawa@FreeBSD.org> | 2002-05-25 01:02:58 +0800 |
---|---|---|
committer | sumikawa <sumikawa@FreeBSD.org> | 2002-05-25 01:02:58 +0800 |
commit | ad73893334e8b8f53f9076ab2b7089e7d54de2f9 (patch) | |
tree | f93a14a01922e894dbf1247ed809fd687d9dbaaa | |
parent | 979d9b70b06432135a328ad139e9d8f491d4ba95 (diff) | |
download | freebsd-ports-gnome-ad73893334e8b8f53f9076ab2b7089e7d54de2f9.tar.gz freebsd-ports-gnome-ad73893334e8b8f53f9076ab2b7089e7d54de2f9.tar.zst freebsd-ports-gnome-ad73893334e8b8f53f9076ab2b7089e7d54de2f9.zip |
emacs21-emcws: Japanese input method enhancement for emacs21.
Repo-copied from emacs20-emcws.
Submitted by: nakaji@jp.freebsd.org
53 files changed, 383 insertions, 2164 deletions
diff --git a/japanese/Makefile b/japanese/Makefile index 30d4a5aaf1ac..b7aed40039dc 100644 --- a/japanese/Makefile +++ b/japanese/Makefile @@ -73,6 +73,7 @@ SUBDIR += emacs20-dl-canna SUBDIR += emacs20-dl-wnn6 SUBDIR += emacs20-emcws + SUBDIR += emacs21-emcws SUBDIR += epic4 SUBDIR += epwutil SUBDIR += escpf diff --git a/japanese/emacs-emcws/Makefile b/japanese/emacs-emcws/Makefile index a18087c2bc88..fc43e9b50c0e 100644 --- a/japanese/emacs-emcws/Makefile +++ b/japanese/emacs-emcws/Makefile @@ -1,14 +1,12 @@ # New ports collection makefile for: GNU emacs -# Version required: 20.7 -# Date created: 08 Oct. 2000 +# Date created: 10 Apr. 2002 # Whom: NAKAJI Hiroyuki <nakaji@jp.freebsd.org> # # $FreeBSD$ # PORTNAME= emcws -PORTVERSION= 20.7 -PORTREVISION= 2 +PORTVERSION= 21.2 CATEGORIES= japanese editors ipv6 MASTER_SITES= ${MASTER_SITE_GNU} MASTER_SITE_SUBDIR= emacs @@ -16,20 +14,20 @@ DISTNAME= emacs-${PORTVERSION} PATCH_SITES= ftp://ftp.ki.nu/pub/emcws/ \ ftp://ftp.jpl.org/pub/misc/ -PATCHFILES= emcws-${EMACS_VER}-20020208.gz +PATCHFILES= emcws-${EMACS_VER}-20020317.gz PATCH_DIST_STRIP= -p1 MAINTAINER= nakaji@jp.freebsd.org Y2K= http://www.gnu.org/software/year2000.html -BUILD_DEPENDS= emacs-${EMACS_VER}:${PORTSDIR}/editors/emacs20 +BUILD_DEPENDS= emacs-${EMACS_VER}:${PORTSDIR}/editors/emacs21 WRKSRC= ${WRKDIR}/emacs-${EMACS_VER} USE_AUTOCONF= YES USE_GMAKE= YES -EMACS_VER= 20.7 +EMACS_VER= 21.2 # Change these as you like. USE_WNN6?= YES @@ -100,8 +98,7 @@ EMCWS_ELCS= busyu.el \ wnn-egg.el \ wnn-egg.elc -MULE_PATCHED_ELS= ange-ftp.el ange-ftp.elc \ - help.el help.elc \ +MULE_PATCHED_ELS= help.el help.elc \ international/ccl.el international/mule-cmds.el \ international/mule-conf.el international/mule.el \ international/titdic-cnv.el \ @@ -131,11 +128,13 @@ pre-fetch: pre-build: find ${WRKSRC} \( -name \*.orig -o -name \*~ \) -exec ${RM} -f \{} \; ${RM} -rf ${WRKSRC}/info/* + @(cd ${WRKSRC}/src/../lisp; \ + ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} compile-files EMACS=${LOCALBASE}/bin/emacs-21.2) @(cd ${WRKSRC}/src; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} emacs) @(cd ${WRKSRC}/src/../lisp; \ ${WRKSRC}/src/emacs -batch -q -f batch-byte-compile \ egg.el wnn-egg.el \ - ange-ftp.el help.el international/ccl.el international/mule-cmds.el \ + help.el international/ccl.el international/mule-cmds.el \ international/mule.el international/titdic-cnv.el) ${RM} -f ${WRKSRC}/src/emacs ${WRKSRC}/src/emacs-${EMACS_VER}.1 ${RM} -f ${WRKSRC}/etc/${DOC_FILE} @@ -177,7 +176,4 @@ do-install: > ${PREFIX}/share/emacs/${EMACS_VER}-emcws/lisp/subdirs.el ; \ fi -post-install: - @${CAT} ${PKGMESSAGE} - .include <bsd.port.mk> diff --git a/japanese/emacs-emcws/distinfo b/japanese/emacs-emcws/distinfo index 4635c4a8126d..314abb7645b7 100644 --- a/japanese/emacs-emcws/distinfo +++ b/japanese/emacs-emcws/distinfo @@ -1,2 +1,2 @@ -MD5 (emacs-20.7.tar.gz) = c732cf5e668d4ac67d9418ecb103ecf5 -MD5 (emcws-20.7-20020208.gz) = 750b2df254aed3b6775755ffc277f989 +MD5 (emacs-21.2.tar.gz) = f4b58e5c2d923fc92495e0c2f167c5db +MD5 (emcws-21.2-20020317.gz) = b762e090c52b8ac30fad66ab77023aa4 diff --git a/japanese/emacs-emcws/files/patch-Makefile.in b/japanese/emacs-emcws/files/patch-Makefile.in new file mode 100644 index 000000000000..63b440560094 --- /dev/null +++ b/japanese/emacs-emcws/files/patch-Makefile.in @@ -0,0 +1,17 @@ +--- Makefile.in.orig Thu Mar 7 00:13:23 2002 ++++ Makefile.in Thu Mar 7 00:14:30 2002 +@@ -348,14 +348,6 @@ + ## as a workaround for a bug in tar on Ultrix 4.2. + install-arch-indep: mkdir info + -set ${COPYDESTS} ; \ +- unset CDPATH; \ +- for dir in ${COPYDIR} ; do \ +- if [ `(cd $$1 && /bin/pwd)` != `(cd $${dir} && /bin/pwd)` ] ; then \ +- rm -rf $$1 ; \ +- fi ; \ +- shift ; \ +- done +- -set ${COPYDESTS} ; \ + mkdir ${COPYDESTS} ; \ + chmod ugo+rx ${COPYDESTS} ; \ + unset CDPATH; \ diff --git a/japanese/emacs-emcws/files/patch-af b/japanese/emacs-emcws/files/patch-af deleted file mode 100644 index f2013a374044..000000000000 --- a/japanese/emacs-emcws/files/patch-af +++ /dev/null @@ -1,695 +0,0 @@ ---- src/unexfreebsd.c.orig Wed Dec 3 17:28:14 1997 -+++ src/unexfreebsd.c Wed Dec 3 17:34:02 1997 -@@ -0,0 +1,692 @@ -+/* Code to do an unexec for FreeBSD for a temacs linked -Bdynamic. -+ Derived from unexnetbsd.c, which was derived from unexsunos4.c -+ Copyright (C) 1992, 1993 Free Software Foundation, Inc. -+ -+This file is part of XEmacs. -+ -+XEmacs is free software; you can redistribute it and/or modify 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. -+ -+XEmacs 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 XEmacs; see the file COPYING. If not, write to -+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -+Boston, MA 02111-1307, USA. */ -+ -+/* Synched up with: Not in FSF? */ -+ -+/* -+Created 29-Oct-92 by Harlan Sexton -+Tweaked 06-Aug-93 by Dean Michaels to work with sun3. -+Converted 01-Dec-93 by Paul Mackerras to work with NetBSD shared libraries. -+Tweaked 26-Feb-94 by Shawn Carey for use with FreeBSD-1.1 shared libraries. -+*/ -+ -+/********************** Included .h Files **************************/ -+ -+#include <config.h> -+ -+#include <stdarg.h> -+#include <sys/param.h> -+#include <sys/mman.h> -+#include <sys/file.h> -+#include <sys/stat.h> -+#include <sys/types.h> -+#include <string.h> -+#include <stdio.h> -+#include <a.out.h> -+#include <unistd.h> -+#include <ctype.h> -+#include <stab.h> -+#include <dirent.h> -+#include <link.h> -+ -+/********************** Macros *************************************/ -+ -+#define SYS_ERR strerror(errno) -+ -+#define MASK_UP(x,p_of_two) \ -+ ((((unsigned long) (x)) + ((p_of_two) - 1)) & (~((p_of_two) - 1))) -+ -+#define MASK_DOWN(x,p_of_two) (((unsigned long) (x)) & (~((p_of_two) - 1))) -+ -+/********************** Typedefs and Structs ***********************/ -+ -+struct translation_struct -+{ -+ long txtaddr; -+ long txtoff; -+ long dataddr; -+ long datoff; -+ long bssaddr; -+ long endaddr; -+}; -+ -+/********************** Function Prototypes/Declarations ***********/ -+ -+static void unexec_error (const char *m, int use_errno, ...); -+static int unexec_open (char *filename, int flag, int mode); -+static caddr_t unexec_mmap (int fd, size_t len, int prot, int flags); -+static long unexec_seek (int fd, long position); -+static void unexec_read (int fd, long position, char *buf, int bytes); -+static void unexec_write (int fd, long position, char *buf, int bytes); -+static void unexec_pad (int fd, int bytes); -+static void unexec_fstat (int fd, struct stat *statptr); -+static void unexec_fchmod (int fd, int mode); -+static long unexec_addr_to_offset (long addr, struct translation_struct *ts); -+static void copy_relocation_site (struct relocation_info *ri, -+ caddr_t from_base_addr, -+ caddr_t to_base_addr, -+ struct translation_struct *ts); -+static void reset_symtab (struct nlist *start, struct nlist *end, -+ char *strtab, long edata_value, long end_value, -+ int shlib_image); -+static void reset_ldso_symtab (struct nzlist *start, struct nzlist *end, -+ char *strtab, long edata_value, long end_value, -+ int shlib_image); -+int run_time_remap (char *dummy); -+ -+/********************** Variables **********************************/ -+ -+/* for reporting error messages from system calls */ -+extern int errno; -+extern int _DYNAMIC; -+extern char **environ; -+ -+static unsigned long sbrk_of_0_at_unexec; -+ -+/*******************************************************************/ -+ -+static void -+unexec_error (const char *fmt, int use_errno, ...) -+{ -+ const char *err_msg = SYS_ERR; -+ va_list args; -+ -+ fprintf (stderr, "unexec - "); -+ va_start (args, use_errno); -+ vfprintf (stderr, fmt, args); -+ va_end (args); -+ -+ if (use_errno) -+ fprintf (stderr, ": %s", err_msg); -+ fprintf (stderr, "\n"); -+ exit (1); -+ return; -+} -+ -+static int -+unexec_open (char *filename, int flag, int mode) -+{ -+ int fd; -+ -+ errno = 0; -+ -+ fd = open (filename, flag, mode); -+ -+ if (fd < 0) -+ unexec_error ("Failure opening file %s", 1, filename); -+ return fd; -+} -+ -+static caddr_t -+unexec_mmap (int fd, size_t len, int prot, int flags) -+{ -+ caddr_t return_val; -+ -+ unexec_seek (fd, 0); -+ errno = 0; -+ return_val = mmap (0, len, prot, flags, fd, 0); -+ -+ if (return_val == (caddr_t) -1) -+ unexec_error ("Failure mmap'ing file", 1); -+ return return_val; -+} -+ -+ -+static long -+unexec_seek (int fd, long position) -+{ -+ long seek_value; -+ -+ if (fd <= 0) -+ unexec_error ("No file open in which to seek", 0); -+ -+ errno = 0; -+ -+ if (position < 0) -+ seek_value = (long) lseek (fd, 0, L_INCR); -+ else -+ seek_value = (long) lseek (fd, position, L_SET); -+ -+ if (seek_value < 0) -+ unexec_error ("Failed to do a seek to 0x%x in %s", 1, -+ position, "unexec() output file"); -+ -+ return seek_value; -+} -+ -+static void -+unexec_read (int fd, long position, char *buf, int bytes) -+{ -+ int n_read; -+ int remains = bytes; -+ position = unexec_seek (fd, position); -+ -+ if (bytes < 0) -+ unexec_error ("Attempted read of %d bytes", 0, bytes); -+ -+ errno = 0; -+ -+ while (remains > 0) -+ { -+ n_read = read (fd, buf, remains); -+ if (n_read <= 0) -+ unexec_error ("Read failed for 0x%x bytes at offset 0x%x in %s", -+ 1, bytes, position, "unexec() output file"); -+ buf += n_read; -+ remains -= n_read; -+ } -+ -+ return; -+} -+ -+static void -+unexec_write (int fd, long position, char *buf, int bytes) -+{ -+ int n_written; -+ int remains = bytes; -+ position = unexec_seek (fd, position); -+ -+ if (bytes < 0) -+ unexec_error ("Attempted write of %d bytes in %s", -+ 0, bytes, "unexec() output file"); -+ -+ errno = 0; -+ -+ while (remains > 0) -+ { -+ n_written = write (fd, buf, remains); -+ if (n_written <= 0) -+ unexec_error ("Write failed for 0x%x bytes at offset 0x%x in %s", -+ 1, bytes, position, "unexec() output file"); -+ buf += n_written; -+ remains -= n_written; -+ } -+ -+ return; -+} -+ -+static void -+unexec_pad (int fd, int bytes) -+{ -+ if (bytes > 0) -+ { -+ char buf[1024]; -+ int remaining = bytes; -+ -+ memset (buf, 0, sizeof (buf)); -+ -+ while (remaining > 0) -+ { -+ int this_write = (remaining > sizeof(buf))?sizeof(buf):remaining; -+ unexec_write (fd, -1, buf, this_write); -+ remaining -= this_write; -+ } -+ } -+} -+ -+static void -+unexec_fstat (int fd, struct stat *statptr) -+{ -+ errno = 0; -+ if (-1 == fstat (fd, statptr)) -+ unexec_error ("fstat() failed for descriptor %d", 1, fd); -+ return; -+} -+ -+static void -+unexec_fchmod (int fd, int mode) -+{ -+ errno = 0; -+ if (-1 == fchmod (fd, mode)) -+ unexec_error ("fchmod() failed for descriptor %d", 1, fd); -+ return; -+} -+ -+static long -+unexec_addr_to_offset (long addr, struct translation_struct *ts) -+ -+{ -+ if ((addr < ts->txtaddr) || (addr >= ts->bssaddr)) -+ return -1; -+ else if (addr >= ts->dataddr) -+ return ((long) ((addr - ts->dataddr) + ts->datoff)); -+ else -+ return ((long) ((addr - ts->txtaddr) + ts->txtoff)); -+} -+ -+ -+/* -+ * "LD.SO" DATA AND SYMBOL TABLE OPERATIONS -+ */ -+ -+static void -+copy_relocation_site (struct relocation_info *ri, -+ caddr_t from_base_addr, -+ caddr_t to_base_addr, -+ struct translation_struct *ts) -+{ -+ long offset; -+ caddr_t from, to; -+ -+ /* We can get relocation sites in the bss region, for objects whose -+ contents are copied from a shared library. We don't need or want -+ to restore these at present. */ -+#ifndef sparc -+ if (ri->r_copy) -+ return; -+#else -+ /* Struct relocation_info_sparc doesn't have member r_copy. -+ Instead, we use the address to check if this is run-time-copied. */ -+ if (ri->r_address >= ts->bssaddr && ri->r_address < ts->endaddr) -+ return; -+#endif -+ -+ offset = unexec_addr_to_offset (ri->r_address, ts); -+ if (offset == -1) -+ unexec_error ("bad relocation address 0x%x (0x%x)", 0, ri->r_address, -+ ((long *)ri)[1]); -+ -+ from = from_base_addr + offset; -+ to = to_base_addr + offset; -+ /* This stuff should be in a md_ file somewhere... */ -+#ifndef sparc -+ switch (ri->r_length) -+ { -+ case 0: -+ *((char *) to) = *((char *) from); -+ break; -+ case 1: -+ *((short *) to) = *((short *) from); -+ break; -+ case 2: -+ *((long *) to) = *((long *) from); -+ break; -+ default: -+ unexec_error ("unknown reloc length %d seen during unexec()", -+ 0, ri->r_length); -+ break; -+ } -+#else /* sparc */ -+ switch (ri->r_type) -+ { -+ case RELOC_8: -+ case RELOC_DISP8: -+ *((char *) to) = *((char *) from); -+ break; -+ case RELOC_16: -+ case RELOC_DISP16: -+ *((short *) to) = *((short *) from); -+ break; -+ case RELOC_LO10: -+ case RELOC_13: -+ case RELOC_22: -+ case RELOC_HI22: -+ case RELOC_WDISP22: -+ case RELOC_WDISP30: -+ case RELOC_32: -+ case RELOC_DISP32: -+ case RELOC_GLOB_DAT: -+ *((long *) to) = *((long *) from); -+ break; -+ case RELOC_JMP_SLOT: -+ { -+ long *target = (long *) to; -+ long *source = (long *) from; -+ *target = *source; -+ target++; -+ source++; -+ *target = *source; -+ target++; -+ source++; -+ *target = *source; -+ } -+ break; -+ default: -+ unexec_error ("unknown reloc type %d seen during unexec()", -+ 0, ri->r_type); -+ break; -+ } -+#endif /* sparc */ -+} -+ -+static void -+reset_symtab (struct nlist *start, struct nlist *end, char *strtab, -+ long edata_value, long end_value, int shlib_image) -+{ -+ struct nlist *tmp = start; -+ int found_edata = 0; -+ int found_end = 0; -+ -+ while (tmp < end) -+ { -+ int type = tmp->n_type; -+ -+ if ((type == (N_UNDF | N_EXT)) && -+ (tmp->n_value != 0)) -+ unexec_error ("unexec'ing image has COMMON symbols in it -- we quit!", -+ 0); -+ -+ if (!(type & N_STAB)) -+ { -+ if (!found_edata && -+ (type == (N_EXT | N_DATA)) && -+ tmp->n_un.n_strx && -+ !strcmp ("_edata", strtab + tmp->n_un.n_strx)) -+ { -+ tmp->n_value = edata_value; -+ found_edata = 1; -+ } -+ -+ -+ if ((type & N_TYPE) == N_BSS) -+ { -+ if (!found_end && -+ (type == (N_EXT | N_BSS)) && -+ tmp->n_un.n_strx && -+ !strcmp ("_end", strtab + tmp->n_un.n_strx)) -+ { -+ tmp->n_value = end_value; -+ found_end = 1; -+ } -+ else if (type & N_EXT) -+ tmp->n_type = N_DATA | N_EXT; -+ else -+ tmp->n_type = N_DATA; -+ } -+ -+ /* the way things are being handled here, having sbrk() in the -+ image is fatal for an image linked with shared lib's (although -+ the code could be modified to support it), but this should -+ never happen anyway */ -+ if (shlib_image && -+ (type == (N_EXT | N_TEXT)) && -+ tmp->n_un.n_strx && -+ !strcmp ("_sbrk", strtab + tmp->n_un.n_strx)) -+ unexec_error ("unexec'd shlib image has sbrk() in it -- we quit!", -+ 0); -+ } -+ -+ tmp++; -+ } -+} -+ -+static void -+reset_ldso_symtab (struct nzlist *start, struct nzlist *end, char *strtab, -+ long edata_value, long end_value, int shlib_image) -+{ -+ struct nzlist *tmp = start; -+ int found_edata = 0; -+ int found_end = 0; -+ -+ while (tmp < end) { -+ int type = tmp->nz_type; -+/* -+ * the following code breaks under FreeBSD-1.1-BETA, but everything -+ * seems to work perfectly if it's commented out. This did not break -+ * anything until the changes to ld.so were made. -+ */ -+/* -+ if ((type == (N_UNDF | N_EXT)) && (tmp->nz_value != 0)) -+ unexec_error("unexec'ing image has COMMON symbols in rel -- we quit!",0); -+*/ -+ if (!(type & N_STAB)) { -+ if (!found_edata && -+ (type == (N_EXT | N_DATA)) && -+ !strcmp ("_edata", strtab + tmp->nz_strx)) { -+ tmp->nz_value = edata_value; -+ found_edata = 1; -+ } -+ -+ if ((type & N_TYPE) == N_BSS) { -+ if (!found_end && -+ (type == (N_EXT | N_BSS)) && -+ !strcmp ("_end", strtab + tmp->nz_strx)) { -+ tmp->nz_value = end_value; -+ found_end = 1; -+ } else if (type & N_EXT) -+ tmp->nz_type = N_DATA | N_EXT; -+ else -+ tmp->nz_type = N_DATA; -+ } -+ -+ /* the way things are being handled here, having sbrk() in the -+ image is fatal for an image linked with shared lib's (although -+ the code could be modified to support it), but this should -+ never happen anyway */ -+ if (shlib_image && -+ (type == (N_EXT | N_TEXT)) && -+ !strcmp ("_sbrk", strtab + tmp->nz_strx)) -+ unexec_error("unexec'd shlib image has sbrk() ref -- we quit!", 0); -+ } -+ tmp++; -+ } -+} -+ -+extern int getpagesize (void); -+ -+/* -+ * EXPORTED FUNCTIONS -+ */ -+ -+/* this has to be a global variable to prevent the optimizers from -+ * assuming that it can not be 0. -+*/ -+static void *dynamic_addr = (void *) &_DYNAMIC; -+ -+int -+unexec (char *new_name, char *old_name, -+ unsigned int emacs_edata, unsigned int dummy1, unsigned int dummy2) -+{ -+ /* ld.so data */ -+ struct _dynamic *ld = 0; -+ struct section_dispatch_table *ld2 = 0; -+ /* old and new state */ -+ int old_fd; -+ int new_fd; -+ caddr_t old_base_addr; -+ caddr_t new_base_addr; -+ struct exec old_hdr; -+ struct exec new_hdr; -+ struct stat old_buf; -+ struct stat new_buf; -+ /* some process specific "constants" */ -+ unsigned long n_pagsiz, new_edata; -+ long page_size = getpagesize (); -+ caddr_t plt_end; -+ caddr_t current_break = (caddr_t) sbrk (0); -+ -+ if (!page_size) -+ unexec_error ("unexec() failed because we can't get the size of a page!", -+ 0); -+ -+ /* see if this is a -Bdynamic image -- if so, find ld.so structures */ -+ if (dynamic_addr) -+ { -+ ld = (struct _dynamic *) dynamic_addr; -+ ld2 = ld->d_un.d_sdt; -+ if (ld->d_version < LD_VERSION_BSD) -+ unexec_error ("%s linked with obsolete version of ld -- we quit!", -+ 0, old_name); -+ } -+ -+ /* open the old and new files, figuring out how big the old one is -+ so that we can map it in */ -+ old_fd = unexec_open (old_name, O_RDONLY, 0); -+ new_fd = unexec_open (new_name, O_RDWR | O_CREAT | O_TRUNC, 0666); -+ -+ /* setup the header and the statbuf for old_fd */ -+ unexec_read (old_fd, 0, (char *) &old_hdr, sizeof (old_hdr)); -+ unexec_fstat (old_fd, &old_buf); -+ -+ -+ /* set up some important constants */ -+ n_pagsiz = __LDPGSZ; -+ if (dynamic_addr) -+ plt_end = (caddr_t) MASK_UP (ld2->sdt_plt + ld2->sdt_plt_sz, sizeof (double)); -+ else -+ plt_end = (caddr_t) N_DATADDR (old_hdr); -+ -+#if 0 -+ /* never write protect the variable "environ", defined in /lib/crt0.o, and -+ set in process.c and callproc.c */ -+ mprotect_bottom_addr = ((unsigned long) &environ) + sizeof (char **); -+ /* never protect ABOVE the end of data emacs_edata specified */ -+ mprotect_top_addr = MIN (emacs_edata, N_DATADDR (old_hdr) + old_hdr.a_data); -+#endif -+ -+ /* Set up the image of the old file */ -+ old_base_addr = unexec_mmap (old_fd, old_buf.st_size, PROT_READ, -+ MAP_FILE | MAP_PRIVATE); -+ close (old_fd); -+ -+ /* set up the new exec */ -+ new_hdr = old_hdr; -+ new_edata = (unsigned long) MASK_UP (current_break, n_pagsiz); -+ new_hdr.a_data = new_edata - ((unsigned long) N_DATADDR (old_hdr)); -+ new_hdr.a_bss = 0; -+ -+ /* set up this variable, in case we want to reset "the break" -+ when restarting */ -+ sbrk_of_0_at_unexec = ((unsigned long) MASK_UP (current_break, n_pagsiz)); -+ -+ /* Write out the first approximation to the new file. The sizes of -+ each section will be correct, but there will be a number of -+ corrections that will need to be made. */ -+ { -+ long old_datoff = N_DATOFF (old_hdr); -+ long old_dataddr = N_DATADDR (old_hdr); -+ long new_treloff = N_RELOFF (new_hdr); -+ long old_treloff = N_RELOFF (old_hdr); -+ long ld_so_size = ((unsigned long) plt_end) - old_dataddr; -+ long real_data_size = current_break - plt_end; -+ long pad_size = -+ MASK_UP (current_break, n_pagsiz) - ((unsigned long) current_break); -+ -+ -+ /* First, write the text segment with new header -- copy everything until -+ the start of the data segment from the old file, and then go back and -+ write the new header. */ -+ unexec_write (new_fd, 0, old_base_addr, old_datoff + ld_so_size); -+ unexec_write (new_fd, 0, (char *) &new_hdr, sizeof (new_hdr)); -+ -+ /* Copy the rest of the data segment from the running image. */ -+ unexec_write (new_fd, old_datoff + ld_so_size, -+ plt_end, real_data_size); -+ -+ /* pad out the data segment */ -+ unexec_pad (new_fd, pad_size); -+ -+ /* Finally, copy the symbol table information from the old file. */ -+ unexec_write (new_fd, new_treloff, -+ old_base_addr + old_treloff, -+ old_buf.st_size - old_treloff); -+ } -+ -+ -+ /* Next, map in the output file so that we can jump around fixing it -+ up. We retain the old file so that we can refer to it. */ -+ unexec_fstat (new_fd, &new_buf); -+ new_base_addr = unexec_mmap (new_fd, -+ MASK_UP (new_buf.st_size, page_size), -+ PROT_READ | PROT_WRITE, -+ MAP_FILE | MAP_SHARED); -+ -+ -+ -+ /* We need to do 2 things. First, make sure that _edata and _end (and -+ hence, curbrk) are set to the correct values. At the same time, for -+ neatness and to help with debugging, mark all the types of all ld.so -+ and nm BSS symbols in the new file to be DATA, and make sure that -+ there are no COMMON symbols in the output file, as any references to -+ these can lose really big. Second, reset all of the ld.so "relocation -+ sites" in the new file to have the values that appear in the old file -+ -- the failure to do this was the biggest loser in the old version of -+ this code. */ -+ -+ /* STEP 1 */ -+ /* Reset the regular symbol table first. */ -+ reset_symtab ((struct nlist *) (new_base_addr + N_SYMOFF(new_hdr)), -+ (struct nlist *) (new_base_addr + N_SYMOFF(new_hdr) + -+ new_hdr.a_syms), -+ (char *) (new_base_addr + N_STROFF(new_hdr)), -+ new_edata, new_edata, -+ !!dynamic_addr); -+ -+ /* Now reset the ld.so symbol table. */ -+ if (dynamic_addr) -+ { -+ struct translation_struct ts; -+ struct relocation_info *tmp, *end; -+ caddr_t syms, strings; -+ -+ /* set up the structure that we use to translate addresses in the -+ old file into file offsets */ -+ ts.txtaddr = N_TXTADDR (old_hdr); -+ ts.txtoff = N_TXTOFF (old_hdr); -+ ts.dataddr = N_DATADDR (old_hdr); -+ ts.datoff = N_DATOFF (old_hdr); -+ ts.bssaddr = N_DATADDR (old_hdr) + old_hdr.a_data; -+ ts.endaddr = ts.bssaddr + old_hdr.a_bss; -+ -+ syms = new_base_addr + unexec_addr_to_offset(ld2->sdt_nzlist, &ts); -+ strings = new_base_addr + unexec_addr_to_offset(ld2->sdt_strings, &ts); -+ reset_ldso_symtab ((struct nzlist *) syms, (struct nzlist *) strings, -+ (char *) strings, -+ new_edata, new_edata, -+ !!dynamic_addr); -+ -+ /* STEP 2 */ -+ tmp = (struct relocation_info *) -+ (old_base_addr + unexec_addr_to_offset(ld2->sdt_rel, &ts)); -+ end = (struct relocation_info *) -+ (old_base_addr + unexec_addr_to_offset(ld2->sdt_hash, &ts)); -+ while (tmp < end) -+ { -+ copy_relocation_site (tmp, old_base_addr, new_base_addr, &ts); -+ tmp++; -+ } -+ } -+ -+ /* get rid of the mmap-ed file space and make the output file -+ executable -- then quit */ -+ munmap (new_base_addr, MASK_UP (new_buf.st_size, page_size)); -+ munmap (old_base_addr, MASK_UP (old_buf.st_size, page_size)); -+ unexec_fchmod (new_fd, 0755); -+ close (new_fd); -+ return 0; -+} -+ -+ -+int -+run_time_remap (char *dummy) -+{ -+ unsigned long current_sbrk = (unsigned long) sbrk (0); -+ -+ if (sbrk_of_0_at_unexec > current_sbrk) -+ { -+ errno = 0; -+ if (brk ((caddr_t) sbrk_of_0_at_unexec)) -+ fprintf (stderr, "failed to change brk addr to 0x%lx: %s\n", -+ sbrk_of_0_at_unexec, SYS_ERR); -+ } -+ -+ return 0; -+} diff --git a/japanese/emacs-emcws/files/patch-ai b/japanese/emacs-emcws/files/patch-ai deleted file mode 100644 index 1ae2376d3fed..000000000000 --- a/japanese/emacs-emcws/files/patch-ai +++ /dev/null @@ -1,17 +0,0 @@ ---- src/unexelf.c.orig Mon Aug 10 11:33:12 1998 -+++ src/unexelf.c Sun Jan 3 20:54:08 1999 -@@ -512,6 +512,14 @@ - # include <link.h> /* get ElfW etc */ - #endif - -+#ifdef __FreeBSD__ -+# ifdef __STDC__ -+# define ElfW(type) Elf_##type -+# else -+# define ElfW(type) Elf_/**/type -+# endif -+#endif -+ - #ifndef ElfW - # ifdef __STDC__ - # define ElfW(type) Elf32_##type diff --git a/japanese/emacs-emcws/files/patch-aj b/japanese/emacs-emcws/files/patch-aj deleted file mode 100644 index b11a244c6e41..000000000000 --- a/japanese/emacs-emcws/files/patch-aj +++ /dev/null @@ -1,31 +0,0 @@ ---- src/m/alpha.h.orig Wed Oct 29 16:47:37 1997 -+++ src/m/alpha.h Sun Jan 3 20:05:49 1999 -@@ -239,7 +239,7 @@ - - #ifndef NOT_C_CODE - /* We need these because pointers are larger than the default ints. */ --#if !defined(__NetBSD__) && !defined(__OpenBSD__) -+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) - #include <alloca.h> - #else - #include <stdlib.h> -@@ -308,7 +308,8 @@ - termio and struct termios are mutually incompatible. */ - #define NO_TERMIO - --#if defined (LINUX) || defined (__NetBSD__) || defined (__OpenBSD__) -+#if defined (LINUX) || \ -+ defined(__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) - # define TEXT_END ({ extern int _etext; &_etext; }) - # ifndef __ELF__ - # define COFF -@@ -316,7 +317,8 @@ - # endif /* notdef __ELF__ */ - #endif - --#if (defined (__NetBSD__) || defined (__OpenBSD__)) && defined (__ELF__) -+#if (defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)) \ -+ && defined (__ELF__) - #define HAVE_TEXT_START - #endif - diff --git a/japanese/emacs-emcws/files/patch-ca b/japanese/emacs-emcws/files/patch-ca deleted file mode 100644 index a9b1ff49de2e..000000000000 --- a/japanese/emacs-emcws/files/patch-ca +++ /dev/null @@ -1,31 +0,0 @@ ---- src/Makefile.in.orig Sat Mar 11 12:49:45 2000 -+++ src/Makefile.in Sat Mar 11 12:52:04 2000 -@@ -126,6 +126,10 @@ - #define LIBS_MACHINE - #endif - -+#ifndef LIBS_XPG -+#define LIBS_XPG -+#endif -+ - #ifndef LIB_MATH - # ifdef LISP_FLOAT_TYPE - # define LIB_MATH -lm -@@ -579,7 +583,7 @@ - #define LIBS_TERMCAP - termcapobj = termcap.o tparam.o - #else /* LIBS_TERMCAP */ --termcapobj = tparam.o -+termcapobj = terminfo.o - #endif /* LIBS_TERMCAP */ - #endif /* ! defined (TERMINFO) */ - -@@ -864,7 +868,7 @@ - duplicated symbols. If the standard libraries were compiled - with GCC, we might need gnulib again after them. */ - LIBES = $(LOADLIBES) $(LDLIBS) $(LIBX) LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \ -- LIBS_MULE LIBS_DEBUG $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR) -+ LIBS_XPG LIBS_MULE LIBS_DEBUG $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR) - - /* Enable recompilation of certain other files depending on system type. */ - diff --git a/japanese/emacs-emcws/files/patch-cb b/japanese/emacs-emcws/files/patch-cb deleted file mode 100644 index 28e6f9f1ae15..000000000000 --- a/japanese/emacs-emcws/files/patch-cb +++ /dev/null @@ -1,34 +0,0 @@ ---- src/s/freebsd.h.orig Tue Apr 13 03:22:12 1999 -+++ src/s/freebsd.h Sat Jul 24 01:30:10 1999 -@@ -45,6 +45,13 @@ - #define LIBS_SYSTEM -lutil - #define LIBS_TERMCAP -ltermcap - -+/* Use XPG4 Library for FreeBSD */ -+#if __FreeBSD_version >= 220000 -+#ifdef USE_XPG -+#define LIBS_XPG -lxpg4 -+#endif -+#endif -+ - #define SYSV_SYSTEM_DIR - - /* freebsd has POSIX-style pgrp behavior. */ -@@ -54,9 +61,16 @@ - #ifdef __ELF__ - - #define LD_SWITCH_SYSTEM -+ -+#ifdef __alpha__ -+#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crtbegin.o -+#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o -+#else - #define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o --#define UNEXEC unexelf.o - #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o -+#endif -+ -+#define UNEXEC unexelf.o - #undef LIB_GCC - #define LIB_GCC - diff --git a/japanese/emacs-emcws/files/patch-cc b/japanese/emacs-emcws/files/patch-cc deleted file mode 100644 index 8202cf7c5e3a..000000000000 --- a/japanese/emacs-emcws/files/patch-cc +++ /dev/null @@ -1,36 +0,0 @@ ---- configure.in.orig Sat Mar 11 12:55:54 2000 -+++ configure.in Sat Mar 11 12:58:33 2000 -@@ -42,6 +42,9 @@ - AC_ARG_WITH(hesiod, - [ --with-hesiod support Hesiod to get the POP server host], - [AC_DEFINE(HESIOD)]) -+AC_ARG_WITH(xpg4, -+[ --with-xpg4 support XPG4 library on FreeBSD system], -+[AC_DEFINE(USE_XPG)]) - dnl - AC_ARG_WITH(wnn, - [ --with-wnn obsolete, same as --with-wnn4]) -@@ -179,6 +182,15 @@ - machine='' opsys='' unported=no - case "${canonical}" in - -+ ## FreeBSD ports -+ *-*-freebsd* ) -+ opsys=freebsd -+ case "${canonical}" in -+ alpha*-*-freebsd*) machine=alpha ;; -+ i[3456]86-*-freebsd*) machine=intel386 ;; -+ esac -+ ;; -+ - ## NetBSD ports - *-*-netbsd* ) - opsys=netbsd -@@ -985,7 +997,6 @@ - ;; - *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; - *-386bsd* ) opsys=386bsd ;; -- *-freebsd* ) opsys=freebsd ;; - *-nextstep* ) opsys=nextstep ;; - ## Otherwise, we'll fall through to the generic opsys code at the bottom. - esac diff --git a/japanese/emacs-emcws/files/patch-cd b/japanese/emacs-emcws/files/patch-cd deleted file mode 100644 index 9792250f67b9..000000000000 --- a/japanese/emacs-emcws/files/patch-cd +++ /dev/null @@ -1,12 +0,0 @@ ---- src/config.in.orig Sat Nov 21 09:00:30 1998 -+++ src/config.in Sat Nov 21 09:00:58 1998 -@@ -118,6 +118,9 @@ - /* Define to support using a Hesiod database to find the POP server. */ - #undef HESIOD - -+/* Define to support using a XPG4 library on FreeBSD system. */ -+#undef USE_XPG -+ - /* Some things figured out by the configure script, grouped as they are in - configure.in. */ - #ifndef _ALL_SOURCE /* suppress warning if this is pre-defined */ diff --git a/japanese/emacs-emcws/files/patch-cf b/japanese/emacs-emcws/files/patch-cf deleted file mode 100644 index d4273610df7a..000000000000 --- a/japanese/emacs-emcws/files/patch-cf +++ /dev/null @@ -1,10 +0,0 @@ ---- src/config.in.orig Sun Jul 16 13:11:42 2000 -+++ src/config.in Sun Jul 16 13:12:48 2000 -@@ -237,6 +237,7 @@ - #undef HAVE_GETCWD - #undef HAVE_SHUTDOWN - #undef HAVE_STRFTIME -+#undef HAVE_GETADDRINFO - #undef HAVE_GRANTPT - #undef HAVE_GETPT - diff --git a/japanese/emacs-emcws/files/patch-cg b/japanese/emacs-emcws/files/patch-cg deleted file mode 100644 index 1973aff47d10..000000000000 --- a/japanese/emacs-emcws/files/patch-cg +++ /dev/null @@ -1,149 +0,0 @@ ---- src/process.c-dist Fri Aug 14 22:51:44 1998 -+++ src/process.c Fri Jul 30 12:21:11 1999 -@@ -1,7 +1,18 @@ -+/* -+ * Locally hacked process.c to add ipv6 support. -wsr -+ * -+ * The configure.in file should define "HAVE_GETADDRINFO" if it is found -+ * in libc. -+ * -+ */ -+ - /* Asynchronous subprocess control for GNU Emacs. - Copyright (C) 1985, 86, 87, 88, 93, 94, 95, 96, 1998 - Free Software Foundation, Inc. - -+ ipv6 changes are -+ Copyright (C) 1999 Wolfgang S. Rupprecht -+ - This file is part of GNU Emacs. - - GNU Emacs is free software; you can redistribute it and/or modify -@@ -1808,15 +1819,22 @@ - { - Lisp_Object proc; - register int i; -+ -+#ifndef HAVE_GETADDRINFO - struct sockaddr_in address; - struct servent *svc_info; - struct hostent *host_info_ptr, host_info; - char *(addr_list[2]); - IN_ADDR numeric_addr; -- int s, outch, inch; -- char errstring[80]; -- int port; - struct hostent host_info_fixed; -+ int port; -+#else /* HAVE_GETADDRINFO */ -+ struct addrinfo hints, *res, *lres; -+ int ret = 0; -+ int xerrno = 0; -+ char *portstring, portbuf [128]; -+#endif /* HAVE_GETADDRINFO */ -+ int s = -1, outch, inch; - struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; - int retry = 0; - int count = specpdl_ptr - specpdl; -@@ -1829,6 +1847,22 @@ - GCPRO4 (name, buffer, host, service); - CHECK_STRING (name, 0); - CHECK_STRING (host, 0); -+ -+#ifdef HAVE_GETADDRINFO -+ /* -+ * caution: service can either be a string or int. -+ * Convert to a C string for later use by getaddrinfo. -+ */ -+ if (INTEGERP (service)) { -+ snprintf (portbuf, sizeof (portbuf), "%d", XINT (service)); -+ portstring = portbuf; -+ } -+ else -+ { -+ CHECK_STRING (service, 0); -+ portstring = XSTRING (service)->data; -+ } -+#else /* HAVE_GETADDRINFO */ - if (INTEGERP (service)) - port = htons ((unsigned short) XINT (service)); - else -@@ -1839,6 +1873,8 @@ - error ("Unknown service \"%s\"", XSTRING (service)->data); - port = svc_info->s_port; - } -+#endif /* HAVE_GETADDRINFO */ -+ - - /* Slow down polling to every ten seconds. - Some kernels have a bug which causes retrying connect to fail -@@ -1848,6 +1884,62 @@ - #endif - - #ifndef TERM -+#ifdef HAVE_GETADDRINFO /* We have a modern OS. -wsr */ -+ { -+ immediate_quit = 1; -+ QUIT; -+ memset(&hints, 0, sizeof(hints)); -+ hints.ai_flags = 0; -+ hints.ai_family = AF_UNSPEC; -+ hints.ai_socktype = SOCK_STREAM; -+ hints.ai_protocol = 0; -+ ret = getaddrinfo(XSTRING (host)->data, portstring, &hints, &res); -+ if (ret){ -+ error("%s/%s %s", XSTRING (host)->data, portstring, -+ gai_strerror(ret)); -+ } -+ immediate_quit = 0; -+ } -+ -+ for (lres = res; lres ; lres = lres->ai_next) { /* address loop */ -+ s = socket(lres->ai_family, lres->ai_socktype, lres->ai_protocol); -+ if (s < 0) -+ continue; -+ -+ /* Kernel bugs (on Ultrix at least) cause lossage (not just EINTR) -+ when connect is interrupted. So let's not let it get interrupted. -+ Note we do not turn off polling, because polling is only used -+ when not interrupt_input, and thus not normally used on the systems -+ which have this bug. On systems which use polling, there's no way -+ to quit if polling is turned off. */ -+ if (interrupt_input) -+ unrequest_sigio (); -+ -+ immediate_quit = 1; -+ QUIT; -+ -+ ret = connect(s, lres->ai_addr, lres->ai_addrlen); -+ if (ret){ -+ close(s); -+ s= -1; -+ continue; -+ } -+ -+ break; -+ } /* address loop */ -+ -+ freeaddrinfo(res); -+ if (s < 0) -+ { -+ if (interrupt_input) -+ request_sigio (); -+ -+ errno = xerrno; -+ report_file_error ("connection failed", -+ Fcons (host, Fcons (name, Qnil))); -+ } -+#else /* HAVE_GETADDRINFO */ -+ - while (1) - { - #ifdef TRY_AGAIN -@@ -1938,6 +2030,7 @@ - report_file_error ("connection failed", - Fcons (host, Fcons (name, Qnil))); - } -+#endif /* HAVE_GETADDRINFO */ - - immediate_quit = 0; diff --git a/japanese/emacs-emcws/files/patch-ch b/japanese/emacs-emcws/files/patch-ch deleted file mode 100644 index 4dd63d08857d..000000000000 --- a/japanese/emacs-emcws/files/patch-ch +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.in-dist Tue Jun 30 15:15:05 1998 -+++ configure.in Wed Jul 28 10:38:16 1999 -@@ -1613,7 +1613,7 @@ - rename closedir mkdir rmdir sysinfo \ - random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \ - strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \ --utimes setrlimit setpgid getcwd shutdown strftime) -+utimes setrlimit setpgid getcwd shutdown strftime getaddrinfo) - - # Check this now, so that we will NOT find the above functions in ncurses. - # That is because we have not set up to link ncurses in lib-src. diff --git a/japanese/emacs-emcws/files/patch-da b/japanese/emacs-emcws/files/patch-configure.in index 6b265eec285d..8412683f9d91 100644 --- a/japanese/emacs-emcws/files/patch-da +++ b/japanese/emacs-emcws/files/patch-configure.in @@ -1,6 +1,6 @@ ---- configure.in.orig Fri Feb 22 15:50:26 2002 -+++ configure.in Fri Feb 22 15:55:10 2002 -@@ -35,18 +35,26 @@ +--- configure.in.orig Wed Apr 10 16:53:13 2002 ++++ configure.in Wed Apr 10 16:54:43 2002 +@@ -36,18 +36,26 @@ dnl A case that the LEIM package does not exist. dnl locallisppath='${datadir}/emacs/${version}$(EMACS_POSTFIX)/site-lisp:'\ @@ -31,3 +31,35 @@ docdir='${datadir}/emacs/${version}$(EMACS_POSTFIX)/etc' AC_ARG_WITH(gcc, +@@ -224,6 +232,15 @@ + machine='' opsys='' unported=no + case "${canonical}" in + ++ ## FreeBSD ports ++ *-*-freebsd* ) ++ opsys=freebsd ++ case "${canonical}" in ++ alpha*-*-freebsd*) machine=alpha ;; ++ i[3456]86-*-freebsd*) machine=intel386 ;; ++ esac ++ ;; ++ + ## NetBSD ports + *-*-netbsd* ) + opsys=netbsd +@@ -1069,7 +1086,6 @@ + ;; + *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; + *-386bsd* ) opsys=386bsd ;; +- *-freebsd* ) opsys=freebsd ;; + *-nextstep* ) opsys=nextstep ;; + ## Otherwise, we'll fall through to the generic opsys code at the bottom. + esac +@@ -2095,6 +2111,7 @@ + # Solaris requires -lintl if you want strerror (which calls dgettext) + # to return localized messages. + AC_CHECK_LIB(intl, dgettext) ++AC_CHECK_LIB(xpg4, _xpg4_setrunelocale) + + AC_MSG_CHECKING(whether localtime caches TZ) + AC_CACHE_VAL(emacs_cv_localtime_cache, diff --git a/japanese/emacs-emcws/files/patch-ah b/japanese/emacs-emcws/files/patch-lib-src:Makefile.in index 5a24e77c253b..4226f59f9f96 100644 --- a/japanese/emacs-emcws/files/patch-ah +++ b/japanese/emacs-emcws/files/patch-lib-src:Makefile.in @@ -1,15 +1,14 @@ ---- lib-src/Makefile.in.orig Sat Aug 1 20:22:55 1998 -+++ lib-src/Makefile.in Sat Feb 13 17:30:37 1999 -@@ -218,7 +218,7 @@ - LIBMAIL=-lmail - #endif +--- lib-src/Makefile.in.orig Wed Aug 30 02:12:42 2000 ++++ lib-src/Makefile.in Thu Oct 11 01:54:10 2001 +@@ -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 = --LOADLIBES=LIBS_SYSTEM LIBS_MACHINE LIB_STANDARD_LIBSRC -+LOADLIBES=LIBS_SYSTEM LIBS_MACHINE LIB_STANDARD_LIBSRC -lcompat - - /* We need to #define emacs to get the right versions of some files. - Some other files - those shared with other GNU utilities - need -@@ -278,7 +278,7 @@ +@@ -278,7 +279,7 @@ if [ `(cd ${archlibdir} && /bin/pwd)` \ != `(cd ${srcdir} && /bin/pwd)` ]; then \ for file in ${SCRIPTS}; do \ @@ -18,7 +17,7 @@ done ; \ fi -@@ -290,7 +290,7 @@ +@@ -290,7 +291,7 @@ chmod a+rx ${bindir}/$${file}; \ done for file in ${INSTALLABLE_SCRIPTS} ; do \ @@ -26,4 +25,3 @@ + $(INSTALL_SCRIPT) ${srcdir}/$${file} ${bindir}/$${file} ; \ chmod a+rx ${bindir}/$${file}; \ done - diff --git a/japanese/emacs-emcws/files/patch-lisp:Makefile.in b/japanese/emacs-emcws/files/patch-lisp:Makefile.in new file mode 100644 index 000000000000..b72eba25c7a6 --- /dev/null +++ b/japanese/emacs-emcws/files/patch-lisp:Makefile.in @@ -0,0 +1,29 @@ +--- lisp/Makefile.in.orig Wed Apr 10 17:50:14 2002 ++++ lisp/Makefile.in Wed Apr 10 17:53:38 2002 +@@ -91,7 +91,25 @@ + $(lisp)/term/vt420.el \ + $(lisp)/term/wyse50.el \ + $(lisp)/term/xterm.el \ +- $(lisp)/version.el ++ $(lisp)/version.el \ ++ $(lisp)/busyu.el \ ++ $(lisp)/can-n-egg.el \ ++ $(lisp)/canna.el \ ++ $(lisp)/egg-jsymbol.el \ ++ $(lisp)/egg-keymap.el \ ++ $(lisp)/egg.el \ ++ $(lisp)/isearch-ext.el \ ++ $(lisp)/its/han-kata.el \ ++ $(lisp)/its/hankaku.el \ ++ $(lisp)/its/hira.el \ ++ $(lisp)/its/kanainput.el \ ++ $(lisp)/its/kata.el \ ++ $(lisp)/its/zenkaku.el \ ++ $(lisp)/mule-inst.el \ ++ $(lisp)/sj3-client.el \ ++ $(lisp)/sj3-egg.el \ ++ $(lisp)/wnn-client.el \ ++ $(lisp)/wnn-egg.el + + # Files to compile before others during a bootstrap. This is done to + # speed up the bootstrap process. The CC files are compiled first diff --git a/japanese/emacs-emcws/files/patch-ea b/japanese/emacs-emcws/files/patch-lisp:help.el index 6d88c4506061..bafafe333db5 100644 --- a/japanese/emacs-emcws/files/patch-ea +++ b/japanese/emacs-emcws/files/patch-lisp:help.el @@ -1,6 +1,6 @@ ---- lisp/help.el.orig Wed Nov 28 20:55:37 2001 -+++ lisp/help.el Wed Nov 28 20:56:04 2001 -@@ -561,8 +561,8 @@ +--- lisp/help.el.orig Mon Oct 1 16:01:24 2001 ++++ lisp/help.el Wed Apr 10 16:55:14 2002 +@@ -593,8 +593,8 @@ (load (expand-file-name ;; fns-XX.YY.ZZ.el does not work on DOS filesystem. (if (eq system-type 'ms-dos) diff --git a/japanese/emacs21-emcws/files/patch-eb b/japanese/emacs-emcws/files/patch-lisp:loadup.el index 3b471abbd975..5f93219c9143 100644 --- a/japanese/emacs21-emcws/files/patch-eb +++ b/japanese/emacs-emcws/files/patch-lisp:loadup.el @@ -1,6 +1,6 @@ ---- lisp/loadup.el.orig Sun Dec 2 22:10:51 2001 -+++ lisp/loadup.el Sun Dec 2 22:12:10 2001 -@@ -246,7 +246,7 @@ +--- lisp/loadup.el.orig Wed Apr 10 16:53:14 2002 ++++ lisp/loadup.el Wed Apr 10 16:55:48 2002 +@@ -264,7 +264,7 @@ (if (memq system-type '(ms-dos windows-nt)) (setq name (expand-file-name (if (fboundp 'x-create-frame) "DOC-X" "DOC") "../etc")) @@ -9,9 +9,9 @@ (if (file-exists-p name) (delete-file name)) (copy-file (expand-file-name "../etc/DOC") name t)) -@@ -280,11 +280,11 @@ +@@ -300,11 +300,11 @@ (expand-file-name - (cond + (cond ((eq system-type 'ms-dos) - "../lib-src/fns.el") + "../lib-src/fnsemcws.el") diff --git a/japanese/emacs-emcws/files/patch-lisp:vc-hooks.el b/japanese/emacs-emcws/files/patch-lisp:vc-hooks.el new file mode 100644 index 000000000000..8675c85f9e37 --- /dev/null +++ b/japanese/emacs-emcws/files/patch-lisp:vc-hooks.el @@ -0,0 +1,24 @@ +--- lisp/vc-hooks.el.orig Mon Nov 12 23:37:38 2001 ++++ lisp/vc-hooks.el Tue Nov 13 12:56:08 2001 +@@ -475,10 +475,9 @@ + (if regexp + (concat (regexp-quote (file-name-nondirectory file)) + "\\.~[0-9.]+" (unless manual "\\.") "~") +- (expand-file-name (concat (file-name-nondirectory file) +- ".~" (or rev (vc-workfile-version file)) +- (unless manual ".") "~") +- (file-name-directory file)))) ++ (concat (make-backup-file-name-1 file) ++ ".~" (or rev (vc-workfile-version file)) ++ (unless manual ".") "~"))) + + (defun vc-delete-automatic-version-backups (file) + "Delete all existing automatic version backups for FILE." +@@ -509,6 +508,7 @@ + (vc-up-to-date-p file) + (eq (vc-checkout-model file) 'implicit) + (vc-call make-version-backups-p file) ++ vc-make-backup-files + (vc-make-version-backup file)))) + + (defun vc-after-save () diff --git a/japanese/emacs-emcws/files/patch-lisp_dired.el b/japanese/emacs-emcws/files/patch-lisp_dired.el new file mode 100644 index 000000000000..90081b072053 --- /dev/null +++ b/japanese/emacs-emcws/files/patch-lisp_dired.el @@ -0,0 +1,19 @@ +--- lisp/dired.el.orig Sat Sep 22 01:41:58 2001 ++++ lisp/dired.el Wed Dec 5 20:06:04 2001 +@@ -1532,6 +1532,7 @@ + "\\|" yyyy s s "?" + "\\|" s "?" yyyy + "\\)")) ++ (freebsd-ja (concat s mm "/" dd s "\\(" HH:MM "\\|" s yyyy "\\)")) + (japanese + (concat mm k "?" s dd k "?" s "+" + "\\(" HH:MM "\\|" yyyy k "?" "\\)"))) +@@ -1543,7 +1544,7 @@ + ;; This avoids recognizing `jservice 10 1024' as a date in the line: + ;; drwxr-xr-x 3 jservice 10 1024 Jul 2 1997 esg-host + (concat ".*[0-9][kMGTPEZY]?" +- s "\\(" western "\\|" japanese "\\|" iso "\\)" s)) ++ s "\\(" western "\\|" freebsd-ja "\\|" japanese "\\|" iso "\\)" s)) + "Regular expression to match up to the file name in a directory listing. + The default value is designed to recognize dates and times + regardless of the language.") diff --git a/japanese/emacs-emcws/files/patch-man:Makefile.in b/japanese/emacs-emcws/files/patch-man:Makefile.in new file mode 100644 index 000000000000..23e59c2673f6 --- /dev/null +++ b/japanese/emacs-emcws/files/patch-man:Makefile.in @@ -0,0 +1,11 @@ +--- man/Makefile.in.orig Thu Apr 26 02:17:33 2001 ++++ man/Makefile.in Mon Oct 22 20:43:45 2001 +@@ -31,7 +31,7 @@ + + + # The makeinfo program is part of the Texinfo distribution. +-MAKEINFO = makeinfo ++MAKEINFO = makeinfo --no-split + 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 \ diff --git a/japanese/emacs-emcws/files/patch-src:m:alpha.h b/japanese/emacs-emcws/files/patch-src:m:alpha.h new file mode 100644 index 000000000000..080a33650114 --- /dev/null +++ b/japanese/emacs-emcws/files/patch-src:m:alpha.h @@ -0,0 +1,11 @@ +--- src/m/alpha.h.orig Mon Oct 2 23:30:39 2000 ++++ src/m/alpha.h Wed Feb 13 09:05:57 2002 +@@ -198,7 +198,7 @@ + + #ifndef NOT_C_CODE + /* We need these because pointers are larger than the default ints. */ +-#if !defined(__NetBSD__) && !defined(__OpenBSD__) ++#if !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) + #include <alloca.h> + #endif + diff --git a/japanese/emacs-emcws/files/patch-src:s:freebsd.h b/japanese/emacs-emcws/files/patch-src:s:freebsd.h new file mode 100644 index 000000000000..2eb9ea8823ee --- /dev/null +++ b/japanese/emacs-emcws/files/patch-src:s:freebsd.h @@ -0,0 +1,14 @@ +--- src/s/freebsd.h.orig Tue Feb 20 19:52:17 2001 ++++ src/s/freebsd.h Mon Feb 18 11:51:50 2002 +@@ -68,6 +68,11 @@ + #define LIBS_SYSTEM -lutil + #if __FreeBSD_version < 400000 + #define LIBS_TERMCAP -ltermcap ++#else ++#ifdef HAVE_LIBNCURSES ++#define TERMINFO ++#define LIBS_TERMCAP -lncurses ++#endif + #endif + + #define SYSV_SYSTEM_DIR diff --git a/japanese/emacs-emcws/files/site-init.el.tmpl b/japanese/emacs-emcws/files/site-init.el.tmpl index 364b9d3e8e1c..aff4abda29ad 100644 --- a/japanese/emacs-emcws/files/site-init.el.tmpl +++ b/japanese/emacs-emcws/files/site-init.el.tmpl @@ -1,7 +1,7 @@ ;;; site-init.el -- site-dependent initialization file ;; -;; Init file for FreeBSD port: emacs20-emcws +;; Init file for FreeBSD port: emacs21-emcws ;; ; change a default file name of the internal DOC-string. diff --git a/japanese/emacs-emcws/pkg-message b/japanese/emacs-emcws/pkg-message deleted file mode 100644 index 70079d6ff153..000000000000 --- a/japanese/emacs-emcws/pkg-message +++ /dev/null @@ -1,14 +0,0 @@ -**************************************************************************** - NOTE: Warning message about locale. - - This binary is not linked with libxpg4 shared library by default. - If your LANG environment variable has a value but "C", the following - warning message may be displayed: - - Warning: locale not supported by C library, locale unchanged - - If you complain about this message, type `make install WITH_XPG4=yes' - at the "${PORTSDIR}/japanese/emacs20-emcws" directory to re-make - this package. - -**************************************************************************** diff --git a/japanese/emacs-emcws/pkg-plist b/japanese/emacs-emcws/pkg-plist index be3cbe1c9e09..091318cf7f5c 100644 --- a/japanese/emacs-emcws/pkg-plist +++ b/japanese/emacs-emcws/pkg-plist @@ -2,8 +2,6 @@ bin/emcws-%%EMACS_VER%% bin/emcws libexec/emacs/%%EMACS_VER%%/%%EMACS_ARCH%%/fns-emcws-%%EMACS_VER%%.1.el share/emacs/%%EMACS_VER%%-emcws/etc/%%DOC_FILE%% -share/emacs/%%EMACS_VER%%-emcws/lisp/ange-ftp.el -share/emacs/%%EMACS_VER%%-emcws/lisp/ange-ftp.elc share/emacs/%%EMACS_VER%%-emcws/lisp/busyu.el share/emacs/%%EMACS_VER%%-emcws/lisp/can-n-egg.el share/emacs/%%EMACS_VER%%-emcws/lisp/canna.el diff --git a/japanese/emacs21-emcws/Makefile b/japanese/emacs21-emcws/Makefile index a18087c2bc88..fc43e9b50c0e 100644 --- a/japanese/emacs21-emcws/Makefile +++ b/japanese/emacs21-emcws/Makefile @@ -1,14 +1,12 @@ # New ports collection makefile for: GNU emacs -# Version required: 20.7 -# Date created: 08 Oct. 2000 +# Date created: 10 Apr. 2002 # Whom: NAKAJI Hiroyuki <nakaji@jp.freebsd.org> # # $FreeBSD$ # PORTNAME= emcws -PORTVERSION= 20.7 -PORTREVISION= 2 +PORTVERSION= 21.2 CATEGORIES= japanese editors ipv6 MASTER_SITES= ${MASTER_SITE_GNU} MASTER_SITE_SUBDIR= emacs @@ -16,20 +14,20 @@ DISTNAME= emacs-${PORTVERSION} PATCH_SITES= ftp://ftp.ki.nu/pub/emcws/ \ ftp://ftp.jpl.org/pub/misc/ -PATCHFILES= emcws-${EMACS_VER}-20020208.gz +PATCHFILES= emcws-${EMACS_VER}-20020317.gz PATCH_DIST_STRIP= -p1 MAINTAINER= nakaji@jp.freebsd.org Y2K= http://www.gnu.org/software/year2000.html -BUILD_DEPENDS= emacs-${EMACS_VER}:${PORTSDIR}/editors/emacs20 +BUILD_DEPENDS= emacs-${EMACS_VER}:${PORTSDIR}/editors/emacs21 WRKSRC= ${WRKDIR}/emacs-${EMACS_VER} USE_AUTOCONF= YES USE_GMAKE= YES -EMACS_VER= 20.7 +EMACS_VER= 21.2 # Change these as you like. USE_WNN6?= YES @@ -100,8 +98,7 @@ EMCWS_ELCS= busyu.el \ wnn-egg.el \ wnn-egg.elc -MULE_PATCHED_ELS= ange-ftp.el ange-ftp.elc \ - help.el help.elc \ +MULE_PATCHED_ELS= help.el help.elc \ international/ccl.el international/mule-cmds.el \ international/mule-conf.el international/mule.el \ international/titdic-cnv.el \ @@ -131,11 +128,13 @@ pre-fetch: pre-build: find ${WRKSRC} \( -name \*.orig -o -name \*~ \) -exec ${RM} -f \{} \; ${RM} -rf ${WRKSRC}/info/* + @(cd ${WRKSRC}/src/../lisp; \ + ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} compile-files EMACS=${LOCALBASE}/bin/emacs-21.2) @(cd ${WRKSRC}/src; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} emacs) @(cd ${WRKSRC}/src/../lisp; \ ${WRKSRC}/src/emacs -batch -q -f batch-byte-compile \ egg.el wnn-egg.el \ - ange-ftp.el help.el international/ccl.el international/mule-cmds.el \ + help.el international/ccl.el international/mule-cmds.el \ international/mule.el international/titdic-cnv.el) ${RM} -f ${WRKSRC}/src/emacs ${WRKSRC}/src/emacs-${EMACS_VER}.1 ${RM} -f ${WRKSRC}/etc/${DOC_FILE} @@ -177,7 +176,4 @@ do-install: > ${PREFIX}/share/emacs/${EMACS_VER}-emcws/lisp/subdirs.el ; \ fi -post-install: - @${CAT} ${PKGMESSAGE} - .include <bsd.port.mk> diff --git a/japanese/emacs21-emcws/distinfo b/japanese/emacs21-emcws/distinfo index 4635c4a8126d..314abb7645b7 100644 --- a/japanese/emacs21-emcws/distinfo +++ b/japanese/emacs21-emcws/distinfo @@ -1,2 +1,2 @@ -MD5 (emacs-20.7.tar.gz) = c732cf5e668d4ac67d9418ecb103ecf5 -MD5 (emcws-20.7-20020208.gz) = 750b2df254aed3b6775755ffc277f989 +MD5 (emacs-21.2.tar.gz) = f4b58e5c2d923fc92495e0c2f167c5db +MD5 (emcws-21.2-20020317.gz) = b762e090c52b8ac30fad66ab77023aa4 diff --git a/japanese/emacs21-emcws/files/patch-Makefile.in b/japanese/emacs21-emcws/files/patch-Makefile.in new file mode 100644 index 000000000000..63b440560094 --- /dev/null +++ b/japanese/emacs21-emcws/files/patch-Makefile.in @@ -0,0 +1,17 @@ +--- Makefile.in.orig Thu Mar 7 00:13:23 2002 ++++ Makefile.in Thu Mar 7 00:14:30 2002 +@@ -348,14 +348,6 @@ + ## as a workaround for a bug in tar on Ultrix 4.2. + install-arch-indep: mkdir info + -set ${COPYDESTS} ; \ +- unset CDPATH; \ +- for dir in ${COPYDIR} ; do \ +- if [ `(cd $$1 && /bin/pwd)` != `(cd $${dir} && /bin/pwd)` ] ; then \ +- rm -rf $$1 ; \ +- fi ; \ +- shift ; \ +- done +- -set ${COPYDESTS} ; \ + mkdir ${COPYDESTS} ; \ + chmod ugo+rx ${COPYDESTS} ; \ + unset CDPATH; \ diff --git a/japanese/emacs21-emcws/files/patch-af b/japanese/emacs21-emcws/files/patch-af deleted file mode 100644 index f2013a374044..000000000000 --- a/japanese/emacs21-emcws/files/patch-af +++ /dev/null @@ -1,695 +0,0 @@ ---- src/unexfreebsd.c.orig Wed Dec 3 17:28:14 1997 -+++ src/unexfreebsd.c Wed Dec 3 17:34:02 1997 -@@ -0,0 +1,692 @@ -+/* Code to do an unexec for FreeBSD for a temacs linked -Bdynamic. -+ Derived from unexnetbsd.c, which was derived from unexsunos4.c -+ Copyright (C) 1992, 1993 Free Software Foundation, Inc. -+ -+This file is part of XEmacs. -+ -+XEmacs is free software; you can redistribute it and/or modify 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. -+ -+XEmacs 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 XEmacs; see the file COPYING. If not, write to -+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -+Boston, MA 02111-1307, USA. */ -+ -+/* Synched up with: Not in FSF? */ -+ -+/* -+Created 29-Oct-92 by Harlan Sexton -+Tweaked 06-Aug-93 by Dean Michaels to work with sun3. -+Converted 01-Dec-93 by Paul Mackerras to work with NetBSD shared libraries. -+Tweaked 26-Feb-94 by Shawn Carey for use with FreeBSD-1.1 shared libraries. -+*/ -+ -+/********************** Included .h Files **************************/ -+ -+#include <config.h> -+ -+#include <stdarg.h> -+#include <sys/param.h> -+#include <sys/mman.h> -+#include <sys/file.h> -+#include <sys/stat.h> -+#include <sys/types.h> -+#include <string.h> -+#include <stdio.h> -+#include <a.out.h> -+#include <unistd.h> -+#include <ctype.h> -+#include <stab.h> -+#include <dirent.h> -+#include <link.h> -+ -+/********************** Macros *************************************/ -+ -+#define SYS_ERR strerror(errno) -+ -+#define MASK_UP(x,p_of_two) \ -+ ((((unsigned long) (x)) + ((p_of_two) - 1)) & (~((p_of_two) - 1))) -+ -+#define MASK_DOWN(x,p_of_two) (((unsigned long) (x)) & (~((p_of_two) - 1))) -+ -+/********************** Typedefs and Structs ***********************/ -+ -+struct translation_struct -+{ -+ long txtaddr; -+ long txtoff; -+ long dataddr; -+ long datoff; -+ long bssaddr; -+ long endaddr; -+}; -+ -+/********************** Function Prototypes/Declarations ***********/ -+ -+static void unexec_error (const char *m, int use_errno, ...); -+static int unexec_open (char *filename, int flag, int mode); -+static caddr_t unexec_mmap (int fd, size_t len, int prot, int flags); -+static long unexec_seek (int fd, long position); -+static void unexec_read (int fd, long position, char *buf, int bytes); -+static void unexec_write (int fd, long position, char *buf, int bytes); -+static void unexec_pad (int fd, int bytes); -+static void unexec_fstat (int fd, struct stat *statptr); -+static void unexec_fchmod (int fd, int mode); -+static long unexec_addr_to_offset (long addr, struct translation_struct *ts); -+static void copy_relocation_site (struct relocation_info *ri, -+ caddr_t from_base_addr, -+ caddr_t to_base_addr, -+ struct translation_struct *ts); -+static void reset_symtab (struct nlist *start, struct nlist *end, -+ char *strtab, long edata_value, long end_value, -+ int shlib_image); -+static void reset_ldso_symtab (struct nzlist *start, struct nzlist *end, -+ char *strtab, long edata_value, long end_value, -+ int shlib_image); -+int run_time_remap (char *dummy); -+ -+/********************** Variables **********************************/ -+ -+/* for reporting error messages from system calls */ -+extern int errno; -+extern int _DYNAMIC; -+extern char **environ; -+ -+static unsigned long sbrk_of_0_at_unexec; -+ -+/*******************************************************************/ -+ -+static void -+unexec_error (const char *fmt, int use_errno, ...) -+{ -+ const char *err_msg = SYS_ERR; -+ va_list args; -+ -+ fprintf (stderr, "unexec - "); -+ va_start (args, use_errno); -+ vfprintf (stderr, fmt, args); -+ va_end (args); -+ -+ if (use_errno) -+ fprintf (stderr, ": %s", err_msg); -+ fprintf (stderr, "\n"); -+ exit (1); -+ return; -+} -+ -+static int -+unexec_open (char *filename, int flag, int mode) -+{ -+ int fd; -+ -+ errno = 0; -+ -+ fd = open (filename, flag, mode); -+ -+ if (fd < 0) -+ unexec_error ("Failure opening file %s", 1, filename); -+ return fd; -+} -+ -+static caddr_t -+unexec_mmap (int fd, size_t len, int prot, int flags) -+{ -+ caddr_t return_val; -+ -+ unexec_seek (fd, 0); -+ errno = 0; -+ return_val = mmap (0, len, prot, flags, fd, 0); -+ -+ if (return_val == (caddr_t) -1) -+ unexec_error ("Failure mmap'ing file", 1); -+ return return_val; -+} -+ -+ -+static long -+unexec_seek (int fd, long position) -+{ -+ long seek_value; -+ -+ if (fd <= 0) -+ unexec_error ("No file open in which to seek", 0); -+ -+ errno = 0; -+ -+ if (position < 0) -+ seek_value = (long) lseek (fd, 0, L_INCR); -+ else -+ seek_value = (long) lseek (fd, position, L_SET); -+ -+ if (seek_value < 0) -+ unexec_error ("Failed to do a seek to 0x%x in %s", 1, -+ position, "unexec() output file"); -+ -+ return seek_value; -+} -+ -+static void -+unexec_read (int fd, long position, char *buf, int bytes) -+{ -+ int n_read; -+ int remains = bytes; -+ position = unexec_seek (fd, position); -+ -+ if (bytes < 0) -+ unexec_error ("Attempted read of %d bytes", 0, bytes); -+ -+ errno = 0; -+ -+ while (remains > 0) -+ { -+ n_read = read (fd, buf, remains); -+ if (n_read <= 0) -+ unexec_error ("Read failed for 0x%x bytes at offset 0x%x in %s", -+ 1, bytes, position, "unexec() output file"); -+ buf += n_read; -+ remains -= n_read; -+ } -+ -+ return; -+} -+ -+static void -+unexec_write (int fd, long position, char *buf, int bytes) -+{ -+ int n_written; -+ int remains = bytes; -+ position = unexec_seek (fd, position); -+ -+ if (bytes < 0) -+ unexec_error ("Attempted write of %d bytes in %s", -+ 0, bytes, "unexec() output file"); -+ -+ errno = 0; -+ -+ while (remains > 0) -+ { -+ n_written = write (fd, buf, remains); -+ if (n_written <= 0) -+ unexec_error ("Write failed for 0x%x bytes at offset 0x%x in %s", -+ 1, bytes, position, "unexec() output file"); -+ buf += n_written; -+ remains -= n_written; -+ } -+ -+ return; -+} -+ -+static void -+unexec_pad (int fd, int bytes) -+{ -+ if (bytes > 0) -+ { -+ char buf[1024]; -+ int remaining = bytes; -+ -+ memset (buf, 0, sizeof (buf)); -+ -+ while (remaining > 0) -+ { -+ int this_write = (remaining > sizeof(buf))?sizeof(buf):remaining; -+ unexec_write (fd, -1, buf, this_write); -+ remaining -= this_write; -+ } -+ } -+} -+ -+static void -+unexec_fstat (int fd, struct stat *statptr) -+{ -+ errno = 0; -+ if (-1 == fstat (fd, statptr)) -+ unexec_error ("fstat() failed for descriptor %d", 1, fd); -+ return; -+} -+ -+static void -+unexec_fchmod (int fd, int mode) -+{ -+ errno = 0; -+ if (-1 == fchmod (fd, mode)) -+ unexec_error ("fchmod() failed for descriptor %d", 1, fd); -+ return; -+} -+ -+static long -+unexec_addr_to_offset (long addr, struct translation_struct *ts) -+ -+{ -+ if ((addr < ts->txtaddr) || (addr >= ts->bssaddr)) -+ return -1; -+ else if (addr >= ts->dataddr) -+ return ((long) ((addr - ts->dataddr) + ts->datoff)); -+ else -+ return ((long) ((addr - ts->txtaddr) + ts->txtoff)); -+} -+ -+ -+/* -+ * "LD.SO" DATA AND SYMBOL TABLE OPERATIONS -+ */ -+ -+static void -+copy_relocation_site (struct relocation_info *ri, -+ caddr_t from_base_addr, -+ caddr_t to_base_addr, -+ struct translation_struct *ts) -+{ -+ long offset; -+ caddr_t from, to; -+ -+ /* We can get relocation sites in the bss region, for objects whose -+ contents are copied from a shared library. We don't need or want -+ to restore these at present. */ -+#ifndef sparc -+ if (ri->r_copy) -+ return; -+#else -+ /* Struct relocation_info_sparc doesn't have member r_copy. -+ Instead, we use the address to check if this is run-time-copied. */ -+ if (ri->r_address >= ts->bssaddr && ri->r_address < ts->endaddr) -+ return; -+#endif -+ -+ offset = unexec_addr_to_offset (ri->r_address, ts); -+ if (offset == -1) -+ unexec_error ("bad relocation address 0x%x (0x%x)", 0, ri->r_address, -+ ((long *)ri)[1]); -+ -+ from = from_base_addr + offset; -+ to = to_base_addr + offset; -+ /* This stuff should be in a md_ file somewhere... */ -+#ifndef sparc -+ switch (ri->r_length) -+ { -+ case 0: -+ *((char *) to) = *((char *) from); -+ break; -+ case 1: -+ *((short *) to) = *((short *) from); -+ break; -+ case 2: -+ *((long *) to) = *((long *) from); -+ break; -+ default: -+ unexec_error ("unknown reloc length %d seen during unexec()", -+ 0, ri->r_length); -+ break; -+ } -+#else /* sparc */ -+ switch (ri->r_type) -+ { -+ case RELOC_8: -+ case RELOC_DISP8: -+ *((char *) to) = *((char *) from); -+ break; -+ case RELOC_16: -+ case RELOC_DISP16: -+ *((short *) to) = *((short *) from); -+ break; -+ case RELOC_LO10: -+ case RELOC_13: -+ case RELOC_22: -+ case RELOC_HI22: -+ case RELOC_WDISP22: -+ case RELOC_WDISP30: -+ case RELOC_32: -+ case RELOC_DISP32: -+ case RELOC_GLOB_DAT: -+ *((long *) to) = *((long *) from); -+ break; -+ case RELOC_JMP_SLOT: -+ { -+ long *target = (long *) to; -+ long *source = (long *) from; -+ *target = *source; -+ target++; -+ source++; -+ *target = *source; -+ target++; -+ source++; -+ *target = *source; -+ } -+ break; -+ default: -+ unexec_error ("unknown reloc type %d seen during unexec()", -+ 0, ri->r_type); -+ break; -+ } -+#endif /* sparc */ -+} -+ -+static void -+reset_symtab (struct nlist *start, struct nlist *end, char *strtab, -+ long edata_value, long end_value, int shlib_image) -+{ -+ struct nlist *tmp = start; -+ int found_edata = 0; -+ int found_end = 0; -+ -+ while (tmp < end) -+ { -+ int type = tmp->n_type; -+ -+ if ((type == (N_UNDF | N_EXT)) && -+ (tmp->n_value != 0)) -+ unexec_error ("unexec'ing image has COMMON symbols in it -- we quit!", -+ 0); -+ -+ if (!(type & N_STAB)) -+ { -+ if (!found_edata && -+ (type == (N_EXT | N_DATA)) && -+ tmp->n_un.n_strx && -+ !strcmp ("_edata", strtab + tmp->n_un.n_strx)) -+ { -+ tmp->n_value = edata_value; -+ found_edata = 1; -+ } -+ -+ -+ if ((type & N_TYPE) == N_BSS) -+ { -+ if (!found_end && -+ (type == (N_EXT | N_BSS)) && -+ tmp->n_un.n_strx && -+ !strcmp ("_end", strtab + tmp->n_un.n_strx)) -+ { -+ tmp->n_value = end_value; -+ found_end = 1; -+ } -+ else if (type & N_EXT) -+ tmp->n_type = N_DATA | N_EXT; -+ else -+ tmp->n_type = N_DATA; -+ } -+ -+ /* the way things are being handled here, having sbrk() in the -+ image is fatal for an image linked with shared lib's (although -+ the code could be modified to support it), but this should -+ never happen anyway */ -+ if (shlib_image && -+ (type == (N_EXT | N_TEXT)) && -+ tmp->n_un.n_strx && -+ !strcmp ("_sbrk", strtab + tmp->n_un.n_strx)) -+ unexec_error ("unexec'd shlib image has sbrk() in it -- we quit!", -+ 0); -+ } -+ -+ tmp++; -+ } -+} -+ -+static void -+reset_ldso_symtab (struct nzlist *start, struct nzlist *end, char *strtab, -+ long edata_value, long end_value, int shlib_image) -+{ -+ struct nzlist *tmp = start; -+ int found_edata = 0; -+ int found_end = 0; -+ -+ while (tmp < end) { -+ int type = tmp->nz_type; -+/* -+ * the following code breaks under FreeBSD-1.1-BETA, but everything -+ * seems to work perfectly if it's commented out. This did not break -+ * anything until the changes to ld.so were made. -+ */ -+/* -+ if ((type == (N_UNDF | N_EXT)) && (tmp->nz_value != 0)) -+ unexec_error("unexec'ing image has COMMON symbols in rel -- we quit!",0); -+*/ -+ if (!(type & N_STAB)) { -+ if (!found_edata && -+ (type == (N_EXT | N_DATA)) && -+ !strcmp ("_edata", strtab + tmp->nz_strx)) { -+ tmp->nz_value = edata_value; -+ found_edata = 1; -+ } -+ -+ if ((type & N_TYPE) == N_BSS) { -+ if (!found_end && -+ (type == (N_EXT | N_BSS)) && -+ !strcmp ("_end", strtab + tmp->nz_strx)) { -+ tmp->nz_value = end_value; -+ found_end = 1; -+ } else if (type & N_EXT) -+ tmp->nz_type = N_DATA | N_EXT; -+ else -+ tmp->nz_type = N_DATA; -+ } -+ -+ /* the way things are being handled here, having sbrk() in the -+ image is fatal for an image linked with shared lib's (although -+ the code could be modified to support it), but this should -+ never happen anyway */ -+ if (shlib_image && -+ (type == (N_EXT | N_TEXT)) && -+ !strcmp ("_sbrk", strtab + tmp->nz_strx)) -+ unexec_error("unexec'd shlib image has sbrk() ref -- we quit!", 0); -+ } -+ tmp++; -+ } -+} -+ -+extern int getpagesize (void); -+ -+/* -+ * EXPORTED FUNCTIONS -+ */ -+ -+/* this has to be a global variable to prevent the optimizers from -+ * assuming that it can not be 0. -+*/ -+static void *dynamic_addr = (void *) &_DYNAMIC; -+ -+int -+unexec (char *new_name, char *old_name, -+ unsigned int emacs_edata, unsigned int dummy1, unsigned int dummy2) -+{ -+ /* ld.so data */ -+ struct _dynamic *ld = 0; -+ struct section_dispatch_table *ld2 = 0; -+ /* old and new state */ -+ int old_fd; -+ int new_fd; -+ caddr_t old_base_addr; -+ caddr_t new_base_addr; -+ struct exec old_hdr; -+ struct exec new_hdr; -+ struct stat old_buf; -+ struct stat new_buf; -+ /* some process specific "constants" */ -+ unsigned long n_pagsiz, new_edata; -+ long page_size = getpagesize (); -+ caddr_t plt_end; -+ caddr_t current_break = (caddr_t) sbrk (0); -+ -+ if (!page_size) -+ unexec_error ("unexec() failed because we can't get the size of a page!", -+ 0); -+ -+ /* see if this is a -Bdynamic image -- if so, find ld.so structures */ -+ if (dynamic_addr) -+ { -+ ld = (struct _dynamic *) dynamic_addr; -+ ld2 = ld->d_un.d_sdt; -+ if (ld->d_version < LD_VERSION_BSD) -+ unexec_error ("%s linked with obsolete version of ld -- we quit!", -+ 0, old_name); -+ } -+ -+ /* open the old and new files, figuring out how big the old one is -+ so that we can map it in */ -+ old_fd = unexec_open (old_name, O_RDONLY, 0); -+ new_fd = unexec_open (new_name, O_RDWR | O_CREAT | O_TRUNC, 0666); -+ -+ /* setup the header and the statbuf for old_fd */ -+ unexec_read (old_fd, 0, (char *) &old_hdr, sizeof (old_hdr)); -+ unexec_fstat (old_fd, &old_buf); -+ -+ -+ /* set up some important constants */ -+ n_pagsiz = __LDPGSZ; -+ if (dynamic_addr) -+ plt_end = (caddr_t) MASK_UP (ld2->sdt_plt + ld2->sdt_plt_sz, sizeof (double)); -+ else -+ plt_end = (caddr_t) N_DATADDR (old_hdr); -+ -+#if 0 -+ /* never write protect the variable "environ", defined in /lib/crt0.o, and -+ set in process.c and callproc.c */ -+ mprotect_bottom_addr = ((unsigned long) &environ) + sizeof (char **); -+ /* never protect ABOVE the end of data emacs_edata specified */ -+ mprotect_top_addr = MIN (emacs_edata, N_DATADDR (old_hdr) + old_hdr.a_data); -+#endif -+ -+ /* Set up the image of the old file */ -+ old_base_addr = unexec_mmap (old_fd, old_buf.st_size, PROT_READ, -+ MAP_FILE | MAP_PRIVATE); -+ close (old_fd); -+ -+ /* set up the new exec */ -+ new_hdr = old_hdr; -+ new_edata = (unsigned long) MASK_UP (current_break, n_pagsiz); -+ new_hdr.a_data = new_edata - ((unsigned long) N_DATADDR (old_hdr)); -+ new_hdr.a_bss = 0; -+ -+ /* set up this variable, in case we want to reset "the break" -+ when restarting */ -+ sbrk_of_0_at_unexec = ((unsigned long) MASK_UP (current_break, n_pagsiz)); -+ -+ /* Write out the first approximation to the new file. The sizes of -+ each section will be correct, but there will be a number of -+ corrections that will need to be made. */ -+ { -+ long old_datoff = N_DATOFF (old_hdr); -+ long old_dataddr = N_DATADDR (old_hdr); -+ long new_treloff = N_RELOFF (new_hdr); -+ long old_treloff = N_RELOFF (old_hdr); -+ long ld_so_size = ((unsigned long) plt_end) - old_dataddr; -+ long real_data_size = current_break - plt_end; -+ long pad_size = -+ MASK_UP (current_break, n_pagsiz) - ((unsigned long) current_break); -+ -+ -+ /* First, write the text segment with new header -- copy everything until -+ the start of the data segment from the old file, and then go back and -+ write the new header. */ -+ unexec_write (new_fd, 0, old_base_addr, old_datoff + ld_so_size); -+ unexec_write (new_fd, 0, (char *) &new_hdr, sizeof (new_hdr)); -+ -+ /* Copy the rest of the data segment from the running image. */ -+ unexec_write (new_fd, old_datoff + ld_so_size, -+ plt_end, real_data_size); -+ -+ /* pad out the data segment */ -+ unexec_pad (new_fd, pad_size); -+ -+ /* Finally, copy the symbol table information from the old file. */ -+ unexec_write (new_fd, new_treloff, -+ old_base_addr + old_treloff, -+ old_buf.st_size - old_treloff); -+ } -+ -+ -+ /* Next, map in the output file so that we can jump around fixing it -+ up. We retain the old file so that we can refer to it. */ -+ unexec_fstat (new_fd, &new_buf); -+ new_base_addr = unexec_mmap (new_fd, -+ MASK_UP (new_buf.st_size, page_size), -+ PROT_READ | PROT_WRITE, -+ MAP_FILE | MAP_SHARED); -+ -+ -+ -+ /* We need to do 2 things. First, make sure that _edata and _end (and -+ hence, curbrk) are set to the correct values. At the same time, for -+ neatness and to help with debugging, mark all the types of all ld.so -+ and nm BSS symbols in the new file to be DATA, and make sure that -+ there are no COMMON symbols in the output file, as any references to -+ these can lose really big. Second, reset all of the ld.so "relocation -+ sites" in the new file to have the values that appear in the old file -+ -- the failure to do this was the biggest loser in the old version of -+ this code. */ -+ -+ /* STEP 1 */ -+ /* Reset the regular symbol table first. */ -+ reset_symtab ((struct nlist *) (new_base_addr + N_SYMOFF(new_hdr)), -+ (struct nlist *) (new_base_addr + N_SYMOFF(new_hdr) + -+ new_hdr.a_syms), -+ (char *) (new_base_addr + N_STROFF(new_hdr)), -+ new_edata, new_edata, -+ !!dynamic_addr); -+ -+ /* Now reset the ld.so symbol table. */ -+ if (dynamic_addr) -+ { -+ struct translation_struct ts; -+ struct relocation_info *tmp, *end; -+ caddr_t syms, strings; -+ -+ /* set up the structure that we use to translate addresses in the -+ old file into file offsets */ -+ ts.txtaddr = N_TXTADDR (old_hdr); -+ ts.txtoff = N_TXTOFF (old_hdr); -+ ts.dataddr = N_DATADDR (old_hdr); -+ ts.datoff = N_DATOFF (old_hdr); -+ ts.bssaddr = N_DATADDR (old_hdr) + old_hdr.a_data; -+ ts.endaddr = ts.bssaddr + old_hdr.a_bss; -+ -+ syms = new_base_addr + unexec_addr_to_offset(ld2->sdt_nzlist, &ts); -+ strings = new_base_addr + unexec_addr_to_offset(ld2->sdt_strings, &ts); -+ reset_ldso_symtab ((struct nzlist *) syms, (struct nzlist *) strings, -+ (char *) strings, -+ new_edata, new_edata, -+ !!dynamic_addr); -+ -+ /* STEP 2 */ -+ tmp = (struct relocation_info *) -+ (old_base_addr + unexec_addr_to_offset(ld2->sdt_rel, &ts)); -+ end = (struct relocation_info *) -+ (old_base_addr + unexec_addr_to_offset(ld2->sdt_hash, &ts)); -+ while (tmp < end) -+ { -+ copy_relocation_site (tmp, old_base_addr, new_base_addr, &ts); -+ tmp++; -+ } -+ } -+ -+ /* get rid of the mmap-ed file space and make the output file -+ executable -- then quit */ -+ munmap (new_base_addr, MASK_UP (new_buf.st_size, page_size)); -+ munmap (old_base_addr, MASK_UP (old_buf.st_size, page_size)); -+ unexec_fchmod (new_fd, 0755); -+ close (new_fd); -+ return 0; -+} -+ -+ -+int -+run_time_remap (char *dummy) -+{ -+ unsigned long current_sbrk = (unsigned long) sbrk (0); -+ -+ if (sbrk_of_0_at_unexec > current_sbrk) -+ { -+ errno = 0; -+ if (brk ((caddr_t) sbrk_of_0_at_unexec)) -+ fprintf (stderr, "failed to change brk addr to 0x%lx: %s\n", -+ sbrk_of_0_at_unexec, SYS_ERR); -+ } -+ -+ return 0; -+} diff --git a/japanese/emacs21-emcws/files/patch-ai b/japanese/emacs21-emcws/files/patch-ai deleted file mode 100644 index 1ae2376d3fed..000000000000 --- a/japanese/emacs21-emcws/files/patch-ai +++ /dev/null @@ -1,17 +0,0 @@ ---- src/unexelf.c.orig Mon Aug 10 11:33:12 1998 -+++ src/unexelf.c Sun Jan 3 20:54:08 1999 -@@ -512,6 +512,14 @@ - # include <link.h> /* get ElfW etc */ - #endif - -+#ifdef __FreeBSD__ -+# ifdef __STDC__ -+# define ElfW(type) Elf_##type -+# else -+# define ElfW(type) Elf_/**/type -+# endif -+#endif -+ - #ifndef ElfW - # ifdef __STDC__ - # define ElfW(type) Elf32_##type diff --git a/japanese/emacs21-emcws/files/patch-aj b/japanese/emacs21-emcws/files/patch-aj deleted file mode 100644 index b11a244c6e41..000000000000 --- a/japanese/emacs21-emcws/files/patch-aj +++ /dev/null @@ -1,31 +0,0 @@ ---- src/m/alpha.h.orig Wed Oct 29 16:47:37 1997 -+++ src/m/alpha.h Sun Jan 3 20:05:49 1999 -@@ -239,7 +239,7 @@ - - #ifndef NOT_C_CODE - /* We need these because pointers are larger than the default ints. */ --#if !defined(__NetBSD__) && !defined(__OpenBSD__) -+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) - #include <alloca.h> - #else - #include <stdlib.h> -@@ -308,7 +308,8 @@ - termio and struct termios are mutually incompatible. */ - #define NO_TERMIO - --#if defined (LINUX) || defined (__NetBSD__) || defined (__OpenBSD__) -+#if defined (LINUX) || \ -+ defined(__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) - # define TEXT_END ({ extern int _etext; &_etext; }) - # ifndef __ELF__ - # define COFF -@@ -316,7 +317,8 @@ - # endif /* notdef __ELF__ */ - #endif - --#if (defined (__NetBSD__) || defined (__OpenBSD__)) && defined (__ELF__) -+#if (defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__)) \ -+ && defined (__ELF__) - #define HAVE_TEXT_START - #endif - diff --git a/japanese/emacs21-emcws/files/patch-ca b/japanese/emacs21-emcws/files/patch-ca deleted file mode 100644 index a9b1ff49de2e..000000000000 --- a/japanese/emacs21-emcws/files/patch-ca +++ /dev/null @@ -1,31 +0,0 @@ ---- src/Makefile.in.orig Sat Mar 11 12:49:45 2000 -+++ src/Makefile.in Sat Mar 11 12:52:04 2000 -@@ -126,6 +126,10 @@ - #define LIBS_MACHINE - #endif - -+#ifndef LIBS_XPG -+#define LIBS_XPG -+#endif -+ - #ifndef LIB_MATH - # ifdef LISP_FLOAT_TYPE - # define LIB_MATH -lm -@@ -579,7 +583,7 @@ - #define LIBS_TERMCAP - termcapobj = termcap.o tparam.o - #else /* LIBS_TERMCAP */ --termcapobj = tparam.o -+termcapobj = terminfo.o - #endif /* LIBS_TERMCAP */ - #endif /* ! defined (TERMINFO) */ - -@@ -864,7 +868,7 @@ - duplicated symbols. If the standard libraries were compiled - with GCC, we might need gnulib again after them. */ - LIBES = $(LOADLIBES) $(LDLIBS) $(LIBX) LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \ -- LIBS_MULE LIBS_DEBUG $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR) -+ LIBS_XPG LIBS_MULE LIBS_DEBUG $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR) - - /* Enable recompilation of certain other files depending on system type. */ - diff --git a/japanese/emacs21-emcws/files/patch-cb b/japanese/emacs21-emcws/files/patch-cb deleted file mode 100644 index 28e6f9f1ae15..000000000000 --- a/japanese/emacs21-emcws/files/patch-cb +++ /dev/null @@ -1,34 +0,0 @@ ---- src/s/freebsd.h.orig Tue Apr 13 03:22:12 1999 -+++ src/s/freebsd.h Sat Jul 24 01:30:10 1999 -@@ -45,6 +45,13 @@ - #define LIBS_SYSTEM -lutil - #define LIBS_TERMCAP -ltermcap - -+/* Use XPG4 Library for FreeBSD */ -+#if __FreeBSD_version >= 220000 -+#ifdef USE_XPG -+#define LIBS_XPG -lxpg4 -+#endif -+#endif -+ - #define SYSV_SYSTEM_DIR - - /* freebsd has POSIX-style pgrp behavior. */ -@@ -54,9 +61,16 @@ - #ifdef __ELF__ - - #define LD_SWITCH_SYSTEM -+ -+#ifdef __alpha__ -+#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crtbegin.o -+#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o -+#else - #define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o --#define UNEXEC unexelf.o - #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o -+#endif -+ -+#define UNEXEC unexelf.o - #undef LIB_GCC - #define LIB_GCC - diff --git a/japanese/emacs21-emcws/files/patch-cc b/japanese/emacs21-emcws/files/patch-cc deleted file mode 100644 index 8202cf7c5e3a..000000000000 --- a/japanese/emacs21-emcws/files/patch-cc +++ /dev/null @@ -1,36 +0,0 @@ ---- configure.in.orig Sat Mar 11 12:55:54 2000 -+++ configure.in Sat Mar 11 12:58:33 2000 -@@ -42,6 +42,9 @@ - AC_ARG_WITH(hesiod, - [ --with-hesiod support Hesiod to get the POP server host], - [AC_DEFINE(HESIOD)]) -+AC_ARG_WITH(xpg4, -+[ --with-xpg4 support XPG4 library on FreeBSD system], -+[AC_DEFINE(USE_XPG)]) - dnl - AC_ARG_WITH(wnn, - [ --with-wnn obsolete, same as --with-wnn4]) -@@ -179,6 +182,15 @@ - machine='' opsys='' unported=no - case "${canonical}" in - -+ ## FreeBSD ports -+ *-*-freebsd* ) -+ opsys=freebsd -+ case "${canonical}" in -+ alpha*-*-freebsd*) machine=alpha ;; -+ i[3456]86-*-freebsd*) machine=intel386 ;; -+ esac -+ ;; -+ - ## NetBSD ports - *-*-netbsd* ) - opsys=netbsd -@@ -985,7 +997,6 @@ - ;; - *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; - *-386bsd* ) opsys=386bsd ;; -- *-freebsd* ) opsys=freebsd ;; - *-nextstep* ) opsys=nextstep ;; - ## Otherwise, we'll fall through to the generic opsys code at the bottom. - esac diff --git a/japanese/emacs21-emcws/files/patch-cd b/japanese/emacs21-emcws/files/patch-cd deleted file mode 100644 index 9792250f67b9..000000000000 --- a/japanese/emacs21-emcws/files/patch-cd +++ /dev/null @@ -1,12 +0,0 @@ ---- src/config.in.orig Sat Nov 21 09:00:30 1998 -+++ src/config.in Sat Nov 21 09:00:58 1998 -@@ -118,6 +118,9 @@ - /* Define to support using a Hesiod database to find the POP server. */ - #undef HESIOD - -+/* Define to support using a XPG4 library on FreeBSD system. */ -+#undef USE_XPG -+ - /* Some things figured out by the configure script, grouped as they are in - configure.in. */ - #ifndef _ALL_SOURCE /* suppress warning if this is pre-defined */ diff --git a/japanese/emacs21-emcws/files/patch-cf b/japanese/emacs21-emcws/files/patch-cf deleted file mode 100644 index d4273610df7a..000000000000 --- a/japanese/emacs21-emcws/files/patch-cf +++ /dev/null @@ -1,10 +0,0 @@ ---- src/config.in.orig Sun Jul 16 13:11:42 2000 -+++ src/config.in Sun Jul 16 13:12:48 2000 -@@ -237,6 +237,7 @@ - #undef HAVE_GETCWD - #undef HAVE_SHUTDOWN - #undef HAVE_STRFTIME -+#undef HAVE_GETADDRINFO - #undef HAVE_GRANTPT - #undef HAVE_GETPT - diff --git a/japanese/emacs21-emcws/files/patch-cg b/japanese/emacs21-emcws/files/patch-cg deleted file mode 100644 index 1973aff47d10..000000000000 --- a/japanese/emacs21-emcws/files/patch-cg +++ /dev/null @@ -1,149 +0,0 @@ ---- src/process.c-dist Fri Aug 14 22:51:44 1998 -+++ src/process.c Fri Jul 30 12:21:11 1999 -@@ -1,7 +1,18 @@ -+/* -+ * Locally hacked process.c to add ipv6 support. -wsr -+ * -+ * The configure.in file should define "HAVE_GETADDRINFO" if it is found -+ * in libc. -+ * -+ */ -+ - /* Asynchronous subprocess control for GNU Emacs. - Copyright (C) 1985, 86, 87, 88, 93, 94, 95, 96, 1998 - Free Software Foundation, Inc. - -+ ipv6 changes are -+ Copyright (C) 1999 Wolfgang S. Rupprecht -+ - This file is part of GNU Emacs. - - GNU Emacs is free software; you can redistribute it and/or modify -@@ -1808,15 +1819,22 @@ - { - Lisp_Object proc; - register int i; -+ -+#ifndef HAVE_GETADDRINFO - struct sockaddr_in address; - struct servent *svc_info; - struct hostent *host_info_ptr, host_info; - char *(addr_list[2]); - IN_ADDR numeric_addr; -- int s, outch, inch; -- char errstring[80]; -- int port; - struct hostent host_info_fixed; -+ int port; -+#else /* HAVE_GETADDRINFO */ -+ struct addrinfo hints, *res, *lres; -+ int ret = 0; -+ int xerrno = 0; -+ char *portstring, portbuf [128]; -+#endif /* HAVE_GETADDRINFO */ -+ int s = -1, outch, inch; - struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; - int retry = 0; - int count = specpdl_ptr - specpdl; -@@ -1829,6 +1847,22 @@ - GCPRO4 (name, buffer, host, service); - CHECK_STRING (name, 0); - CHECK_STRING (host, 0); -+ -+#ifdef HAVE_GETADDRINFO -+ /* -+ * caution: service can either be a string or int. -+ * Convert to a C string for later use by getaddrinfo. -+ */ -+ if (INTEGERP (service)) { -+ snprintf (portbuf, sizeof (portbuf), "%d", XINT (service)); -+ portstring = portbuf; -+ } -+ else -+ { -+ CHECK_STRING (service, 0); -+ portstring = XSTRING (service)->data; -+ } -+#else /* HAVE_GETADDRINFO */ - if (INTEGERP (service)) - port = htons ((unsigned short) XINT (service)); - else -@@ -1839,6 +1873,8 @@ - error ("Unknown service \"%s\"", XSTRING (service)->data); - port = svc_info->s_port; - } -+#endif /* HAVE_GETADDRINFO */ -+ - - /* Slow down polling to every ten seconds. - Some kernels have a bug which causes retrying connect to fail -@@ -1848,6 +1884,62 @@ - #endif - - #ifndef TERM -+#ifdef HAVE_GETADDRINFO /* We have a modern OS. -wsr */ -+ { -+ immediate_quit = 1; -+ QUIT; -+ memset(&hints, 0, sizeof(hints)); -+ hints.ai_flags = 0; -+ hints.ai_family = AF_UNSPEC; -+ hints.ai_socktype = SOCK_STREAM; -+ hints.ai_protocol = 0; -+ ret = getaddrinfo(XSTRING (host)->data, portstring, &hints, &res); -+ if (ret){ -+ error("%s/%s %s", XSTRING (host)->data, portstring, -+ gai_strerror(ret)); -+ } -+ immediate_quit = 0; -+ } -+ -+ for (lres = res; lres ; lres = lres->ai_next) { /* address loop */ -+ s = socket(lres->ai_family, lres->ai_socktype, lres->ai_protocol); -+ if (s < 0) -+ continue; -+ -+ /* Kernel bugs (on Ultrix at least) cause lossage (not just EINTR) -+ when connect is interrupted. So let's not let it get interrupted. -+ Note we do not turn off polling, because polling is only used -+ when not interrupt_input, and thus not normally used on the systems -+ which have this bug. On systems which use polling, there's no way -+ to quit if polling is turned off. */ -+ if (interrupt_input) -+ unrequest_sigio (); -+ -+ immediate_quit = 1; -+ QUIT; -+ -+ ret = connect(s, lres->ai_addr, lres->ai_addrlen); -+ if (ret){ -+ close(s); -+ s= -1; -+ continue; -+ } -+ -+ break; -+ } /* address loop */ -+ -+ freeaddrinfo(res); -+ if (s < 0) -+ { -+ if (interrupt_input) -+ request_sigio (); -+ -+ errno = xerrno; -+ report_file_error ("connection failed", -+ Fcons (host, Fcons (name, Qnil))); -+ } -+#else /* HAVE_GETADDRINFO */ -+ - while (1) - { - #ifdef TRY_AGAIN -@@ -1938,6 +2030,7 @@ - report_file_error ("connection failed", - Fcons (host, Fcons (name, Qnil))); - } -+#endif /* HAVE_GETADDRINFO */ - - immediate_quit = 0; diff --git a/japanese/emacs21-emcws/files/patch-ch b/japanese/emacs21-emcws/files/patch-ch deleted file mode 100644 index 4dd63d08857d..000000000000 --- a/japanese/emacs21-emcws/files/patch-ch +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.in-dist Tue Jun 30 15:15:05 1998 -+++ configure.in Wed Jul 28 10:38:16 1999 -@@ -1613,7 +1613,7 @@ - rename closedir mkdir rmdir sysinfo \ - random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \ - strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \ --utimes setrlimit setpgid getcwd shutdown strftime) -+utimes setrlimit setpgid getcwd shutdown strftime getaddrinfo) - - # Check this now, so that we will NOT find the above functions in ncurses. - # That is because we have not set up to link ncurses in lib-src. diff --git a/japanese/emacs21-emcws/files/patch-da b/japanese/emacs21-emcws/files/patch-configure.in index 6b265eec285d..8412683f9d91 100644 --- a/japanese/emacs21-emcws/files/patch-da +++ b/japanese/emacs21-emcws/files/patch-configure.in @@ -1,6 +1,6 @@ ---- configure.in.orig Fri Feb 22 15:50:26 2002 -+++ configure.in Fri Feb 22 15:55:10 2002 -@@ -35,18 +35,26 @@ +--- configure.in.orig Wed Apr 10 16:53:13 2002 ++++ configure.in Wed Apr 10 16:54:43 2002 +@@ -36,18 +36,26 @@ dnl A case that the LEIM package does not exist. dnl locallisppath='${datadir}/emacs/${version}$(EMACS_POSTFIX)/site-lisp:'\ @@ -31,3 +31,35 @@ docdir='${datadir}/emacs/${version}$(EMACS_POSTFIX)/etc' AC_ARG_WITH(gcc, +@@ -224,6 +232,15 @@ + machine='' opsys='' unported=no + case "${canonical}" in + ++ ## FreeBSD ports ++ *-*-freebsd* ) ++ opsys=freebsd ++ case "${canonical}" in ++ alpha*-*-freebsd*) machine=alpha ;; ++ i[3456]86-*-freebsd*) machine=intel386 ;; ++ esac ++ ;; ++ + ## NetBSD ports + *-*-netbsd* ) + opsys=netbsd +@@ -1069,7 +1086,6 @@ + ;; + *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; + *-386bsd* ) opsys=386bsd ;; +- *-freebsd* ) opsys=freebsd ;; + *-nextstep* ) opsys=nextstep ;; + ## Otherwise, we'll fall through to the generic opsys code at the bottom. + esac +@@ -2095,6 +2111,7 @@ + # Solaris requires -lintl if you want strerror (which calls dgettext) + # to return localized messages. + AC_CHECK_LIB(intl, dgettext) ++AC_CHECK_LIB(xpg4, _xpg4_setrunelocale) + + AC_MSG_CHECKING(whether localtime caches TZ) + AC_CACHE_VAL(emacs_cv_localtime_cache, diff --git a/japanese/emacs21-emcws/files/patch-ah b/japanese/emacs21-emcws/files/patch-lib-src:Makefile.in index 5a24e77c253b..4226f59f9f96 100644 --- a/japanese/emacs21-emcws/files/patch-ah +++ b/japanese/emacs21-emcws/files/patch-lib-src:Makefile.in @@ -1,15 +1,14 @@ ---- lib-src/Makefile.in.orig Sat Aug 1 20:22:55 1998 -+++ lib-src/Makefile.in Sat Feb 13 17:30:37 1999 -@@ -218,7 +218,7 @@ - LIBMAIL=-lmail - #endif +--- lib-src/Makefile.in.orig Wed Aug 30 02:12:42 2000 ++++ lib-src/Makefile.in Thu Oct 11 01:54:10 2001 +@@ -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 = --LOADLIBES=LIBS_SYSTEM LIBS_MACHINE LIB_STANDARD_LIBSRC -+LOADLIBES=LIBS_SYSTEM LIBS_MACHINE LIB_STANDARD_LIBSRC -lcompat - - /* We need to #define emacs to get the right versions of some files. - Some other files - those shared with other GNU utilities - need -@@ -278,7 +278,7 @@ +@@ -278,7 +279,7 @@ if [ `(cd ${archlibdir} && /bin/pwd)` \ != `(cd ${srcdir} && /bin/pwd)` ]; then \ for file in ${SCRIPTS}; do \ @@ -18,7 +17,7 @@ done ; \ fi -@@ -290,7 +290,7 @@ +@@ -290,7 +291,7 @@ chmod a+rx ${bindir}/$${file}; \ done for file in ${INSTALLABLE_SCRIPTS} ; do \ @@ -26,4 +25,3 @@ + $(INSTALL_SCRIPT) ${srcdir}/$${file} ${bindir}/$${file} ; \ chmod a+rx ${bindir}/$${file}; \ done - diff --git a/japanese/emacs21-emcws/files/patch-lisp:Makefile.in b/japanese/emacs21-emcws/files/patch-lisp:Makefile.in new file mode 100644 index 000000000000..b72eba25c7a6 --- /dev/null +++ b/japanese/emacs21-emcws/files/patch-lisp:Makefile.in @@ -0,0 +1,29 @@ +--- lisp/Makefile.in.orig Wed Apr 10 17:50:14 2002 ++++ lisp/Makefile.in Wed Apr 10 17:53:38 2002 +@@ -91,7 +91,25 @@ + $(lisp)/term/vt420.el \ + $(lisp)/term/wyse50.el \ + $(lisp)/term/xterm.el \ +- $(lisp)/version.el ++ $(lisp)/version.el \ ++ $(lisp)/busyu.el \ ++ $(lisp)/can-n-egg.el \ ++ $(lisp)/canna.el \ ++ $(lisp)/egg-jsymbol.el \ ++ $(lisp)/egg-keymap.el \ ++ $(lisp)/egg.el \ ++ $(lisp)/isearch-ext.el \ ++ $(lisp)/its/han-kata.el \ ++ $(lisp)/its/hankaku.el \ ++ $(lisp)/its/hira.el \ ++ $(lisp)/its/kanainput.el \ ++ $(lisp)/its/kata.el \ ++ $(lisp)/its/zenkaku.el \ ++ $(lisp)/mule-inst.el \ ++ $(lisp)/sj3-client.el \ ++ $(lisp)/sj3-egg.el \ ++ $(lisp)/wnn-client.el \ ++ $(lisp)/wnn-egg.el + + # Files to compile before others during a bootstrap. This is done to + # speed up the bootstrap process. The CC files are compiled first diff --git a/japanese/emacs21-emcws/files/patch-ea b/japanese/emacs21-emcws/files/patch-lisp:help.el index 6d88c4506061..bafafe333db5 100644 --- a/japanese/emacs21-emcws/files/patch-ea +++ b/japanese/emacs21-emcws/files/patch-lisp:help.el @@ -1,6 +1,6 @@ ---- lisp/help.el.orig Wed Nov 28 20:55:37 2001 -+++ lisp/help.el Wed Nov 28 20:56:04 2001 -@@ -561,8 +561,8 @@ +--- lisp/help.el.orig Mon Oct 1 16:01:24 2001 ++++ lisp/help.el Wed Apr 10 16:55:14 2002 +@@ -593,8 +593,8 @@ (load (expand-file-name ;; fns-XX.YY.ZZ.el does not work on DOS filesystem. (if (eq system-type 'ms-dos) diff --git a/japanese/emacs-emcws/files/patch-eb b/japanese/emacs21-emcws/files/patch-lisp:loadup.el index 3b471abbd975..5f93219c9143 100644 --- a/japanese/emacs-emcws/files/patch-eb +++ b/japanese/emacs21-emcws/files/patch-lisp:loadup.el @@ -1,6 +1,6 @@ ---- lisp/loadup.el.orig Sun Dec 2 22:10:51 2001 -+++ lisp/loadup.el Sun Dec 2 22:12:10 2001 -@@ -246,7 +246,7 @@ +--- lisp/loadup.el.orig Wed Apr 10 16:53:14 2002 ++++ lisp/loadup.el Wed Apr 10 16:55:48 2002 +@@ -264,7 +264,7 @@ (if (memq system-type '(ms-dos windows-nt)) (setq name (expand-file-name (if (fboundp 'x-create-frame) "DOC-X" "DOC") "../etc")) @@ -9,9 +9,9 @@ (if (file-exists-p name) (delete-file name)) (copy-file (expand-file-name "../etc/DOC") name t)) -@@ -280,11 +280,11 @@ +@@ -300,11 +300,11 @@ (expand-file-name - (cond + (cond ((eq system-type 'ms-dos) - "../lib-src/fns.el") + "../lib-src/fnsemcws.el") diff --git a/japanese/emacs21-emcws/files/patch-lisp:vc-hooks.el b/japanese/emacs21-emcws/files/patch-lisp:vc-hooks.el new file mode 100644 index 000000000000..8675c85f9e37 --- /dev/null +++ b/japanese/emacs21-emcws/files/patch-lisp:vc-hooks.el @@ -0,0 +1,24 @@ +--- lisp/vc-hooks.el.orig Mon Nov 12 23:37:38 2001 ++++ lisp/vc-hooks.el Tue Nov 13 12:56:08 2001 +@@ -475,10 +475,9 @@ + (if regexp + (concat (regexp-quote (file-name-nondirectory file)) + "\\.~[0-9.]+" (unless manual "\\.") "~") +- (expand-file-name (concat (file-name-nondirectory file) +- ".~" (or rev (vc-workfile-version file)) +- (unless manual ".") "~") +- (file-name-directory file)))) ++ (concat (make-backup-file-name-1 file) ++ ".~" (or rev (vc-workfile-version file)) ++ (unless manual ".") "~"))) + + (defun vc-delete-automatic-version-backups (file) + "Delete all existing automatic version backups for FILE." +@@ -509,6 +508,7 @@ + (vc-up-to-date-p file) + (eq (vc-checkout-model file) 'implicit) + (vc-call make-version-backups-p file) ++ vc-make-backup-files + (vc-make-version-backup file)))) + + (defun vc-after-save () diff --git a/japanese/emacs21-emcws/files/patch-lisp_dired.el b/japanese/emacs21-emcws/files/patch-lisp_dired.el new file mode 100644 index 000000000000..90081b072053 --- /dev/null +++ b/japanese/emacs21-emcws/files/patch-lisp_dired.el @@ -0,0 +1,19 @@ +--- lisp/dired.el.orig Sat Sep 22 01:41:58 2001 ++++ lisp/dired.el Wed Dec 5 20:06:04 2001 +@@ -1532,6 +1532,7 @@ + "\\|" yyyy s s "?" + "\\|" s "?" yyyy + "\\)")) ++ (freebsd-ja (concat s mm "/" dd s "\\(" HH:MM "\\|" s yyyy "\\)")) + (japanese + (concat mm k "?" s dd k "?" s "+" + "\\(" HH:MM "\\|" yyyy k "?" "\\)"))) +@@ -1543,7 +1544,7 @@ + ;; This avoids recognizing `jservice 10 1024' as a date in the line: + ;; drwxr-xr-x 3 jservice 10 1024 Jul 2 1997 esg-host + (concat ".*[0-9][kMGTPEZY]?" +- s "\\(" western "\\|" japanese "\\|" iso "\\)" s)) ++ s "\\(" western "\\|" freebsd-ja "\\|" japanese "\\|" iso "\\)" s)) + "Regular expression to match up to the file name in a directory listing. + The default value is designed to recognize dates and times + regardless of the language.") diff --git a/japanese/emacs21-emcws/files/patch-man:Makefile.in b/japanese/emacs21-emcws/files/patch-man:Makefile.in new file mode 100644 index 000000000000..23e59c2673f6 --- /dev/null +++ b/japanese/emacs21-emcws/files/patch-man:Makefile.in @@ -0,0 +1,11 @@ +--- man/Makefile.in.orig Thu Apr 26 02:17:33 2001 ++++ man/Makefile.in Mon Oct 22 20:43:45 2001 +@@ -31,7 +31,7 @@ + + + # The makeinfo program is part of the Texinfo distribution. +-MAKEINFO = makeinfo ++MAKEINFO = makeinfo --no-split + 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 \ diff --git a/japanese/emacs21-emcws/files/patch-src:m:alpha.h b/japanese/emacs21-emcws/files/patch-src:m:alpha.h new file mode 100644 index 000000000000..080a33650114 --- /dev/null +++ b/japanese/emacs21-emcws/files/patch-src:m:alpha.h @@ -0,0 +1,11 @@ +--- src/m/alpha.h.orig Mon Oct 2 23:30:39 2000 ++++ src/m/alpha.h Wed Feb 13 09:05:57 2002 +@@ -198,7 +198,7 @@ + + #ifndef NOT_C_CODE + /* We need these because pointers are larger than the default ints. */ +-#if !defined(__NetBSD__) && !defined(__OpenBSD__) ++#if !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) + #include <alloca.h> + #endif + diff --git a/japanese/emacs21-emcws/files/patch-src:s:freebsd.h b/japanese/emacs21-emcws/files/patch-src:s:freebsd.h new file mode 100644 index 000000000000..2eb9ea8823ee --- /dev/null +++ b/japanese/emacs21-emcws/files/patch-src:s:freebsd.h @@ -0,0 +1,14 @@ +--- src/s/freebsd.h.orig Tue Feb 20 19:52:17 2001 ++++ src/s/freebsd.h Mon Feb 18 11:51:50 2002 +@@ -68,6 +68,11 @@ + #define LIBS_SYSTEM -lutil + #if __FreeBSD_version < 400000 + #define LIBS_TERMCAP -ltermcap ++#else ++#ifdef HAVE_LIBNCURSES ++#define TERMINFO ++#define LIBS_TERMCAP -lncurses ++#endif + #endif + + #define SYSV_SYSTEM_DIR diff --git a/japanese/emacs21-emcws/files/site-init.el.tmpl b/japanese/emacs21-emcws/files/site-init.el.tmpl index 364b9d3e8e1c..aff4abda29ad 100644 --- a/japanese/emacs21-emcws/files/site-init.el.tmpl +++ b/japanese/emacs21-emcws/files/site-init.el.tmpl @@ -1,7 +1,7 @@ ;;; site-init.el -- site-dependent initialization file ;; -;; Init file for FreeBSD port: emacs20-emcws +;; Init file for FreeBSD port: emacs21-emcws ;; ; change a default file name of the internal DOC-string. diff --git a/japanese/emacs21-emcws/pkg-message b/japanese/emacs21-emcws/pkg-message deleted file mode 100644 index 70079d6ff153..000000000000 --- a/japanese/emacs21-emcws/pkg-message +++ /dev/null @@ -1,14 +0,0 @@ -**************************************************************************** - NOTE: Warning message about locale. - - This binary is not linked with libxpg4 shared library by default. - If your LANG environment variable has a value but "C", the following - warning message may be displayed: - - Warning: locale not supported by C library, locale unchanged - - If you complain about this message, type `make install WITH_XPG4=yes' - at the "${PORTSDIR}/japanese/emacs20-emcws" directory to re-make - this package. - -**************************************************************************** diff --git a/japanese/emacs21-emcws/pkg-plist b/japanese/emacs21-emcws/pkg-plist index be3cbe1c9e09..091318cf7f5c 100644 --- a/japanese/emacs21-emcws/pkg-plist +++ b/japanese/emacs21-emcws/pkg-plist @@ -2,8 +2,6 @@ bin/emcws-%%EMACS_VER%% bin/emcws libexec/emacs/%%EMACS_VER%%/%%EMACS_ARCH%%/fns-emcws-%%EMACS_VER%%.1.el share/emacs/%%EMACS_VER%%-emcws/etc/%%DOC_FILE%% -share/emacs/%%EMACS_VER%%-emcws/lisp/ange-ftp.el -share/emacs/%%EMACS_VER%%-emcws/lisp/ange-ftp.elc share/emacs/%%EMACS_VER%%-emcws/lisp/busyu.el share/emacs/%%EMACS_VER%%-emcws/lisp/can-n-egg.el share/emacs/%%EMACS_VER%%-emcws/lisp/canna.el |