From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 21 12:16:15 2017 Received: (at submit) by debbugs.gnu.org; 21 Apr 2017 16:16:15 +0000 Received: from localhost ([127.0.0.1]:32795 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d1bED-00049Y-Im for submit@debbugs.gnu.org; Fri, 21 Apr 2017 12:16:15 -0400 Received: from eggs.gnu.org ([208.118.235.92]:44418) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d1bE9-00049D-TP for submit@debbugs.gnu.org; Fri, 21 Apr 2017 12:16:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d1bE1-0006kn-E5 for submit@debbugs.gnu.org; Fri, 21 Apr 2017 12:16:04 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:56571) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d1bE1-0006kE-92 for submit@debbugs.gnu.org; Fri, 21 Apr 2017 12:16:01 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35346) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d1bDx-0006My-KD for bug-gnu-emacs@gnu.org; Fri, 21 Apr 2017 12:16:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d1bDu-0006hT-9W for bug-gnu-emacs@gnu.org; Fri, 21 Apr 2017 12:15:57 -0400 Received: from tarrant.klingenberg.no ([80.91.231.253]:51208) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d1bDt-0006ct-Hl for bug-gnu-emacs@gnu.org; Fri, 21 Apr 2017 12:15:54 -0400 Received: from 173-28-11.connect.netcom.no ([176.11.28.173] helo=modesty.local) by tarrant.klingenberg.no with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1d1bDZ-0001I6-Qc for bug-gnu-emacs@gnu.org; Fri, 21 Apr 2017 18:15:44 +0200 Received: by modesty.local (Postfix, from userid 502) id DB46217DDA06; Fri, 21 Apr 2017 18:15:25 +0200 (CEST) From: peder@klingenberg.no (Peder O. Klingenberg) To: bug-gnu-emacs@gnu.org Subject: 26.0.50; Using local emacs+tramp with remote emacsclient Date: Fri, 21 Apr 2017 18:15:25 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) --=-=-= Content-Type: text/plain My workstation is running a bleeding edge emacs full-screen in a dedicated display. When working on a server, from time to time I use programs that invoke the shell EDITOR. I can set EDITOR to emacsclient, but that will just open emacs on the remote machine, which is not what I want. I want whatever editing job needs doing to pop up in my local fullscreen emacs. I can ssh to the server, so obviously I can use my local emacs to edit files there via Tramp. And server.el already has functionality for listening on a TCP port, which is easily forwarded over ssh (there are various hacks out there for forwarding unix domain sockets as well, which I haven't tried). The missing piece is simply a way to let emacsclient instruct emacs that the files it passes to emacs are remote. Attached is a patch for your consideration which accomplishes this. Additionally, it would be handy to have some tooling for conveniently forwarding the correct ports and setting up EDITOR with the correct -T option on the remote machine, but that is outside the scope of emacs code, I think. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-New-option-T-tramp-for-remote-editing-with-emacsclie.patch >From 8a9b508809bf5bef2a797340614cbc4cb0c73a5a Mon Sep 17 00:00:00 2001 From: "Peder O. Klingenberg" Date: Fri, 21 Apr 2017 17:16:08 +0200 Subject: [PATCH] New option -T / --tramp for remote editing with emacsclient In combination with existing functionality for having server.el listen on tcp ports, enables emacsclient on a remote machine to instruct the local emacs to open remote files via Tramp. Useful with remote programs that invoke EDITOR. * lib-src/emacsclient.c (main, decode_options) (print_help_and_exit, longopts): New option --tramp / -T which specifies how emacs should use tramp to find remote files. * doc/emacs/misc.texi (emacsclient Options): Document new --tramp / -T options. --- doc/emacs/misc.texi | 30 ++++++++++++++++++++++++++++++ etc/NEWS | 6 ++++++ lib-src/emacsclient.c | 20 ++++++++++++++++++-- 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index bcc20a6db1..34a9d885bf 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -1872,6 +1872,36 @@ emacsclient Options server is using the graphical display, but if the Emacs server is running on a text terminal, it creates a new frame in the current text terminal. + +@item -T @var{tramp-prefix} +@itemx --tramp-prefix=@var{tramp-prefix} +@cindex @env{EMACSCLIENT_TRAMP} environment variable +Prefix to add to filenames for emacs to locate files on remote +machines through TRAMP. This is mostly useful in combination with +setting @code{server-use-tcp} to non-@code{nil}, ssh-forwarding the +listening port, and making the @var{server-file} available to +@command{emacsclient}. This combination allows programs on a remote +machine to use @command{emacsclient} as @env{EDITOR}, but instead of +starting emacs on the remote machine, the files will be opened in the +local emacs through TRAMP. + +Setting the environment variable @env{EMACSCLIENT_TRAMP} has the same +effect as using this option. If both are specified, the explicit +option will take precedence. + +For example, assume two hosts, @samp{local} and @samp{remote}, with +@samp{/home} on a shared file system, and that the local emacs listens +on tcp port 12345: + +@example +local$ ssh -R12345:localhost:12345 remote +remote$ export EDITOR="emacsclient \ + --server-file=server \ + --tramp=/ssh:remote:' +remote$ $EDITOR /tmp/foo.txt #Should open in local emacs. +@end example + +@xref{Top, The Tramp Manual,,tramp, The Tramp Manual} @end table The new graphical or text terminal frames created by the @samp{-c} diff --git a/etc/NEWS b/etc/NEWS index 76c9dbc331..4599efd7da 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -340,6 +340,12 @@ want to reverse the direction of the scroll, customize ** Emacsclient has a new option -u/--suppress-output. The option suppresses display of return values from the server process. ++++ +** Emacsclient has a new option -T/--tramp. This helps with using a +local emacs as the target for a remote emacsclient. With appropriate +setup, one can now set EDITOR on a remote machine to emacsclient, and +use the local emacs to edit remote files via Tramp. + * Editing Changes in Emacs 26.1 diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 7b735dfb05..0661480f58 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -149,6 +149,9 @@ const char *socket_name = NULL; /* If non-NULL, the filename of the authentication file. */ const char *server_file = NULL; +/* If non-NULL, the tramp prefix emacs must use to find the files. */ +const char *tramp_prefix = NULL; + /* PID of the Emacs server process. */ int emacs_pid = 0; @@ -178,6 +181,7 @@ struct option longopts[] = { "server-file", required_argument, NULL, 'f' }, { "display", required_argument, NULL, 'd' }, { "parent-id", required_argument, NULL, 'p' }, + { "tramp", required_argument, NULL, 'T' }, { 0, 0, 0, 0 } }; @@ -468,14 +472,15 @@ static void decode_options (int argc, char **argv) { alternate_editor = egetenv ("ALTERNATE_EDITOR"); + tramp_prefix = egetenv ("EMACSCLIENT_TRAMP"); while (1) { int opt = getopt_long_only (argc, argv, #ifndef NO_SOCKETS_IN_FILE_SYSTEM - "VHnequa:s:f:d:F:tc", + "VHnequa:s:f:d:F:tcT:", #else - "VHnequa:f:d:F:tc", + "VHnequa:f:d:F:tcT:", #endif longopts, 0); @@ -554,6 +559,10 @@ decode_options (int argc, char **argv) frame_parameters = optarg; break; + case 'T': + tramp_prefix = optarg; + break; + default: message (true, "Try '%s --help' for more information\n", progname); exit (EXIT_FAILURE); @@ -654,6 +663,9 @@ The following OPTIONS are accepted:\n\ Editor to fallback to if the server is not running\n" " If EDITOR is the empty string, start Emacs in daemon\n\ mode and try connecting again\n" +"-T PREFIX, --tramp=PREFIX\n\ + PREFIX to filenames emacs needs to use to find files\n\ + local to emacsclient\n" "\n\ Report bugs with M-x report-emacs-bug.\n"); exit (EXIT_SUCCESS); @@ -1687,6 +1699,8 @@ main (int argc, char **argv) } } send_to_emacs (emacs_socket, "-dir "); + if (tramp_prefix) + quote_argument (emacs_socket, tramp_prefix); quote_argument (emacs_socket, cwd); send_to_emacs (emacs_socket, "/"); send_to_emacs (emacs_socket, " "); @@ -1791,6 +1805,8 @@ main (int argc, char **argv) #endif send_to_emacs (emacs_socket, "-file "); + if (tramp_prefix && file_name_absolute_p (argv[i])) + quote_argument (emacs_socket, tramp_prefix); quote_argument (emacs_socket, argv[i]); send_to_emacs (emacs_socket, " "); } -- 2.11.0 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable In GNU Emacs 26.0.50 (build 1, x86_64-apple-darwin14.5.0, NS appkit-1348.17= Version 10.10.5 (Build 14F2315)) of 2017-04-14 built on modesty.local Repository revision: e6750596ef55352c260c200747bec3303e181fe8 Windowing system distributor 'Apple', version 10.3.1348 Recent messages: Searching for =E2=80=980000=E2=80=99.... Quit is undefined Undo in region! Mark set Redo in region! Undo in region! previous-line: Beginning of buffer [6 times] Making completion list... funcall-interactively: End of buffer Configured features: RSVG DBUS NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS Important settings: value of $LANG: en_NO.UTF-8 locale-coding-system: utf-8-unix Major mode: Diff Minor modes in effect: TeX-PDF-mode: t magit-auto-revert-mode: t global-git-commit-mode: t async-bytecomp-package-mode: t whitespace-mode: t diff-auto-refine-mode: t show-paren-mode: t yas-global-mode: t yas-minor-mode: t shell-dirtrack-mode: t ido-everywhere: t cl-old-struct-compat-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /Users/pok/.emacs.d/elpa/org-20170210/ox hides /Users/pok/src/emacs/nextste= p/Emacs.app/Contents/Resources/lisp/org/ox /Users/pok/.emacs.d/elpa/org-20170210/ox-texinfo hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/ox-texinfo /Users/pok/.emacs.d/elpa/org-20170210/ox-publish hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/ox-publish /Users/pok/.emacs.d/elpa/org-20170210/ox-org hides /Users/pok/src/emacs/nex= tstep/Emacs.app/Contents/Resources/lisp/org/ox-org /Users/pok/.emacs.d/elpa/org-20170210/ox-odt hides /Users/pok/src/emacs/nex= tstep/Emacs.app/Contents/Resources/lisp/org/ox-odt /Users/pok/.emacs.d/elpa/org-20170210/ox-md hides /Users/pok/src/emacs/next= step/Emacs.app/Contents/Resources/lisp/org/ox-md /Users/pok/.emacs.d/elpa/org-20170210/ox-man hides /Users/pok/src/emacs/nex= tstep/Emacs.app/Contents/Resources/lisp/org/ox-man /Users/pok/.emacs.d/elpa/org-20170210/ox-latex hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/ox-latex /Users/pok/.emacs.d/elpa/org-20170210/ox-icalendar hides /Users/pok/src/ema= cs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-icalendar /Users/pok/.emacs.d/elpa/org-20170210/ox-html hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/ox-html /Users/pok/.emacs.d/elpa/org-20170210/ox-beamer hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/ox-beamer /Users/pok/.emacs.d/elpa/org-20170210/ox-ascii hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/ox-ascii /Users/pok/.emacs.d/elpa/org-20170210/org hides /Users/pok/src/emacs/nextst= ep/Emacs.app/Contents/Resources/lisp/org/org /Users/pok/.emacs.d/elpa/org-20170210/org-w3m hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/org-w3m /Users/pok/.emacs.d/elpa/org-20170210/org-version hides /Users/pok/src/emac= s/nextstep/Emacs.app/Contents/Resources/lisp/org/org-version /Users/pok/.emacs.d/elpa/org-20170210/org-timer hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/org-timer /Users/pok/.emacs.d/elpa/org-20170210/org-table hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/org-table /Users/pok/.emacs.d/elpa/org-20170210/org-src hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/org-src /Users/pok/.emacs.d/elpa/org-20170210/org-rmail hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/org-rmail /Users/pok/.emacs.d/elpa/org-20170210/org-protocol hides /Users/pok/src/ema= cs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-protocol /Users/pok/.emacs.d/elpa/org-20170210/org-plot hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/org-plot /Users/pok/.emacs.d/elpa/org-20170210/org-pcomplete hides /Users/pok/src/em= acs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-pcomplete /Users/pok/.emacs.d/elpa/org-20170210/org-mouse hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/org-mouse /Users/pok/.emacs.d/elpa/org-20170210/org-mobile hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/org-mobile /Users/pok/.emacs.d/elpa/org-20170210/org-mhe hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/org-mhe /Users/pok/.emacs.d/elpa/org-20170210/org-macs hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/org-macs /Users/pok/.emacs.d/elpa/org-20170210/org-macro hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/org-macro /Users/pok/.emacs.d/elpa/org-20170210/org-loaddefs hides /Users/pok/src/ema= cs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-loaddefs /Users/pok/.emacs.d/elpa/org-20170210/org-list hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/org-list /Users/pok/.emacs.d/elpa/org-20170210/org-irc hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/org-irc /Users/pok/.emacs.d/elpa/org-20170210/org-install hides /Users/pok/src/emac= s/nextstep/Emacs.app/Contents/Resources/lisp/org/org-install /Users/pok/.emacs.d/elpa/org-20170210/org-inlinetask hides /Users/pok/src/e= macs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-inlinetask /Users/pok/.emacs.d/elpa/org-20170210/org-info hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/org-info /Users/pok/.emacs.d/elpa/org-20170210/org-indent hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/org-indent /Users/pok/.emacs.d/elpa/org-20170210/org-id hides /Users/pok/src/emacs/nex= tstep/Emacs.app/Contents/Resources/lisp/org/org-id /Users/pok/.emacs.d/elpa/org-20170210/org-habit hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/org-habit /Users/pok/.emacs.d/elpa/org-20170210/org-gnus hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/org-gnus /Users/pok/.emacs.d/elpa/org-20170210/org-footnote hides /Users/pok/src/ema= cs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-footnote /Users/pok/.emacs.d/elpa/org-20170210/org-feed hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/org-feed /Users/pok/.emacs.d/elpa/org-20170210/org-faces hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/org-faces /Users/pok/.emacs.d/elpa/org-20170210/org-eshell hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/org-eshell /Users/pok/.emacs.d/elpa/org-20170210/org-entities hides /Users/pok/src/ema= cs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-entities /Users/pok/.emacs.d/elpa/org-20170210/org-element hides /Users/pok/src/emac= s/nextstep/Emacs.app/Contents/Resources/lisp/org/org-element /Users/pok/.emacs.d/elpa/org-20170210/org-docview hides /Users/pok/src/emac= s/nextstep/Emacs.app/Contents/Resources/lisp/org/org-docview /Users/pok/.emacs.d/elpa/org-20170210/org-datetree hides /Users/pok/src/ema= cs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-datetree /Users/pok/.emacs.d/elpa/org-20170210/org-ctags hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/org-ctags /Users/pok/.emacs.d/elpa/org-20170210/org-crypt hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/org-crypt /Users/pok/.emacs.d/elpa/org-20170210/org-compat hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/org-compat /Users/pok/.emacs.d/elpa/org-20170210/org-colview hides /Users/pok/src/emac= s/nextstep/Emacs.app/Contents/Resources/lisp/org/org-colview /Users/pok/.emacs.d/elpa/org-20170210/org-clock hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/org-clock /Users/pok/.emacs.d/elpa/org-20170210/org-capture hides /Users/pok/src/emac= s/nextstep/Emacs.app/Contents/Resources/lisp/org/org-capture /Users/pok/.emacs.d/elpa/org-20170210/org-bibtex hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/org-bibtex /Users/pok/.emacs.d/elpa/org-20170210/org-bbdb hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/org-bbdb /Users/pok/.emacs.d/elpa/org-20170210/org-attach hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/org-attach /Users/pok/.emacs.d/elpa/org-20170210/org-archive hides /Users/pok/src/emac= s/nextstep/Emacs.app/Contents/Resources/lisp/org/org-archive /Users/pok/.emacs.d/elpa/org-20170210/org-agenda hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/org-agenda /Users/pok/.emacs.d/elpa/org-20170210/ob hides /Users/pok/src/emacs/nextste= p/Emacs.app/Contents/Resources/lisp/org/ob /Users/pok/.emacs.d/elpa/org-20170210/ob-tangle hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/ob-tangle /Users/pok/.emacs.d/elpa/org-20170210/ob-table hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/ob-table /Users/pok/.emacs.d/elpa/org-20170210/ob-sqlite hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/ob-sqlite /Users/pok/.emacs.d/elpa/org-20170210/ob-sql hides /Users/pok/src/emacs/nex= tstep/Emacs.app/Contents/Resources/lisp/org/ob-sql /Users/pok/.emacs.d/elpa/org-20170210/ob-shen hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/ob-shen /Users/pok/.emacs.d/elpa/org-20170210/ob-screen hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/ob-screen /Users/pok/.emacs.d/elpa/org-20170210/ob-scheme hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/ob-scheme /Users/pok/.emacs.d/elpa/org-20170210/ob-scala hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/ob-scala /Users/pok/.emacs.d/elpa/org-20170210/ob-sass hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/ob-sass /Users/pok/.emacs.d/elpa/org-20170210/ob-ruby hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/ob-ruby /Users/pok/.emacs.d/elpa/org-20170210/ob-ref hides /Users/pok/src/emacs/nex= tstep/Emacs.app/Contents/Resources/lisp/org/ob-ref /Users/pok/.emacs.d/elpa/org-20170210/ob-R hides /Users/pok/src/emacs/nexts= tep/Emacs.app/Contents/Resources/lisp/org/ob-R /Users/pok/.emacs.d/elpa/org-20170210/ob-python hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/ob-python /Users/pok/.emacs.d/elpa/org-20170210/ob-plantuml hides /Users/pok/src/emac= s/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-plantuml /Users/pok/.emacs.d/elpa/org-20170210/ob-picolisp hides /Users/pok/src/emac= s/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-picolisp /Users/pok/.emacs.d/elpa/org-20170210/ob-perl hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/ob-perl /Users/pok/.emacs.d/elpa/org-20170210/ob-org hides /Users/pok/src/emacs/nex= tstep/Emacs.app/Contents/Resources/lisp/org/ob-org /Users/pok/.emacs.d/elpa/org-20170210/ob-octave hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/ob-octave /Users/pok/.emacs.d/elpa/org-20170210/ob-ocaml hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/ob-ocaml /Users/pok/.emacs.d/elpa/org-20170210/ob-mscgen hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/ob-mscgen /Users/pok/.emacs.d/elpa/org-20170210/ob-maxima hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/ob-maxima /Users/pok/.emacs.d/elpa/org-20170210/ob-matlab hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/ob-matlab /Users/pok/.emacs.d/elpa/org-20170210/ob-makefile hides /Users/pok/src/emac= s/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-makefile /Users/pok/.emacs.d/elpa/org-20170210/ob-lob hides /Users/pok/src/emacs/nex= tstep/Emacs.app/Contents/Resources/lisp/org/ob-lob /Users/pok/.emacs.d/elpa/org-20170210/ob-lisp hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/ob-lisp /Users/pok/.emacs.d/elpa/org-20170210/ob-lilypond hides /Users/pok/src/emac= s/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-lilypond /Users/pok/.emacs.d/elpa/org-20170210/ob-ledger hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/ob-ledger /Users/pok/.emacs.d/elpa/org-20170210/ob-latex hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/ob-latex /Users/pok/.emacs.d/elpa/org-20170210/ob-keys hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/ob-keys /Users/pok/.emacs.d/elpa/org-20170210/ob-js hides /Users/pok/src/emacs/next= step/Emacs.app/Contents/Resources/lisp/org/ob-js /Users/pok/.emacs.d/elpa/org-20170210/ob-java hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/ob-java /Users/pok/.emacs.d/elpa/org-20170210/ob-io hides /Users/pok/src/emacs/next= step/Emacs.app/Contents/Resources/lisp/org/ob-io /Users/pok/.emacs.d/elpa/org-20170210/ob-haskell hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/ob-haskell /Users/pok/.emacs.d/elpa/org-20170210/ob-gnuplot hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/ob-gnuplot /Users/pok/.emacs.d/elpa/org-20170210/ob-fortran hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/ob-fortran /Users/pok/.emacs.d/elpa/org-20170210/ob-exp hides /Users/pok/src/emacs/nex= tstep/Emacs.app/Contents/Resources/lisp/org/ob-exp /Users/pok/.emacs.d/elpa/org-20170210/ob-eval hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/ob-eval /Users/pok/.emacs.d/elpa/org-20170210/ob-emacs-lisp hides /Users/pok/src/em= acs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp /Users/pok/.emacs.d/elpa/org-20170210/ob-dot hides /Users/pok/src/emacs/nex= tstep/Emacs.app/Contents/Resources/lisp/org/ob-dot /Users/pok/.emacs.d/elpa/org-20170210/ob-ditaa hides /Users/pok/src/emacs/n= extstep/Emacs.app/Contents/Resources/lisp/org/ob-ditaa /Users/pok/.emacs.d/elpa/org-20170210/ob-css hides /Users/pok/src/emacs/nex= tstep/Emacs.app/Contents/Resources/lisp/org/ob-css /Users/pok/.emacs.d/elpa/org-20170210/ob-core hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/ob-core /Users/pok/.emacs.d/elpa/org-20170210/ob-comint hides /Users/pok/src/emacs/= nextstep/Emacs.app/Contents/Resources/lisp/org/ob-comint /Users/pok/.emacs.d/elpa/org-20170210/ob-clojure hides /Users/pok/src/emacs= /nextstep/Emacs.app/Contents/Resources/lisp/org/ob-clojure /Users/pok/.emacs.d/elpa/org-20170210/ob-calc hides /Users/pok/src/emacs/ne= xtstep/Emacs.app/Contents/Resources/lisp/org/ob-calc /Users/pok/.emacs.d/elpa/org-20170210/ob-C hides /Users/pok/src/emacs/nexts= tep/Emacs.app/Contents/Resources/lisp/org/ob-C /Users/pok/.emacs.d/elpa/org-20170210/ob-awk hides /Users/pok/src/emacs/nex= tstep/Emacs.app/Contents/Resources/lisp/org/ob-awk /Users/pok/.emacs.d/elpa/org-20170210/ob-asymptote hides /Users/pok/src/ema= cs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-asymptote Features: (shadow mail-extr emacsbug texmathp tex-info tex texinfo bug-reference magit-obsolete magit-blame magit-stash magit-bisect magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-branch magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode magit-core magit-autorevert autorevert filenotify magit-process magit-margin magit-mode magit-git crm magit-section magit-popup git-commit magit-utils log-edit message sendmail dired dired-loaddefs rfc822 mml mml-sec epa epg gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader with-editor async-bytecomp async dash cus-edit cus-start cus-load wid-edit cl-print files-x conf-mode sort bubbles gamegrid whitespace tabify imenu man grep pulse jka-compr tramp-cmds tramp-cache tramp-sh eieio-opt speedbar sb-image ezimage dframe network-stream puny nsm starttls tls gnutls slime-indentation slime-cl-indent cl-indent slime-fancy slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references slime-compiler-notes-tree slime-scratch slime-presentations bridge slime-macrostep macrostep slime-mdot-fu slime-enclosing-context slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc slime-repl elp slime-parse slime derived gud apropos etags xref project arc-mode archive-mode pp hyperspec thingatpt browse-url help-fns radix-tree misearch multi-isearch add-log log-view pcvs-util vc vc-dispatcher vc-git diff-mode map cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs linum paren paredit pok-init yasnippet org-element avl-tree org org-macro org-footnote org-pcomplete org-list org-faces org-entities noutline outline easy-mmode org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint tramp tramp-compat tramp-loaddefs trampver shell pcomplete parse-time advice ob-core ob-eval org-compat org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs gedcom slime-autoloads reftex reftex-loaddefs reftex-vars edmacro kmacro ido server dmacro cl compile comint ansi-color ring finder-inf tex-site info package epg-config url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache url-vars seq byte-opt subr-x gv bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs pcase cl-lib time-date tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind kqueue cocoa ns multi-tty make-network-process emacs) Memory information: ((conses 16 735171 58999) (symbols 48 45467 2) (miscs 40 2510 1989) (strings 32 122722 22141) (string-bytes 1 3844625) (vectors 16 72407) (vector-slots 8 1935160 221273) (floats 8 199 921) (intervals 56 56856 204) (buffers 976 54)) --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 21 12:22:16 2017 Received: (at control) by debbugs.gnu.org; 21 Apr 2017 16:22:16 +0000 Received: from localhost ([127.0.0.1]:32808 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d1bK3-0004JS-TN for submit@debbugs.gnu.org; Fri, 21 Apr 2017 12:22:16 -0400 Received: from tarrant.klingenberg.no ([80.91.231.253]:50164) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d1bJz-0004JI-Tl for control@debbugs.gnu.org; Fri, 21 Apr 2017 12:22:13 -0400 Received: from 173-28-11.connect.netcom.no ([176.11.28.173] helo=modesty.local) by tarrant.klingenberg.no with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1d1bJt-0001Px-Ae for control@debbugs.gnu.org; Fri, 21 Apr 2017 18:22:10 +0200 Received: by modesty.local (Postfix, from userid 502) id 8F9BB17DDB2D; Fri, 21 Apr 2017 18:21:59 +0200 (CEST) To: control@debbugs.gnu.org From: peder@klingenberg.no (Peder O. Klingenberg) Subject: control message for bug #26591 Message-Id: <20170421162159.8F9BB17DDB2D@modesty.local> Date: Fri, 21 Apr 2017 18:21:59 +0200 (CEST) X-Spam-Score: -2.9 (--) X-SRS: Sender address rewritten from to by tarrant.klingenberg.no. X-Spam-Score: 0.4 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.4 (/) severity 26591 wishlist From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 21 12:22:19 2017 Received: (at control) by debbugs.gnu.org; 21 Apr 2017 16:22:19 +0000 Received: from localhost ([127.0.0.1]:32811 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d1bK7-0004Ji-71 for submit@debbugs.gnu.org; Fri, 21 Apr 2017 12:22:19 -0400 Received: from tarrant.klingenberg.no ([80.91.231.253]:50169) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d1bK5-0004Ja-3r for control@debbugs.gnu.org; Fri, 21 Apr 2017 12:22:17 -0400 Received: from 173-28-11.connect.netcom.no ([176.11.28.173] helo=modesty.local) by tarrant.klingenberg.no with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1d1bJy-0001Py-Ma for control@debbugs.gnu.org; Fri, 21 Apr 2017 18:22:16 +0200 Received: by modesty.local (Postfix, from userid 502) id A42EE17DDB30; Fri, 21 Apr 2017 18:22:04 +0200 (CEST) To: control@debbugs.gnu.org From: peder@klingenberg.no (Peder O. Klingenberg) Subject: control message for bug #26591 Message-Id: <20170421162204.A42EE17DDB30@modesty.local> Date: Fri, 21 Apr 2017 18:22:04 +0200 (CEST) X-Spam-Score: -2.9 (--) X-SRS: Sender address rewritten from to by tarrant.klingenberg.no. X-Spam-Score: 0.4 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.4 (/) tags 26591 patch From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 28 05:43:14 2017 Received: (at 26591) by debbugs.gnu.org; 28 Apr 2017 09:43:14 +0000 Received: from localhost ([127.0.0.1]:43623 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d42Qk-0006Ri-06 for submit@debbugs.gnu.org; Fri, 28 Apr 2017 05:43:14 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41574) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d42Qi-0006RV-33 for 26591@debbugs.gnu.org; Fri, 28 Apr 2017 05:43:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d42QY-0007W2-21 for 26591@debbugs.gnu.org; Fri, 28 Apr 2017 05:43:06 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:60070) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d42QX-0007Vy-UC; Fri, 28 Apr 2017 05:43:01 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2720 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1d42QX-00083e-9w; Fri, 28 Apr 2017 05:43:01 -0400 Date: Fri, 28 Apr 2017 12:42:27 +0300 Message-Id: <83k264na0s.fsf@gnu.org> From: Eli Zaretskii To: peder@klingenberg.no (Peder O. Klingenberg) In-reply-to: (peder@klingenberg.no) Subject: Re: bug#26591: 26.0.50; Using local emacs+tramp with remote emacsclient References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 26591 Cc: 26591@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: peder@klingenberg.no (Peder O. Klingenberg) > Date: Fri, 21 Apr 2017 18:15:25 +0200 > > My workstation is running a bleeding edge emacs full-screen in a > dedicated display. When working on a server, from time to time I use > programs that invoke the shell EDITOR. I can set EDITOR to emacsclient, > but that will just open emacs on the remote machine, which is not what I > want. I want whatever editing job needs doing to pop up in my local > fullscreen emacs. > > I can ssh to the server, so obviously I can use my local emacs to edit > files there via Tramp. And server.el already has functionality for > listening on a TCP port, which is easily forwarded over ssh (there are > various hacks out there for forwarding unix domain sockets as well, > which I haven't tried). > > The missing piece is simply a way to let emacsclient instruct emacs that > the files it passes to emacs are remote. Attached is a patch for your > consideration which accomplishes this. > > Additionally, it would be handy to have some tooling for conveniently > forwarding the correct ports and setting up EDITOR with the correct -T > option on the remote machine, but that is outside the scope of emacs > code, I think. Thanks, I think this will be a welcome feature. Please see a few comments below. > --- a/doc/emacs/misc.texi > +++ b/doc/emacs/misc.texi > @@ -1872,6 +1872,36 @@ emacsclient Options > server is using the graphical display, but if the Emacs server is > running on a text terminal, it creates a new frame in the current text > terminal. > + > +@item -T @var{tramp-prefix} > +@itemx --tramp-prefix=@var{tramp-prefix} > +@cindex @env{EMACSCLIENT_TRAMP} environment variable > +Prefix to add to filenames for emacs to locate files on remote > +machines through TRAMP. This is mostly useful in combination with > +setting @code{server-use-tcp} to non-@code{nil}, ssh-forwarding the > +listening port, and making the @var{server-file} available to > +@command{emacsclient}. server-use-tcp is not described in the manual, so I think we should add its description somewhere, and then reference that place from this text. > +For example, assume two hosts, @samp{local} and @samp{remote}, with > +@samp{/home} on a shared file system, and that the local emacs listens > +on tcp port 12345: "/home" should be in @file, not @samp. Also, I don't see "/home" used anywhere in the example, so something is missing here. > +@example > +local$ ssh -R12345:localhost:12345 remote > +remote$ export EDITOR="emacsclient \ > + --server-file=server \ > + --tramp=/ssh:remote:' The value of EDITOR begins with a ", but ends with a ', which is probably a mistake. > + if (tramp_prefix && file_name_absolute_p (argv[i])) > + quote_argument (emacs_socket, tramp_prefix); Why the test for argv[i] being an absolute file name? And if relative file names cannot be supported, I think emacsclient should emit an error message rather than silently ignoring --tramp. From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 28 11:31:09 2017 Received: (at submit) by debbugs.gnu.org; 28 Apr 2017 15:31:09 +0000 Received: from localhost ([127.0.0.1]:44867 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d47rR-0000Ko-7Z for submit@debbugs.gnu.org; Fri, 28 Apr 2017 11:31:09 -0400 Received: from eggs.gnu.org ([208.118.235.92]:38932) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d44G8-0002hM-8x for submit@debbugs.gnu.org; Fri, 28 Apr 2017 07:40:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d44G2-0000gA-6J for submit@debbugs.gnu.org; Fri, 28 Apr 2017 07:40:19 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:35549) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d44G2-0000g4-2t for submit@debbugs.gnu.org; Fri, 28 Apr 2017 07:40:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58128) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d44G1-0001SD-0Z for bug-gnu-emacs@gnu.org; Fri, 28 Apr 2017 07:40:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d44Fw-0000eV-3t for bug-gnu-emacs@gnu.org; Fri, 28 Apr 2017 07:40:17 -0400 Received: from [195.159.176.226] (port=54228 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d44Fv-0000dy-Te for bug-gnu-emacs@gnu.org; Fri, 28 Apr 2017 07:40:12 -0400 Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1d44Fo-0004mp-8f for bug-gnu-emacs@gnu.org; Fri, 28 Apr 2017 13:40:04 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: peder@news.klingenberg.no (Peder O. Klingenberg) Subject: Re: bug#26591: 26.0.50; Using local emacs+tramp with remote emacsclient Date: Fri, 28 Apr 2017 13:29:19 +0200 Organization: Persons in a Position to Know, inc. Lines: 33 Message-ID: References: <83k264na0s.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@blaine.gmane.org User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) Cancel-Lock: sha1:gIpuuy6b31SHabcqOV/3nyGwOvE= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 28 Apr 2017 11:31:07 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) On Fri, Apr 28 2017 at 12:42, Eli Zaretskii wrote: > Also, I don't see "/home" used anywhere in the example, so something > is missing here. The shared file system is just the easiest way for emacs and emacsclient to both see the same server file, containing port number and security cookie. The default placement of that file is in ~/.emacs.d/server, and a shared /home makes sure it's reachable from both server and client. I can see how that would be unclear. I'll improve it, and fix the other things you pointed out. > Why the test for argv[i] being an absolute file name? And if relative > file names cannot be supported, I think emacsclient should emit an > error message rather than silently ignoring --tramp. The previous hunk of the patch adds the tramp prefix to the -dir argument, which ends up setting `default-directory' for the server buffers. That makes relative filenames work. With an absolute filename, if we don't prepend the tramp prefix, the `default-directory' is ignored serverside and emacs tries to open a local-to-emacs absolute file. So we need to prepend the tramp formula to tell emacs that the absolute filename is remote. It would probably do no harm to include the tramp prefix on non-absolute filenames as well, but it's not necessary, due to the previous -dir. ...Peder... -- I wish a new life awaited _me_ in some off-world colony. From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 29 15:45:41 2017 Received: (at 26591) by debbugs.gnu.org; 29 Apr 2017 19:45:41 +0000 Received: from localhost ([127.0.0.1]:46656 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d4YJI-0002cf-MK for submit@debbugs.gnu.org; Sat, 29 Apr 2017 15:45:41 -0400 Received: from tarrant.klingenberg.no ([80.91.231.253]:37188) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d4YJG-0002cU-2q for 26591@debbugs.gnu.org; Sat, 29 Apr 2017 15:45:38 -0400 Received: from 179.51-175-138.customer.lyse.net ([51.175.138.179] helo=modesty.local) by tarrant.klingenberg.no with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1d4YJ1-0003d1-21; Sat, 29 Apr 2017 21:45:35 +0200 Received: by modesty.local (Postfix, from userid 502) id 2AEBB17E8E4C; Sat, 29 Apr 2017 21:45:15 +0200 (CEST) From: peder@klingenberg.no (Peder O. Klingenberg) To: Eli Zaretskii Subject: Re: bug#26591: 26.0.50; Using local emacs+tramp with remote emacsclient References: <83k264na0s.fsf@gnu.org> Date: Sat, 29 Apr 2017 21:45:15 +0200 In-Reply-To: <83k264na0s.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 28 Apr 2017 12:42:27 +0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (darwin) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.9 (--) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 26591 Cc: 26591@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain Eli Zaretskii writes: > server-use-tcp is not described in the manual, so I think we should > add its description somewhere, and then reference that place from this > text. I added a new node to the manual, "TCP Emacs server", and collected/wrote documentation on the various related variables there. Does this type of doc reorganization require its own NEWS entry? I didn't see the point, and so didn't write any. As this is only tangentially related to the new feature, I made it into a separate patch. The updated feature patch applies on top of this documentation patch, and references the new node. > "/home" should be in @file, not @samp. Also, I don't see "/home" used > anywhere in the example, so something is missing here. I have hopefully clarified the wording and fixed the tagging and typos. I noticed while writing the TCP server doc that Emacs was capitalized elsewhere in the docs, so I updated the capitalization in the paragraphs on the new option. Jeez, writing good docs is hard. Criticisms welcome. :) > Why the test for argv[i] being an absolute file name? And if relative > file names cannot be supported, I think emacsclient should emit an > error message rather than silently ignoring --tramp. As I explained in my previous mail, both absolute and relative filenames are supported. There are no code changes in this updated patch set. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Improve-documentation-of-TCP-mode-of-server.el.patch >From f5a4c2ef877a476a1f2bfb8f3eb07cba7c641234 Mon Sep 17 00:00:00 2001 From: "Peder O. Klingenberg" Date: Sat, 29 Apr 2017 01:18:30 +0200 Subject: [PATCH] Improve documentation of TCP mode of server.el * doc/emacs/misc.texi (TCP Emacs server): New subsection describing the various knobs to tune server.el for TCP opereation. (emacsclient Options): Reference "TCP Emacs server" from description of --server-file. --- doc/emacs/misc.texi | 80 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 63 insertions(+), 17 deletions(-) diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index bcc20a6db1..c8504fef49 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -1661,10 +1661,66 @@ Emacs Server signaled.) Currently, this feature is mainly useful for developers. @menu +* TCP Emacs server:: Listening to a TCP socket. * Invoking emacsclient:: Connecting to the Emacs server. * emacsclient Options:: Emacs client startup options. @end menu +@node TCP Emacs server +@subsection TCP Emacs server +@cindex TCP Emacs server + +@vindex server-use-tcp + By default, the Emacs server will listen to a local unix domain +socket. In some cases it is useful to have it listen on a TCP socket +instead. Examples of such cases are operating systems like Microsoft +Windows that don't support local sockets, and if you need to contact +the Emacs server from a remote machine. You can set +@code{server-use-tcp} to non-@code{nil} to have Emacs listen on a TCP +socket instead of a local socket. This is the default if your OS does +not support local sockets. + +@vindex server-host +@vindex server-port + If the Emacs server is set to use TCP, it will by default listen to +a random port on the localhost interface. This can be changed to +another interface and/or a fixed port using the variables +@code{server-host} and @code{server-port}. + +@vindex server-auth-key + A TCP socket is not subject to file system permissions. To retain +some control over who can talk to a TCP Emacs server, the +@command{emacsclient} program must send an authorization key to the +server. This key is normally randomly generated by the Emacs server. +This is the recommended mode of operation. + +@findex server-generate-key + If needed, you can set it to a static value by setting the +@code{server-auth-key} variable. The key must consist of 64 ASCII +printable characters except for space (this means characters from ! to +~; or from code 33 to 126). You can use @kbd{M-x server-generate-key} +to get a random key. + +@vindex server-auth-dir +@cindex server file + When you start a TCP Emacs server, Emacs creates a @dfn{server file} +containing the TCP information to be used by @command{emacsclient} to +connect to the server. The variable @code{server-auth-dir} specifies +the directory containing the server file; by default, this is +@file{~/.emacs.d/server/}. In the absence of a local socket with file +permissions, it is the permissions of this directory that determines +who can talk to the Emacs server. + +@cindex @env{EMACS_SERVER_FILE} environment variable + To tell @command{emacsclient} to connect to the server over TCP with a +specific server file, use the @samp{-f} or @samp{--server-file} +option, or set the @env{EMACS_SERVER_FILE} environment variable +(@pxref{emacsclient Options}). If @code{server-auth-dir} is set to a +non-standard value, @command{emacsclient} needs an absolute path to the +server file, as the default @code{server-auth-dir} is hardcoded in +@command{emacsclient} as the base of relative filenames. + + @node Invoking emacsclient @subsection Invoking @code{emacsclient} @cindex @code{emacsclient} invocation @@ -1810,25 +1866,15 @@ emacsclient Options @item -f @var{server-file} @itemx --server-file=@var{server-file} -@cindex @env{EMACS_SERVER_FILE} environment variable Specify a @dfn{server file} for connecting to an Emacs server via TCP. -An Emacs server usually uses a -local socket to listen for connections. Some operating systems, -such as Microsoft Windows, do not support local sockets; in that case, -the server communicates with @command{emacsclient} via TCP. - -@vindex server-auth-dir -@cindex server file -@vindex server-port -When you start a TCP Emacs server, Emacs creates a @dfn{server file} -containing the TCP information to be used by @command{emacsclient} to -connect to the server. The variable @code{server-auth-dir} specifies -the directory containing the server file; by default, this is -@file{~/.emacs.d/server/}. To tell @command{emacsclient} to connect -to the server over TCP with a specific server file, use the @samp{-f} -or @samp{--server-file} option, or set the @env{EMACS_SERVER_FILE} -environment variable. +An Emacs server usually uses a local socket to listen for connections, +but also supports connections over TCP. To connect to a TCP Emacs +server, @command{emacsclient} needs to read a @dfn{server file} +containing the connection details of the Emacs server. The name of +this file is specified with this option, either as a file name +relative to @file{~/.emacs.d/server} or as an absolute file name. +@xref{TCP Emacs server}. @item -n @itemx --no-wait -- 2.11.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-New-option-T-tramp-for-remote-editing-with-emacsclie.patch >From 724e7d83948e7efd93f22c18d534321c461f6cbc Mon Sep 17 00:00:00 2001 From: "Peder O. Klingenberg" Date: Fri, 21 Apr 2017 17:16:08 +0200 Subject: [PATCH] New option -T / --tramp for remote editing with emacsclient In combination with existing functionality for having server.el listen on tcp ports, enables emacsclient on a remote machine to instruct the local emacs to open remote files via Tramp. Useful with remote programs that invoke EDITOR. * lib-src/emacsclient.c (main, decode_options) (print_help_and_exit, longopts): New option --tramp / -T which specifies how emacs should use tramp to find remote files. * doc/emacs/misc.texi (emacsclient Options): Document new --tramp / -T options. (Bug#26591) --- doc/emacs/misc.texi | 34 +++++++++++++++++++++++++++++++++- etc/NEWS | 6 ++++++ lib-src/emacsclient.c | 20 ++++++++++++++++++-- 3 files changed, 57 insertions(+), 3 deletions(-) diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index c8504fef49..3c6a192ca6 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -1720,7 +1720,6 @@ TCP Emacs server server file, as the default @code{server-auth-dir} is hardcoded in @command{emacsclient} as the base of relative filenames. - @node Invoking emacsclient @subsection Invoking @code{emacsclient} @cindex @code{emacsclient} invocation @@ -1918,6 +1917,39 @@ emacsclient Options server is using the graphical display, but if the Emacs server is running on a text terminal, it creates a new frame in the current text terminal. + +@item -T @var{tramp-prefix} +@itemx --tramp-prefix=@var{tramp-prefix} +@cindex @env{EMACSCLIENT_TRAMP} environment variable +Prefix to add to filenames for Emacs to locate files on remote +machines through TRAMP. This is mostly useful in combination with +using the Emacs server over TCP. By ssh-forwarding the listening port +and making the @var{server-file} available on a remote machine, +programs on the remote machine can use @command{emacsclient} as +@env{EDITOR}, but instead of starting Emacs on the remote machine, the +files will be opened in the local Emacs through TRAMP. + +Setting the environment variable @env{EMACSCLIENT_TRAMP} has the same +effect as using this option. If both are specified, the explicit +option will take precedence. + +For example, assume two hosts, @samp{local} and @samp{remote}, and +that the local Emacs listens on tcp port 12345. Assume further that +@file{/home} is on a shared file system, so that the server file +@file{~/.emacs.d/server/server} is readable on both hosts without +further magic. + +@example +local$ ssh -R12345:localhost:12345 remote +remote$ export EDITOR="emacsclient \ + --server-file=server \ + --tramp=/ssh:remote:" +remote$ $EDITOR /tmp/foo.txt #Should open in local emacs. +@end example + +@xref{TCP Emacs server}, and @xref{Top, The Tramp Manual,,tramp, The +Tramp Manual}. + @end table The new graphical or text terminal frames created by the @samp{-c} diff --git a/etc/NEWS b/etc/NEWS index 76c9dbc331..4599efd7da 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -340,6 +340,12 @@ want to reverse the direction of the scroll, customize ** Emacsclient has a new option -u/--suppress-output. The option suppresses display of return values from the server process. ++++ +** Emacsclient has a new option -T/--tramp. This helps with using a +local emacs as the target for a remote emacsclient. With appropriate +setup, one can now set EDITOR on a remote machine to emacsclient, and +use the local emacs to edit remote files via Tramp. + * Editing Changes in Emacs 26.1 diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 7b735dfb05..0661480f58 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -149,6 +149,9 @@ const char *socket_name = NULL; /* If non-NULL, the filename of the authentication file. */ const char *server_file = NULL; +/* If non-NULL, the tramp prefix emacs must use to find the files. */ +const char *tramp_prefix = NULL; + /* PID of the Emacs server process. */ int emacs_pid = 0; @@ -178,6 +181,7 @@ struct option longopts[] = { "server-file", required_argument, NULL, 'f' }, { "display", required_argument, NULL, 'd' }, { "parent-id", required_argument, NULL, 'p' }, + { "tramp", required_argument, NULL, 'T' }, { 0, 0, 0, 0 } }; @@ -468,14 +472,15 @@ static void decode_options (int argc, char **argv) { alternate_editor = egetenv ("ALTERNATE_EDITOR"); + tramp_prefix = egetenv ("EMACSCLIENT_TRAMP"); while (1) { int opt = getopt_long_only (argc, argv, #ifndef NO_SOCKETS_IN_FILE_SYSTEM - "VHnequa:s:f:d:F:tc", + "VHnequa:s:f:d:F:tcT:", #else - "VHnequa:f:d:F:tc", + "VHnequa:f:d:F:tcT:", #endif longopts, 0); @@ -554,6 +559,10 @@ decode_options (int argc, char **argv) frame_parameters = optarg; break; + case 'T': + tramp_prefix = optarg; + break; + default: message (true, "Try '%s --help' for more information\n", progname); exit (EXIT_FAILURE); @@ -654,6 +663,9 @@ The following OPTIONS are accepted:\n\ Editor to fallback to if the server is not running\n" " If EDITOR is the empty string, start Emacs in daemon\n\ mode and try connecting again\n" +"-T PREFIX, --tramp=PREFIX\n\ + PREFIX to filenames emacs needs to use to find files\n\ + local to emacsclient\n" "\n\ Report bugs with M-x report-emacs-bug.\n"); exit (EXIT_SUCCESS); @@ -1687,6 +1699,8 @@ main (int argc, char **argv) } } send_to_emacs (emacs_socket, "-dir "); + if (tramp_prefix) + quote_argument (emacs_socket, tramp_prefix); quote_argument (emacs_socket, cwd); send_to_emacs (emacs_socket, "/"); send_to_emacs (emacs_socket, " "); @@ -1791,6 +1805,8 @@ main (int argc, char **argv) #endif send_to_emacs (emacs_socket, "-file "); + if (tramp_prefix && file_name_absolute_p (argv[i])) + quote_argument (emacs_socket, tramp_prefix); quote_argument (emacs_socket, argv[i]); send_to_emacs (emacs_socket, " "); } -- 2.11.0 --=-=-= Content-Type: text/plain ...Peder... --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri May 19 04:54:36 2017 Received: (at 26591-done) by debbugs.gnu.org; 19 May 2017 08:54:36 +0000 Received: from localhost ([127.0.0.1]:54362 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dBdgB-00009n-L6 for submit@debbugs.gnu.org; Fri, 19 May 2017 04:54:36 -0400 Received: from eggs.gnu.org ([208.118.235.92]:46953) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dBdgA-00009a-0W for 26591-done@debbugs.gnu.org; Fri, 19 May 2017 04:54:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dBdg0-0002l1-J7 for 26591-done@debbugs.gnu.org; Fri, 19 May 2017 04:54:28 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:40680) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dBdg0-0002kx-Fp; Fri, 19 May 2017 04:54:24 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3345 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1dBdfz-0006Mm-PX; Fri, 19 May 2017 04:54:24 -0400 Date: Fri, 19 May 2017 11:54:18 +0300 Message-Id: <831srl4479.fsf@gnu.org> From: Eli Zaretskii To: peder@klingenberg.no (Peder O. Klingenberg) In-reply-to: (peder@klingenberg.no) Subject: Re: bug#26591: 26.0.50; Using local emacs+tramp with remote emacsclient References: <83k264na0s.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 26591-done Cc: 26591-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: peder@klingenberg.no (Peder O. Klingenberg) > Cc: 26591@debbugs.gnu.org > Date: Sat, 29 Apr 2017 21:45:15 +0200 > > Eli Zaretskii writes: > > > server-use-tcp is not described in the manual, so I think we should > > add its description somewhere, and then reference that place from this > > text. > > I added a new node to the manual, "TCP Emacs server", and > collected/wrote documentation on the various related variables there. Thanks. > Does this type of doc reorganization require its own NEWS entry? No. > Jeez, writing good docs is hard. Criticisms welcome. :) I made minor changes in your wording, see the commit for details. One thing I'd like you to try to remember for the future: any additional nodes you add need to be added to the master menu in emacs.texi, otherwise makeinfo might barf (did you run it?). Thanks for your work, I pushed your changes to the master branch. From debbugs-submit-bounces@debbugs.gnu.org Fri May 19 09:36:50 2017 Received: (at 26591-done) by debbugs.gnu.org; 19 May 2017 13:36:50 +0000 Received: from localhost ([127.0.0.1]:54579 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dBi5K-0001tF-Ln for submit@debbugs.gnu.org; Fri, 19 May 2017 09:36:50 -0400 Received: from hermes.netfonds.no ([80.91.224.195]:55474) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dBi5I-0001t6-Dx for 26591-done@debbugs.gnu.org; Fri, 19 May 2017 09:36:49 -0400 Received: from luna.netfonds.no ([80.91.225.79] helo=luna) by hermes.netfonds.no with esmtp (Exim 4.84_2) (envelope-from ) id 1dBi5A-0001ng-LQ; Fri, 19 May 2017 15:36:42 +0200 Received: by luna (Postfix, from userid 547) id 9E6754E009C; Fri, 19 May 2017 15:36:40 +0200 (CEST) From: peder@klingenberg.no (Peder O. Klingenberg) To: Eli Zaretskii Subject: Re: bug#26591: 26.0.50; Using local emacs+tramp with remote emacsclient Organization: Persons in a Position to Know, inc. References: <83k264na0s.fsf@gnu.org> <831srl4479.fsf@gnu.org> Date: Fri, 19 May 2017 15:36:40 +0200 In-Reply-To: <831srl4479.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 19 May 2017 11:54:18 +0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 26591-done Cc: 26591-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) On Fri, May 19 2017 at 11:54, Eli Zaretskii wrote: > One thing I'd like you to try to remember for the future: any > additional nodes you add need to be added to the master menu in > emacs.texi, otherwise makeinfo might barf Thanks, I'll try to remember that next time. (Sorry, I'm just cargo-culting the docs, I don't really know texinfo.) > (did you run it?). I tested my edits by running `make install-info`, killing the *info* buffer and starting anew with C-h i and navigating down. I assumed that did all that needed doing, as my changes were in fact installed and browsable. I did not notice any errors from the make runs. (That was a bit cumbersome, btw. Is there a better way of testing info output?) ...Peder... -- I wish a new life awaited _me_ in some off-world colony. From debbugs-submit-bounces@debbugs.gnu.org Fri May 19 10:35:53 2017 Received: (at 26591) by debbugs.gnu.org; 19 May 2017 14:35:53 +0000 Received: from localhost ([127.0.0.1]:55486 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dBj0T-0005Hc-Ae for submit@debbugs.gnu.org; Fri, 19 May 2017 10:35:53 -0400 Received: from eggs.gnu.org ([208.118.235.92]:53827) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dBj0R-0005HP-LN for 26591@debbugs.gnu.org; Fri, 19 May 2017 10:35:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dBj0J-00076u-78 for 26591@debbugs.gnu.org; Fri, 19 May 2017 10:35:46 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:57513) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dBj0J-00076a-3R; Fri, 19 May 2017 10:35:43 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4100 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1dBj0I-0007Ze-DG; Fri, 19 May 2017 10:35:42 -0400 Date: Fri, 19 May 2017 17:35:31 +0300 Message-Id: <83fug03oek.fsf@gnu.org> From: Eli Zaretskii To: peder@klingenberg.no (Peder O. Klingenberg) In-reply-to: (peder@klingenberg.no) Subject: Re: bug#26591: 26.0.50; Using local emacs+tramp with remote emacsclient References: <83k264na0s.fsf@gnu.org> <831srl4479.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 26591 Cc: 26591@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: peder@klingenberg.no (Peder O. Klingenberg) > Cc: 26591-done@debbugs.gnu.org > Date: Fri, 19 May 2017 15:36:40 +0200 > > > (did you run it?). > > I tested my edits by running `make install-info`, killing the *info* > buffer and starting anew with C-h i and navigating down. I assumed that > did all that needed doing, as my changes were in fact installed and > browsable. I did not notice any errors from the make runs. > > (That was a bit cumbersome, btw. Is there a better way of testing info > output?) What I do is run "make", then "M-x revert-buffer RET" in the *info* buffer. From unknown Tue Jun 17 01:48:34 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 17 Jun 2017 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator