aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Blandy <[email protected]>1992-09-13 10:54:38 +0000
committerJim Blandy <[email protected]>1992-09-13 10:54:38 +0000
commitb7cceaf12a73559df9c2fcf135983b4c03b48061 (patch)
treede45679165e29811fe12d574dbcba2d325a1ceef
parente4801b31ff4d1c01f79e25a2eefbd3877375386b (diff)
*** empty log message ***
-rwxr-xr-xconfigure1.in25
-rw-r--r--etc/MACHINES32
-rw-r--r--lib-src/Makefile.in17
-rw-r--r--lisp/diff.el2
-rw-r--r--lisp/mail/rmail.el56
-rw-r--r--lisp/subr.el18
-rwxr-xr-xmake-dist2
-rw-r--r--src/m/hp9000s300.h49
-rw-r--r--src/s/bsd4-3.h7
-rw-r--r--src/systime.h44
10 files changed, 178 insertions, 74 deletions
diff --git a/configure1.in b/configure1.in
index a8c2c79687..f44611c227 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 e872da5f2a..3d04d79091 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 e1651ccdc6..51f96b1a03 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 c317baf328..615d64d5fa 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 2d4a225cd6..62f067ff05 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 c485e98c60..d50e5035ff 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 c450c00201..8796f0bfe5 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 233f6f7b20..9663a5b474 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 332bbaa385..583e6eb05a 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 9dab2deacf..787c51d89a 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 */