bug#81513: 30.2; Maybe unneeded test in dired-create-files

Thierry Volpiatto <[email protected]>
Newsgroups gmane.emacs.bugs
Message-ID <[email protected]>
In dired-create-files, we have this code:

        (let ((destname (file-name-directory to)))
          (when (and (file-directory-p from)
                     (file-directory-p to)
                     (eq file-creator 'dired-copy-file))
            (setq to destname))
          ;; If DESTNAME is a subdirectory of FROM, not a symlink,
          ;; and the method in use is copying, signal an error.
          (and (eq t (file-attribute-type (file-attributes destname)))
               (eq file-creator 'dired-copy-file)
               (file-in-directory-p destname from)
               (error "Cannot copy `%s' into its subdirectory `%s'"
        	      from to)))

Is the test (eq t (file-attribute-type (file-attributes destname)))
really needed?
AFAIU destname is always a directory, isn't it?

Removing this test speedup copying on slow remotes e.g. adb.

Thanks.



In GNU Emacs 30.2 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.18.4, Xaw3d scroll bars) of 2025-11-15 built on cachyos-x8664
Windowing system distributor 'The X.Org Foundation', version 11.0.12101024
System Description: CachyOS

Configured using:
 'configure CFLAGS=-O8 --with-cairo --without-gconf --without-gsettings
 --without-compress-install --without-xinput2 --with-x-toolkit=lucid
 --with-modules --without-tree-sitter --with-dbus
 --without-native-compilation --disable-gc-mark-trace'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM HARFBUZZ JPEG LCMS2
LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG
RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11
XAW3D XDBE XIM XPM LUCID ZLIB

Important settings:
  value of $LC_MONETARY: fr_FR.UTF-8
  value of $LC_NUMERIC: fr_FR.UTF-8
  value of $LC_TIME: fr_FR.UTF-8
  value of $LANG: fr_FR.UTF-8
  locale-coding-system: utf-8-unix

Major mode: 

Minor modes in effect:
  bug-reference-prog-mode: t
  server-mode: t
  psession-mode: t
  psession-savehist-mode: t
  recentf-mode: t
  global-git-gutter-mode: t
  git-gutter-mode: t
  display-time-mode: t
  winner-mode: t
  tv-save-place-mode: t
  helm-epa-mode: t
  helm-descbinds-mode: t
  helm-top-poll-mode: t
  helm-adaptive-mode: t
  helm-mode: t
  helm-minibuffer-history-mode: t
  helm-ff-icon-mode: t
  helm-popup-tip-mode: t
  dired-async-mode: t
  minibuffer-depth-indicate-mode: t
  gcmh-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort epa-mail mail-extr gnus-msg gnus-art mm-uu mml2015 mm-view
mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg
dom gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail
mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win gnus
nnheader range helm-dabbrev emacsbug helm-command helm-elisp helm-eval
edebug debug etags fileloop xref add-log which-func helm-imenu pulse
color isl tramp-sh helm-bookmark helm-info dired-x image-file
image-converter ls-lisp tramp-cmds cl-print backtrace tramp-adb epa-file
cl-extra helm-external helm-net tramp-archive tramp-gvfs tramp-cache
time-stamp zeroconf dbus xml ffap timeout-closure helm-ls-git vc-git vc
vc-dispatcher make-mode ledger-mode ledger-check ledger-texi ledger-test
ledger-sort ledger-report ledger-reconcile ledger-occur ledger-fonts
ledger-fontify ledger-state ledger-complete ledger-schedule ledger-xact
ledger-post ledger-exec ledger-init ledger-navigate eshell esh-cmd
generator esh-ext esh-opt esh-proc esh-io esh-arg esh-module
esh-module-loaddefs esh-util ledger-context ledger-commodities
org-config org-crypt org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-src sh-script smie treesit executable ob-comint
org-pcomplete org-list org-footnote org-faces org-entities noutline
outline org-version ob-emacs-lisp ob-core ob-eval org-cycle org-table ol
org-fold org-fold-core org-keys oc org-loaddefs find-func org-compat
org-macs ledger-regex bug-reference thingatpt cus-start
naquadah-tv-theme view mule-util solar cal-dst holidays holiday-loaddefs
appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs server
imenu tv-utils psession frameset recentf tree-widget mail-config
gnus-patch diff-mode track-changes addressbook-bookmark message sendmail
yank-media puny rfc822 mml mml-sec gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr mailabbrev mail-utils gmm-utils mailheader bookmark
git-gutter pcase avoid dired-extension time winner describe-variable
help-fns radix-tree tv-save-place.el init-helm epa derived epg rfc6068
epg-config helm-epa helm-descbinds cus-edit pp cus-load wid-edit
helm-sys helm-adaptive helm-mode helm-misc helm-files image-dired
image-dired-tags image-dired-external image-dired-util image-mode exif
filenotify tramp rx trampver tramp-integration files-x tramp-message
help-mode tramp-compat xdg shell pcomplete parse-time iso8601 time-date
tramp-loaddefs helm-buffers helm-x-icons all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons helm-occur helm-tags
helm-locate helm-grep wgrep-helm wgrep grep compile text-property-search
comint ansi-osc ring project helm-regexp format-spec ansi-color
helm-utils helm-help helm-types helm-extensions-autoloads helm-autoloads
helm helm-global-bindings helm-easymenu edmacro kmacro helm-core
helm-source helm-multi-match helm-lib dired-async async dired-aux dired
dired-loaddefs isl-autoloads mb-depth gcmh easy-mmode
all-the-icons-autoloads emms-autoloads info ledger-mode-autoloads
nerd-icons-autoloads w3m-load w3m-autoloads package browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs icons password-cache json
subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib
rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt
fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode
register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
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 emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify lcms2 dynamic-setting font-render-setting cairo
x-toolkit x multi-tty move-toolbar make-network-process emacs)

Memory information:
((conses 16 2366659 5129836) (symbols 48 34043 4)
 (strings 32 317253 853524) (string-bytes 1 15907853)
 (vectors 16 71928) (vector-slots 8 1429275 298327)
 (floats 8 7407 3265) (intervals 56 541916 752612) (buffers 984 157))

-- 
Thierry
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.