diff options
author | Jim Blandy <jimb@redhat.com> | 1992-09-13 10:54:38 +0000 |
---|---|---|
committer | Jim Blandy <jimb@redhat.com> | 1992-09-13 10:54:38 +0000 |
commit | b7cceaf12a73559df9c2fcf135983b4c03b48061 (patch) | |
tree | de45679165e29811fe12d574dbcba2d325a1ceef | |
parent | e4801b31ff4d1c01f79e25a2eefbd3877375386b (diff) | |
download | emacs-b7cceaf12a73559df9c2fcf135983b4c03b48061.tar.gz |
*** empty log message ***
-rwxr-xr-x | configure1.in | 25 | ||||
-rw-r--r-- | etc/MACHINES | 32 | ||||
-rw-r--r-- | lib-src/Makefile.in | 17 | ||||
-rw-r--r-- | lisp/diff.el | 2 | ||||
-rw-r--r-- | lisp/mail/rmail.el | 56 | ||||
-rw-r--r-- | lisp/subr.el | 18 | ||||
-rwxr-xr-x | make-dist | 2 | ||||
-rw-r--r-- | src/m/hp9000s300.h | 49 | ||||
-rw-r--r-- | src/s/bsd4-3.h | 7 | ||||
-rw-r--r-- | src/systime.h | 44 |
10 files changed, 178 insertions, 74 deletions
diff --git a/configure1.in b/configure1.in index a8c2c79687a..f44611c2272 100755 --- a/configure1.in +++ b/configure1.in @@ -28,15 +28,18 @@ # config.status is removed. # -# Remove any leading "." elements from the path name. When this -# script is invoked from the config.status script, a new ./ gets added -# to the the front of the path, resulting in a "././" prefix. That -# prefix is then recorded in the resulting config.status file, so -# basically each time config.status is used, it prepends another "./" -# to the filename. This wouldn't be a problem, except that since -# progname gets recorded in all the Makefiles this script produces, +# Remove any leading "." elements from the path name. If we don't +# remove them, then another "./" will be prepended to the file name +# each time we use config.status, and the program name will get larger +# and larger. This wouldn't be a problem, except that since progname +# gets recorded in all the Makefiles this script produces, # move-if-changed thinks they're different when they're not. -progname="`echo $0 | sed 's:^\(\./\)*::'`" +# +# It would be nice if we could put the ./ in a \( \) group and then +# apply the * operator to that, so we remove as many leading ./././'s +# as are present, but some seds (like Ultrix's sed) don't allow you to +# apply * to a \( \) group. Bleah. +progname="`echo $0 | sed 's:^\./::'`" short_usage="Type \`${progname} -usage' for more information about options." @@ -421,8 +424,8 @@ echo "Examining the machine- and system-dependent files to find out" echo " - which libraries the lib-src programs will want, and" echo " - whether the GNU malloc routines are usable." tempcname="configure.tmp.$$.c" -echo '#include "src/'${machfile}'" -#include "src/'${opsysfile}'" +echo '#include "src/'${opsysfile}'" +#include "src/'${machfile}'" #ifndef LIBS_MACHINE #define LIBS_MACHINE #endif @@ -543,6 +546,7 @@ rm -f src/Makefile.tmp # If you are thinking about editing it, you should seriously consider # editing \`Makefile.in' itself, or running \`${progname}' instead." /bin/sed < src/Makefile.in \ + -e '/^# DIST: /d' \ -e 's;^\(CC[ ]*=\).*$;\1'"${cc};") > src/Makefile.tmp ./move-if-change src/Makefile.tmp src/Makefile # Remind people not to edit this. @@ -555,6 +559,7 @@ rm -f lib-src/Makefile.tmp # If you are thinking about editing it, you should seriously consider # editing \`Makefile.in' itself, or running \`${progname}' instead." /bin/sed < lib-src/Makefile.in \ + -e '/^# DIST: /d' \ -e 's;^\(CFLAGS=\).*$;\1'"${c_switch_site};" \ -e 's;^\(LOADLIBES=\).*$;\1'"${libsrc_libs};" \ -e 's;^\(CC=\).*$;\1'"${cc};") > lib-src/Makefile.tmp diff --git a/etc/MACHINES b/etc/MACHINES index e872da5f2aa..3d04d790916 100644 --- a/etc/MACHINES +++ b/etc/MACHINES @@ -97,7 +97,7 @@ System V rel 4 (-opsystem=usg5-4) Most versions of V.4 support sockets. If `/usr/lib/libsocket.so' exists, your system supports them. If yours does not, you must add - #undef HAVE_SOCKETS in config.h, aftern the inclusion of s-usg5-4.h. + #undef HAVE_SOCKETS in config.h, after the inclusion of s-usg5-4.h. (Any system that supports Internet should implement sockets.) Ultrix (-opsystem=bsd4-2) @@ -260,10 +260,14 @@ Cydra 5 (-machine=cydra5; -opsystem=usg5-3) 18.51 worked in one version of their operating system but stopped working in a newer version. This has not been fixed. -DECstation (-machine=pmax; -opsystem=bsd4-3) +DECstation (-machine=pmax; -opsystem=bsd4-3 or -opsystem=osf1) + + OSF1 support merged in 18.59. + + See under Ultrix for problems using X windows on Ultrix. + Note that this is a MIPS machine. + -opsystem=bsd4-3 is said to work ok with Ultrix 4.1. - Works, as of 18.55. See under Ultrix for problems using X windows - on Ultrix. Note that this is a MIPS machine. For Ultrix versions prior to 4.0, you may need to delete the definition of START_FILES from src/m/pmax.h. @@ -571,6 +575,26 @@ Mips (-machine=mips or -machine=mips4; -opsystem=usg5-2-2, -opsystem=bsd4-3) Use -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with the BSD world. + Note that the proper -machine option for the Decstation is `-machine=pmax'. + + If you are compiling with GCC, then you must run fixincludes; + the alternative of using -traditional won't work because + the definition of SIGN_EXTEND_CHAR uses the keyword `signed'. + + If the SYSV world is the default, then you probably need the following + line in etc/Makefile: + + CFLAGS= -g -systype bsd43 + + Some operating systems on MIPS machines give SIGTRAP for division by + zero instead of the usual signals. The only real solution is to fix + the system to give a proper signal. + + In the meantime, you can change init_data in data.c if you wish. + Change it to handle SIGTRAP as well as SIGFPE. But this will have a + great disadvantage: you will not be able to run Emacs under a + debugger. I think crashing on division by zero is a lesser problem. + Motorola Delta (-machine=delta; -opsystem=usg5-3) Machine support added in version 18.56. diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in index e1651ccdc68..51f96b1a03f 100644 --- a/lib-src/Makefile.in +++ b/lib-src/Makefile.in @@ -16,14 +16,19 @@ SHELL = /bin/sh INSTALL = install INSTALLFLAGS = -# Things that a user might actually run +# Things that a user might actually run, which should be installed in bindir. INSTALLABLES = etags ctags emacsclient b2m -# Things that Emacs runs internally, or during the build process. +# Things that Emacs runs internally, or during the build process, +# which should not be installed in bindir. UTILITIES= test-distrib wakeup make-docfile digest-doc sorted-doc \ - movemail cvtmail fakemail yow env emacsserver hexl timer rcs2log vcdiff + movemail cvtmail fakemail yow env emacsserver hexl timer -EXECUTABLES= ${UTILITIES} ${INSTALLABLES} +# Like UTILITIES, but they're not system-dependent, and should not be +# deleted by the distclean target. +SCRIPTS= rcs2log vcdiff + +EXECUTABLES= ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} # These things are edited by ../configure; don't change anything before # or including the '='; everything after that gets blown away. @@ -88,10 +93,10 @@ install.xenix: clean mostlyclean: - -rm -f ${EXECUTABLES} core *.o + -rm -f ${INSTALLABLES} ${UTILITIES} core *.o distclean: - -rm -f ${EXECUTABLES} *~ \#* ../etc/DOC* core *.o + -rm -f ${INSTALLABLES} ${UTILITIES} *~ \#* ../etc/DOC* core *.o cd ../arch-lib; rm -f ${EXECUTABLES} realclean: distclean diff --git a/lisp/diff.el b/lisp/diff.el index c317baf3281..615d64d5fa8 100644 --- a/lisp/diff.el +++ b/lisp/diff.el @@ -184,7 +184,7 @@ With prefix arg, prompt for diff switches." (setq buf (compile-internal command "No more differences" "Diff" - 'diff-parse-differences))) + 'diff-parse-differences)) (save-excursion (set-buffer buf) (set (make-local-variable 'diff-old-file) old) diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 2d4a225cd65..62f067ff057 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -109,7 +109,43 @@ Called with region narrowed to unformatted header.") ;;; this expression, you must change the code in rmail-nuke-pinhead-header ;;; that knows the exact ordering of the \\( \\) subexpressions. (defvar rmail-unix-mail-delimiter - "From \\([^ \n]*\\(\\|\".*\"[^ \n]*\\)\\) ?\\([^ \n]*\\) \\([^ ]*\\) *\\([0-9]*\\) \\([0-9:]*\\)\\( ?[A-Z]?[A-Z][A-Z]T\\( DST\\)?\\| ?[-+]?[0-9][0-9][0-9][0-9]\\|\\) [0-9][0-9]\\([0-9]*\\) *\\(remote from [^\n]*\\)?\n" nil) + (let ((time-zone-regexp + (concat "\\([A-Z]?[A-Z][A-Z]T\\( DST\\)?" + "\\|[-+]?[0-9][0-9][0-9][0-9]" + "\\|" + "\\) *"))) + (concat + "From " + + ;; Username, perhaps with a quoted section that can contain spaces. + "\\(" + "[^ \n]*" + "\\(\\|\".*\"[^ \n]*\\)" + "\\) ?" + + ;; The time the message was sent. + "\\([^ \n]*\\) *" ; day of the week + "\\([^ ]*\\) *" ; month + "\\([0-9]*\\) *" ; day of month + "\\([0-9:]*\\) *" ; time of day + + ;; Perhaps a time zone, specified by an abbreviation, or by a + ;; numeric offset. + time-zone-regexp + + ;; The year. + " [0-9][0-9]\\([0-9]*\\) *" + + ;; On some systems the time zone can appear after the year, too. + time-zone-regexp + + ;; I'm not sure what this is. + "\\(remote from [^\n]*\\)?" + + "\n")) + nil) + + ;;;; *** Rmail Mode *** @@ -704,10 +740,20 @@ argument causes us to read a file name and use that file as the inbox." ;; have a Date: field. (if has-date "" - ;; If no time zone specified, assume est. - (if (= (match-beginning 7) (match-end 7)) - "Date: \\3, \\5 \\4 \\9 \\6 EST\n" - "Date: \\3, \\5 \\4 \\9 \\6\\7\n")) + (concat + "Date: \\3, \\5 \\4 \\9 \\6 " + + ;; The timezone could be matched by group 7 or group 10. + ;; If neither of them matched, assume EST, since only + ;; Easterners would be so sloppy. + ;; It's a shame the substitution can't use "\\10". + (cond + ((/= (match-beginning 7) (match-end 7)) "\\7") + ((/= (match-beginning 10) (match-end 10)) + (buffer-substring (match-beginning 10) + (match-end 10))) + (t "EST")) + "\n")) ;; Keep and reformat the sender if we don't ;; have a From: field. (if has-from diff --git a/lisp/subr.el b/lisp/subr.el index c485e98c608..d50e5035ffe 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -338,13 +338,17 @@ With optional non-nil ALL then force then force redisplay of all mode-lines." "Translate character FROM to TO at a low level. This function creates a `keyboard-translate-table' if necessary and then modifies one entry in it." - (or (boundp 'keyboard-translate-table) - (let ((table (make-string 256)) - (i 0)) - (while (< i 256) - (aset table i i) - (setq i (1+ i))) - (setq keyboard-translate-table table))) + (or (arrayp keyboard-translate-table) + (setq keyboard-translate-table "")) + (if (or (> from (length keyboard-translate-table)) + (> to (length keyboard-translate-table))) + (progn + (let* ((i (length keyboard-translate-table)) + (table (make-string (- 256 i) 0))) + (while (< i 256) + (aset table i i) + (setq i (1+ i))) + (setq keyboard-translate-table table)))) (aset keyboard-translate-table from to)) diff --git a/make-dist b/make-dist index c450c00201f..8796f0bfe50 100755 --- a/make-dist +++ b/make-dist @@ -58,7 +58,7 @@ fi # Find out which version of Emacs this is. version=`grep 'defconst[ ]*emacs-version' lisp/version.el \ - | sed -e 's/^.*"\([0-9]+\.[0-9]+\)\..*$/\1/'` + | sed -e 's/^.*"\([0-9][0-9]*\.[0-9][0-9]*\)\..*$/\1/'` if [ ! "${version}" ]; then echo "${progname}: can't find current emacs version in \`./lisp/version.el'." >&2 exit 1 diff --git a/src/m/hp9000s300.h b/src/m/hp9000s300.h index 233f6f7b207..9663a5b4743 100644 --- a/src/m/hp9000s300.h +++ b/src/m/hp9000s300.h @@ -29,13 +29,21 @@ HP 9000 series 200 or 300 (-machine=hp9000s300) (a derivative of sysV with some BSD features) or BSD 4.3 ported by Utah. If you're running HP-UX, specify `-opsystem=hpux'. - - If you're running Utah's BSD port, don't use this -machine option; - instead, specify `-machine=hp300bsd' and `-opsystem=bsd4-3'. + If you're running BSD, specify `-opsystem=bsd4-3'. NOTE-END */ -/* Define this symbol if you are running a version of HP-UX - which predates version 6.5 */ +/* Do this here at the top of the file; including sys/wait.h may + include <endian.h>, which defines BIG_ENDIAN, which will conflict + with our definition of BIG_ENDIAN if we do this at the bottom. */ +#ifndef NOT_C_CODE +#ifndef NO_SHORTNAMES +#include <sys/wait.h> +#define WAITTYPE int +#endif +#define WRETCODE(w) (((w) >> 8) & 0377) +#endif + +/* Define NOMULTIPLEJOBS on versions of HPUX before 6.5. */ /* #define NOMULTIPLEJOBS */ @@ -55,8 +63,10 @@ NOTE-END */ /* Define BIG_ENDIAN iff lowest-numbered byte in a word is the most significant byte. */ - +/* Under BSD, <endian.h> defines this. */ +#ifndef BIG_ENDIAN #define BIG_ENDIAN +#endif /* Define NO_ARG_ARRAY if you cannot take the address of the first of a * group of arguments and treat it as an array of the arguments. */ @@ -108,8 +118,11 @@ NOTE-END */ a very old, brain-dead version of PCC. */ #ifdef BSD4_3 + /* Tell crt0.c that this is an ordinary 68020. */ #undef hp9000s300 +#define m68000 + #define CRT0_DUMMIES bogus_a6, #define HAVE_ALLOCA @@ -167,21 +180,23 @@ NOTE-END */ #endif /* Define the BSTRING functions in terms of the sysV functions. - Version 6 of HP-UX supplies these in the BSD library. */ + Version 6 of HP-UX supplies these in the BSD library, + but that library has reported bugs in `signal'. */ -#ifdef HPUX_5 +/* #ifdef HPUX_5 */ #define bcopy(a,b,s) memcpy (b,a,s) #define bzero(a,s) memset (a,0,s) #define bcmp memcmp -#endif +/* #endif */ /* On USG systems these have different names. - Version 6 of HP-UX supplies these in the BSD library. */ + Version 6 of HP-UX supplies these in the BSD library, + which we currently want to avoid using. */ -#ifdef HPUX_5 +/* #ifdef HPUX_5 */ #define index strchr #define rindex strrchr -#endif +/* #endif */ /* Define C_SWITCH_MACHINE to be +X if you want the s200/300 * Emacs to run on both 68010 and 68020 based hp-ux's. @@ -202,18 +217,10 @@ NOTE-END */ #endif #endif -#endif /* not BSD4_3 */ - /* Define NEED_BSDTTY if you have such. */ #ifndef NOMULTIPLEJOBS #define NEED_BSDTTY #endif -#ifndef NOT_C_CODE -#ifndef NO_SHORTNAMES -#include <sys/wait.h> -#define WAITTYPE int -#endif -#define WRETCODE(w) (((w) >> 8) & 0377) -#endif +#endif /* not BSD4_3 */ diff --git a/src/s/bsd4-3.h b/src/s/bsd4-3.h index 332bbaa3856..583e6eb05a9 100644 --- a/src/s/bsd4-3.h +++ b/src/s/bsd4-3.h @@ -24,11 +24,11 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ */ #ifndef BSD4_3 -#define BSD 43 /* 4.3 * 10, as cpp doesn't do floats */ +#define BSD4_3 #endif /* BSD4_3 */ #ifndef BSD -#define BSD4_3 1 +#define BSD #endif /* BSD */ /* SYSTEM_TYPE should indicate the kind of system you are using. @@ -127,6 +127,3 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ is named _avenrun. */ #define LDAV_SYMBOL "_avenrun" - -/* The return type of a signal handling function. */ -#define SIGTYPE int diff --git a/src/systime.h b/src/systime.h index 9dab2deacfa..787c51d89ab 100644 --- a/src/systime.h +++ b/src/systime.h @@ -17,8 +17,6 @@ You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ -#ifdef NEED_TIME_H - /* _h_BSDTYPES is checked because on ISC unix, socket.h includes both time.h and sys/time.h, and the later file is protected from repeated inclusion. We just hope that other systems will @@ -26,11 +24,14 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef _h_BSDTYPES #include <time.h> #endif /* _h_BSDTYPES */ -#else /* ! defined (NEED_TIME_H) */ + #ifdef HAVE_TIMEVAL +#ifndef NEED_TIME_H /* Some versions of HP/UX shouldn't have + this included; time.h should do the trick + instead. */ #include <sys/time.h> -#endif /* ! defined (HAVE_TIMEVAL) */ -#endif /* ! defined (NEED_TIME_H) */ +#endif +#endif /* EMACS_TIME is the type to use to represent temporal intervals - @@ -145,7 +146,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ expands to a statement which stores information about the current time zone in its arguments. - *OFFSET is set to the number of minutes west of Greenwich at which + *OFFSET is set to the number of minutes EAST of Greenwich at which the site's time zone is located. This should describe the offset to standard time only; if some sort of daylight savings time is in effect, that should not affect this value. Note that the tm_gmtoff @@ -178,17 +179,24 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* If we have timeval, then we have gettimeofday; that's half the battle. */ #ifdef HAVE_TIMEVAL -#define EMACS_GET_TZ_OFFSET_AND_SAVINGS(offset, savings_flag) \ +#define EMACS_GET_TZ_OFFSET(offset) \ do { \ struct timeval dummy; \ struct timezone zoneinfo; \ \ gettimeofday (&dummy, &zoneinfo); \ - *(offset) = zoneinfo.tz_minuteswest; \ - *(savings_flag) = zoneinfo.tz_dsttime; \ + *(offset) = -zoneinfo.tz_minuteswest; \ } while (0) #endif /* ! defined (HAVE_TIMEVAL) */ +/* System V derivatives have a timezone global variable. */ +#ifdef USG +#define EMACS_GET_TZ_OFFSET(offset) \ + do { \ + tzset (); \ + (offset) = timezone; \ + } +#endif /* The following sane systems have a tzname array. The timezone() function is a stupid idea; timezone names can only be determined geographically, @@ -222,14 +230,22 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #endif /* ! defined (ultrix) || defined (hpux) || defined (_AIX) */ /* If we can get all the information we need, let's define the macro! */ -#if defined (EMACS_GET_TZ_OFFSET_AND_SAVINGS) && defined (EMACS_GET_TZ_NAMES) +#if defined (EMACS_GET_TZ_OFFSET) && defined (EMACS_GET_TZ_NAMES) #define EMACS_CURRENT_TIME_ZONE(offset, savings_flag, standard, savings)\ - do { \ - EMACS_GET_TZ_OFFSET_AND_SAVINGS (offset, savings_flag); \ + do { \ + EMACS_TIME t; \ + long secs; \ + struct tm *tmp; \ + \ + EMACS_GET_TIME (t); \ + secs = EMACS_SECS (t); \ + tmp = localtime (&secs); \ + *(savings_flag) = tmp->tm_isdst; \ + \ + EMACS_GET_TZ_OFFSET (offset); \ EMACS_GET_TZ_NAMES (standard, savings); \ } while (0) - -#endif /* ! defined (EMACS_GET_TZ_OFFSET_AND_SAVINGS) && defined (EMACS_GET_TZ_NAMES) */ +#endif /* ! defined (EMACS_GET_TZ_OFFSET) && defined (EMACS_GET_TZ_NAMES) */ #endif /* EMACS_CURRENT_TIME_ZONE */ |