summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in3
-rwxr-xr-xconfigure1.in57
-rw-r--r--lib-src/Makefile.in32
-rw-r--r--lib-src/make-docfile.c12
-rw-r--r--lisp/comint.el34
-rw-r--r--lisp/files.el4
-rw-r--r--lisp/textmodes/fill.el32
-rw-r--r--src/.gdbinit59
-rw-r--r--src/alloc.c8
-rw-r--r--src/callproc.c20
-rw-r--r--src/data.c6
-rw-r--r--src/emacs.c5
-rw-r--r--src/filelock.c2
-rw-r--r--src/floatfns.c7
-rw-r--r--src/keyboard.c4
-rw-r--r--src/lisp.h2
-rw-r--r--src/lread.c8
-rw-r--r--src/process.c5
-rw-r--r--src/search.c8
-rw-r--r--src/sysdep.c25
20 files changed, 185 insertions, 148 deletions
diff --git a/Makefile.in b/Makefile.in
index 13c3ed38263..f38779b75cf 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -122,12 +122,13 @@ removenullpaths=sed -e 's/^://' -e 's/:$$//' -e 's/::/:/'
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
diff --git a/configure1.in b/configure1.in
index e75009351f1..83f1196f8fc 100755
--- a/configure1.in
+++ b/configure1.in
@@ -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 @@ lockdir=""
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 @@ for flag in `echo ${config_h_opts} | tr ':' ' '`; do
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 @@ rm -f ./Makefile
-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 @@ rm -f ./build-install
-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 @@ echo "# This file is generated by \`${progname}.'
# 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
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index 9df18a74517..b3bf673bfa8 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -118,52 +118,52 @@ getopt.o: getopt.c getopt.h
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.
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index 1af038027e0..2436ac6458f 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -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 @@ write_c_args (out, buf, minargs, maxargs)
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);
}
diff --git a/lisp/comint.el b/lisp/comint.el
index ab52362b064..91d480e56fd 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -333,34 +333,16 @@ buffer. The hook comint-exec-hook is run after each exec."
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)))
diff --git a/lisp/files.el b/lisp/files.el
index 2e81fd6fdb0..1827bf9e7a1 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1046,8 +1046,8 @@ Optional second argument EXITING means ask about certain non-file buffers
(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)"))))
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el
index ad15fed9ee0..7ea751f9a37 100644
--- a/lisp/textmodes/fill.el
+++ b/lisp/textmodes/fill.el
@@ -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 @@ Prefix arg (non-nil third arg, if called from program) means justify as well."
(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 @@ MAIL-FLAG for a mail message, i. e. don't fill header lines."
(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))))))))
diff --git a/src/.gdbinit b/src/.gdbinit
index bd6646da5fc..55000f571eb 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -3,7 +3,6 @@ define pr
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 @@ define xtype
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 @@ break abort
# 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
diff --git a/src/alloc.c b/src/alloc.c
index b4637970dd7..9b7da1d0f5b 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -29,6 +29,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#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 @@ DEFUN ("make-marker", Fmake_marker, Smake_marker, 0, 0, 0,
{
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 ();
diff --git a/src/callproc.c b/src/callproc.c
index 1a564ad7ccc..9544ecf0a21 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -195,12 +195,9 @@ If you quit, the process is killed with SIGKILL.")
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 @@ If you quit, the process is killed with SIGKILL.")
#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 @@ If you quit, the process is killed with SIGKILL.")
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 @@ child_setup (in, out, err, new_argv, env, set_pgrp, current_dir)
/* 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);
diff --git a/src/data.c b/src/data.c
index 48af4ec9149..4e95494d593 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1959,11 +1959,7 @@ arith_error (signo)
#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);
diff --git a/src/emacs.c b/src/emacs.c
index 90a86b26723..104ba671253 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -721,7 +721,10 @@ decode_env_path (evarname, defalt)
/* 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;
diff --git a/src/filelock.c b/src/filelock.c
index 7a473753e58..b76ee689d55 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -65,7 +65,7 @@ char *superlock_path;
/* 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)))
diff --git a/src/floatfns.c b/src/floatfns.c
index c99ba487e71..20b90e63a85 100644
--- a/src/floatfns.c
+++ b/src/floatfns.c
@@ -22,6 +22,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "config.h"
#include "lisp.h"
+#include "syssignal.h"
Lisp_Object Qarith_error;
@@ -509,11 +510,7 @@ float_error (signo)
#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. */
diff --git a/src/keyboard.c b/src/keyboard.c
index 122fa247c39..e6139cfaf11 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -2105,9 +2105,9 @@ gobble_input (expected)
if (interrupt_input)
{
SIGMASKTYPE mask;
- EMACS_SIGBLOCKX (SIGIO, mask);
+ mask = sigblockx (SIGIO);
read_avail_input (expected);
- EMACS_SIGSETMASK (mask, mask);
+ sigsetmask (mask);
}
else
#endif
diff --git a/src/lisp.h b/src/lisp.h
index c7dd07058eb..b263370dac6 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -269,7 +269,7 @@ Lisp_Object;
/* 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
diff --git a/src/lread.c b/src/lread.c
index c3157c8d618..5ffa1ea5183 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1436,7 +1436,7 @@ init_lread ()
/* 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 @@ init_lread ()
{
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. */
diff --git a/src/process.c b/src/process.c
index d9e2734957f..9ba48ef7d56 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1109,11 +1109,8 @@ create_process (process, new_argv)
#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 @@ create_process (process, new_argv)
child_setup_tty (xforkout);
child_setup (xforkin, xforkout, xforkout,
- new_argv, env, 1, current_dir);
+ new_argv, 1, current_dir);
}
environ = save_environ;
}
diff --git a/src/search.c b/src/search.c
index 886f93f41c0..bd962d21491 100644
--- a/src/search.c
+++ b/src/search.c
@@ -111,11 +111,11 @@ signal_failure (arg)
}
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;
{
diff --git a/src/sysdep.c b/src/sysdep.c
index 62980380a68..5f6090a2460 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -638,11 +638,7 @@ reset_sigio ()
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 @@ request_sigio ()
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 @@ sys_signal (int signal_number, signal_handler_t action)
#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)
{