Subject: 26.0.90; file-name-non-special does not handle operations with two args properly

From: Michael Albinus <[email-masked]>
Date: Tue, 05 Dec 2017 13:48:23 +0100

# There's no /tmp/foo nor /tmp/bar
ls /tmp/foo /tmp/bar
ls: cannot access '/tmp/foo': No such file or directory
ls: cannot access '/tmp/bar': No such file or directory

# Create /tmp/foo
mkdir /tmp/foo

# Run the test
emacs -Q -batch --eval '(copy-directory "/:/tmp/foo" "/:/tmp/bar")'
Creating directory: No such file or directory, /:/tmp/bar

# Run a similar test
emacs -Q -batch --eval '(copy-directory "/:/tmp/foo" "/ssh::/tmp/bar")'
Creating directory: No such file or directory, /ssh::/tmp/bar

The problem is, that `file-name-non-special', responsible for the first
argument "/:/tmp/foo", binds `file-name-handler-alist' to nil. The second
argument is handled literally. This happens for all operations, which
offer more than one file name argument.

In GNU Emacs 26.0.90 (build 20, x86_64-pc-linux-gnu, GTK+ Version 3.22.25)
 of 2017-12-05 built on detlef
Repository revision: 1ef1dbdbc5921ec476732954cd70e8530405f208
System Description:	Ubuntu 17.10

Recent messages:
Reading active file via nndraft...done
Checking new news...done
uncompressing 23795.gz...done
Deleting article 23795 in default
uncompressing 23796.gz...done
Deleting article 23796 in default
Saving /home/albinus/.newsrc.eld...
Saving file /home/albinus/.newsrc.eld...
Wrote /home/albinus/.newsrc.eld
Saving /home/albinus/.newsrc.eld...done

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 LCMS2

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

Major mode: Group

Minor modes in effect:
  gnus-undo-mode: t
  erc-notify-mode: t
  erc-notifications-mode: t
  display-time-mode: t
  shell-dirtrack-mode: t
  icomplete-mode: t
  show-paren-mode: t
  tooltip-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
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/albinus/src/elpa/packages/debbugs/debbugs-org hides /home/albinus/.emacs.d/elpa/debbugs-0.14/debbugs-org
/home/albinus/src/elpa/packages/debbugs/debbugs-gnu hides /home/albinus/.emacs.d/elpa/debbugs-0.14/debbugs-gnu
/home/albinus/src/elpa/packages/debbugs/debbugs hides /home/albinus/.emacs.d/elpa/debbugs-0.14/debbugs
/home/albinus/src/elpa/packages/debbugs/debbugs-autoloads hides /home/albinus/.emacs.d/elpa/debbugs-0.14/debbugs-autoloads
/home/albinus/src/elpa/packages/debbugs/debbugs-pkg hides /home/albinus/.emacs.d/elpa/debbugs-0.14/debbugs-pkg
/home/albinus/src/elpa/packages/debbugs/debbugs-browse hides /home/albinus/.emacs.d/elpa/debbugs-0.14/debbugs-browse
/home/albinus/src/elpa/packages/tramp-theme/tramp-theme hides /home/albinus/.emacs.d/elpa/tramp-theme-0.2/tramp-theme
/home/albinus/src/elpa/packages/tramp-theme/tramp-theme-autoloads hides /home/albinus/.emacs.d/elpa/tramp-theme-0.2/tramp-theme-autoloads
/home/albinus/src/elpa/packages/tramp-theme/tramp-theme-pkg hides /home/albinus/.emacs.d/elpa/tramp-theme-0.2/tramp-theme-pkg
/home/albinus/.emacs.d/elpa/telepathy-20131209.458/telepathy hides ~/lisp/telepathy
~/src/tramp/lisp/tramp-smb hides /usr/local/src/emacs-26/lisp/net/tramp-smb
~/src/tramp/lisp/tramp-uu hides /usr/local/src/emacs-26/lisp/net/tramp-uu
~/src/tramp/lisp/tramp-adb hides /usr/local/src/emacs-26/lisp/net/tramp-adb
~/src/tramp/lisp/tramp-cmds hides /usr/local/src/emacs-26/lisp/net/tramp-cmds
~/src/tramp/lisp/tramp-cache hides /usr/local/src/emacs-26/lisp/net/tramp-cache
~/src/tramp/lisp/trampver hides /usr/local/src/emacs-26/lisp/net/trampver
~/src/tramp/lisp/tramp-ftp hides /usr/local/src/emacs-26/lisp/net/tramp-ftp
~/src/tramp/lisp/tramp-sh hides /usr/local/src/emacs-26/lisp/net/tramp-sh
~/src/tramp/lisp/tramp hides /usr/local/src/emacs-26/lisp/net/tramp
~/src/tramp/lisp/tramp-loaddefs hides /usr/local/src/emacs-26/lisp/net/tramp-loaddefs
~/lisp/dbus hides /usr/local/src/emacs-26/lisp/net/dbus
~/src/tramp/lisp/tramp-gvfs hides /usr/local/src/emacs-26/lisp/net/tramp-gvfs
~/src/tramp/lisp/tramp-compat hides /usr/local/src/emacs-26/lisp/net/tramp-compat

Features:
(shadow warnings emacsbug qp sort gnus-cite url-util shr svg dom
browse-url mm-archive mail-extr gnus-async gnus-bcklg cl-extra help-mode
gnus-ml pop3 utf-7 nndraft nnmh nnml network-stream nsm starttls
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art
mm-uu mml2015 mm-view mml-smime smime dig mailcap gnus-cache gnus-sum
time-stamp nnnil smtpmail sendmail gnus-demon nntp gnus-group gnus-undo
gnus-start gnus-cloud nnimap nnmail mail-source tls gnutls utf7 netrc
nnoo gnus-spec gnus-int gnus-range message rmc puny rfc822 mml mml-sec
epa derived epg mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail
rmail-loaddefs rfc2047 rfc2045 ietf-drums mail-utils mm-util mail-prsvr
wid-edit term/xterm xterm elec-pair erc-notify erc-networks
erc-desktop-notifications erc-match notifications dbus xml erc-goodies
erc erc-backend erc-compat thingatpt pp cperl-mode tramp-theme em-dirs
esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg esh-groups
eshell esh-module esh-mode esh-util finder-inf rx docker-tramp
tramp-cache slime-autoloads vagrant-tramp dash term disp-table ehelp
info package easymenu epg-config url-handlers url-parse url-vars time
tramp-sh tramp tramp-compat tramp-loaddefs trampver ucs-normalize shell
pcomplete comint ansi-color ring parse-time format-spec advice
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache ido seq byte-opt gv bytecomp byte-compile cconv jka-compr
icomplete time-date paren vc cl-loaddefs cl-lib vc-dispatcher dired
dired-loaddefs 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 dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 580397 54971)
 (symbols 48 42637 28)
 (miscs 40 77 305)
 (strings 32 110859 8088)
 (string-bytes 1 3392382)
 (vectors 16 58440)
 (vector-slots 8 1009288 28078)
 (floats 8 265 477)
 (intervals 56 17576 1590)
 (buffers 992 28))