#!/bin/sh #### Patch script - GNU Emacs - version 19.27 to 19.28 #### This file contains patches to turn version 19.27 of GNU Emacs into #### 19.28. To apply them, cd to the top of the Emacs source tree, and #### then type 'sh '. #### After you apply the patches, you should run Emacs (an earlier 19 will do) #### and type M-x byte-recompile-directory RET lisp RET #### to recompile the changed Emacs Lisp files. #### Then you can build the new Emacs version. #### We don't include patches for Info files since you can #### regenerate them from the Texinfo files that we do include. #### To update the changed info files, do #### (cd man; makeinfo dired-x.texi) ### Patchmaker's checklist: ### - update version numbers in comments and version.el tweak ### - diff -u ls -R listings, and decide on rm's and mv's. ### - apply rm's and mv's, and then do a diff -cprP --exclude=\*.elc ### to generate the body. ### - insert the body just before the line saying `end-of-emacs-patch-kit'. if [ -d lisp ] ; then true else if [ -d emacs-19.27/lisp ] ; then cd emacs-19.27 else (echo "$0: In order to apply this patch, the current directory" echo "must be the top of the Emacs distribution tree.") >&2 exit 1 fi fi ### We can't patch version.el, because it contains some random dump ### number. So we'll be a little more relaxed about this edit. sed < lisp/version.el > t-$$ \ -e 's/defconst emacs-version "[^"]*"/defconst emacs-version "19.28.0"/' mv lisp/version.el lisp/version.el~ mv t-$$ lisp/version.el ### Put moves and renames here. rm -f etc/TO-DO rm -f info/info-1 info/info-2 patch -p1 << \end-of-emacs-patch-kit diff -rc2P --exclude-from=exceptions emacs-19.27/ChangeLog emacs-19.28/ChangeLog *** emacs-19.27/ChangeLog Sun Sep 11 14:58:23 1994 --- emacs-19.28/ChangeLog Thu Oct 6 01:11:29 1994 *************** *** 1,2 **** --- 1,8 ---- + Thu Oct 6 01:11:08 1994 Richard Stallman + + * Version 19.28 released. + + * configure.in: Determine HAVE_X11R6. + Sun Sep 11 14:56:01 1994 Richard Stallman diff -rc2P --exclude-from=exceptions emacs-19.27/README emacs-19.28/README *** emacs-19.27/README Sun Sep 11 21:15:36 1994 --- emacs-19.28/README Wed Oct 26 08:24:51 1994 *************** *** 1,12 **** ! This directory tree holds version 19.27 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. ! Please note that version 19 of Emacs is still in beta-test. Although ! you may well encounter bugs in this release, we encourage you to use ! it, find the bugs, and report them; your bug reports are valuable ! contributions to the FSF, since they allow us to notice and fix ! problems on machines we don't have, or in code we don't use often. ! See the "Bugs" node of the info tree for more information on how to ! report bugs. See the files `etc/NEWS' and `etc/news.texi' for information on new --- 1,11 ---- ! This directory tree holds version 19.28 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. ! Version 19.28 is quite stable; most users do not encounter any bugs. ! But if you do encounter bugs in this version, we encourage you to ! report them; your bug reports are valuable contributions to the FSF, ! since they allow us to notice and fix problems on machines we don't ! have, or in code we don't use often. See the "Bugs" node of the info ! tree for more information on how to report bugs. See the files `etc/NEWS' and `etc/news.texi' for information on new diff -rc2P --exclude-from=exceptions emacs-19.27/configure emacs-19.28/configure *** emacs-19.27/configure Sun Sep 4 23:17:30 1994 --- emacs-19.28/configure Sun Oct 16 04:17:37 1994 *************** *** 2341,2344 **** --- 2341,2376 ---- fi + if test "${HAVE_X11}" = "yes"; then + test -n "$silent" || echo "checking for X11 version" + cat > conftest.${ac_ext} < + int main() { return 0; } + int t() { + #if XlibSpecificationRelease < 6 + fail; + #endif + ; return 0; } + EOF + if eval $ac_compile; then + rm -rf conftest* + + { + test -n "$verbose" && \ + echo " defining HAVE_X11R6" + echo "#define" HAVE_X11R6 "1" >> confdefs.h + DEFS="$DEFS -DHAVE_X11R6=1" + ac_sed_defs="${ac_sed_defs}\${ac_dA}HAVE_X11R6\${ac_dB}HAVE_X11R6\${ac_dC}1\${ac_dD} + \${ac_uA}HAVE_X11R6\${ac_uB}HAVE_X11R6\${ac_uC}1\${ac_uD} + \${ac_eA}HAVE_X11R6\${ac_eB}HAVE_X11R6\${ac_eC}1\${ac_eD} + " + } + + + fi + rm -f conftest* + + fi + if test "${USE_X_TOOLKIT}" != "none"; then test -n "$silent" || echo "checking for X11 toolkit version" diff -rc2P --exclude-from=exceptions emacs-19.27/configure.in emacs-19.28/configure.in *** emacs-19.27/configure.in Sun Sep 4 03:02:03 1994 --- emacs-19.28/configure.in Thu Oct 6 01:09:24 1994 *************** *** 1495,1498 **** --- 1495,1509 ---- fi + if test "${HAVE_X11}" = "yes"; then + AC_COMPILE_CHECK(X11 version, + [#include ], + [ + #if XlibSpecificationRelease < 6 + fail; + #endif + ], + AC_DEFINE(HAVE_X11R6)) + fi + if test "${USE_X_TOOLKIT}" != "none"; then AC_COMPILE_CHECK(X11 toolkit version, diff -rc2P --exclude-from=exceptions emacs-19.27/etc/MACHINES emacs-19.28/etc/MACHINES *** emacs-19.27/etc/MACHINES Tue Sep 13 18:53:58 1994 --- emacs-19.28/etc/MACHINES Sun Oct 30 15:09:36 1994 *************** *** 207,211 **** This machine is the older Mips-based DECstation. ! Emacs does not support the Alpha CPU. We hope to support that in 19.27. 19.25 works on Ultrix 4.2. The 19.26 pretest was reported to work --- 207,211 ---- This machine is the older Mips-based DECstation. ! Emacs does not support the Alpha CPU. We hope to support that in 19.29. 19.25 works on Ultrix 4.2. The 19.26 pretest was reported to work diff -rc2P --exclude-from=exceptions emacs-19.27/etc/NEWS emacs-19.28/etc/NEWS *** emacs-19.27/etc/NEWS Tue Sep 13 00:32:13 1994 --- emacs-19.28/etc/NEWS Wed Oct 26 08:26:32 1994 *************** *** 5,8 **** --- 5,10 ---- Please send Emacs bug reports to bug-gnu-emacs@prep.ai.mit.edu. For older news, see the file ONEWS. + + Emacs 19.28 has no changes except bug fixes. * Changes in Emacs 19.27 diff -rc2P --exclude-from=exceptions emacs-19.27/lib-src/ChangeLog emacs-19.28/lib-src/ChangeLog *** emacs-19.27/lib-src/ChangeLog Fri Sep 16 20:01:21 1994 --- emacs-19.28/lib-src/ChangeLog Sun Sep 11 14:57:09 1994 *************** *** 1,12 **** - Fri Sep 16 20:00:38 1994 Karl Heuer - - * emacsserver.c (FD_*) [HAVE_SOCKETS & !HAVE_SYSVIPC]: If not already - defined, use simple 32-bit versions of these macros. - (main) [HAVE_SOCKETS & !HAVE_SYSVIPC]: Use these macros. - - Fri Sep 16 17:15:13 1994 Andreas Schwab - - * etags.c (etags_getcwd): Use getcwd if available. - Sun Sep 11 14:56:01 1994 Richard Stallman --- 1,2 ---- diff -rc2P --exclude-from=exceptions emacs-19.27/lisp/ChangeLog emacs-19.28/lisp/ChangeLog *** emacs-19.27/lisp/ChangeLog Wed Sep 14 04:31:15 1994 --- emacs-19.28/lisp/ChangeLog Thu Oct 6 01:42:11 1994 *************** *** 1,2 **** --- 1,19 ---- + Thu Oct 6 01:06:27 1994 Richard Stallman + + * Version 19.28 released. + + * imenu.el (imenu--cleanup): Use mapcar, not mapc. + + * isearch.el (isearch-mode-map): Explicitly bind to nil + the Alt characters that iso-transl defines translators for. + + * ispell.el (ispell-highlight-spelling-error): + Don't use faces if wondow-system is nil. + + Fri Sep 23 10:08:09 1994 Boris Goldowsky + + * fill.el (justify-current-line): Do insertion with text-prop + inheritance. + Sun Sep 11 14:56:01 1994 Richard Stallman diff -rc2P --exclude-from=exceptions emacs-19.27/lisp/fill.el emacs-19.28/lisp/fill.el *** emacs-19.27/lisp/fill.el Wed Jul 27 16:07:31 1994 --- emacs-19.28/lisp/fill.el Thu Oct 6 01:41:12 1994 *************** *** 296,300 **** (while (re-search-forward "[.?!][])\"']*\n" nil t) (forward-char -1) ! (insert ? )) (goto-char (point-max)) ;; Note that the buffer bounds start after the indentation, --- 296,300 ---- (while (re-search-forward "[.?!][])\"']*\n" nil t) (forward-char -1) ! (insert-and-inherit ? )) (goto-char (point-max)) ;; Note that the buffer bounds start after the indentation, *************** *** 311,318 **** (skip-chars-backward " ") (setq nmove (1- nmove)))) ! (insert " ") (skip-chars-backward " ") (setq ncols (1- ncols))))))) nil) (defun fill-nonuniform-paragraphs (min max &optional justifyp mailp) --- 311,319 ---- (skip-chars-backward " ") (setq nmove (1- nmove)))) ! (insert-and-inherit " ") (skip-chars-backward " ") (setq ncols (1- ncols))))))) nil) + (defun fill-nonuniform-paragraphs (min max &optional justifyp mailp) diff -rc2P --exclude-from=exceptions emacs-19.27/lisp/imenu.el emacs-19.28/lisp/imenu.el *** emacs-19.27/lisp/imenu.el Sat Jul 30 03:55:11 1994 --- emacs-19.28/lisp/imenu.el Thu Oct 6 01:47:58 1994 *************** *** 306,310 **** ;; if alist is provided use that list. (and imenu--index-alist ! (mapc (function (lambda (item) --- 306,310 ---- ;; if alist is provided use that list. (and imenu--index-alist ! (mapcar (function (lambda (item) diff -rc2P --exclude-from=exceptions emacs-19.27/lisp/isearch.el emacs-19.28/lisp/isearch.el *** emacs-19.27/lisp/isearch.el Tue Aug 30 17:20:16 1994 --- emacs-19.28/lisp/isearch.el Thu Oct 6 01:32:50 1994 *************** *** 234,237 **** --- 234,244 ---- (define-key map "\C-y" 'isearch-yank-line) + (define-key map [?\A-\"] nil) + (define-key map [?\A-'] nil) + (define-key map [?\A-`] nil) + (define-key map [?\A-,] nil) + (define-key map [?\A-^] nil) + (define-key map [?\A-_] nil) + (define-key map [?\A-~] nil) ;; Bind the ASCII-equivalent "function keys" explicitly to nil ;; so that the default binding does not apply. diff -rc2P --exclude-from=exceptions emacs-19.27/lisp/ispell.el emacs-19.28/lisp/ispell.el *** emacs-19.27/lisp/ispell.el Sun Sep 11 01:41:12 1994 --- emacs-19.28/lisp/ispell.el Thu Oct 6 01:06:02 1994 *************** *** 1302,1306 **** ((string-match "Lucid" emacs-version) 'ispell-highlight-spelling-error-lucid) ! ((and (string-lessp "19" emacs-version) (featurep 'faces)) 'ispell-highlight-spelling-error-overlay) (t 'ispell-highlight-spelling-error-generic)))) --- 1302,1308 ---- ((string-match "Lucid" emacs-version) 'ispell-highlight-spelling-error-lucid) ! ((and (string-lessp "19" emacs-version) ! (featurep 'faces) ! window-system) 'ispell-highlight-spelling-error-overlay) (t 'ispell-highlight-spelling-error-generic)))) diff -rc2P --exclude-from=exceptions emacs-19.27/lisp/loaddefs.el emacs-19.28/lisp/loaddefs.el *** emacs-19.27/lisp/loaddefs.el Wed Sep 14 14:36:30 1994 --- emacs-19.28/lisp/loaddefs.el Tue Oct 18 03:51:49 1994 *************** *** 3228,3240 **** ;;;*** - ;;;### (autoloads (set-gosmacs-bindings) "gosmacs" "gosmacs.el" (11190 10276)) - ;;; Generated autoloads from gosmacs.el - - (autoload (quote set-gosmacs-bindings) "gosmacs" "\ - Rebind some keys globally to make GNU Emacs resemble Gosling Emacs. - Use \\[set-gnu-bindings] to restore previous global bindings." t nil) - - ;;;*** - ;;;### (autoloads (perldb xdb dbx sdb gdb) "gud" "gud.el" (11711 26140)) ;;; Generated autoloads from gud.el --- 3228,3231 ---- *************** *** 4602,4605 **** --- 4593,4603 ---- The text previously in the region is overwritten by the blanks. When called from a program, requires two args which specify the corners." t nil) + + ;;;*** + + ;;;### (autoloads (reporter-submit-bug-report) "reporter" "reporter.el" (11818 52911)) + ;;; Generated autoloads from reporter.el + + (autoload (quote reporter-submit-bug-report) "reporter" nil nil nil) ;;;*** diff -rc2P --exclude-from=exceptions emacs-19.27/lisp/version.el emacs-19.28/lisp/version.el *** emacs-19.27/lisp/version.el Sun Sep 11 21:12:27 1994 --- emacs-19.28/lisp/version.el Thu Oct 6 01:06:53 1994 *************** *** 24,28 **** ;;; Code: ! (defconst emacs-version "19.27" "\ Version numbers of this version of Emacs.") --- 24,28 ---- ;;; Code: ! (defconst emacs-version "19.28" "\ Version numbers of this version of Emacs.") diff -rc2P --exclude-from=exceptions emacs-19.27/man/custom.texi emacs-19.28/man/custom.texi *** emacs-19.27/man/custom.texi Sun Sep 11 13:22:03 1994 --- emacs-19.28/man/custom.texi Thu Oct 6 00:56:55 1994 *************** *** 1580,1584 **** @example ! (setq user-mail-address "coon@yoyodyne.com") @end example --- 1580,1584 ---- @example ! (setq user-mail-address "coon@@yoyodyne.com") @end example diff -rc2P --exclude-from=exceptions emacs-19.27/man/emacs.texi emacs-19.28/man/emacs.texi *** emacs-19.27/man/emacs.texi Sun Sep 11 14:53:41 1994 --- emacs-19.28/man/emacs.texi Thu Oct 6 01:47:07 1994 *************** *** 4,8 **** @c The edition number appears in several places in this file This corresponds to the tenth edition of the @cite{GNU Emacs Manual}, ! for Emacs version 19.27. @c Please REMEMBER to update edition number in *three* places in this file. --- 4,8 ---- @c The edition number appears in several places in this file This corresponds to the tenth edition of the @cite{GNU Emacs Manual}, ! for Emacs version 19.28. @c Please REMEMBER to update edition number in *three* places in this file. *************** *** 64,68 **** @center @titlefont{GNU Emacs Manual} @sp 4 ! @center Tenth Edition, Updated for Emacs version 19.27 @sp 5 @center Richard Stallman --- 64,68 ---- @center @titlefont{GNU Emacs Manual} @sp 4 ! @center Tenth Edition, Updated for Emacs version 19.28 @sp 5 @center Richard Stallman *************** *** 72,76 **** @sp 2 Tenth Edition @* ! Updated for Emacs Version 19.27, @* July 1994 --- 72,76 ---- @sp 2 Tenth Edition @* ! Updated for Emacs Version 19.28, @* July 1994 *************** *** 111,115 **** display editor. This Info file describes how to edit with Emacs and some of how to customize it, but not how to extend it. It ! corresponds to GNU Emacs version 19.27. @end ifinfo --- 111,115 ---- display editor. This Info file describes how to edit with Emacs and some of how to customize it, but not how to extend it. It ! corresponds to GNU Emacs version 19.28. @end ifinfo diff -rc2P --exclude-from=exceptions emacs-19.27/src/ChangeLog emacs-19.28/src/ChangeLog *** emacs-19.27/src/ChangeLog Wed Sep 14 04:29:54 1994 --- emacs-19.28/src/ChangeLog Wed Oct 26 09:47:03 1994 *************** *** 1,2 **** --- 1,67 ---- + Sun Oct 23 16:25:48 1994 Richard Stallman + + * Version 19.28 released. + + * s/linux.h (LD_SWITCH_SYSTEM): Definition deleted. + + * s/freebsd.h (LD_SWITCH_SYSTEM): New definition. + + * s/freebsd.h (BSD): Have two definitions according to version number. + + * s/freebsd.h (DECLARE_GETPWUID_WITH_UID_T): Defined. + [NO_SHARED_LIBS and __FreeBSD__]: + (LD_SWITCH_SYSTEM, A_TEXT_OFFSET, A_TEXT_SEEK): Alternate definitions. + + * xfns.c (x_real_positions): Catch errors and retry if error happens. + + * textprop.c (Fset_text_properties): Special case for getting + rid of all properties of a string. + + * xterm.c (x_new_font): Don't use the FONT property + unless it has enough dashes to be an official font name. + + * keyboard.c (read_char): Add local variable key_already_recorded. + If an event comes from read_char_minibuf_menu_prompt, + return as early as we safely can. + + * textprop.c (Fset_text_properties): Don't let validate_interval_range + increment START and END twice. + + * xfaces.c (Fset_face_attribute_internal): Mark frame garbaged whenever + any face's font or color is changed. + + * m/hp9000s300.h [not BSD4_3] [__GNUC__] (HAVE_ALLOCA): Defined. + + * m/dpx2.h (POSIX_SIGNALS): Define it. + (sigsetmask): Add #undef. + + * s/linux.h: Don't include signal.h, values.h. + (signal): Definition deleted. + + * s/sco4.h (POSIX_SIGNALS): Defined. + + * config.h.in (HAVE_X11R6): Add #undef. + * s/sol2.h (REL_ALLOC): Test HAVE_X11 and HAVE_X11R6. + Don't test USE_X_TOOLKIT. + + * emacs.c (shut_down_emacs): Don't call Fx_close_current_connection. + + * s/hpux9.h (HAVE_TERMIO, HAVE_TERMIOS, NO_TERMIO): Undo Jul 28 change. + + * unexsunos4.c [SUNOS4]: Include link.h. + (unexec) [SUNOS4]: Turn off relocations that ld.so did. + + * s/sunos4-0.h (SUNOS4): Defined. + + * unexec.c (make_hdr): Undo June 16 change. + + * s/bsd386.h (__bsdi__): Define, unless already defined. + (DECLARE_GETPWUID_WITH_UID_T): Define. + + * filelock.c (getpwuid): Test just DECLARE_GETPWUID_WITH_UID_T, + not __bsdi__. + * xrdb.c (getpwuid, getpwnam): Test just DECLARE_GETPWUID_WITH_UID_T, + not __bsdi__. + Sun Sep 11 14:56:01 1994 Richard Stallman diff -rc2P --exclude-from=exceptions emacs-19.27/src/config.h.in emacs-19.28/src/config.h.in *** emacs-19.27/src/config.h.in Sun Sep 4 03:00:16 1994 --- emacs-19.28/src/config.h.in Thu Oct 6 01:09:04 1994 *************** *** 48,51 **** --- 48,54 ---- #undef HAVE_X11 + /* Define if we have the X11R6 or newer. */ + #undef HAVE_X11R6 + /* Define if using an X toolkit. */ #undef USE_X_TOOLKIT diff -rc2P --exclude-from=exceptions emacs-19.27/src/emacs.c emacs-19.28/src/emacs.c *** emacs-19.27/src/emacs.c Sun Sep 4 23:14:55 1994 --- emacs-19.28/src/emacs.c Thu Oct 6 01:07:12 1994 *************** *** 859,862 **** --- 859,863 ---- #endif + #if 0 /* This triggers a bug in XCloseDisplay and is not needed. */ #ifdef HAVE_X_WINDOWS /* It's not safe to call intern here. Maybe we are crashing. */ *************** *** 867,870 **** --- 868,872 ---- Fx_close_current_connection (); #endif /* HAVE_X_WINDOWS */ + #endif #ifdef SIGIO diff -rc2P --exclude-from=exceptions emacs-19.27/src/filelock.c emacs-19.28/src/filelock.c *** emacs-19.27/src/filelock.c Tue May 3 22:30:14 1994 --- emacs-19.28/src/filelock.c Thu Oct 6 01:02:41 1994 *************** *** 60,64 **** extern char *strcpy (); ! #if defined (__bsdi__) || defined (DECLARE_GETPWUID_WITH_UID_T) extern struct passwd *getpwuid (uid_t); #else --- 60,64 ---- extern char *strcpy (); ! #ifdef DECLARE_GETPWUID_WITH_UID_T extern struct passwd *getpwuid (uid_t); #else diff -rc2P --exclude-from=exceptions emacs-19.27/src/getpagesize.h emacs-19.28/src/getpagesize.h *** emacs-19.27/src/getpagesize.h Mon Oct 10 17:35:16 1994 --- emacs-19.28/src/getpagesize.h Fri Jul 30 18:30:50 1993 *************** *** 28,35 **** #ifdef NBPC #define getpagesize() NBPC - #else /* no NBPC */ - #ifdef PAGESIZE - #define getpagesize() PAGESIZE - #endif #endif /* NBPC */ #endif /* no NBPG */ --- 28,31 ---- diff -rc2P --exclude-from=exceptions emacs-19.27/src/keyboard.c emacs-19.28/src/keyboard.c *** emacs-19.27/src/keyboard.c Sat Sep 10 01:09:59 1994 --- emacs-19.28/src/keyboard.c Thu Oct 6 01:19:25 1994 *************** *** 1477,1480 **** --- 1477,1481 ---- int count; jmp_buf save_jump; + int key_already_recorded = 0; if (CONSP (Vunread_command_events)) *************** *** 1597,1601 **** c = read_char_minibuf_menu_prompt (commandflag, nmaps, maps); if (! NILP (c)) ! goto non_reread; } --- 1598,1605 ---- c = read_char_minibuf_menu_prompt (commandflag, nmaps, maps); if (! NILP (c)) ! { ! key_already_recorded = 1; ! goto non_reread; ! } } *************** *** 1733,1736 **** --- 1737,1743 ---- so don't show them to the user. */ if (XTYPE (c) == Lisp_Buffer) + return c; + + if (key_already_recorded) return c; diff -rc2P --exclude-from=exceptions emacs-19.27/src/m/dpx2.h emacs-19.28/src/m/dpx2.h *** emacs-19.27/src/m/dpx2.h Fri Aug 13 15:08:17 1993 --- emacs-19.28/src/m/dpx2.h Thu Oct 6 01:37:05 1994 *************** *** 232,235 **** --- 232,240 ---- #undef HAVE_SYSV_SIGPAUSE + #define POSIX_SIGNALS + + /* We don't need the definition from usg5-3.h with POSIX_SIGNALS. */ + #undef sigsetmask + /* on bos2.00.45 there is a bug that makes the F_SETOWN fcntl() call diff -rc2P --exclude-from=exceptions emacs-19.27/src/m/hp9000s300.h emacs-19.28/src/m/hp9000s300.h *** emacs-19.27/src/m/hp9000s300.h Fri Jul 23 03:47:44 1993 --- emacs-19.28/src/m/hp9000s300.h Thu Oct 6 01:45:07 1994 *************** *** 162,165 **** --- 162,169 ---- #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) + #ifdef __GNUC__ + #define HAVE_ALLOCA + #endif + /* This library is needed with -g, on the 200/300 only. */ diff -rc2P --exclude-from=exceptions emacs-19.27/src/m/nh3000.h emacs-19.28/src/m/nh3000.h *** emacs-19.27/src/m/nh3000.h Sun Sep 18 16:37:03 1994 --- emacs-19.28/src/m/nh3000.h Wed Jan 12 23:53:29 1994 *************** *** 37,40 **** --- 37,45 ---- #define LONGBITS 32 /* Number of bits in a long */ + /* Define BIG_ENDIAN iff lowest-numbered byte in a word + is the most significant byte. */ + + #define BIG_ENDIAN + /* 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. */ diff -rc2P --exclude-from=exceptions emacs-19.27/src/m/nh4000.h emacs-19.28/src/m/nh4000.h *** emacs-19.27/src/m/nh4000.h Sun Sep 18 16:37:02 1994 --- emacs-19.28/src/m/nh4000.h Wed Jan 12 23:53:11 1994 *************** *** 36,39 **** --- 36,44 ---- #define LONGBITS 32 /* Number of bits in a long */ + /* Define BIG_ENDIAN iff lowest-numbered byte in a word + is the most significant byte. */ + + #define BIG_ENDIAN + /* 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. */ diff -rc2P --exclude-from=exceptions emacs-19.27/src/s/bsd386.h emacs-19.28/src/s/bsd386.h *** emacs-19.27/src/s/bsd386.h Sun Jun 5 14:05:17 1994 --- emacs-19.28/src/s/bsd386.h Thu Oct 6 01:02:59 1994 *************** *** 3,6 **** --- 3,12 ---- #include "bsd4-3.h" + #ifndef __bsdi__ + #define __bsdi__ 1 + #endif + + #define DECLARE_GETPWUID_WITH_UID_T + #define SIGNALS_VIA_CHARACTERS diff -rc2P --exclude-from=exceptions emacs-19.27/src/s/freebsd.h emacs-19.28/src/s/freebsd.h *** emacs-19.27/src/s/freebsd.h Sat May 21 19:16:00 1994 --- emacs-19.28/src/s/freebsd.h Tue Oct 25 00:18:02 1994 *************** *** 2,6 **** /* '__FreeBSD__' is defined by the preprocessor on FreeBSD-1.1 and up. ! Earlier versions do not have shared libraries, so inhibit them. */ #ifndef __FreeBSD__ #define NO_SHARED_LIBS --- 2,8 ---- /* '__FreeBSD__' is defined by the preprocessor on FreeBSD-1.1 and up. ! Earlier versions do not have shared libraries, so inhibit them. ! You can inhibit them on newer systems if you wish ! by defining NO_SHARED_LIBS. */ #ifndef __FreeBSD__ #define NO_SHARED_LIBS *************** *** 30,40 **** #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base) - #if 0 /* These appear to be unnecessary for 1.1, and they break - emacs when compiled under FreeBSD-1.0. - Shawn M. Carey */ - #define A_TEXT_OFFSET(x) (sizeof (struct exec)) - #define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr)) - #endif - #define LIBS_DEBUG #define LIBS_SYSTEM -lutil --- 32,35 ---- *************** *** 51,56 **** #ifndef NO_SHARED_LIBS ! /* These definitions should work for either dynamic or static linking, ! whichever is the default for `cc -nostdlib'. */ #define HAVE_TEXT_START /* No need to define `start_of_text'. */ #define START_FILES pre-crt0.o /usr/lib/crt0.o --- 46,50 ---- #ifndef NO_SHARED_LIBS ! #define LD_SWITCH_SYSTEM -e start #define HAVE_TEXT_START /* No need to define `start_of_text'. */ #define START_FILES pre-crt0.o /usr/lib/crt0.o *************** *** 63,67 **** #define N_TRELOFF(x) N_RELOFF(x) #endif ! #endif /* not NO_SHARED_LIBS */ #define HAVE_WAIT_HEADER --- 57,68 ---- #define N_TRELOFF(x) N_RELOFF(x) #endif ! #else /* NO_SHARED_LIBS */ ! #ifdef __FreeBSD__ /* shared libs are available, but the user prefers ! not to use them. */ ! #define LD_SWITCH_SYSTEM -Bstatic ! #define A_TEXT_OFFSET(x) (sizeof (struct exec)) ! #define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr)) ! #endif /* __FreeBSD__ */ ! #endif /* NO_SHARED_LIBS */ #define HAVE_WAIT_HEADER *************** *** 69,72 **** --- 70,74 ---- #define HAVE_TERMIOS #define NO_TERMIO + #define DECLARE_GETPWUID_WITH_UID_T /* freebsd uses OXTABS instead of the expected TAB3. */ *************** *** 76,80 **** --- 78,86 ---- /* this silences a few compilation warnings */ #undef BSD + #if __FreeBSD__ == 1 #define BSD 199103 + #elif __FreeBSD__ == 2 + #define BSD 199306 + #endif #define WAITTYPE int diff -rc2P --exclude-from=exceptions emacs-19.27/src/s/hpux9.h emacs-19.28/src/s/hpux9.h *** emacs-19.27/src/s/hpux9.h Thu Jul 28 15:44:16 1994 --- emacs-19.28/src/s/hpux9.h Thu Oct 6 01:07:53 1994 *************** *** 19,24 **** --- 19,28 ---- #endif + #if 0 /* These definitions run into a bug in hpux + whereby trying to disable the vdsusp character has no effect. + supposedly there is no particular need for this. */ /* neal@ctd.comsat.com */ #undef HAVE_TERMIO #define HAVE_TERMIOS #define NO_TERMIO + #endif diff -rc2P --exclude-from=exceptions emacs-19.27/src/s/linux.h emacs-19.28/src/s/linux.h *** emacs-19.27/src/s/linux.h Thu Aug 25 21:41:21 1994 --- emacs-19.28/src/s/linux.h Wed Oct 26 09:46:22 1994 *************** *** 172,185 **** #define START_FILES pre-crt0.o /usr/lib/crt0.o ! /* Linux has SIGIO defined, but not implemented, as of version 0.99.8 ! * What an ugly kludge! This will not be necessary if the ! * INTERRUPT_INPUT define gets fully implemented. ! */ #ifdef emacs - #include #undef SIGIO - #undef signal - #define signal sys_signal - #include #endif --- 172,179 ---- #define START_FILES pre-crt0.o /usr/lib/crt0.o ! /* As of version 1.1.51, Linux does not actually implement SIGIO. */ ! /* Here we assume that signal.h is already included. */ #ifdef emacs #undef SIGIO #endif *************** *** 210,216 **** #define LIBS_TERMCAP -ltermcap -lcurses /* save some space with shared libs*/ #define LIB_STANDARD -lc /* avoid -lPW */ - #ifdef HAVE_X11 - #define LD_SWITCH_SYSTEM -L/usr/X386/lib - #endif /* Don't use -g in test compiles in configure. --- 204,207 ---- diff -rc2P --exclude-from=exceptions emacs-19.27/src/s/sco4.h emacs-19.28/src/s/sco4.h *** emacs-19.27/src/s/sco4.h Sun May 8 23:29:36 1994 --- emacs-19.28/src/s/sco4.h Thu Oct 6 01:12:27 1994 *************** *** 127,128 **** --- 127,131 ---- /* Tell process_send_signal to use VSUSP instead of VSWTCH. */ #define PREFER_VSUSP + + /* wjs@wang.com (William Smith) says this is needed on 3.2.4.2. */ + #define POSIX_SIGNALS diff -rc2P --exclude-from=exceptions emacs-19.27/src/s/sol2.h emacs-19.28/src/s/sol2.h *** emacs-19.27/src/s/sol2.h Mon Sep 5 21:33:40 1994 --- emacs-19.28/src/s/sol2.h Thu Oct 6 01:09:40 1994 *************** *** 43,49 **** #undef SOLARIS_BROKEN_ACCESS ! /* We can't use Xt from X11R6 with ralloc.c, because Xt includes libthread.so and that calls sbrk directly. */ ! #if defined (USE_X_TOOLKIT) && defined (HAVE_X11XTR6) #undef REL_ALLOC #endif --- 43,49 ---- #undef SOLARIS_BROKEN_ACCESS ! /* We can't use libX11 from X11R6 with ralloc.c, because libX11 includes libthread.so and that calls sbrk directly. */ ! #if defined (HAVE_X11) && defined (HAVE_X11R6) #undef REL_ALLOC #endif diff -rc2P --exclude-from=exceptions emacs-19.27/src/s/sunos4-0.h emacs-19.28/src/s/sunos4-0.h *** emacs-19.27/src/s/sunos4-0.h Wed Apr 27 18:30:24 1994 --- emacs-19.28/src/s/sunos4-0.h Thu Oct 6 00:57:21 1994 *************** *** 1,4 **** --- 1,8 ---- #include "bsd4-2.h" + #ifndef SUNOS4 + #define SUNOS4 + #endif + #if 0 /* This may have been needed for an earlier version of Sun OS 4. It seems to cause warnings in 4.0.3 and 4.1. */ diff -rc2P --exclude-from=exceptions emacs-19.27/src/textprop.c emacs-19.28/src/textprop.c *** emacs-19.27/src/textprop.c Fri Sep 2 19:26:19 1994 --- emacs-19.28/src/textprop.c Sun Oct 16 03:57:22 1994 *************** *** 882,885 **** --- 882,889 ---- register INTERVAL prev_changed = NULL_INTERVAL; register int s, len; + Lisp_Object ostart, oend; + + ostart = start; + oend = end; props = validate_plist (props); *************** *** 888,891 **** --- 892,905 ---- XSET (object, Lisp_Buffer, current_buffer); + /* If we want no properties for a whole string, + get rid of its intervals. */ + if (NILP (props) && STRINGP (object) + && XFASTINT (start) == 0 + && XFASTINT (end) == XSTRING (object)->size) + { + XSTRING (object)->intervals = 0; + return Qt; + } + i = validate_interval_range (object, &start, &end, soft); if (NULL_INTERVAL_P (i)) *************** *** 894,897 **** --- 908,916 ---- if (NILP (props)) return Qnil; + + /* Restore the original START and END values + because validate_interval_range increments them for strings. */ + start = ostart; + end = oend; i = validate_interval_range (object, &start, &end, hard); diff -rc2P --exclude-from=exceptions emacs-19.27/src/unexec.c emacs-19.28/src/unexec.c *** emacs-19.27/src/unexec.c Thu Jun 16 19:45:28 1994 --- emacs-19.28/src/unexec.c Thu Oct 6 03:12:46 1994 *************** *** 794,803 **** } /* This adjustment was done above only #ifndef NO_REMAP, so only undo it now #ifndef NO_REMAP. */ ! #ifndef NO_REMAP #ifdef A_TEXT_OFFSET hdr.a_text -= A_TEXT_OFFSET (ohdr); - #endif #endif --- 794,804 ---- } + #if 0 /* This #ifndef caused a bug on Linux when using QMAGIC. */ /* This adjustment was done above only #ifndef NO_REMAP, so only undo it now #ifndef NO_REMAP. */ ! /* #ifndef NO_REMAP */ ! #endif #ifdef A_TEXT_OFFSET hdr.a_text -= A_TEXT_OFFSET (ohdr); #endif diff -rc2P --exclude-from=exceptions emacs-19.27/src/unexsunos4.c emacs-19.28/src/unexsunos4.c *** emacs-19.27/src/unexsunos4.c Wed Apr 13 19:24:44 1994 --- emacs-19.28/src/unexsunos4.c Thu Oct 6 00:59:26 1994 *************** *** 1,2 **** --- 1,21 ---- + /* Unexec for Sunos 4 using shared libraries. + Copyright (C) 1990, 1994 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 2, or (at your option) + any later version. + + GNU Emacs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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. */ + /* Contributed by Viktor Dukhovni. */ /* *************** *** 38,41 **** --- 57,68 ---- #endif + #if defined (SUNOS4) || defined (__FreeBSD__) + #define UNDO_RELOCATION + #endif + + #ifdef UNDO_RELOCATION + #include + #endif + #ifdef HAVE_UNISTD_H #include *************** *** 184,187 **** --- 211,272 ---- write (new, old + N_TRELOFF (ohdr), stat.st_size - N_TRELOFF (ohdr)); + /* Some other BSD systems use this file. + We don't know whether this change is right for them. */ + #ifdef UNDO_RELOCATION + /* Undo the relocations done at startup by ld.so. + It will do these relocations again when we start the dumped Emacs. + Doing them twice gives incorrect results. */ + { + unsigned long daddr = N_DATADDR (ohdr); + unsigned long rel, erel; + #ifdef SUNOS4 + extern struct link_dynamic _DYNAMIC; + + /* SunOS4.x's ld_rel is relative to N_TXTADDR. */ + if (_DYNAMIC.ld_version < 2) + { + rel = _DYNAMIC.ld_un.ld_1->ld_rel + N_TXTADDR (ohdr); + erel = _DYNAMIC.ld_un.ld_1->ld_hash + N_TXTADDR (ohdr); + } + else + { + rel = _DYNAMIC.ld_un.ld_2->ld_rel + N_TXTADDR (ohdr); + erel = _DYNAMIC.ld_un.ld_2->ld_hash + N_TXTADDR (ohdr); + } + #ifdef sparc + #define REL_INFO_TYPE struct reloc_info_sparc + #else + #define REL_INFO_TYPE struct reloc_info_m68k + #endif /* sparc */ + #define REL_TARGET_ADDRESS(r) (((REL_INFO_TYPE *)(r))->r_address) + #endif /* SUNOS4 */ + #ifdef __FreeBSD__ + extern struct _dynamic _DYNAMIC; + + /* FreeBSD's LD_REL is a virtual address itself. */ + rel = LD_REL (&_DYNAMIC); + erel = rel + LD_RELSZ (&_DYNAMIC); + #define REL_INFO_TYPE struct relocation_info + #define REL_TARGET_ADDRESS(r) (((REL_INFO_TYPE *)(r))->r_address) + #endif + + for (; rel < erel; rel += sizeof (REL_INFO_TYPE)) + { + /* This is the virtual address where ld.so will do relocation. */ + unsigned long target = REL_TARGET_ADDRESS (rel); + /* This is the offset in the data segment. */ + unsigned long segoffset = target - daddr; + + /* If it is located below data_start, we have to do nothing here, + because the old data has been already written to the location. */ + if (target < (unsigned long)&data_start) + continue; + + lseek (new, N_DATOFF (nhdr) + segoffset, L_SET); + write (new, old + N_DATOFF (ohdr) + segoffset, sizeof (unsigned long)); + } + } + #endif /* UNDO_RELOCATION */ + fchmod (new, 0755); } *************** *** 246,263 **** } ! is_it (path) ! char *path; { int fd; ! long paths_cookie; struct exec hdr; /* * Open an executable and check for a valid header! ! * Can't bcmp() the header with what we had, it may have been stripped! * so we may save looking at non executables with the same name, mostly * directories. */ ! fd = open (path, O_RDONLY); if (fd != -1) { --- 331,348 ---- } ! is_it (filename) ! char *filename; { int fd; ! long filenames_cookie; struct exec hdr; /* * Open an executable and check for a valid header! ! * Can't bcmp the header with what we had, it may have been stripped! * so we may save looking at non executables with the same name, mostly * directories. */ ! fd = open (filename, O_RDONLY); if (fd != -1) { *************** *** 268,273 **** /* compare cookies */ lseek (fd, N_DATOFF (hdr) + (int)&cookie - N_DATADDR (hdr), L_SET); ! read (fd, &paths_cookie, sizeof (paths_cookie)); ! if (paths_cookie == cookie) { /* Eureka */ --- 353,358 ---- /* compare cookies */ lseek (fd, N_DATOFF (hdr) + (int)&cookie - N_DATADDR (hdr), L_SET); ! read (fd, &filenames_cookie, sizeof (filenames_cookie)); ! if (filenames_cookie == cookie) { /* Eureka */ diff -rc2P --exclude-from=exceptions emacs-19.27/src/xfaces.c emacs-19.28/src/xfaces.c *** emacs-19.27/src/xfaces.c Sun Aug 7 00:51:40 1994 --- emacs-19.28/src/xfaces.c Thu Oct 6 01:38:17 1994 *************** *** 994,997 **** --- 994,998 ---- int magic_p; int id; + int garbaged = 0; CHECK_FRAME (frame, 0); *************** *** 1018,1021 **** --- 1019,1025 ---- if (frame_update_line_height (f)) x_set_window_size (f, 0, f->width, f->height); + /* Must clear cache, since it might contain the font + we just got rid of. */ + garbaged = 1; } else if (EQ (attr_name, intern ("foreground"))) *************** *** 1024,1027 **** --- 1028,1032 ---- unload_color (f, face->foreground); face->foreground = new_color; + garbaged = 1; } else if (EQ (attr_name, intern ("background"))) *************** *** 1030,1033 **** --- 1035,1039 ---- unload_color (f, face->background); face->background = new_color; + garbaged = 1; } #if 0 *************** *** 1056,1069 **** recompute_basic_faces (f); ! /* If we're modifying either of the frame's display faces, that ! means that we're changing the parameters of a fixed face code; ! since the color/font/whatever is changed but the face ID hasn't, ! redisplay won't know to redraw the affected sections. Give it a ! kick. */ ! if (id == 0 || id == 1) SET_FRAME_GARBAGED (f); - else - /* Otherwise, it's enough to tell it to redisplay the text. */ - windows_or_buffers_changed = 1; return Qnil; --- 1062,1072 ---- recompute_basic_faces (f); ! /* We must redraw the frame whenever any face font or color changes, ! because it's possible that a merged (display) face ! contains the font or color we just replaced. ! And we must inhibit any Expose events until the redraw is done, ! since they would try to use the invalid display faces. */ ! if (garbaged) SET_FRAME_GARBAGED (f); return Qnil; diff -rc2P --exclude-from=exceptions emacs-19.27/src/xfns.c emacs-19.28/src/xfns.c *** emacs-19.27/src/xfns.c Sun Aug 28 16:21:20 1994 --- emacs-19.28/src/xfns.c Sun Oct 23 16:21:21 1994 *************** *** 606,639 **** int tmp_nchildren; ! XQueryTree (x_current_display, outer, &tmp_root_window, ! &f->display.x->parent_desc, ! &tmp_children, &tmp_nchildren); ! xfree (tmp_children); ! ! /* Find the position of the outside upper-left corner of ! the inner window, with respect to the outer window. */ ! if (f->display.x->parent_desc != ROOT_WINDOW) { ! BLOCK_INPUT; ! XTranslateCoordinates (x_current_display, ! /* From-window, to-window. */ #ifdef USE_X_TOOLKIT ! XtWindow (f->display.x->widget), #else ! f->display.x->window_desc, #endif ! f->display.x->parent_desc, ! /* From-position, to-position. */ ! 0, 0, &win_x, &win_y, ! /* Child of win. */ ! &child); ! UNBLOCK_INPUT; ! win_x += f->display.x->border_width; ! win_y += f->display.x->border_width; } *xptr = f->display.x->left_pos - win_x; *yptr = f->display.x->top_pos - win_y; --- 606,654 ---- int tmp_nchildren; ! x_catch_errors (); ! while (1) { ! win_x = 0, win_y = 0; ! XQueryTree (x_current_display, outer, &tmp_root_window, ! &f->display.x->parent_desc, ! &tmp_children, &tmp_nchildren); ! xfree (tmp_children); ! ! /* Find the position of the outside upper-left corner of ! the inner window, with respect to the outer window. */ ! if (f->display.x->parent_desc != ROOT_WINDOW) ! { ! BLOCK_INPUT; ! XTranslateCoordinates (x_current_display, ! /* From-window, to-window. */ #ifdef USE_X_TOOLKIT ! XtWindow (f->display.x->widget), #else ! f->display.x->window_desc, #endif ! f->display.x->parent_desc, ! /* From-position, to-position. */ ! 0, 0, &win_x, &win_y, ! /* Child of win. */ ! &child); ! UNBLOCK_INPUT; ! win_x += f->display.x->border_width; ! win_y += f->display.x->border_width; ! } ! ! /* It is possible for the window returned by the XQueryNotify ! to become invalid by the time we call XTranslateCoordinates. ! That can happen when you restart some window managers. ! If so, we get an error in XTranslateCoordinates. ! Detect that and try the whole thing over. */ ! if (!x_had_errors_p ()) ! break; } + x_uncatch_errors (); + *xptr = f->display.x->left_pos - win_x; *yptr = f->display.x->top_pos - win_y; *************** *** 1841,1847 **** #ifdef USE_X_TOOLKIT ! /* If the WM_PROTOCOLS property does not already contain WM_TAKE_FOCUS ! and WM_DELETE_WINDOW, then add them. (They may already be present ! because of the toolkit (Motif adds them, for example, but Xt doesn't). */ static void --- 1856,1863 ---- #ifdef USE_X_TOOLKIT ! /* If the WM_PROTOCOLS property does not already contain WM_TAKE_FOCUS, ! WM_DELETE_WINDOW, and WM_SAVE_YOURSELF, then add them. (They may ! already be present because of the toolkit (Motif adds some of them, ! for example, but Xt doesn't). */ static void *************** *** 1853,1856 **** --- 1869,1873 ---- int need_delete = 1; int need_focus = 1; + int need_save = 1; BLOCK_INPUT; *************** *** 1869,1874 **** { nitems--; ! if (atoms [nitems] == Xatom_wm_delete_window) need_delete = 0; ! else if (atoms [nitems] == Xatom_wm_take_focus) need_focus = 0; } if (atoms) XFree ((char *) atoms); --- 1886,1892 ---- { nitems--; ! if (atoms[nitems] == Xatom_wm_delete_window) need_delete = 0; ! else if (atoms[nitems] == Xatom_wm_take_focus) need_focus = 0; ! else if (atoms[nitems] == Xatom_wm_save_yourself) need_save = 0; } if (atoms) XFree ((char *) atoms); *************** *** 1877,1882 **** Atom props [10]; int count = 0; ! if (need_delete) props [count++] = Xatom_wm_delete_window; ! if (need_focus) props [count++] = Xatom_wm_take_focus; if (count) XChangeProperty (dpy, w, Xatom_wm_protocols, XA_ATOM, 32, PropModeAppend, --- 1895,1901 ---- Atom props [10]; int count = 0; ! if (need_delete) props[count++] = Xatom_wm_delete_window; ! if (need_focus) props[count++] = Xatom_wm_take_focus; ! if (need_save) props[count++] = Xatom_wm_save_yourself; if (count) XChangeProperty (dpy, w, Xatom_wm_protocols, XA_ATOM, 32, PropModeAppend, diff -rc2P --exclude-from=exceptions emacs-19.27/src/xrdb.c emacs-19.28/src/xrdb.c *** emacs-19.27/src/xrdb.c Wed Jul 20 03:19:11 1994 --- emacs-19.28/src/xrdb.c Thu Oct 6 01:02:42 1994 *************** *** 72,76 **** #endif ! #if defined (__bsdi__) || defined (DECLARE_GETPWUID_WITH_UID_T) extern struct passwd *getpwuid (uid_t); extern struct passwd *getpwnam (const char *); --- 72,76 ---- #endif ! #ifdef DECLARE_GETPWUID_WITH_UID_T extern struct passwd *getpwuid (uid_t); extern struct passwd *getpwnam (const char *); diff -rc2P --exclude-from=exceptions emacs-19.27/src/xterm.c emacs-19.28/src/xterm.c *** emacs-19.27/src/xterm.c Sat Sep 10 16:00:37 1994 --- emacs-19.28/src/xterm.c Wed Oct 12 18:57:42 1994 *************** *** 5243,5248 **** = XGetAtomName (x_current_display, font->properties[i].name); if (!strcmp (atom, "FONT")) ! full_name = XGetAtomName (x_current_display, ! (Atom) (font->properties[i].card32)); XFree (atom); } --- 5243,5268 ---- = XGetAtomName (x_current_display, font->properties[i].name); if (!strcmp (atom, "FONT")) ! { ! char *name = XGetAtomName (x_current_display, ! (Atom) (font->properties[i].card32)); ! char *p = name; ! int dashes = 0; ! ! /* Count the number of dashes in the "full name". ! If it is too few, this isn't really the font's full name, ! so don't use it. ! In X11R4, the fonts did not come with their canonical names ! stored in them. */ ! while (*p) ! { ! if (*p == '-') ! dashes++; ! p++; ! } ! ! if (dashes >= 13) ! full_name = name; ! } ! XFree (atom); } end-of-emacs-patch-kit