From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: npostavs@users.sourceforge.net Newsgroups: gmane.emacs.bugs Subject: bug#27210: 25.2; Recovering loaddefs.el with desktop-mode hangs when linum is on Date: Sat, 03 Jun 2017 19:07:31 -0400 Message-ID: <874lvw1xho.fsf@users.sourceforge.net> References: <20170603142911.GB7275@gmail.com> <83fufhaznj.fsf@gnu.org> <20170603162244.GD7275@gmail.com> <87a85p0xwu.fsf@users.sourceforge.net> <83efv1aqzx.fsf@gnu.org> <83d1akc3ws.fsf@gnu.org> <877f0s26j9.fsf@users.sourceforge.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1496531233 8126 195.159.176.226 (3 Jun 2017 23:07:13 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 3 Jun 2017 23:07:13 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2.50 (gnu/linux) Cc: 27210@debbugs.gnu.org, ambrevar@gmail.com To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jun 04 01:07:09 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dHI8S-0001oC-Gm for geb-bug-gnu-emacs@m.gmane.org; Sun, 04 Jun 2017 01:07:08 +0200 Original-Received: from localhost ([::1]:55117 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dHI8W-0001lZ-1r for geb-bug-gnu-emacs@m.gmane.org; Sat, 03 Jun 2017 19:07:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52133) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dHI8P-0001lJ-KE for bug-gnu-emacs@gnu.org; Sat, 03 Jun 2017 19:07:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dHI8M-0008PC-Dd for bug-gnu-emacs@gnu.org; Sat, 03 Jun 2017 19:07:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:51646) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dHI8M-0008P2-97 for bug-gnu-emacs@gnu.org; Sat, 03 Jun 2017 19:07:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dHI8L-0002yT-Sa for bug-gnu-emacs@gnu.org; Sat, 03 Jun 2017 19:07:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 03 Jun 2017 23:07:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27210 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: confirmed Original-Received: via spool by 27210-submit@debbugs.gnu.org id=B27210.149653116311354 (code B ref 27210); Sat, 03 Jun 2017 23:07:01 +0000 Original-Received: (at 27210) by debbugs.gnu.org; 3 Jun 2017 23:06:03 +0000 Original-Received: from localhost ([127.0.0.1]:54323 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dHI7P-0002x4-37 for submit@debbugs.gnu.org; Sat, 03 Jun 2017 19:06:03 -0400 Original-Received: from mail-it0-f47.google.com ([209.85.214.47]:34355) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dHI7N-0002wZ-64 for 27210@debbugs.gnu.org; Sat, 03 Jun 2017 19:06:01 -0400 Original-Received: by mail-it0-f47.google.com with SMTP id m47so9971020iti.1 for <27210@debbugs.gnu.org>; Sat, 03 Jun 2017 16:06:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=lgs4IojSGxPLuTpTz6BYjLuQpPUHNt3ig09aTU4BEFA=; b=EnWXKkUydKjos48YUyxo5wnr3C2vF1SM657e+DLQzy9EYWjs/5zgoSQtV53mK+sVf0 32h+7ybBXhBHOGw4JrlsTtMriaEuiSJXGD+fRctv1DFDy9Frp2JDo/IfcscM6Px8PqE2 3xlVijQEUtN8Zi8YljZLpdZr8U/L3AscQFOXq1qxAMWG8WGjklmF1aOlc+YuZJQk902b +/O5YjLHqeObxFN/n2zmxQShBmEujyozaR3JWfimMO7uMnAqbJtdZwDSlBYdNaniy1f6 d3de1EJRNve+dpeJGvmzptLg7ncl4Od/6rAv0rUO1TNtY0h5XF+xH9MJ21GL1ROpevz9 2Gfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=lgs4IojSGxPLuTpTz6BYjLuQpPUHNt3ig09aTU4BEFA=; b=a1+DLdjSgTeFU1xm0m7MCowAKgE6SPYDAf8Gj2TfMT4DlpDbWw7orUPpnV12HcTA+5 8J1rs0PoRHdLAm0aXroMEQmN2jhoEO1QKo8QfPebQ9LInztoGTMuueQXQuG/rKdmwBPM XYaDLaTwO3k8mknBKfZ64qNa3T+ww+Erxw1ziJt/EHTycTbNBoQWveMLM1G9DmKW0uXC eZAJNovG1kFog1vExq4nLqBmafbilVeQuT4Pi10fXZuYLkJYyJyuAxzas4nl6IRMFe5H vS/LTxJHy37/s3mOJadv9luZ6lj0WcwJh0tXzSDG3aX1EitpfbQFEw06/2MhLiGyKfwZ iX0w== X-Gm-Message-State: AODbwcACDZhgWDTT37oSX9pYDoIPqIx+pUWh6CcRQVnFyiSsjkPCRcnR sCTr6Nmoj3d4EQ== X-Received: by 10.107.11.137 with SMTP id 9mr13801039iol.86.1496531155556; Sat, 03 Jun 2017 16:05:55 -0700 (PDT) Original-Received: from zony ([45.2.7.65]) by smtp.googlemail.com with ESMTPSA id b10sm11861938iod.33.2017.06.03.16.05.53 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 03 Jun 2017 16:05:54 -0700 (PDT) In-Reply-To: <877f0s26j9.fsf@users.sourceforge.net> (npostavs@users.sourceforge.net's message of "Sat, 03 Jun 2017 15:52:10 -0400") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:133236 Archived-At: --=-=-= Content-Type: text/plain npostavs@users.sourceforge.net writes: > Because the hidden "F1" frame clearly isn't actually visible (and we > don't need to show line numbers on it). But that just triggers > Bug#26912 "desktop-clear with emacs as daemon results in error on C-x 5 > 0" even without desktop-clear, so it's not an acceptable solution by > itself at least. I've expanded on this approach, it seems to work, though it's possible I'm overlooking some other place that assumes the initial frame is visible. --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=v1-0001-Make-the-initial-frame-invisible-when-in-daemon-m.patch Content-Description: patch >From 129862e0621bf16e20ecc433e427b66626ba9bb8 Mon Sep 17 00:00:00 2001 From: Noam Postavsky Date: Sat, 3 Jun 2017 17:59:17 -0400 Subject: [PATCH v1] Make the initial frame invisible when in daemon mode (Bug#27210) * src/emacs.c (main): When starting as a daemon, add `daemonp' parameter to the initial frame. * src/frame.c (make_initial_frame): Set the initial frame as nonvisible when running in daemon mode. (other_frames): Return true if one of the other frames has a non-nil `daemonp' frame parameter. (delete_frame): Don't allow deleting a frame with a `daemonp' parameter. --- src/emacs.c | 3 +++ src/frame.c | 9 +++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/emacs.c b/src/emacs.c index 49ebb81767..04bdf9ecdb 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -1170,6 +1170,8 @@ main (int argc, char **argv) #endif /* MSDOS */ if (dname_arg) daemon_name = xstrdup (dname_arg); + Fmodify_frame_parameters (Qnil, Fcons (Fcons (Qdaemonp, Fdaemonp ()), + Fframe_parameters (Qnil))); } #if defined HAVE_PTHREAD && !defined SYSTEM_MALLOC \ @@ -2486,6 +2488,7 @@ syms_of_emacs (void) DEFSYM (Qrisky_local_variable, "risky-local-variable"); DEFSYM (Qkill_emacs, "kill-emacs"); DEFSYM (Qkill_emacs_hook, "kill-emacs-hook"); + DEFSYM (Qdaemonp, "daemonp"); #ifndef CANNOT_DUMP defsubr (&Sdump_emacs); diff --git a/src/frame.c b/src/frame.c index 4d17a071dc..4c670b5c7a 100644 --- a/src/frame.c +++ b/src/frame.c @@ -903,7 +903,7 @@ make_initial_frame (void) tty_frame_count = 1; fset_name (f, build_pure_c_string ("F1")); - SET_FRAME_VISIBLE (f, 1); + SET_FRAME_VISIBLE (f, !IS_DAEMON); f->output_method = terminal->type; f->terminal = terminal; @@ -1605,7 +1605,10 @@ other_frames (struct frame *f, bool invisible, bool force) && (force /* Allow deleting the terminal frame when at least one X frame exists. */ - || (FRAME_WINDOW_P (f1) && !FRAME_WINDOW_P (f)))))) + || (FRAME_WINDOW_P (f1) && !FRAME_WINDOW_P (f)) + /* Allow deleting the last frame if a + "daemon frame" exists. */ + || !NILP (Fframe_parameter (frame1, Qdaemonp)))))) return true; } } @@ -1685,6 +1688,8 @@ delete_frame (Lisp_Object frame, Lisp_Object force) else error ("Attempt to delete the only frame"); } + else if (IS_DAEMON && !NILP (Fframe_parameter (frame, Qdaemonp))) + error ("Attempt to delete daemon's frame"); XSETFRAME (frame, f); -- 2.11.1 --=-=-=--