unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
@ 2018-10-10 18:58 Philipp
  2018-10-12 12:52 ` Michael Albinus
  0 siblings, 1 reply; 14+ messages in thread
From: Philipp @ 2018-10-10 18:58 UTC (permalink / raw)
  To: 33006


1. emacs -Q
2. C-x d /ssh:some-remote-host:/some/dir RET
3. Mark any file with `m'
4. A . RET

Expected: File is searched for regex `.'
Actual: user-error: Search failed with status 1: find: ‘/ssh:some-remote-host:/some/dir/file’: No such file or directory

This is probably because `xref-collect-matches' calls
`call-process-shell-command', which doesn't work remotely.  It should
call `process-file-shell-command' instead.


In GNU Emacs 27.0.50 (build 56, x86_64-pc-linux-gnu, GTK+ Version 3.22.24)
 of 2018-10-10 built on localhost
Repository revision: fd3a48fcd8bb212ec12b9b10a79de0ae605ee93b
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Debian GNU/Linux buster/sid

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure --enable-gtk-deprecation-warnings
 --enable-gcc-warnings=warn-only --with-modules --without-pop
 --with-mailutils --enable-checking --enable-check-lisp-object-type
 'CFLAGS=-O0 -ggdb3''

Configured features:
XPM JPEG TIFF GIF PNG SOUND DBUS GSETTINGS GLIB NOTIFY GNUTLS FREETYPE
XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS JSON GMP

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-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:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny seq byte-opt gv
bytecomp byte-compile cconv dired dired-loaddefs format-spec rfc822 mml
easymenu mml-sec password-cache epa derived epg epg-config gnus-util
rmail rmail-loaddefs time-date mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs cl-lib sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils elec-pair
mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd 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 charprop
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 threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 94915 12135)
 (symbols 48 20210 1)
 (strings 32 28343 2068)
 (string-bytes 1 755575)
 (vectors 16 14338)
 (vector-slots 8 508528 15982)
 (floats 8 47 70)
 (intervals 56 214 0)
 (buffers 992 12))

-- 
Google Germany GmbH
Erika-Mann-Straße 33
80636 München

Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschäftsführer: Paul Manicle, Halimah DeLaine Prado

If you received this communication by mistake, please don’t forward it to
anyone else (it may contain confidential or privileged information), please
erase all copies of it, including all attachments, and please let the sender
know it went to the wrong person.  Thanks.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2018-10-10 18:58 bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories Philipp
@ 2018-10-12 12:52 ` Michael Albinus
  2018-10-21 11:56   ` Michael Albinus
  0 siblings, 1 reply; 14+ messages in thread
From: Michael Albinus @ 2018-10-12 12:52 UTC (permalink / raw)
  To: Philipp; +Cc: 33006

[-- Attachment #1: Type: text/plain, Size: 861 bytes --]

Philipp <p.stephani2@gmail.com> writes:

Hi Philipp,

> 1. emacs -Q
> 2. C-x d /ssh:some-remote-host:/some/dir RET
> 3. Mark any file with `m'
> 4. A . RET
>
> Expected: File is searched for regex `.'
> Actual: user-error: Search failed with status 1: find: ‘/ssh:some-remote-host:/some/dir/file’: No such file or directory

Yep, same behaviour here.

> This is probably because `xref-collect-matches' calls
> `call-process-shell-command', which doesn't work remotely.  It should
> call `process-file-shell-command' instead.

Yes, this must be changed. But the file name needs some massage, too.

The appended patch fixes this for me. But since I don't know xref.el in
detail, I fear I introduce collateral damages. At least a second opinion
about the patch would be welcome, before I commit it to master.

Best regards, Michael.


[-- Attachment #2: Type: text/plain, Size: 1607 bytes --]

diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index c7ae40eb34..d3e3fe8da5 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -992,7 +992,7 @@ xref-collect-matches
        ;; do that reliably enough, without creating false negatives?
        (command (xref--rgrep-command (xref--regexp-to-extended regexp)
                                      files
-                                     (expand-file-name dir)
+                                     (file-local-name (expand-file-name dir))
                                      ignores))
        (def default-directory)
        (buf (get-buffer-create " *xref-grep*"))
@@ -1003,7 +1003,7 @@ xref-collect-matches
       (erase-buffer)
       (setq default-directory def)
       (setq status
-            (call-process-shell-command command nil t))
+            (process-file-shell-command command nil t))
       (goto-char (point-min))
       ;; Can't use the exit status: Grep exits with 1 to mean "no
       ;; matches found".  Find exits with 1 if any of the invocations
@@ -1151,7 +1151,8 @@ xref--collect-matches-1
             (or (null matches)
                 (> (point) line-beg))
             (re-search-forward regexp line-end t))
-      (let* ((beg-column (- (match-beginning 0) line-beg))
+      (let* ((file (and file (concat (file-remote-p default-directory) file)))
+             (beg-column (- (match-beginning 0) line-beg))
              (end-column (- (match-end 0) line-beg))
              (loc (xref-make-file-location file line beg-column))
              (summary (buffer-substring line-beg line-end)))

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2018-10-12 12:52 ` Michael Albinus
@ 2018-10-21 11:56   ` Michael Albinus
  2018-10-21 23:34     ` Dmitry Gutov
  0 siblings, 1 reply; 14+ messages in thread
From: Michael Albinus @ 2018-10-21 11:56 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Philipp, 33006

Michael Albinus <michael.albinus@gmx.de> writes:

Hi,

> The appended patch fixes this for me. But since I don't know xref.el in
> detail, I fear I introduce collateral damages. At least a second opinion
> about the patch would be welcome, before I commit it to master.

Ping. Dmitry, could you pls comment?

Best regards, Michael.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2018-10-21 11:56   ` Michael Albinus
@ 2018-10-21 23:34     ` Dmitry Gutov
  2018-10-26 15:18       ` Michael Albinus
  0 siblings, 1 reply; 14+ messages in thread
From: Dmitry Gutov @ 2018-10-21 23:34 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Philipp, 33006

Hi Michael,

Sorry for the late reply.

On 21.10.2018 14:56, Michael Albinus wrote:

>> The appended patch fixes this for me. But since I don't know xref.el in
>> detail, I fear I introduce collateral damages. At least a second opinion
>> about the patch would be welcome, before I commit it to master.
> 
> Ping. Dmitry, could you pls comment?

The patch doesn't look dangerous to me, so you can go ahead and install, 
thank you.

There is, however, a possible inconsistency: it touches 
xref--collect-matches-1, which is used both in xref-collect-matches and 
xref-collect-references. And you only changed the former function.

Could you check that M-x xref-find-references didn't work on remote 
directories before your patch anyway? If it did, though, please make 
sure that it continues to do so.

Bonus points for fixing it, at least when Grep is used (the relevant 
file is lisp/cedet/semantic/symref/grep.el).





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2018-10-21 23:34     ` Dmitry Gutov
@ 2018-10-26 15:18       ` Michael Albinus
  2018-10-28 13:14         ` Dmitry Gutov
  0 siblings, 1 reply; 14+ messages in thread
From: Michael Albinus @ 2018-10-26 15:18 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Philipp, 33006

[-- Attachment #1: Type: text/plain, Size: 891 bytes --]

Dmitry Gutov <dgutov@yandex.ru> writes:

> Hi Michael,

Hi Dmitry,

> The patch doesn't look dangerous to me, so you can go ahead and
> install, thank you.

Thanks for reviewing.

> There is, however, a possible inconsistency: it touches
> xref--collect-matches-1, which is used both in xref-collect-matches
> and xref-collect-references. And you only changed the former function.
>
> Could you check that M-x xref-find-references didn't work on remote
> directories before your patch anyway? If it did, though, please make
> sure that it continues to do so.
>
> Bonus points for fixing it, at least when Grep is used (the relevant
> file is lisp/cedet/semantic/symref/grep.el).

It doesn't work, indeed. symref/grep.el isn't aware of remote processes
(it uses call-process, for example). I've fixed this with the appended
additional patch.

Is it OK now to commit?

Best regards, Michael.


[-- Attachment #2: Type: text/plain, Size: 1305 bytes --]

diff --git a/lisp/cedet/semantic/symref/grep.el b/lisp/cedet/semantic/symref/grep.el
index 93bda6ab29..661e101520 100644
--- a/lisp/cedet/semantic/symref/grep.el
+++ b/lisp/cedet/semantic/symref/grep.el
@@ -173,14 +173,16 @@ semantic-symref-grep-shell
 	  ;; find . -type f -print0 | xargs -0 -e grep -nH -e
 	  ;; Note : I removed -e as it is not posix, nor necessary it seems.
 
-	  (let ((cmd (concat "find " default-directory " -type f " filepattern " -print0 "
+	  (let ((cmd (concat "find " (file-local-name rootdir)
+                             " -type f " filepattern " -print0 "
 			     "| xargs -0 grep -H " grepflags "-e " greppat)))
 	    ;;(message "Old command: %s" cmd)
-	    (call-process semantic-symref-grep-shell nil b nil
+	    (process-file semantic-symref-grep-shell nil b nil
                           shell-command-switch cmd)
 	    )
-	(let ((cmd (semantic-symref-grep-use-template rootdir filepattern grepflags greppat)))
-	  (call-process semantic-symref-grep-shell nil b nil
+	(let ((cmd (semantic-symref-grep-use-template
+                    (file-local-name rootdir) filepattern grepflags greppat)))
+	  (process-file semantic-symref-grep-shell nil b nil
                         shell-command-switch cmd))
 	))
     (setq ans (semantic-symref-parse-tool-output tool b))

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2018-10-26 15:18       ` Michael Albinus
@ 2018-10-28 13:14         ` Dmitry Gutov
  2018-10-29 13:12           ` Michael Albinus
  0 siblings, 1 reply; 14+ messages in thread
From: Dmitry Gutov @ 2018-10-28 13:14 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Philipp, 33006

Hi Michael,

On 26.10.2018 18:18, Michael Albinus wrote:

>> Could you check that M-x xref-find-references didn't work on remote
>> directories before your patch anyway? If it did, though, please make
>> sure that it continues to do so.
>>
>> Bonus points for fixing it, at least when Grep is used (the relevant
>> file is lisp/cedet/semantic/symref/grep.el).
> 
> It doesn't work, indeed. symref/grep.el isn't aware of remote processes
> (it uses call-process, for example). I've fixed this with the appended
> additional patch.
> 
> Is it OK now to commit?

Please go ahead, thank you!





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2018-10-28 13:14         ` Dmitry Gutov
@ 2018-10-29 13:12           ` Michael Albinus
  2018-11-08 10:00             ` Michael Albinus
  2019-01-06  0:39             ` Philipp Stephani
  0 siblings, 2 replies; 14+ messages in thread
From: Michael Albinus @ 2018-10-29 13:12 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Philipp, 33006

Dmitry Gutov <dgutov@yandex.ru> writes:

> Hi Michael,

Hi Dmitry, Philipp,

>> Is it OK now to commit?
>
> Please go ahead, thank you!

I've committed a slightly modified version of the patch. Philipp, could
you pls confirm that it works for you?

Best regards, Michael.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2018-10-29 13:12           ` Michael Albinus
@ 2018-11-08 10:00             ` Michael Albinus
  2019-01-04 13:01               ` Michael Albinus
  2019-01-06  0:39             ` Philipp Stephani
  1 sibling, 1 reply; 14+ messages in thread
From: Michael Albinus @ 2018-11-08 10:00 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Philipp, 33006

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Dmitry, Philipp,

> I've committed a slightly modified version of the patch. Philipp, could
> you pls confirm that it works for you?

Best regards, Michael.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2018-11-08 10:00             ` Michael Albinus
@ 2019-01-04 13:01               ` Michael Albinus
  0 siblings, 0 replies; 14+ messages in thread
From: Michael Albinus @ 2019-01-04 13:01 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: 33006-done, Philipp

Version: 27.1

Michael Albinus <michael.albinus@gmx.de> writes:

>> I've committed a slightly modified version of the patch. Philipp, could
>> you pls confirm that it works for you?

No News are good News, so I'm closing this bug.

Best regards, Michael.

PS: Philipp, I'm kinda frustrated that you never confirm bug fixes.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2018-10-29 13:12           ` Michael Albinus
  2018-11-08 10:00             ` Michael Albinus
@ 2019-01-06  0:39             ` Philipp Stephani
  2019-01-06  8:57               ` Michael Albinus
  2019-01-06 18:20               ` Philipp Stephani
  1 sibling, 2 replies; 14+ messages in thread
From: Philipp Stephani @ 2019-01-06  0:39 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Dmitry Gutov, 33006

Am Mo., 29. Okt. 2018 um 14:12 Uhr schrieb Michael Albinus
<michael.albinus@gmx.de>:

> I've committed a slightly modified version of the patch. Philipp, could
> you pls confirm that it works for you?

Confirmed, thanks.
[In general there's no need to wait for my confirmation, I'm not doing
anything other than repeating the original reproduction steps.]





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2019-01-06  0:39             ` Philipp Stephani
@ 2019-01-06  8:57               ` Michael Albinus
  2019-01-06 18:20               ` Philipp Stephani
  1 sibling, 0 replies; 14+ messages in thread
From: Michael Albinus @ 2019-01-06  8:57 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: Dmitry Gutov, 33006

Philipp Stephani <p.stephani2@gmail.com> writes:

Hi Philipp,

>> I've committed a slightly modified version of the patch. Philipp, could
>> you pls confirm that it works for you?
>
> Confirmed, thanks.

Thanks.

> [In general there's no need to wait for my confirmation, I'm not doing
> anything other than repeating the original reproduction steps.]

Usually, I work on Tramp problems. The local configuration isn't
important, what matters is almost always the remote host, which causes
the trouble. That's why I ask for confirmation.

(Acknowledged, it was a local problem in this case.)

Best regards, Michael.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2019-01-06  0:39             ` Philipp Stephani
  2019-01-06  8:57               ` Michael Albinus
@ 2019-01-06 18:20               ` Philipp Stephani
  2019-01-06 18:31                 ` Eli Zaretskii
  1 sibling, 1 reply; 14+ messages in thread
From: Philipp Stephani @ 2019-01-06 18:20 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Dmitry Gutov, 33006

Am So., 6. Jan. 2019 um 01:39 Uhr schrieb Philipp Stephani
<p.stephani2@gmail.com>:
>
> Am Mo., 29. Okt. 2018 um 14:12 Uhr schrieb Michael Albinus
> <michael.albinus@gmx.de>:
>
> > I've committed a slightly modified version of the patch. Philipp, could
> > you pls confirm that it works for you?
>
> Confirmed, thanks.

Maintainers, would it be OK to backport this patch to the release
branch? This worked in Emacs 24.3 (which didn't use Xref), and the
patch is simple.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2019-01-06 18:20               ` Philipp Stephani
@ 2019-01-06 18:31                 ` Eli Zaretskii
  2019-01-07  7:46                   ` Michael Albinus
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2019-01-06 18:31 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: dgutov, michael.albinus, 33006

> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Sun, 6 Jan 2019 19:20:36 +0100
> Cc: Dmitry Gutov <dgutov@yandex.ru>, 33006@debbugs.gnu.org
> 
> Maintainers, would it be OK to backport this patch to the release
> branch? This worked in Emacs 24.3 (which didn't use Xref), and the
> patch is simple.

Sorry, no.  The patch touches places that are used by too many
features, and I disagree that the patch is simple: replacing
call-process with process-file is never "simple".

We lived with this since Emacs 24.4, we can live with it some more.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories
  2019-01-06 18:31                 ` Eli Zaretskii
@ 2019-01-07  7:46                   ` Michael Albinus
  0 siblings, 0 replies; 14+ messages in thread
From: Michael Albinus @ 2019-01-07  7:46 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Philipp Stephani, dgutov, 33006

Eli Zaretskii <eliz@gnu.org> writes:

Hi Eli,

>> Maintainers, would it be OK to backport this patch to the release
>> branch? This worked in Emacs 24.3 (which didn't use Xref), and the
>> patch is simple.
>
> Sorry, no.  The patch touches places that are used by too many
> features, and I disagree that the patch is simple: replacing
> call-process with process-file is never "simple".

I believe the patch is harmless. But of course, I respect your decision.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2019-01-07  7:46 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-10 18:58 bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories Philipp
2018-10-12 12:52 ` Michael Albinus
2018-10-21 11:56   ` Michael Albinus
2018-10-21 23:34     ` Dmitry Gutov
2018-10-26 15:18       ` Michael Albinus
2018-10-28 13:14         ` Dmitry Gutov
2018-10-29 13:12           ` Michael Albinus
2018-11-08 10:00             ` Michael Albinus
2019-01-04 13:01               ` Michael Albinus
2019-01-06  0:39             ` Philipp Stephani
2019-01-06  8:57               ` Michael Albinus
2019-01-06 18:20               ` Philipp Stephani
2019-01-06 18:31                 ` Eli Zaretskii
2019-01-07  7:46                   ` Michael Albinus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).