bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#10729: 24.0.93; On MS-Windows: emacsclientw.exe -n -c does create a


From: Juanma Barranquero
Subject: bug#10729: 24.0.93; On MS-Windows: emacsclientw.exe -n -c does create a new frame, but does not always display the requested file or the requested directory (24.0.92 does)
Date: Tue, 7 Feb 2012 14:31:05 +0100

In this code from `server-unselect-display':

    (if (and (eq (frame-first-window frame)
                 (next-window (frame-first-window frame) 'nomini))
             (eq (window-buffer (frame-first-window frame))
                 (frame-parameter frame 'server-dummy-buffer)))
        ;; The temp frame still only shows one buffer, and that is the
        ;; internal temp buffer.
        (delete-frame frame)             ;; <---- (1)
      (set-frame-parameter frame 'visibility t))
    (kill-buffer (frame-parameter frame 'server-dummy-buffer))  ;; <---- (2)
    (set-frame-parameter frame 'server-dummy-buffer nil)))

When the `if' part runs, the frame is deleted in (1), but then (2)
calls `frame-parameter' on it, and it always returns nil

(let ((f (make-frame)))
  (set-frame-parameter f 'my-param t)
  (delete-frame f)
  (frame-parameter f 'my-param))        =>   nil

so (2) runs (kill-buffer nil), and deletes the buffer (in this case,
bug.txt), triggering the behavior we see.

The attached simple patch fixes it.

Stefan, thoughts on the issue?

   Juanma



=== modified file 'lisp/server.el'
--- lisp/server.el      2012-02-02 07:48:39 +0000
+++ lisp/server.el      2012-02-07 13:26:33 +0000
@@ -407,6 +407,6 @@
         ;; internal temp buffer.
         (delete-frame frame)
-      (set-frame-parameter frame 'visibility t))
-    (kill-buffer (frame-parameter frame 'server-dummy-buffer))
+      (set-frame-parameter frame 'visibility t)
+      (kill-buffer (frame-parameter frame 'server-dummy-buffer)))
     (set-frame-parameter frame 'server-dummy-buffer nil)))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]