diff options
-rw-r--r-- | Makefile.in | 3 | ||||
-rwxr-xr-x | configure1.in | 57 | ||||
-rw-r--r-- | lib-src/Makefile.in | 32 | ||||
-rw-r--r-- | lib-src/make-docfile.c | 12 | ||||
-rw-r--r-- | lisp/comint.el | 34 | ||||
-rw-r--r-- | lisp/files.el | 4 | ||||
-rw-r--r-- | lisp/textmodes/fill.el | 32 | ||||
-rw-r--r-- | src/.gdbinit | 59 | ||||
-rw-r--r-- | src/alloc.c | 8 | ||||
-rw-r--r-- | src/callproc.c | 20 | ||||
-rw-r--r-- | src/data.c | 6 | ||||
-rw-r--r-- | src/emacs.c | 5 | ||||
-rw-r--r-- | src/filelock.c | 2 | ||||
-rw-r--r-- | src/floatfns.c | 7 | ||||
-rw-r--r-- | src/keyboard.c | 4 | ||||
-rw-r--r-- | src/lisp.h | 2 | ||||
-rw-r--r-- | src/lread.c | 8 | ||||
-rw-r--r-- | src/process.c | 5 | ||||
-rw-r--r-- | src/search.c | 8 | ||||
-rw-r--r-- | src/sysdep.c | 25 |
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) { |