]> git.eshelyaron.com Git - emacs.git/commitdiff
Merged from emacs@sv.gnu.org
authorKaroly Lorentey <lorentey@elte.hu>
Tue, 28 Feb 2006 17:35:08 +0000 (17:35 +0000)
committerKaroly Lorentey <lorentey@elte.hu>
Tue, 28 Feb 2006 17:35:08 +0000 (17:35 +0000)
Patches applied:

 * emacs@sv.gnu.org/emacs--devo--0--patch-120
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-121
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-122
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-123
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-124
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-125
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-126
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-127
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-40
   Merge from emacs--devo--0

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-41
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-42
   Update from CVS

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-523

13 files changed:
1  2 
lisp/files.el
lisp/startup.el
lisp/subr.el
lispref/elisp.texi
man/cc-mode.texi
src/buffer.c
src/lisp.h
src/lread.c
src/process.c
src/xfns.c
src/xselect.c
src/xterm.c
src/xterm.h

diff --cc lisp/files.el
Simple merge
diff --cc lisp/startup.el
Simple merge
diff --cc lisp/subr.el
Simple merge
Simple merge
index 00bd427f5dd125f8788bff28becae9da0890e462,80aff8b1604e061d9c55860056307b6df5e42977..d541e306ae47692f402bb9e8c4f858bafe9fad96
@@@ -208,9 -208,9 +208,9 @@@ license to the document, as described i
  @vskip 0pt plus 1filll
  @insertcopying
  
 -This manual was generated from $Revision: 1.35 $ of $RCSfile: cc-mode.texi,v $, which can be
 +This manual was generated from $Revision$ of $RCSfile$, which can be
  downloaded from
- @url{http://cvs.sf.net/viewcvs.py/cc-mode/cc-mode/cc-mode.texi}.
+ @url{http://cvs.savannah.gnu.org/viewcvs/emacs/emacs/man/cc-mode.texi}.
  @end titlepage
  
  @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
diff --cc src/buffer.c
Simple merge
diff --cc src/lisp.h
Simple merge
diff --cc src/lread.c
Simple merge
diff --cc src/process.c
Simple merge
diff --cc src/xfns.c
Simple merge
diff --cc src/xselect.c
index 71232ee87bae9bf4c821d0d44defb27cdedf22e5,a0b4b091805bc377d86fa678110bad07d3125747..8c82a4b85d3e9eb1c6bfd195c27e556dbdc57f03
@@@ -397,20 -397,12 +397,19 @@@ x_own_selection (selection_name, select
       Lisp_Object selection_name, selection_value;
  {
    struct frame *sf = SELECTED_FRAME ();
 -  Window selecting_window = FRAME_X_WINDOW (sf);
 -  Display *display = FRAME_X_DISPLAY (sf);
 +  Window selecting_window;
 +  Display *display;
    Time time = last_event_timestamp;
    Atom selection_atom;
 -  struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (sf);
 +  struct x_display_info *dpyinfo;
-   int count;
 +
 +  if (! FRAME_X_P (sf))
 +    return;
  
 +  selecting_window = FRAME_X_WINDOW (sf);
 +  display = FRAME_X_DISPLAY (sf);
 +  dpyinfo = FRAME_X_DISPLAY_INFO (sf);
 +  
    CHECK_SYMBOL (selection_name);
    selection_atom = symbol_to_x_atom (dpyinfo, display, selection_name);
  
diff --cc src/xterm.c
index 1b1dbdda552d7e98ec691f5af61a7398b3d5e0e2,7b952e1f45fb428a3fee605134299bd2ed500bc4..0d19cf029b519c2723b35f4cffa6f868d4382f68
@@@ -7688,8 -7646,6 +7660,7 @@@ x_connection_closed (dpy, error_message
  {
    struct x_display_info *dpyinfo = x_display_info_for_display (dpy);
    Lisp_Object frame, tail;
-   int count;
 +  int index = SPECPDL_INDEX ();
  
    error_msg = (char *) alloca (strlen (error_message) + 1);
    strcpy (error_msg, error_message);
       below.  Otherwise, we might end up with printing ``can't find per
       display information'' in the recursive call instead of printing
       the original message here.  */
-   count = x_catch_errors (dpy);
+   x_catch_errors (dpy);
  
 +  /* Inhibit redisplay while frames are being deleted. */
 +  specbind (Qinhibit_redisplay, Qt);
 +
 +  if (dpyinfo)
 +    {
 +      /* Protect display from being closed when we delete the last
 +         frame on it. */
 +      dpyinfo->reference_count++;
 +      dpyinfo->terminal->reference_count++;
 +    }
 +  
 +  /* First delete frames whose mini-buffers are on frames
 +     that are on the dead display.  */
 +  FOR_EACH_FRAME (tail, frame)
 +    {
 +      Lisp_Object minibuf_frame;
 +      minibuf_frame
 +      = WINDOW_FRAME (XWINDOW (FRAME_MINIBUF_WINDOW (XFRAME (frame))));
 +      if (FRAME_X_P (XFRAME (frame))
 +        && FRAME_X_P (XFRAME (minibuf_frame))
 +        && ! EQ (frame, minibuf_frame)
 +        && FRAME_X_DISPLAY_INFO (XFRAME (minibuf_frame)) == dpyinfo)
 +      Fdelete_frame (frame, Qt);
 +    }
 +
 +  /* Now delete all remaining frames on the dead display.
 +     We are now sure none of these is used as the mini-buffer
 +     for another frame that we need to delete.  */
 +  FOR_EACH_FRAME (tail, frame)
 +    if (FRAME_X_P (XFRAME (frame))
 +      && FRAME_X_DISPLAY_INFO (XFRAME (frame)) == dpyinfo)
 +      {
 +      /* Set this to t so that Fdelete_frame won't get confused
 +         trying to find a replacement.  */
 +      FRAME_KBOARD (XFRAME (frame))->Vdefault_minibuffer_frame = Qt;
 +      Fdelete_frame (frame, Qt);
 +      }
 +
    /* We have to close the display to inform Xt that it doesn't
       exist anymore.  If we don't, Xt will continue to wait for
       events from the display.  As a consequence, a sequence of
      xg_display_close (dpyinfo->display);
  #endif
  
 -  /* Indicate that this display is dead.  */
    if (dpyinfo)
 -    dpyinfo->display = 0;
 -
 -  /* First delete frames whose mini-buffers are on frames
 -     that are on the dead display.  */
 -  FOR_EACH_FRAME (tail, frame)
      {
 -      Lisp_Object minibuf_frame;
 -      minibuf_frame
 -      = WINDOW_FRAME (XWINDOW (FRAME_MINIBUF_WINDOW (XFRAME (frame))));
 -      if (FRAME_X_P (XFRAME (frame))
 -        && FRAME_X_P (XFRAME (minibuf_frame))
 -        && ! EQ (frame, minibuf_frame)
 -        && FRAME_X_DISPLAY_INFO (XFRAME (minibuf_frame)) == dpyinfo)
 -      Fdelete_frame (frame, Qt);
 -    }
 +      /* Indicate that this display is dead.  */
 +      dpyinfo->display = 0;
  
 -  /* Now delete all remaining frames on the dead display.
 -     We are now sure none of these is used as the mini-buffer
 -     for another frame that we need to delete.  */
 -  FOR_EACH_FRAME (tail, frame)
 -    if (FRAME_X_P (XFRAME (frame))
 -      && FRAME_X_DISPLAY_INFO (XFRAME (frame)) == dpyinfo)
 -      {
 -      /* Set this to t so that Fdelete_frame won't get confused
 -         trying to find a replacement.  */
 -      FRAME_KBOARD (XFRAME (frame))->Vdefault_minibuffer_frame = Qt;
 -      Fdelete_frame (frame, Qt);
 -      }
 +      dpyinfo->reference_count--;
 +      dpyinfo->terminal->reference_count--;
 +      if (dpyinfo->reference_count != 0)
 +        /* We have just closed all frames on this display. */
 +        abort ();
  
 -  if (dpyinfo)
 -    x_delete_display (dpyinfo);
 +      x_delete_display (dpyinfo);
 +    }
  
-   x_uncatch_errors (dpy, count);
+   x_uncatch_errors ();
  
 -  if (x_display_list == 0)
 +  if (terminal_list == 0)
      {
        fprintf (stderr, "%s\n", error_msg);
        shut_down_emacs (0, 0, Qnil);
diff --cc src/xterm.h
Simple merge