]> code.delx.au - gnu-emacs/commitdiff
*** empty log message ***
authorJim Blandy <jimb@redhat.com>
Sun, 13 Sep 1992 10:54:38 +0000 (10:54 +0000)
committerJim Blandy <jimb@redhat.com>
Sun, 13 Sep 1992 10:54:38 +0000 (10:54 +0000)
configure1.in
etc/MACHINES
lib-src/Makefile.in
lisp/diff.el
lisp/mail/rmail.el
lisp/subr.el
make-dist
src/m/hp9000s300.h
src/s/bsd4-3.h
src/systime.h

index a8c2c79687a1920a05cb895394aec30370e45aac..f44611c22728053b96f72fc5e02882e6e830ddad 100755 (executable)
 #      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
index e872da5f2aa85a8b1d49ebb666b8db10bddf699c..3d04d7909164a15973f3980fda636c9fc096e8b6 100644 (file)
@@ -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.
index e1651ccdc6825cef0a58acc532b05a5978662b97..51f96b1a03fec35f5bb0c4592889a6cf6c85668b 100644 (file)
@@ -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
index c317baf328180cdd8661574f075445f6cdb4c459..615d64d5fa836c98a8a013076e0896a9de56cb49 100644 (file)
@@ -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)
index 2d4a225cd6545a6bd42834c9b21e1e5878613705..62f067ff057a8c0d0326b29117738d20cfc4a928 100644 (file)
@@ -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)
+
+
 \f
 ;;;; *** 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
index c485e98c608cfa3bf2551a3ed7dc511cfe0cadd1..d50e5035ffeb7692739a7f035af0c9bbb5665f6f 100644 (file)
@@ -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))
 
 \f
index c450c00201f9a0d74028e2d71b652fa556a55447..8796f0bfe508b23a4fc3c556facaf8982d3a9053 100755 (executable)
--- 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
index 233f6f7b207031617cbba12f6d29ea0afee992fe..9663a5b4743aea89c2d6c560033e8f733da08276 100644 (file)
@@ -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 */
index 332bbaa3856e2b8eb6432466aac2db091d8071e7..583e6eb05a953c4a56804f2c15f3e672081e6af2 100644 (file)
@@ -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
index 9dab2deacfaa09bf170197d4193a5d9aa4057d80..787c51d89ab9501695716c1acb4c49f6eb32f4b8 100644 (file)
@@ -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
 
 \f
 /* 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 */