bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Philipp Stephani

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.



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Michael Albinus
Philipp <[hidden email]> 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.


attachment0 (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Michael Albinus
Michael Albinus <[hidden email]> 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.



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Dmitry Gutov
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).