changeset 56:c0965ff3b039 r19-16-pre3

Import from CVS: tag r19-16-pre3
author cvs
date Mon, 13 Aug 2007 08:58:20 +0200
parents 9e8623109fad
children 14ab9e17efe0
files CHANGES-beta etc/NEWS lib-src/Makefile.in.in lisp/prim/about.el lisp/version.el src/glyphs-x.c src/lisp.h src/print.c src/profile.c src/redisplay.c src/s/hpux9-shr.h
diffstat 11 files changed, 239 insertions(+), 40 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES-beta	Mon Aug 13 08:57:57 2007 +0200
+++ b/CHANGES-beta	Mon Aug 13 08:58:20 2007 +0200
@@ -1,4 +1,9 @@
 							-*- indented-text -*-
+to 19.16 pre3 -- "Manhattan"
+-- NEWS file updated
+-- a couple of synchs with XEmacs 20.2
+-- warning cleanup
+
 to 19.16 pre2 -- "Brooklyn"
 -- Patch for XEmacs not Dying on quit applied
 -- movemail synched with 20.3
--- a/etc/NEWS	Mon Aug 13 08:57:57 2007 +0200
+++ b/etc/NEWS	Mon Aug 13 08:58:20 2007 +0200
@@ -73,6 +73,173 @@
 * XEmacs Release Notes
 ======================
 
+** Major Differences Between 19.15 and 19.16
+============================================
+
+Many bugs have been fixed.  XEmacs 19.16 is a bug-fix release only.  No
+new features have been added.
+
+-- shell-command did not respect its output-buffer argument.
+
+-- When using CVS in conjunction with frame-icon, an error
+   would occur when a frame was iconified.
+
+-- dired did not properly protect its data structures durin
+   garbage collection.
+
+-- y-or-n-p-minibuf could crash XEmacs 19.15.
+
+-- overlay-lists did not always return a pair of lists.
+
+-- Starting with the -nw option did not prevent XEmacs 19.15 from
+   attempting to connect to a tooltalk server.
+
+-- XEmacs 19.15 could not be built on a DUNIX4.0 system.
+
+-- appt.el did not respect the user's hooks.
+
+-- outline-mode did not work in a tty-only XEmacs 19.15.
+
+-- MD5 checksum generation did not work on a 64-bit machine.
+
+-- XEmacs 19.15 ignored the user's mail path.
+
+-- The rcompile package checked for ange-ftp instead of efs.
+
+-- vc-directory did not work.
+
+-- Sometimes clicking on a modeline did not advance to the
+   next or previous buffer as it should have.
+
+-- The variable enable-local-variables was sometimes ignored.
+
+-- pending-del did not respect the user's hooks.
+
+-- CRiSP mode was synchronized with FSF emacs.
+
+-- The performance of font-lock was improved.
+
+-- There were numerous holes in the garbage collection.
+
+-- There were 2 minor bugs with using XEmacs 19.15 on a tty.
+
+-- XEmacs 19.15 ignored certain dead_key events.
+
+-- XEmacs 19.15 had minor fontification problems with java.
+
+-- mark-pop did not always restore the mark properly.
+
+-- smtpmail.el had a couple of minor bugs.
+
+-- telnet-mode did not always respond to the telnet prompt.
+
+-- gomoku was broken in XEmacs 19.15.
+
+-- recover-all files did not work in XEmacs 19.15.
+
+-- transient-mark-mode and skeleton.el did not work together.
+
+-- Footnotes were not properly formatted in info.
+
+--  Configuration of XEmacs 19.15 did not work on Sequent
+    computers, because they do not have a working version of alloca.
+
+-- In XEmacs 19.15 it was impossible to compile with Lucid
+   scrollbars without Motif.
+
+-- XEmacs 19.15 would erroneously report an internal error on
+   certain types of minibuffer input.
+
+-- When using virtual screens with your X server, sometimes
+   iconify-frame would cause XEmacs 19.15 to lose one of the frames.
+
+-- server-kill-buffer always returned nil.
+
+-- The :filter keyword on a menubar could crash XEmacs 19.15.
+
+-- psgml-mode did not respect the user's hooks.
+
+-- Many bugs in efs mode were fixed.
+
+-- sh-script.el could hang XEmacs.
+
+-- Options could not be saved after fonts were changed in
+   XEmacs 19.15.
+
+-- read-from-string could not read "1.".
+
+-- dired was confused about where chown lives on Linux.
+
+-- Edebug did not work on floating point numbers.
+
+-- first-change-hook saved the wrong buffer, so unwinding the
+   stack could result in the wrong buffer's being restored.
+
+-- pcl-cvs was incompatible with live-icon.
+
+-- save-buffer deactivated the zmacs region.
+
+-- When running a sub-process, if the standard error could
+   not be opened, the error was reported incorectly.
+
+-- shell-command-on-region had a bogus test for the active
+   region.
+
+-- get-frame-for-buffer ignored relevant properties.
+
+-- make-database did not correctly expand its filename
+   argument.
+
+-- A few minor improvements were made to the optimizer in the
+   byte-compiler.
+
+-- kill-region could get confused when the beginning of the
+   region was after the end of the region.
+
+-- movemail was upgraded to the same version which shipped
+   with XEmacs 20.2; this version understands Linux file locking.
+
+-- The regexp cache size was too small.
+
+-- The "save as" dialog was buggy.
+
+-- Minor bugs in sendmail mode.
+
+-- tm did not understand the png image format.
+
+-- set-text-properties only removed the first text property.
+
+-- add-log.el has been upgraded to the version supported by
+   FSF emacs 20.1.
+
+-- When tags-loop-continue was called inappropriately, the
+   wrong error message resulted.
+
+-- Frame creation was buggy, and could crash XEmacs.
+
+-- PNG support did not work on Linux.
+
+-- Asynchronous process output did not always work.
+
+-- x-compose.el did not support the degree sign or the
+   grave keysym.
+
+-- mh-invisible-headers did not work.
+
+-- Creating a tty frame could crash XEmacs 19.15.
+
+-- detach-extent could crash XEmacs.
+
+-- The minibuffer could get the read-only attribute.
+
+-- When the mouse was in the right side of the frame, its
+   position could be reported incorrectly.
+
+-- lib-complete didn't work with compressed files.
+
+-- getloadavg.c was brought into sync with the XEmacs 20.2
+   version.
+
 ** Major Differences Between 19.14 and 19.15
 ============================================
 
@@ -90,7 +257,6 @@
    and News.  The primary author is Morioka Tomohiko.
 
 -- There is a new way to customize faces and (some) variables.
-
    Try it with `M-x customize RET', or from the Options->Customize menu.
    Documented in <URL:info:custom>.
 
--- a/lib-src/Makefile.in.in	Mon Aug 13 08:57:57 2007 +0200
+++ b/lib-src/Makefile.in.in	Mon Aug 13 08:58:20 2007 +0200
@@ -118,29 +118,33 @@
 SOURCES = COPYING ChangeLog Makefile.in.in README aixcc.lex emacs.csh \
 	makedoc.com *.[chy] $(SCRIPTS)
 
-# Additional -D flags for movemail (add to MOVE_FLAGS if desired):
-# MAIL_USE_POP		Support mail retrieval from a POP mailbox.
-# MAIL_USE_MMDF		Support MMDF mailboxes.
-# MAIL_USE_FLOCK	Use flock for file locking (see the comments
-#			about locking in movemail.c)
-# MAIL_UNLINK_SPOOL	Unlink the user spool mailbox after reading
-#			it (instead of just emptying it).
-# KERBEROS		Support Kerberized POP.
-# KRB5			Support Kerberos Version 5 pop instead of
-#			Version 4 (define this in addition to
-#			KERBEROS).
-# HESIOD		Support Hesiod lookups of user mailboxes.
-# MAILHOST		A string, the host name of the default POP
-#			mail host for the sit
+/*
+Additional -D flags for movemail (add to MOVE_FLAGS if desired):
+MAIL_USE_POP		Support mail retrieval from a POP mailbox.
+MAIL_USE_MMDF		Support MMDF mailboxes.
+MAIL_USE_FLOCK		Use flock for file locking (see the comments
+			about locking in movemail.c)
+MAIL_UNLINK_SPOOL	Unlink the user spool mailbox after reading
+			it (instead of just emptying it).
+KERBEROS		Support Kerberized POP.
+KRB5			Support Kerberos Version 5 pop instead of
+			Version 4 (define this in addition to
+			KERBEROS).
+HESIOD		Support Hesiod lookups of user mailboxes.
+MAILHOST		A string, the host name of the default POP
+			mail host for the sit
+*/
 
 MOVE_FLAGS=
-#
-# Additional libraries for movemail:
-# For KERBEROS
-# MOVE_LIBS= -lkrb -ldes -lcom_err
-# For KERBEROS + KRB5
-# MOVE_LIBS= -lkrb5 -lcrypto -lisode -lcom_err
-# Add "-lhesiod" if HESIOD is defined.
+
+/*
+Additional libraries for movemail:
+For KERBEROS
+MOVE_LIBS= -lkrb -ldes -lcom_err
+For KERBEROS + KRB5
+MOVE_LIBS= -lkrb5 -lcrypto -lisode -lcom_err
+Add "-lhesiod" if HESIOD is defined.
+*/
 
 MOVE_LIBS=
 
@@ -149,6 +153,9 @@
 /* From here on, comments must be done in C syntax. (see comment above
    about this.) */
 
+/* Apparently the above comment is bogus.  There is no place where
+shell-style comments are allowed.  -slb */
+
 #define NO_SHORTNAMES
 #define THIS_IS_YMAKEFILE
 #define NOT_C_CODE
--- a/lisp/prim/about.el	Mon Aug 13 08:57:57 2007 +0200
+++ b/lisp/prim/about.el	Mon Aug 13 08:58:20 2007 +0200
@@ -1176,6 +1176,7 @@
 	  Raymond L. Toy <toy@rtp.ericsson.se>
 	  John Turner <turner@xdiv.lanl.gov>
 	  Juan E. Villacis <jvillaci@cs.indiana.edu>
+	  Jan Vroonhof <vroonhof@math.ethz.ch>
 	  Vladimir Vukicevic <vladimir@intrepid.com>
 	  Peter Ware <ware@cis.ohio-state.edu>
 	  Yoav Weiss <yoav@zeus.datasrv.co.il>
--- a/lisp/version.el	Mon Aug 13 08:57:57 2007 +0200
+++ b/lisp/version.el	Mon Aug 13 08:58:20 2007 +0200
@@ -55,7 +55,7 @@
   "Non-nil when this is a test (beta) version of XEmacs.
 Warning, this variable did not exist in XEmacs versions prior to 20.3")
 
-(defconst xemacs-codename "Brooklyn"
+(defconst xemacs-codename "Manhattan"
   "Symbolic name of XEmacs build.
 Warning, this variable did not exist in XEmacs versions prior to 19.16
 and 20.3")
--- a/src/glyphs-x.c	Mon Aug 13 08:57:57 2007 +0200
+++ b/src/glyphs-x.c	Mon Aug 13 08:58:20 2007 +0200
@@ -212,8 +212,8 @@
 #if HAVE_SUBWINDOWS
     case IMAGE_SUBWINDOW:
       /* #### implement me */
+      break;
 #endif
-      break;
     default:
       break;
     }
@@ -233,8 +233,8 @@
 #if HAVE_SUBWINDOWS
     case IMAGE_SUBWINDOW:
       /* #### implement me */
+      return 0;
 #endif
-      return 0;
     default:
       return 0;
     }
--- a/src/lisp.h	Mon Aug 13 08:57:57 2007 +0200
+++ b/src/lisp.h	Mon Aug 13 08:58:20 2007 +0200
@@ -610,7 +610,7 @@
 /* There's not any particular reason not to use lrecords for these; some
    objects get slightly larger, but we get 3 bit tags instead of 4.
  */
-#define LRECORD_SYMBOL
+/* #define LRECORD_SYMBOL */
 
 
 /* Define the fundamental Lisp data structures */
--- a/src/print.c	Mon Aug 13 08:57:57 2007 +0200
+++ b/src/print.c	Mon Aug 13 08:58:20 2007 +0200
@@ -591,6 +591,7 @@
 }
 
 # include "emacsfns.h"
+static void print_error_message (Lisp_Object data, Lisp_Object stream);
 /* Synched with Emacs 19.34 */
 DEFUN ("error-message-string", Ferror_message_string, 1, 1, 0, /*
 Convert an error value (ERROR-SYMBOL . DATA) to an error message.
@@ -601,7 +602,7 @@
   Lisp_Object original, printcharfun, value;
   struct gcpro gcpro1;
 
-  print_error_message (obj, Vprin1_to_string_buffer, NULL);
+  print_error_message (obj, Vprin1_to_string_buffer);
 
   set_buffer_internal (XBUFFER (Vprin1_to_string_buffer));
   value = Fbuffer_substring (Fpoint_min(Fcurrent_buffer()),
@@ -619,8 +620,8 @@
 /* Print an error message for the error DATA
    onto Lisp output stream STREAM (suitable for the print functions).  */
 
-print_error_message (data, stream)
-     Lisp_Object data, stream;
+static void
+print_error_message (Lisp_Object data, Lisp_Object stream)
 {
   Lisp_Object errname, errmsg, file_error, tail;
   struct gcpro gcpro1;
--- a/src/profile.c	Mon Aug 13 08:57:57 2007 +0200
+++ b/src/profile.c	Mon Aug 13 08:58:20 2007 +0200
@@ -67,7 +67,7 @@
    the table while another routine is operating on it.  We also set
    inside_profiling in case the timeout between signal calls is short
    enough to catch us while we're already in there. */
-volatile static int inside_profiling;
+static volatile int inside_profiling;
 
 static SIGTYPE
 sigprof_handler (int signo)
--- a/src/redisplay.c	Mon Aug 13 08:57:57 2007 +0200
+++ b/src/redisplay.c	Mon Aug 13 08:58:20 2007 +0200
@@ -1904,7 +1904,10 @@
     }
   else if (MINI_WINDOW_P (w) && !active_minibuffer)
     data.cursor_type = NO_CURSOR;
-  else if (w == XWINDOW (FRAME_SELECTED_WINDOW (device_selected_frame (d))))
+  else if (w == XWINDOW (FRAME_SELECTED_WINDOW (f)) &&
+	   EQ(DEVICE_CONSOLE(d), Vselected_console) &&
+	   d == XDEVICE(CONSOLE_SELECTED_DEVICE(XCONSOLE(DEVICE_CONSOLE(d))))&&
+	   f == XFRAME(DEVICE_SELECTED_FRAME(d)))
     {
       data.bi_cursor_bufpos = BI_BUF_PT (b);
       data.cursor_type = CURSOR_ON;
@@ -4923,7 +4926,8 @@
   int echo_active = 0;
   int startp = 1;
   int pointm;
-  int selected;
+  int selected_in_its_frame;
+  int selected_globally;
   int skip_output = 0;
   int truncation_changed;
   int inactive_minibuffer =
@@ -4950,9 +4954,13 @@
     }
 
   /* Is this window the selected window on its frame? */
-  selected =
-    (w == XWINDOW (FRAME_SELECTED_WINDOW (device_selected_frame (d))));
-  if (skip_selected && selected)
+  selected_in_its_frame = (w == XWINDOW (FRAME_SELECTED_WINDOW (f)));
+  selected_globally =
+      selected_in_its_frame &&
+      EQ(DEVICE_CONSOLE(d), Vselected_console) &&
+      XDEVICE(CONSOLE_SELECTED_DEVICE(XCONSOLE(DEVICE_CONSOLE(d)))) == d &&
+      XFRAME(DEVICE_SELECTED_FRAME(d)) == f;
+  if (skip_selected && selected_in_its_frame)
     return;
 
   /* It is possible that the window is not fully initialized yet. */
@@ -4971,7 +4979,7 @@
     pointm = 1;
   else
     {
-      if (selected)
+      if (selected_globally)
 	{
 	  pointm = BUF_PT (b);
 	}
@@ -5043,7 +5051,7 @@
 	{
 	  pointm = point_at_center (w, DESIRED_DISP, 0, 0);
 
-	  if (selected)
+	  if (selected_globally)
 	    BUF_SET_PT (b, pointm);
 
 	  Fset_marker (w->pointm[DESIRED_DISP], make_int (pointm),
@@ -5071,7 +5079,7 @@
       /* Check if the cursor has actually moved. */
       if (EQ (Fmarker_buffer (w->last_point[CURRENT_DISP]), w->buffer)
 	  && pointm == marker_position (w->last_point[CURRENT_DISP])
-	  && selected
+	  && selected_globally
 	  && !w->windows_changed
 	  && !f->clip_changed
 	  && !f->extents_changed
@@ -5111,7 +5119,7 @@
 		      goto regeneration_done;
 		    }
 		}
-	      else if (!selected && !f->point_changed)
+	      else if (!selected_in_its_frame && !f->point_changed)
 		{
 		  if (f->modeline_changed)
 		    regenerate_modeline (w);
@@ -5665,7 +5673,10 @@
   struct device *d = XDEVICE (XFRAME (w->frame)->device);
   struct buffer *b = XBUFFER (w->buffer);
   Bufpos end =
-    ((w == XWINDOW (FRAME_SELECTED_WINDOW (device_selected_frame (d))))
+    (((w == XWINDOW (FRAME_SELECTED_WINDOW (device_selected_frame (d)))) &&
+      EQ(DEVICE_CONSOLE(d), Vselected_console) &&
+      XDEVICE(CONSOLE_SELECTED_DEVICE(XCONSOLE(DEVICE_CONSOLE(d)))) == d &&
+      EQ(DEVICE_SELECTED_FRAME(d), w->frame))
      ? BUF_PT (b)
      : marker_position (w->pointm[type]));
   int lots = 999999999;
--- a/src/s/hpux9-shr.h	Mon Aug 13 08:57:57 2007 +0200
+++ b/src/s/hpux9-shr.h	Mon Aug 13 08:58:20 2007 +0200
@@ -28,6 +28,14 @@
 
 #include "hpux9.h"
 
+/* The curses library seems to have a badly broken version of select(2)
+   that makes "poll: interrupted system call" messages to appear and
+   Emacs suprocesses to hang (e.g. TeX compilation w/ AUCTeX).
+   Althought this is only for hpux 10, linking termcap instead of curses
+   on 9.X ensures a 9.X binary will still run properly on 10.X. */
+#undef LIBS_TERMCAP
+#define LIBS_TERMCAP -ltermcap
+
 #if 0 /* No longer needed, since in current GCC -g no longer does that.  */
 /* We must turn off -g since it forces -static.  */
 #ifdef __GNUC__