GNU bug report logs - #28451
26.0.50; copy-directory no longer creates parent directories of target if they do not exist

Previous Next

Package: emacs;

Reported by: Andrew Christianson <emacs <at> a.ndrew.pw>

Date: Wed, 13 Sep 2017 20:46:02 UTC

Severity: normal

Found in version 26.0.50

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 28451 in the body.
You can then email your comments to 28451 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#28451; Package emacs. (Wed, 13 Sep 2017 20:46:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Andrew Christianson <emacs <at> a.ndrew.pw>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 13 Sep 2017 20:46:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Andrew Christianson <emacs <at> a.ndrew.pw>
To: bug-gnu-emacs <at> gnu.org
Subject: 26.0.50; copy-directory no longer creates parent directories of
 target if they do not exist
Date: Wed, 13 Sep 2017 13:33:17 -0700
Description:

copy-directory does not create parents of a target directory if COPY-CONTENTS is also non-nil and NEWNAME satisfies directory-name-p

Steps to reproduce:

1. Create a directory e.g. mkdir ~/test/{a,b,c,d}
2. start emacs, eval (copy-directory "~/test" "~/a/new/directory/" t t t)
3. Error is raised: Debugger entered--Lisp error: (file-missing "Opening output file" "No such file or directory” “/Users/achristianson/a/new/directory/a”)


In GNU Emacs 26.0.50 (build 2, x86_64-apple-darwin16.7.0, NS appkit-1504.83 Version 10.12.6 (Build 16G29))
of 2017-09-13 built on achristi-mbp115.local
Repository revision: e7d6c622090dd2f4c77fbd04aba89c30a75514dd
Windowing system distributor 'Apple', version 10.3.1504
Recent messages:
Wrote /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/files.{el.gz,elc}
Entering debugger...
Back to top level
copy-directory
Ispell process killed
Starting new Ispell process /usr/local/bin/aspell with en dictionary...
Mark set
Entering debugger...
Ispell process killed
Starting new Ispell process /usr/local/bin/aspell with default dictionary...
Quit
Configured using:
'configure --disable-dependency-tracking --disable-silent-rules
--enable-locallisppath=/usr/local/share/emacs/site-lisp
--infodir=/usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/info/emacs
--prefix=/usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2 --with-xml2
--without-dbus --with-gnutls --with-imagemagick --with-modules
--with-rsvg --with-ns --disable-ns-self-contained'

Configured features:
JPEG RSVG IMAGEMAGICK NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS
NS MODULES

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

Major mode: Emacs-Lisp

Minor modes in effect:
  global-git-gutter+-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  projectile-mode: t
  recentf-mode: t
  auto-compile-mode: t
  elisp-slime-nav-mode: t
  goto-address-prog-mode: t
  bug-reference-prog-mode: t
  auto-highlight-symbol-mode: t
  highlight-numbers-mode: t
  highlight-parentheses-mode: t
  rainbow-delimiters-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  hungry-delete-mode: t
  evil-cleverparens-mode: t
  display-time-mode: t
  company-statistics-mode: t
  company-mode: t
  fancy-battery-mode: t
  auto-dictionary-mode: t
  hl-todo-mode: t
  global-spacemacs-whitespace-cleanup-mode: t
  spacemacs-whitespace-cleanup-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  winum-mode: t
  winner-mode: t
  volatile-highlights-mode: t
  global-vim-empty-lines-mode: t
  vim-empty-lines-mode: t
  pupo-mode: t
  purpose-mode: t
  spaceline-info-mode: t
  spaceline-helm-mode: t
  save-place-mode: t
  savehist-mode: t
  popwin-mode: t
  persp-mode: t
  global-linum-mode: t
  linum-mode: t
  Info-breadcrumbs-in-mode-line-mode: t
  flycheck-pos-tip-mode: t
  global-flycheck-mode: t
  flx-ido-mode: t
  eyebrowse-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  evil-snipe-override-mode: t
  evil-snipe-mode: t
  evil-snipe-override-local-mode: t
  evil-snipe-local-mode: t
  global-evil-search-highlight-persist: t
  evil-search-highlight-persist: t
  show-smartparens-global-mode: t
  show-smartparens-mode: t
  smartparens-strict-mode: t
  smartparens-mode: t
  evil-lion-mode: t
  evil-escape-mode: t
  global-anzu-mode: t
  anzu-mode: t
  eval-sexp-fu-flash-mode: t
  editorconfig-mode: t
  diff-auto-refine-mode: t
  counsel-mode: t
  ivy-mode: t
  clean-aindent-mode: t
  which-key-mode: t
  override-global-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  flyspell-mode: t
  evil-mode: t
  evil-local-mode: t
  spacemacs-leader-override-mode: t
  global-spacemacs-leader-override-mode: t
  global-hl-line-mode: t
  xterm-mouse-mode: t
  global-auto-revert-mode: t
  shell-dirtrack-mode: t
  ido-vertical-mode: t
  global-page-break-lines-mode: t
  page-break-lines-mode: t
  global-eldoc-mode: t
  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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  hs-minor-mode: t

Load-path shadows:
/Users/achristianson/.emacs.d/elpa/26.0/utop-20170508.2343/utop hides /Users/achristianson/.opam/system/share/emacs/site-lisp/utop
/Users/achristianson/.opam/system/share/emacs/site-lisp/ocp-indent hides /Users/achristianson/.emacs.d/elpa/26.0/ocp-indent-20170803.222/ocp-indent
/Users/achristianson/.opam/system/share/emacs/site-lisp/merlin hides /Users/achristianson/.emacs.d/elpa/26.0/merlin-20170731.907/merlin
/Users/achristianson/.opam/system/share/emacs/site-lisp/merlin-imenu hides /Users/achristianson/.emacs.d/elpa/26.0/merlin-20170731.907/merlin-imenu
/Users/achristianson/.opam/system/share/emacs/site-lisp/merlin-iedit hides /Users/achristianson/.emacs.d/elpa/26.0/merlin-20170731.907/merlin-iedit
/Users/achristianson/.opam/system/share/emacs/site-lisp/merlin-company hides /Users/achristianson/.emacs.d/elpa/26.0/merlin-20170731.907/merlin-company
/Users/achristianson/.opam/system/share/emacs/site-lisp/merlin-cap hides /Users/achristianson/.emacs.d/elpa/26.0/merlin-20170731.907/merlin-cap
/Users/achristianson/.opam/system/share/emacs/site-lisp/merlin-ac hides /Users/achristianson/.emacs.d/elpa/26.0/merlin-20170731.907/merlin-ac
/Users/achristianson/.emacs.d/elpa/26.0/ht-20161015.1945/ht hides /Users/achristianson/.emacs.d/core/libs/ht
/Users/achristianson/.emacs.d/elpa/26.0/cmake-mode-20160928.505/cmake-mode hides /usr/local/share/emacs/site-lisp/cmake/cmake-mode
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ox
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-texinfo hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ox-texinfo
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-publish hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ox-publish
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-org hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ox-org
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-odt hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ox-odt
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-md hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ox-md
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-man hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ox-man
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-latex hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ox-latex
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-icalendar hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ox-icalendar
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-html hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ox-html
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-beamer hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ox-beamer
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-ascii hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ox-ascii
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-w3m hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-w3m
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-version hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-version
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-timer hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-timer
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-table hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-table
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-src hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-src
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-rmail hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-rmail
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-protocol hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-protocol
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-plot hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-plot
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-pcomplete hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-pcomplete
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-mouse hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-mouse
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-mobile hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-mobile
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-mhe hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-mhe
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-macs hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-macs
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-macro hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-macro
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-loaddefs hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-loaddefs
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-list hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-list
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-lint hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-lint
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-irc hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-irc
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-install hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-install
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-inlinetask hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-inlinetask
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-info hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-info
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-indent hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-indent
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-id hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-id
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-habit hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-habit
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-gnus hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-gnus
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-footnote hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-footnote
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-feed hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-feed
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-faces hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-faces
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-eww hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-eww
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-eshell hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-eshell
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-entities hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-entities
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-element hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-element
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-docview hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-docview
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-datetree hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-datetree
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-ctags hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-ctags
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-crypt hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-crypt
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-compat hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-compat
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-colview hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-colview
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-clock hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-clock
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-capture hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-capture
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-bibtex hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-bibtex
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-bbdb hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-bbdb
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-attach hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-attach
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-archive hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-archive
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-agenda hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/org-agenda
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-tangle hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-tangle
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-table hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-table
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-stan hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-stan
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-sqlite hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-sqlite
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-sql hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-sql
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-shen hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-shen
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-shell hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-shell
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-sed hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-sed
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-screen hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-screen
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-scheme hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-scheme
/Users/achristianson/.emacs.d/elpa/26.0/scala-mode-20170802.432/ob-scala hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-scala
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-sass hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-sass
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-ruby hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-ruby
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-ref hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-ref
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-R hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-R
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-python hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-python
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-processing hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-processing
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-plantuml hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-plantuml
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-picolisp hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-picolisp
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-perl hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-perl
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-org hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-org
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-octave hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-octave
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-ocaml hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-ocaml
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-mscgen hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-mscgen
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-maxima hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-maxima
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-matlab hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-matlab
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-makefile hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-makefile
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-lua hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-lua
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-lob hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-lob
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-lisp hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-lisp
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-lilypond hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-lilypond
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-ledger hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-ledger
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-latex hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-latex
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-keys hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-keys
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-js hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-js
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-java hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-java
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-J hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-J
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-io hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-io
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-haskell hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-haskell
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-groovy hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-groovy
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-gnuplot hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-gnuplot
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-fortran hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-fortran
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-forth hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-forth
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-exp hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-exp
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-eval hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-eval
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-emacs-lisp hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-emacs-lisp
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-ebnf hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-ebnf
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-dot hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-dot
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-ditaa hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-ditaa
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-css hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-css
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-core hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-core
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-coq hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-coq
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-comint hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-comint
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-clojure hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-clojure
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-calc hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-calc
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-C hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-C
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-awk hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-awk
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-asymptote hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-asymptote
/Users/achristianson/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-abc hides /usr/local/Cellar/emacs-plus/HEAD-e7d6c62_2/share/emacs/26.0.50/lisp/org/ob-abc

Features:
(shadow sort mail-extr emacsbug sendmail smex cl-print debug colir
tramp-sh git-gutter-fringe+ fringe-helper git-gutter+ git-commit
with-editor async-bytecomp async magit-utils crm log-edit message puny
rfc822 mml mml-sec epa epg gnus-util rmail rmail-loaddefs mailabbrev
mail-utils gmm-utils mailheader pcvs-util add-log vc-git open-junk-file
editorconfig-core editorconfig-core-handle editorconfig-fnmatch bookmark
pp projectile grep recentf tree-widget company-yasnippet auto-compile
packed elisp-slime-nav goto-addr bug-reference auto-highlight-symbol
highlight-numbers parent-mode highlight-parentheses hideshow
rainbow-delimiters vala-snippets common-lisp-snippets clojure-snippets
yasnippet hungry-delete evil-cleverparens evil-cleverparens-text-objects
evil-cleverparens-util paredit elec-pair time company-statistics
company-oddmuse company-keywords company-etags company-gtags
company-dabbrev-code company-dabbrev company-files company-capf
company-cmake company-xcode company-clang company-semantic company-eclim
company-template company-css company-nxml company-bbdb company-quickhelp
company fancy-battery battery aggressive-indent auto-dictionary hl-todo
server zone xterm-color x86-lookup doc-view spacemacs-whitespace-cleanup
ws-butler winum winner window-purpose-x imenu-list ibuf-ext ibuffer
ibuffer-loaddefs dired dired-loaddefs volatile-highlights
vim-empty-lines-mode vagrant-tramp term ehelp tmux string-inflection
spacemacs-purpose-popwin window-purpose window-purpose-fixes
window-purpose-prefix-overload window-purpose-switch let-alist
window-purpose-layout window-purpose-core window-purpose-configuration
window-purpose-utils spaceline-config spaceline-segments spaceline
powerline powerline-separators color powerline-themes smartparens-config
smartparens-text slime-autoloads saveplace savehist rst-lists
rst-directives popwin pinboard-list queue pinboard-api persp-mode noflet
cl-indent nasm-mode imenu linum ivy-hydra info+ image-mode go-rename
go-mode url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf url-util mailcap compile flycheck-pos-tip pos-tip
flycheck find-func flx-ido flx eyebrowse evil-unimpaired f evil-surround
evil-snipe evil-search-highlight-persist evil-numbers evil-lisp-state
smartparens dash evil-lion evil-indent-plus evil-exchange evil-escape
evil-args evil-anzu anzu cider-eval-sexp-fu eval-sexp-fu highlight
editorconfig noutline outline docker-tramp tramp-cache diff-hl vc-dir
ewoc vc vc-dispatcher diff-mode counsel jka-compr esh-util etags xref
project swiper ivy delsel ivy-overlay ffap cmake-ide s levenshtein
find-file clean-aindent-mode clang-format xml tex-site asm-mode agda2
adaptive-wrap hybrid-mode exec-path-from-shell evil-evilified-state
which-key use-package diminish bind-key hydra lv cus-edit evil
evil-integration undo-tree diff evil-maps evil-commands flyspell ispell
evil-jumps evil-command-window evil-types evil-search evil-ex
evil-macros evil-repeat evil-states evil-core evil-common windmove
thingatpt rect evil-digraphs evil-vars info bind-map quelpa help-fns
radix-tree package-build mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr json map lisp-mnt
hl-line xt-mouse autorevert filenotify rx cl-extra disp-table wid-edit
spacemacs-dark-theme spacemacs-common finder-inf tramp tramp-compat
tramp-loaddefs trampver shell pcomplete comint ansi-color ring
parse-time format-spec cus-start cus-load core-configuration-layer
eieio-compat ht cl help-mode warnings package epg-config url-handlers
url-parse auth-source cl-seq password-cache url-vars eieio eieio-core
eieio-loaddefs ido-vertical-mode ido seq byte-opt bytecomp byte-compile
cconv core-spacemacs core-use-package-ext core-transient-state
core-micro-state core-toggle core-keybindings core-fonts-support
core-spacemacs-buffer core-funcs cl-macs gv core-themes-support
core-display-init core-jump core-release-management core-custom-settings
core-dotspacemacs core-command-line pcase core-debug edmacro kmacro
derived advice profiler easymenu cl-loaddefs cl-lib page-break-lines
easy-mmode subr-x 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 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 kqueue cocoa ns lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 947791 748104)
(symbols 48 63757 2)
(miscs 40 1703 2072)
(strings 32 185383 125423)
(string-bytes 1 5877386)
(vectors 16 81885)
(vector-slots 8 1384975 464575)
(floats 8 498 1139)
(intervals 56 6572 1411)
(buffers 992 19))







Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#28451; Package emacs. (Thu, 14 Sep 2017 01:23:02 GMT) Full text and rfc822 format available.

Message #8 received at 28451 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Andrew Christianson <emacs <at> a.ndrew.pw>
Cc: 28451 <at> debbugs.gnu.org
Subject: Re: 26.0.50; copy-directory no longer creates parent directories of
 target if they do not exist
Date: Wed, 13 Sep 2017 18:22:21 -0700
Thanks for the bug report and test case. I cannot reproduce the problem 
on Fedora 26 x86-64.

What are the permissions on the files and directories involved? E.g., 
'cd; ls -lR a test'.

I have a sneaking suspicion that the problem lies in the recent changes 
I made to make-directory (commit 
cf9891e14e48a93bca2065fdd7998f5f677786dc). Can you please try something 
like this:

cd
rm -fr a test
mkdir -p a test/{a,b,c,d}
strace -o tr path/to/emacs -Q -batch -eval '(copy-directory "~/test" "~/a/new/directory/" t t t)'
grep mkdir tr

Here's what I observe on Fedora:

mkdir("/home/eggert/a/new/directory/a", 0777) = -1 ENOENT (No such file or directory)
mkdir("/home/eggert/a/new/directory", 0777) = -1 ENOENT (No such file or directory)
mkdir("/home/eggert/a/new", 0777)       = 0
mkdir("/home/eggert/a/new/directory", 0777) = 0
mkdir("/home/eggert/a/new/directory/a", 0777) = 0
mkdir("/home/eggert/a/new/directory/b", 0777) = 0
mkdir("/home/eggert/a/new/directory/c", 0777) = 0
mkdir("/home/eggert/a/new/directory/d", 0777) = 0

which has the desired behavior. If Darwin doesn't have strace, please use the equivalent there to trace system calls

If you don't have an strace equivalent, please try make-directory and see whether it has a similar problem:

cd
rm -fr a
mkdir a
path/to/emacs -Q -batch -eval '(make-directory "a/new/directory/a" t)'
ls -al a/new/directory/a





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#28451; Package emacs. (Thu, 14 Sep 2017 04:35:01 GMT) Full text and rfc822 format available.

Message #11 received at 28451 <at> debbugs.gnu.org (full text, mbox):

From: Andrew Christianson <emacs <at> a.ndrew.pw>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 28451 <at> debbugs.gnu.org
Subject: Re: 26.0.50; copy-directory no longer creates parent directories of
 target if they do not exist
Date: Wed, 13 Sep 2017 21:34:47 -0700
[Message part 1 (text/plain, inline)]
Ah.  I didn’t fully specify my test case, sorry about that.  In reality I did mkdir ~/test; touch ~/test/{a,b,c,d} .

Looks like that’s the key though.  If the first file in the directory to be copied is a normal file, not a directory, the call fails. So

mkdir ~/test
touch ~/test/{a,b,c,d}
path/to/emacs -Q -batch -eval '(copy-directory "~/test" "~/a/new/directory/" t t t)’

will fail, but

mkdir -p ~/test2/a
touch ~/test2/{b,c,d}
touch ~/test2/a/e
path/to/emacs -Q -batch -eval '(copy-directory "~/test2" "~/another/new/directory/" t t t)’

will succeed.

I've replicated the former behavior on Fedora 26, on a clean build of the most recent master (bc511a64f6). M-x report-emacs-bug template for that system is attached, along with the strace output.  There are no references to mkdir, unfortunately.  It seems like the issue is that copy-directory never actually calls make-directory in this case.  If neither condition in the middle cond block (list/files.el#5543) applies (which seems to be why this only happens with a NEWNAME with a trailing slash, and non-nil COPY-CONTENTS) then copy-directory just proceeds to the dolist, and if the first item is a file, it goes straight to copy-file, which then fails, as the target directory doesn’t exist.

Looks like the issue may have arose in commit e22794867d878d53675fcc91d2ef1ad2494a2ff2, trading file-directory-p for directory-name-p in the first first condition in that cond block.

Would adding a condition like:

1 file changed, 3 insertions(+), 1 deletion(-)
lisp/files.el | 4 +++-

modified   lisp/files.el
@@ -5541,31 +5541,33 @@ into NEWNAME instead."
 	    newname (expand-file-name newname))
 
       (cond ((not (directory-name-p newname))
 	     ;; If NEWNAME is not a directory name, create it;
 	     ;; that is where we will copy the files of DIRECTORY.
 	     (make-directory newname parents))
 	    ;; If NEWNAME is a directory name and COPY-CONTENTS
 	    ;; is nil, copy into NEWNAME/[DIRECTORY-BASENAME].
 	    ((not copy-contents)
 	     (setq newname (concat newname
 			    (file-name-nondirectory directory)))
 	     (and (file-exists-p newname)
 		  (not (file-directory-p newname))
 		  (error "Cannot overwrite non-directory %s with a directory"
 			 newname))
-	     (make-directory newname t)))
+	     (make-directory newname t))
+            ((and copy-contents (not (file-directory-p newname)))
+             (make-directory newname parents)))
 
       ;; Copy recursively.

Impact the current security concern?

Andrew

 	
[*message*-20170913-204729 (application/octet-stream, attachment)]
[cd-test-trace (application/octet-stream, attachment)]
[Message part 4 (text/plain, inline)]
> On Sep 13, 2017, at 6:22 PM, Paul Eggert <eggert <at> cs.ucla.edu> wrote:
> 
> Thanks for the bug report and test case. I cannot reproduce the problem on Fedora 26 x86-64.
> 
> What are the permissions on the files and directories involved? E.g., 'cd; ls -lR a test'.
> 
> I have a sneaking suspicion that the problem lies in the recent changes I made to make-directory (commit cf9891e14e48a93bca2065fdd7998f5f677786dc). Can you please try something like this:
> 
> cd
> rm -fr a test
> mkdir -p a test/{a,b,c,d}
> strace -o tr path/to/emacs -Q -batch -eval '(copy-directory "~/test" "~/a/new/directory/" t t t)'
> grep mkdir tr
> 
> Here's what I observe on Fedora:
> 
> mkdir("/home/eggert/a/new/directory/a", 0777) = -1 ENOENT (No such file or directory)
> mkdir("/home/eggert/a/new/directory", 0777) = -1 ENOENT (No such file or directory)
> mkdir("/home/eggert/a/new", 0777)       = 0
> mkdir("/home/eggert/a/new/directory", 0777) = 0
> mkdir("/home/eggert/a/new/directory/a", 0777) = 0
> mkdir("/home/eggert/a/new/directory/b", 0777) = 0
> mkdir("/home/eggert/a/new/directory/c", 0777) = 0
> mkdir("/home/eggert/a/new/directory/d", 0777) = 0
> 
> which has the desired behavior. If Darwin doesn't have strace, please use the equivalent there to trace system calls
> 
> If you don't have an strace equivalent, please try make-directory and see whether it has a similar problem:
> 
> cd
> rm -fr a
> mkdir a
> path/to/emacs -Q -batch -eval '(make-directory "a/new/directory/a" t)'
> ls -al a/new/directory/a
> 


Reply sent to Paul Eggert <eggert <at> cs.ucla.edu>:
You have taken responsibility. (Sun, 17 Sep 2017 20:17:01 GMT) Full text and rfc822 format available.

Notification sent to Andrew Christianson <emacs <at> a.ndrew.pw>:
bug acknowledged by developer. (Sun, 17 Sep 2017 20:17:02 GMT) Full text and rfc822 format available.

Message #16 received at 28451-done <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Andrew Christianson <andrew.christianson <at> gmail.com>
Cc: emacs <at> a.ndrew.pw, 28451-done <at> debbugs.gnu.org
Subject: Re: 26.0.50; copy-directory no longer creates parent directories of
 target if they do not exist
Date: Sun, 17 Sep 2017 13:15:47 -0700
[Message part 1 (text/plain, inline)]
Andrew Christianson wrote:
> -	     (make-directory newname t)))
> +	     (make-directory newname t))
> +            ((and copy-contents (not (file-directory-p newname)))
> +             (make-directory newname parents)))

Thanks for clarifying the test case and for the proposed patch. I reproduced the 
bug on Fedora 26 and wrote a test case to test case for the bug. Although the 
abovementioned patch should work on Fedora, it won't work on platforms that do 
not allow trailing / on mkdir arguments. So I installed the attached patch into 
the emacs-26 branch, and am boldly marking this bug as fixed. Please give it a try.
[0001-Fix-recently-introduced-copy-directory-bug.patch (text/x-patch, attachment)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 16 Oct 2017 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 7 years and 250 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.