changeset 638:40b255f55df3

*** empty log message ***
author Jim Blandy <jimb@redhat.com>
date Sun, 10 May 1992 18:15:10 +0000
parents 639afe138172
children 96378799b3f7
files Makefile.in configure1.in lib-src/Makefile.in lib-src/make-docfile.c lisp/comint.el lisp/files.el lisp/textmodes/fill.el src/.gdbinit src/alloc.c src/callproc.c src/data.c src/emacs.c src/filelock.c src/floatfns.c src/keyboard.c src/lisp.h src/lread.c src/process.c src/search.c src/sysdep.c
diffstat 20 files changed, 185 insertions(+), 148 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.in	Sun May 10 18:13:22 1992 +0000
+++ b/Makefile.in	Sun May 10 18:15:10 1992 +0000
@@ -122,12 +122,13 @@
 src/paths.h: Makefile src/paths.h.in
 	lisppath=`echo ${lisppath} | ${removenullpaths}` ;		\
 	buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ;	\
-	/bin/sed < src/paths.h.in > src/paths.h				\
+	/bin/sed < src/paths.h.in > src/paths.h.tmp			\
 	-e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";'		\
 	-e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";'	\
 	-e 's;\(#.*PATH_EXEC\).*$$;\1 "${libdir}";'			\
 	-e 's;\(#.*PATH_DATA\).*$$;\1 "${datadir}";'			\
 	-e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";'
+	./move-if-change src/paths.h.tmp src/paths.h
 
 src:	lib-src
 
--- a/configure1.in	Sun May 10 18:13:22 1992 +0000
+++ b/configure1.in	Sun May 10 18:15:10 1992 +0000
@@ -28,7 +28,15 @@
 # 	config.status is removed.
 #
 
-progname=$0
+# 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,
+# move-if-changed thinks they're different when they're not.
+progname="`echo $0 | sed 's:^\(\./\)*::'`"
 
 short_usage="Type \`${progname} -usage' for more information about options."
 
@@ -99,6 +107,9 @@
 window_system=""
 have_x_menu=""
 
+# Record all the arguments, so we can save them in config.status.
+arguments="$*"
+
 echo "Examining options."
 while [ $# != 0 ]; do
   arg="$1"
@@ -468,14 +479,15 @@
   esac
   sed_flags="${sed_flags} ${f}"
 done
-rm -f src/config.h
-eval '/bin/sed '${sed_flags}' < src/config.h.in > src/config.h'
+chmod +w -f src/config.h
+eval '/bin/sed '${sed_flags}' < src/config.h.in > src/config.h.tmp'
+./move-if-change src/config.h.tmp src/config.h
 # Remind people not to edit this.
 chmod -w src/config.h
 
 # Modify the parameters in the top makefile.
 echo "Producing ./Makefile from ./Makefile.in."
-rm -f ./Makefile
+chmod +w -f ./Makefile
 (echo "# This file is generated by \`${progname}' from \`./Makefile.in'.
 # If you are thinking about editing it, you should seriously consider
 # editing \`./Makefile.in' itself, or running \`${progname}' instead."
@@ -494,13 +506,14 @@
  -e 's;^\(libdir=\).*$;\1'"${libdir};"			\
  -e 's;^\(mandir=\).*$;\1'"${mandir};"			\
  -e 's;^\(infodir=\).*$;\1'"${infodir};"		\
-) > ./Makefile
+) > ./Makefile.tmp
+./move-if-change Makefile.tmp Makefile
 # Remind people not to edit this.
 chmod -w ./Makefile
 
 # Modify the parameters in the `build-install' script.
 echo "Producing ./build-install from ./build-install.in."
-rm -f ./build-install
+chmod +w -f ./build-install
 (echo "# This file is generated by \`${progname}' from \`./build-install.in'.
 # If you are thinking about editing it, you should seriously consider
 # editing \`./build-install.in' itself, or running \`${progname}' instead."
@@ -510,32 +523,35 @@
  -e 's;^\(lisppath=\).*$;\1'"${lisppath};"		\
  -e 's;^\(datadir=\).*$;\1'"${datadir};"		\
  -e 's;^\(lockdir=\).*$;\1'"${lockdir};"		\
- -e 's;^\(libdir=\).*$;\1'"${libdir};") > ./build-install
+ -e 's;^\(libdir=\).*$;\1'"${libdir};") > ./build-install.tmp
+./move-if-change build-install.tmp build-install
 # Remind people not to edit this.
 chmod -w build-install
 chmod +x build-install
 
 # Modify the parameters in the src makefile.
 echo "Producing src/Makefile from src/Makefile.in."
-rm -f src/Makefile
+chmod +w -f src/Makefile
 (echo "# This file is generated by \`${progname}' from \`Makefile.in'.
 # 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 's;^\(CC[ ]*=\).*$;\1'"${cc};") > src/Makefile
+ -e 's;^\(CC[ ]*=\).*$;\1'"${cc};") > src/Makefile.tmp
+./move-if-change src/Makefile.tmp src/Makefile
 # Remind people not to edit this.
 chmod -w src/Makefile
 
 # Modify the parameters in the lib-src makefile.
 echo "Producing lib-src/Makefile from lib-src/Makefile.in."
-rm -f lib-src/Makefile
+chmod +w -f lib-src/Makefile
 (echo "# This file is generated by \`${progname}' from \`Makefile.in'.
 # 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 's;^\(CFLAGS=\).*$;\1'"${c_switch_site};"		\
  -e 's;^\(LOADLIBES=\).*$;\1'"${libsrc_libs};"		\
- -e 's;^\(CC=\).*$;\1'"${cc};") > lib-src/Makefile
+ -e 's;^\(CC=\).*$;\1'"${cc};") > lib-src/Makefile.tmp
+./move-if-change lib-src/Makefile.tmp lib-src/Makefile
 # Remind people not to edit this.
 chmod -w lib-src/Makefile
 
@@ -578,24 +594,7 @@
 # running \`${progname}' instead.
 " >> config.status
 echo "${message}" >> config.status
-echo "'${progname}' \\
-	-machine='${machine}' \\
-	-opsystem='${opsystem}' \\
-        -g=${g} \\
-	-O=${O} \\
-	-cc=${cc} \\
-	-libdir='${libdir}' \\
-	-datadir='${datadir}' \\
-	-bindir='${bindir}' \\
-	-lisppath='${lisppath}' \\
-	-lockdir='${lockdir}' \\
-	-window_system='${window_system}' \\
-	-have_x_menu='${have_x_menu}' \\
-	-gnu_malloc='${gnu_malloc}' \\
-	-rel_alloc='${rel_alloc}' \\
-	-highpri='${highpri}' \\
-	-lisp_float_type='${lisp_float_type}' \\
-	$@" >> config.status
+echo "'./${progname}' ${arguments} "'$@' >> config.status
 # Remind people not to edit this.
 chmod -w config.status
 chmod +x config.status
--- a/lib-src/Makefile.in	Sun May 10 18:13:22 1992 +0000
+++ b/lib-src/Makefile.in	Sun May 10 18:15:10 1992 +0000
@@ -118,52 +118,52 @@
 getopt1.o: getopt1.c getopt.h
 
 etags: etags.c $(GETOPTDEPS)
-	$(CC) -o etags ${CFLAGS} -DETAGS etags.c $(GETOPTOBJS) $(LOADLIBES)
+	$(CC) ${CFLAGS} -DETAGS etags.c $(GETOPTOBJS) $(LOADLIBES) -o etags
 
 ctags: etags.c $(GETOPTDEPS)
-	$(CC) -o ctags ${CFLAGS} -DCTAGS etags.c $(GETOPTOBJS) $(LOADLIBES)
+	$(CC) ${CFLAGS} -DCTAGS etags.c $(GETOPTOBJS) $(LOADLIBES) -o ctags
 
 wakeup: wakeup.c
-	$(CC) -o wakeup ${CFLAGS} wakeup.c $(LOADLIBES)
+	$(CC) ${CFLAGS} wakeup.c $(LOADLIBES) -o wakeup
 
 make-docfile: make-docfile.c
-	$(CC) -o make-docfile ${CFLAGS} make-docfile.c $(LOADLIBES)
+	$(CC) ${CFLAGS} make-docfile.c $(LOADLIBES) -o make-docfile
 
 digest-doc: digest-doc.c
-	$(CC) -o digest-doc ${CFLAGS} digest-doc.c $(LOADLIBES)
+	$(CC) ${CFLAGS} digest-doc.c $(LOADLIBES) -o digest-doc 
 
 sorted-doc: sorted-doc.c
-	$(CC) -o sorted-doc ${CFLAGS} sorted-doc.c $(LOADLIBES)
+	$(CC) ${CFLAGS} sorted-doc.c $(LOADLIBES) -o sorted-doc
 
 b2m: b2m.c
-	$(CC) -o b2m ${CFLAGS} b2m.c $(LOADLIBES)
+	$(CC) ${CFLAGS} b2m.c $(LOADLIBES) -o b2m 
 
 movemail: movemail.c ../src/config.h
-	$(CC) -o movemail ${CFLAGS} movemail.c $(LOADLIBES)
+	$(CC) ${CFLAGS} movemail.c $(LOADLIBES) -o movemail
 
 cvtmail: cvtmail.c
-	$(CC) -o cvtmail ${CFLAGS} cvtmail.c $(LOADLIBES)
+	$(CC) ${CFLAGS} cvtmail.c $(LOADLIBES) -o cvtmail
 
 fakemail: fakemail.c ../src/config.h
-	$(CC) -o fakemail ${CFLAGS} fakemail.c $(LOADLIBES)
+	$(CC) ${CFLAGS} fakemail.c $(LOADLIBES) -o fakemail
 
 yow: yow.c ../src/paths.h
-	$(CC) -o yow ${CFLAGS} yow.c $(LOADLIBES)
+	$(CC) ${CFLAGS} yow.c $(LOADLIBES) -o yow
 
 env: env.c ../src/config.h
-	$(CC) -o env -DEMACS ${CFLAGS} env.c $(LOADLIBES)
+	$(CC) -DEMACS ${CFLAGS} env.c $(LOADLIBES) -o env
 
 emacsserver: emacsserver.c ../src/config.h
-	$(CC) -o emacsserver ${CFLAGS} emacsserver.c $(LOADLIBES)
+	$(CC) ${CFLAGS} emacsserver.c $(LOADLIBES) -o emacsserver
 
 emacsclient: emacsclient.c ../src/config.h
-	$(CC) -o emacsclient ${CFLAGS} emacsclient.c $(LOADLIBES)
+	$(CC) ${CFLAGS} emacsclient.c $(LOADLIBES) -o emacsclient
 
 hexl: hexl.c
-	$(CC) -o hexl ${CFLAGS} hexl.c $(LOADLIBES)
+	$(CC) ${CFLAGS} hexl.c $(LOADLIBES) -o hexl
 
 timer: getdate.o timer.o
-	$(CC) -o timer $(CFLAGS) getdate.o timer.o
+	$(CC) $(CFLAGS) getdate.o timer.o -o timer
 
 # These are NOT included in INSTALLABLES or UTILITIES.
 # See ../src/ymakefile.
--- a/lib-src/make-docfile.c	Sun May 10 18:13:22 1992 +0000
+++ b/lib-src/make-docfile.c	Sun May 10 18:15:10 1992 +0000
@@ -1,11 +1,11 @@
 /* Generate doc-string file for GNU Emacs from source files.
-   Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+   Copyright (C) 1985, 1986, 1992 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
 GNU Emacs 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 1, or (at your option)
+the Free Software Foundation; either version 2, or (at your option)
 any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
@@ -166,7 +166,13 @@
       else if (c == ' ' && space)
 	continue;
       space = (c == ' ');
-      putc (c, out);
+
+      /* Print the C arguments as they would appear in Elisp;
+	 print underscores as hyphens.  */
+      if (c == '_')
+	putc ('-');
+      else
+	putc (c, out);
     }
   putc ('\n', out);
 }
--- a/lisp/comint.el	Sun May 10 18:13:22 1992 +0000
+++ b/lisp/comint.el	Sun May 10 18:15:10 1992 +0000
@@ -333,34 +333,16 @@
     buffer))
 
 ;;; This auxiliary function cranks up the process for comint-exec in
-;;; the appropriate environment. It is twice as long as it should be
-;;; because emacs has two distinct mechanisms for manipulating the
-;;; process environment, selected at compile time with the
-;;; MAINTAIN-ENVIRONMENT #define. In one case, process-environment
-;;; is bound; in the other it isn't.
+;;; the appropriate environment.
 
 (defun comint-exec-1 (name buffer command switches)
-  (if (boundp 'process-environment) ; Not a completely reliable test.
-      (let ((process-environment
-	     (comint-update-env process-environment
-				(list (format "TERMCAP=emacs:co#%d:tc=unknown"
-					      (screen-width))
-				      "TERM=emacs"
-				      "EMACS=t"))))
-	(apply 'start-process name buffer command switches))
-
-      (let ((tcapv (getenv "TERMCAP"))
-	    (termv (getenv "TERM"))
-	    (emv   (getenv "EMACS")))
-	(unwind-protect
-	     (progn (setenv "TERMCAP" (format "emacs:co#%d:tc=unknown"
-					      (screen-width)))
-		    (setenv "TERM" "emacs")
-		    (setenv "EMACS" "t")
-		    (apply 'start-process name buffer command switches))
-	  (setenv "TERMCAP" tcapv)
-	  (setenv "TERM"    termv)
-	  (setenv "EMACS"   emv)))))
+  (let ((process-environment
+	 (comint-update-env process-environment
+			    (list (format "TERMCAP=emacs:co#%d:tc=unknown"
+					  (screen-width))
+				  "TERM=emacs"
+				  "EMACS=t"))))
+    (apply 'start-process name buffer command switches)))
 	     
 
 
--- a/lisp/files.el	Sun May 10 18:13:22 1992 +0000
+++ b/lisp/files.el	Sun May 10 18:15:10 1992 +0000
@@ -1046,8 +1046,8 @@
 				    (buffer-name buffer)))))))
 		(function
 		 (lambda (buffer)
-		     (set-buffer buffer)
-		     (save-buffer)))
+		   (set-buffer buffer)
+		   (save-buffer)))
 		(buffer-list)
 		'("buffer" "buffers" "save")))
 	(message "(No files need saving)"))))
--- a/lisp/textmodes/fill.el	Sun May 10 18:13:22 1992 +0000
+++ b/lisp/textmodes/fill.el	Sun May 10 18:15:10 1992 +0000
@@ -1,5 +1,5 @@
 ;; Fill commands for Emacs
-;; Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1992 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -18,6 +18,13 @@
 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 
 
+(defconst fill-individual-varying-indent nil
+  "*Controls criterion for a new paragraph in `fill-individual-paragraphs'.
+Non-nil means changing indent doesn't end a paragraph.
+That mode can handle paragraphs with extra indentation on the first line,
+but it requires separator lines between paragraphs.
+Nil means that any change in indentation starts a new paragraph.")
+
 (defun set-fill-prefix ()
   "Set the fill-prefix to the current line up to point.
 Filling expects lines to start with the fill prefix and
@@ -219,7 +226,13 @@
 
 (defun fill-individual-paragraphs (min max &optional justifyp mailp)
   "Fill each paragraph in region according to its individual fill prefix.
-Calling from a program, pass range to fill as first two arguments.
+
+If `fill-individual-varying-indent' is non-nil,
+then a mere change in indentation does not end a paragraph.  In this mode,
+the indentation for a paragraph is the minimum indentation of any line in it.
+
+When calling from a program, pass range to fill as first two arguments.
+
 Optional third and fourth arguments JUSTIFY-FLAG and MAIL-FLAG:
 JUSTIFY-FLAG to justify paragraphs (prefix arg),
 MAIL-FLAG for a mail message, i. e. don't fill header lines."
@@ -252,12 +265,23 @@
 		   (forward-line 1)
 		   ;; Now stop the loop if end of paragraph.
 		   (and (not (eobp))
+			(if fill-individual-varying-indent
+			    ;; If this line is a separator line, with or
+			    ;; without prefix, end the paragraph.
+			    (and 
 			(not (looking-at paragraph-separate))
 			(save-excursion
 			  (not (and (looking-at fill-prefix-regexp)
 				    (progn (forward-char (length fill-prefix))
-					   (looking-at paragraph-separate))))))))
+						(looking-at paragraph-separate))))))
+			  ;; If this line has more or less indent
+			  ;; than the fill prefix wants, end the paragraph.
+			  (and (looking-at fill-prefix-regexp)
+			       (save-excursion
+				 (not (progn (forward-char (length fill-prefix))
+					     (or (looking-at paragraph-separate)
+						 (looking-at paragraph-start))))))))))
 	  ;; Fill this paragraph, but don't add a newline at the end.
 	  (let ((had-newline (bolp)))
 	    (fill-region-as-paragraph start (point) justifyp)
-	    (or had-newline (delete-char -1))))))))
\ No newline at end of file
+	    (or had-newline (delete-char -1))))))))
--- a/src/.gdbinit	Sun May 10 18:13:22 1992 +0000
+++ b/src/.gdbinit	Sun May 10 18:15:10 1992 +0000
@@ -3,7 +3,6 @@
 set Fprin1 ($, Qexternal_debugging_output)
 echo \n
 end
-
 document pr
 Print the emacs s-expression which is $.
 Works only when an inferior emacs is executing.
@@ -13,73 +12,105 @@
 print (enum Lisp_Type) (($ >> 24) & 0x7f)
 p $$
 end
+document xtype
+Print the type of $, assuming it is an Elisp value.
+end
 
 define xint
 print (($ & 0x00ffffff) << 8) >> 8
 end
+document xint
+Print $, assuming it is an Elisp integer.  This gets the sign right.
+end
 
 define xptr
 print (void *) ($ & 0x00ffffff)
 end
+document xptr
+Print the pointer portion of $, assuming it is an Elisp value.
+end
 
 define xwindow
 print (struct window *) ($ & 0x00ffffff)
 end
+document xwindow
+Print $ as a window pointer, assuming it is an Elisp window value.
+end
 
 define xmarker
 print (struct Lisp_Marker *) ($ & 0x00ffffff)
 end
+document xmarker
+Print $ as a marker pointer, assuming it is an Elisp marker value.
+end
 
 define xbuffer
 print (struct buffer *) ($ & 0x00ffffff)
 end
+document xbuffer
+Print $ as a buffer pointer, assuming it is an Elisp buffer value.
+end
 
 define xsymbol
 print (struct Lisp_Symbol *) ($ & 0x00ffffff)
 print &$->name->data
 print $$
 end
+document xsymbol
+Print the name and address of the symbol $.
+This command assumes that $ is an Elisp symbol value.
+end
 
 define xstring
 print (struct Lisp_String *) ($ & 0x00ffffff)
-print ($->data[0])@($->size)
+print ($->size > 10000) ? "big string" : ($->data[0])@($->size)
 print $$
 end
-
 document xstring
-Assume that $ is an Emacs Lisp string object, print the string's
-contents, and set $ to a pointer to the string.
+Print the contents and address of the string $.
+This command assumes that $ is an Elisp string value.
 end
 
 define xvector
 set $temp = (struct Lisp_Vector *) ($ & 0x00ffffff)
-print ($temp->contents[0])@($temp->size)
+print ($temp->size > 10000) ? "big vector" : ($temp->contents[0])@($temp->size)
 print $temp
 end
-
 document xvector
-Assume that $ is an Emacs Lisp vector object, print the vector's
-contents, and set $ to a pointer to the vector.
+Print the contents and address of the vector $.
+This command assumes that $ is an Elisp vector value.
 end
 
 define xscreen
 print (struct screen *) ($ & 0x00ffffff)
 end
+document xwindow
+Print $ as a screen pointer, assuming it is an Elisp screen value.
+end
 
 define xcons
 print (struct Lisp_Cons *) ($ & 0x00ffffff)
 print *$
 end
+document xcons
+Print the contents of $, assuming it is an Elisp cons.
+end
 
 define xcar
 print ((($ >> 24) & 0x7f) == Lisp_Cons ? ((struct Lisp_Cons *) ($ & 0x00ffffff))->car : 0)
 end
+document xcar
+Print the car of $, assuming it is an Elisp pair.
+end
 
 define xcdr
 print ((($ >> 24) & 0x7f) == Lisp_Cons ? ((struct Lisp_Cons *) ($ & 0x00ffffff))->cdr : 0)
 end
+document xcdr
+Print the cdr of $, assuming it is an Elisp pair.
+end
 
-set prettyprint on
+set print pretty on
 
 # Don't let abort actually run, as it will make
 # stdio stop working and therefore the `pr' command below as well.
@@ -90,8 +121,8 @@
 # instead...
 break _XPrintDefaultError
 
-unset env TERMCAP
-unset env TERM
-set env DISPLAY :0.0
-info env DISPLAY
+unset environment TERMCAP
+unset environment TERM
+set environment DISPLAY :0.0
+show environment DISPLAY
 set args -q
--- a/src/alloc.c	Sun May 10 18:13:22 1992 +0000
+++ b/src/alloc.c	Sun May 10 18:15:10 1992 +0000
@@ -29,6 +29,8 @@
 #endif	/* MULTI_SCREEN */
 #endif
 
+#include "syssignal.h"
+
 #define max(A,B) ((A) > (B) ? (A) : (B))
 
 /* Macro to verify that storage intended for Lisp objects is not
@@ -549,11 +551,11 @@
 {
   register Lisp_Object val;
   register struct Lisp_Marker *p;
+
   /* Detact the bug that seems to have caused this to be called from
      a signal handler.  */
-  int mask, dummy;
-  EMACS_SIGSETMASK (-1, mask);
-  EMACS_SIGSETMASK (mask, dummy);
+  SIGMASKTYPE mask;
+  mask = sigblock (SIGEMPTYMASK);
   if (mask != 0)
     abort ();
 
--- a/src/callproc.c	Sun May 10 18:13:22 1992 +0000
+++ b/src/callproc.c	Sun May 10 18:15:10 1992 +0000
@@ -195,12 +195,9 @@
        Protect it from permanent change.  */
     register char **save_environ = environ;
     register int fd1 = fd[1];
-    char **env;
-
-    env = environ;
 
 #if 0  /* Some systems don't have sigblock.  */
-    EMACS_SIGBLOCK (sigmask (SIGCHLD), mask);
+    mask = sigblock (sigmask (SIGCHLD));
 #endif
 
     /* Record that we're about to create a synchronous process.  */
@@ -217,18 +214,14 @@
 #else
         setpgrp (pid, pid);
 #endif /* USG */
-	child_setup (filefd, fd1, fd1, new_argv, env, 0, current_dir);
+	child_setup (filefd, fd1, fd1, new_argv, 0, current_dir);
       }
 
 #if 0
     /* Tell SIGCHLD handler to look for this pid.  */
     synch_process_pid = pid;
     /* Now let SIGCHLD come through.  */
-    {
-      int dummy;
-
-      EMACS_SIGSETMASK (mask, dummy);
-    }
+    sigsetmask (mask);
 #endif
 
     environ = save_environ;
@@ -368,13 +361,14 @@
    a decent error from within the child, this should be verified as an
    executable directory by the parent.  */
 
-child_setup (in, out, err, new_argv, env, set_pgrp, current_dir)
+child_setup (in, out, err, new_argv, set_pgrp, current_dir)
      int in, out, err;
      register char **new_argv;
-     char **env;
      int set_pgrp;
      Lisp_Object current_dir;
 {
+  char **env;
+
   register int pid = getpid();
 
   setpriority (PRIO_PROCESS, pid, 0);
@@ -424,7 +418,7 @@
     /* new_length + 1 to include terminating 0 */
     env = new_env = (char **) alloca ((new_length + 1) * sizeof (char *));
 
-    /* Copy the env strings into new_env.  */
+    /* Copy the Vprocess_alist strings into new_env.  */
     for (tem = Vprocess_environment;
 	 (XTYPE (tem) == Lisp_Cons
 	  && XTYPE (XCONS (tem)->car) == Lisp_String);
--- a/src/data.c	Sun May 10 18:13:22 1992 +0000
+++ b/src/data.c	Sun May 10 18:15:10 1992 +0000
@@ -1959,11 +1959,7 @@
 #ifdef BSD4_1
   sigrelse (SIGFPE);
 #else /* not BSD4_1 */
-  {
-    int dummy;
-
-    EMACS_SIGSETMASK (SIGEMPTYMASK, dummy);
-  }
+  sigsetmask (SIGEMPTYMASK);
 #endif /* not BSD4_1 */
 
   Fsignal (Qarith_error, Qnil);
--- a/src/emacs.c	Sun May 10 18:13:22 1992 +0000
+++ b/src/emacs.c	Sun May 10 18:15:10 1992 +0000
@@ -721,7 +721,10 @@
   /* It's okay to use getenv here, because this function is only used
      to initialize variables when Emacs starts up, and isn't called
      after that.  */
-  path = (char *) getenv (evarname);
+  if (evarname != 0)
+    path = (char *) getenv (evarname);
+  else
+    path = 0;
   if (!path)
     path = defalt;
   lpath = Qnil;
--- a/src/filelock.c	Sun May 10 18:13:22 1992 +0000
+++ b/src/filelock.c	Sun May 10 18:15:10 1992 +0000
@@ -65,7 +65,7 @@
 
 /* Set LOCK to the name of the lock file for the filename FILE.
    char *LOCK; Lisp_Object FILE;  */
-#define MAKE_LOCK_PATH (lock, file) \
+#define MAKE_LOCK_PATH(lock, file) \
   (lock = (char *) alloca (XSTRING (file)->size + strlen (lock_path) + 1), \
    fill_in_lock_file_name (lock, (file)))
 
--- a/src/floatfns.c	Sun May 10 18:13:22 1992 +0000
+++ b/src/floatfns.c	Sun May 10 18:15:10 1992 +0000
@@ -22,6 +22,7 @@
 
 #include "config.h"
 #include "lisp.h"
+#include "syssignal.h"
 
 Lisp_Object Qarith_error;
 
@@ -509,11 +510,7 @@
 #ifdef BSD4_1
   sigrelse (SIGILL);
 #else /* not BSD4_1 */
-  {
-    int dummy;
-
-    EMACS_SIGSETMASK (0, dummy);
-  }
+  sigsetmask (SIGEMPTYMASK);
 #endif /* not BSD4_1 */
 #else
   /* Must reestablish handler each time it is called.  */
--- a/src/keyboard.c	Sun May 10 18:13:22 1992 +0000
+++ b/src/keyboard.c	Sun May 10 18:15:10 1992 +0000
@@ -2105,9 +2105,9 @@
   if (interrupt_input)
     {
       SIGMASKTYPE mask;
-      EMACS_SIGBLOCKX (SIGIO, mask);
+      mask = sigblockx (SIGIO);
       read_avail_input (expected);
-      EMACS_SIGSETMASK (mask, mask);
+      sigsetmask (mask);
     }
   else
 #endif
--- a/src/lisp.h	Sun May 10 18:13:22 1992 +0000
+++ b/src/lisp.h	Sun May 10 18:15:10 1992 +0000
@@ -269,7 +269,7 @@
 /* Extract the value of a Lisp_Object as a signed integer.  */
 
 #ifndef XINT   /* Some machines need to do this differently.  */
-#define XINT(a) (((a) << INTBITS-VALBITS) >> INTBITS-VALBITS)
+#define XINT(a) (((a) << (INTBITS-VALBITS)) >> (INTBITS-VALBITS))
 #endif
 
 /* Extract the value as an unsigned integer.  This is a basis
--- a/src/lread.c	Sun May 10 18:13:22 1992 +0000
+++ b/src/lread.c	Sun May 10 18:15:10 1992 +0000
@@ -1436,7 +1436,7 @@
   /* Compute the default load-path.  */
 #ifdef CANNOT_DUMP
   normal = PATH_LOADSEARCH;
-  Vload_path = decode_env_path ("", normal);
+  Vload_path = decode_env_path (0, normal);
 #else
   if (NILP (Vpurify_flag))
     normal = PATH_LOADSEARCH;
@@ -1452,12 +1452,12 @@
     {
       Lisp_Object dump_path;
 
-      dump_path = decode_env_path ("", PATH_DUMPLOADSEARCH);
+      dump_path = decode_env_path (0, PATH_DUMPLOADSEARCH);
       if (! NILP (Fequal (dump_path, Vload_path)))
-	Vload_path = decode_env_path ("", normal);
+	Vload_path = decode_env_path (0, normal);
     }
   else
-    Vload_path = decode_env_path ("", normal);
+    Vload_path = decode_env_path (0, normal);
 #endif
 
   /* Warn if dirs in the *standard* path don't exist.  */
--- a/src/process.c	Sun May 10 18:13:22 1992 +0000
+++ b/src/process.c	Sun May 10 18:15:10 1992 +0000
@@ -1109,11 +1109,8 @@
 #endif
   int pty_flag = 0;
   Lisp_Object current_dir;
-  char **env;
   extern char **environ;
 
-  env = environ;
-
   inchannel = outchannel = -1;
 
 #ifdef HAVE_PTYS
@@ -1318,7 +1315,7 @@
 
 	child_setup_tty (xforkout);
 	child_setup (xforkin, xforkout, xforkout,
-		     new_argv, env, 1, current_dir);
+		     new_argv, 1, current_dir);
       }
     environ = save_environ;
   }
--- a/src/search.c	Sun May 10 18:13:22 1992 +0000
+++ b/src/search.c	Sun May 10 18:15:10 1992 +0000
@@ -111,11 +111,11 @@
 }
 
 DEFUN ("looking-at", Flooking_at, Slooking_at, 1, 1, 0,
-  "Return t if text after point matches regular expression PAT.
-This function modifies the match data that `match-beginning',
-`match-end' and `match-data' access; save and restore the match
+  "Return t if text after point matches regular expression PAT.\n\
+This function modifies the match data that `match-beginning',\n\
+`match-end' and `match-data' access; save and restore the match\n\
 data if you want to preserve them.")
-")
+  "Return t if text after point matches regular expression PAT.")
   (string)
      Lisp_Object string;
 {
--- a/src/sysdep.c	Sun May 10 18:13:22 1992 +0000
+++ b/src/sysdep.c	Sun May 10 18:15:10 1992 +0000
@@ -638,11 +638,7 @@
 request_sigio ()
 {
 #ifdef SIGWINCH
-  {
-    int dummy;
-
-    EMACS_SIGUNBLOCKX (SIGWINCH, dummy);
-  }
+  sigunblock (sigmask (SIGWINCH));
 #endif
   fcntl (0, F_SETFL, old_fcntl_flags | FASYNC);
 
@@ -652,11 +648,7 @@
 unrequest_sigio ()
 {
 #ifdef SIGWINCH
-  {
-    int dummy;
-    
-    EMACS_SIGBLOCK (SIGWINCH, dummy);
-  }
+  sigblock (sigmask (SIGWINCH));
 #endif
   fcntl (0, F_SETFL, old_fcntl_flags);
   interrupts_deferred = 1;
@@ -1882,6 +1874,19 @@
 #endif /* DGUX */
 }
 
+#ifndef __GNUC__
+/* If we're compiling with GCC, we don't need this function, since it
+   can be written as a macro.  */
+sigset_t
+sys_sigmask (int sig)
+{
+  sigset_t mask;
+  sigemptyset (&mask);
+  sigaddset (&mask, sig);
+  return mask;
+}
+#endif
+
 int
 sys_sigpause (sigset_t new_mask)
 {