* bug#28483: 26.0.50; copy-directory does not create directories @ 2017-09-17 19:10 Aaron Jensen 2017-09-17 19:15 ` bug#28483: [PATCH] Fix copy-directory creating missing directory Aaron Jensen 2017-09-17 19:20 ` bug#28483: 26.0.50; copy-directory does not create directories Aaron Jensen 0 siblings, 2 replies; 13+ messages in thread From: Aaron Jensen @ 2017-09-17 19:10 UTC (permalink / raw) To: 28483 (copy-directory "existing-dir" "not-existing-dir/" 'keeptime 'create 'copy-content) The problem seems to be that copy-directory uses directory-name-p instead of file-directory-p to detect whether or not the directory exists. In GNU Emacs 26.0.50 (build 1, x86_64-apple-darwin16.7.0, NS appkit-1504.83 Version 10.12.6 (Build 16G29)) of 2017-09-13 built on aaron-mbpt.local Repository revision: a0202fdc85ddc36b73a1c7c4f2d3ec45cd22c5e1 Windowing system distributor 'Apple', version 10.3.1504 Recent messages: t Type "q" to delete help window. [2 times] copy-directory newname /Users/aaronjensen/.emacs.d/.cache/.rollback/26.0/17-09-17_11.49.00/cider-20170905.1037/ wat t t Mark saved where search started [2 times] Saving file /Users/aaronjensen/Source/emacs/lisp/files.el... Wrote /Users/aaronjensen/Source/emacs/lisp/files.el Wrote /Users/aaronjensen/Source/emacs/lisp/files.elc Wrote /Users/aaronjensen/Source/emacs/lisp/files.{el,elc} Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=/usr/local/share/emacs/site-lisp --infodir=/usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/info/emacs --prefix=/usr/local/Cellar/emacs-plus/HEAD-a0202fd_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: company-mode: t auto-compile-mode: t elisp-slime-nav-mode: t eros-mode: t lispyville-mode: t lispy-mode: t nameless-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 global-git-gutter+-mode: t git-gutter+-mode: t projectile-mode: t recentf-mode: t evil-mc-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-vi-tilde-fringe-mode: t vi-tilde-fringe-mode: t pupo-mode: t purpose-mode: t spaceline-info-mode: t spaceline-helm-mode: t save-place-mode: t savehist-mode: t persp-mode: t magit-auto-revert-mode: t global-git-commit-mode: t async-bytecomp-package-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 global-evil-search-highlight-persist: t evil-search-highlight-persist: t show-smartparens-global-mode: t show-smartparens-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 global-edit-server-edit-mode: t dtrt-indent-mode: t diff-auto-refine-mode: t counsel-mode: t ivy-mode: t clean-aindent-mode: t aggressive-fill-paragraph-mode: t hybrid-mode: t which-key-mode: t override-global-mode: t global-undo-tree-mode: t undo-tree-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 abbrev-mode: t hs-minor-mode: t Load-path shadows: /Users/aaronjensen/.emacs.d/elpa/26.0/org-mac-link-20170105.1723/org-mac-link hides /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-mac-link /Users/aaronjensen/.emacs.d/elpa/26.0/ht-20161015.1945/ht hides /Users/aaronjensen/.emacs.d/core/libs/ht /Users/aaronjensen/.emacs.d/elpa/26.0/less-css-mode-20160930.2153/less-css-mode hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/textmodes/less-css-mode /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ox /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-texinfo hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ox-texinfo /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-publish hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ox-publish /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-org hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ox-org /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-odt hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ox-odt /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-md hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ox-md /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-man hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ox-man /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-latex hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ox-latex /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-icalendar hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ox-icalendar /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-html hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ox-html /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-beamer hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ox-beamer /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ox-ascii hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ox-ascii /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-w3m hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-w3m /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-version hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-version /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-timer hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-timer /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-table hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-table /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-src hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-src /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-rmail hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-rmail /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-protocol hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-protocol /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-plot hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-plot /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-pcomplete hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-pcomplete /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-mouse hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-mouse /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-mobile hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-mobile /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-mhe hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-mhe /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-macs hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-macs /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-macro hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-macro /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-loaddefs hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-loaddefs /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-list hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-list /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-lint hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-lint /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-irc hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-irc /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-install hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-install /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-inlinetask hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-inlinetask /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-info hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-info /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-indent hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-indent /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-id hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-id /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-habit hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-habit /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-gnus hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-gnus /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-footnote hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-footnote /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-feed hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-feed /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-faces hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-faces /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-eww hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-eww /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-eshell hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-eshell /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-entities hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-entities /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-element hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-element /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-docview hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-docview /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-datetree hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-datetree /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-ctags hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-ctags /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-crypt hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-crypt /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-compat hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-compat /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-colview hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-colview /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-clock hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-clock /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-capture hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-capture /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-bibtex hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-bibtex /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-bbdb hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-bbdb /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-attach hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-attach /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-archive hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-archive /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/org-agenda hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/org-agenda /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-tangle hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-tangle /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-table hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-table /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-stan hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-stan /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-sqlite hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-sqlite /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-sql hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-sql /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-shen hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-shen /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-shell hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-shell /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-sed hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-sed /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-screen hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-screen /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-scheme hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-scheme /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-sass hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-sass /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-ruby hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-ruby /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-ref hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-ref /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-R hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-R /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-python hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-python /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-processing hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-processing /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-plantuml hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-plantuml /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-picolisp hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-picolisp /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-perl hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-perl /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-org hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-org /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-octave hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-octave /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-ocaml hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-ocaml /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-mscgen hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-mscgen /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-maxima hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-maxima /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-matlab hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-matlab /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-makefile hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-makefile /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-lua hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-lua /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-lob hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-lob /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-lisp hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-lisp /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-lilypond hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-lilypond /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-ledger hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-ledger /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-latex hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-latex /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-keys hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-keys /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-js hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-js /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-java hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-java /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-J hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-J /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-io hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-io /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-haskell hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-haskell /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-groovy hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-groovy /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-gnuplot hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-gnuplot /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-fortran hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-fortran /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-forth hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-forth /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-exp hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-exp /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-eval hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-eval /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-emacs-lisp hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-emacs-lisp /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-ebnf hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-ebnf /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-dot hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-dot /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-ditaa hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-ditaa /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-css hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-css /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-core hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-core /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-coq hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-coq /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-comint hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-comint /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-clojure hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-clojure /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-calc hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-calc /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-C hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-C /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-awk hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-awk /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-asymptote hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-asymptote /Users/aaronjensen/.emacs.d/elpa/26.0/org-plus-contrib-20170911/ob-abc hides /usr/local/Cellar/emacs-plus/HEAD-a0202fd_2/share/emacs/26.0.50/lisp/org/ob-abc Features: (shadow sort mail-extr emacsbug sendmail executable counsel-projectile dired-collapse f drupal-mode drupal/emacs-drush drupal/flycheck drupal/phpcs drupal/ispell drupal/etags drupal/eldoc sql view php-mode flymake flymake-proc flymake-ui cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs eieio-opt speedbar sb-image ezimage dframe two-column iso-transl reposition mwim misearch multi-isearch vc-git open-junk-file company-files company-keywords company-etags company-gtags company-template company-dabbrev-code company-dabbrev company-capf company-insert-selected php-extras company auto-compile packed elisp-slime-nav eros flycheck-package package-lint finder lispyville lispy iedit iedit-lib multiple-cursors-core lispy-inline avy semantic/db semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet evil-ediff ediff-merg ediff-wind ediff-diff ediff-mult ediff-help ediff-init ediff-util ediff edebug lispy-tags nameless goto-addr bug-reference auto-highlight-symbol highlight-numbers parent-mode highlight-parentheses hideshow rainbow-delimiters clojure-snippets yasnippet elec-pair editorconfig-core editorconfig-core-handle editorconfig-fnmatch cl-print debug git-gutter-fringe+ fringe-helper git-gutter+ mm-archive network-stream starttls url-cache colir smex projectile grep compile recentf tree-widget quiet-emacs fill-or-unfill restore-frame-position contextual-menubar init-xclip init-flyspell init-terminal-cursor evil-terminal-cursor-changer init-org org-inlinetask init-magit evil-mc evil-mc-command-execute evil-mc-command-record evil-mc-cursor-make evil-mc-region evil-mc-cursor-state evil-mc-undo evil-mc-vars evil-mc-known-commands evil-mc-common hl-todo ucs-utils persistent-soft list-utils font-utils zone xterm-color spacemacs-whitespace-cleanup ws-butler winum winner window-purpose-x imenu-list imenu ibuf-ext ibuffer ibuffer-loaddefs volatile-highlights vi-tilde-fringe unicode-fonts 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 smartparens-ruby saveplace savehist ruby-test-mode pcre2el rxt re-builder ruby-mode smie popwin persp-mode osx-trash orgit git-rebase magit-gh-pulls gh gh-users gh-issues gh-pulls gh-repos gh-comments gh-gist gh-oauth gh-api logito gh-cache pcache eieio-base gh-auth gh-url url-http tls gnutls url-auth url-gw nsm evil-magit magit-obsolete magit-blame magit-stash magit-bisect magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-branch magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode magit-core magit-autorevert magit-process magit-margin magit-mode magit-git magit-section magit-popup git-commit magit-utils crm log-edit message puny dired dired-loaddefs rfc822 mml mml-sec epa epg gnus-util rmail rmail-loaddefs mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log with-editor async-bytecomp async server ob-elixir ob-http ob-http-mode ob-restclient restclient url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap linum ivy-hydra info+ image-mode gh-common gh-profile s marshal flycheck-pos-tip pos-tip flycheck-flow flycheck flx-ido eyebrowse evil-surround evil-search-highlight-persist evil-numbers evil-lisp-state smartparens evil-lion evil-indent-plus evil-exchange evil-escape evil-args evil-anzu anzu cider-eval-sexp-fu eval-sexp-fu highlight editorconfig edit-server dtrt-indent drupal/pcomplete rx docker-tramp tramp-cache diff-hl vc-dir ewoc vc vc-dispatcher diff-mode counsel jka-compr esh-util etags xref project swiper ivy flx delsel ivy-overlay ffap clean-aindent-mode aggressive-fill-paragraph org-element avl-tree generator org org-macro org-footnote org-pcomplete org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs org-loaddefs find-func cal-menu calendar cal-loaddefs dash 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 cl-extra disp-table wid-edit monokai-theme finder-inf tramp tramp-compat tramp-loaddefs trampver shell pcomplete comint ansi-color ring parse-time format-spec cus-start cus-load init-sass init-php init-html init-evil 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 multi-tty make-network-process emacs) Memory information: ((conses 16 1706186 1576957) (symbols 48 86264 46) (miscs 40 1795 4219) (strings 32 361663 146861) (string-bytes 1 10359082) (vectors 16 134081) (vector-slots 8 3856604 684583) (floats 8 568 3219) (intervals 56 82739 26409) (buffers 992 32)) ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#28483: [PATCH] Fix copy-directory creating missing directory 2017-09-17 19:10 bug#28483: 26.0.50; copy-directory does not create directories Aaron Jensen @ 2017-09-17 19:15 ` Aaron Jensen 2017-09-17 19:48 ` Philipp Stephani 2017-09-17 19:20 ` bug#28483: 26.0.50; copy-directory does not create directories Aaron Jensen 1 sibling, 1 reply; 13+ messages in thread From: Aaron Jensen @ 2017-09-17 19:15 UTC (permalink / raw) To: 28483 * lisp/files.el (copy-directory): Use file-directory-p instead of directory-name-p. --- lisp/files.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/files.el b/lisp/files.el index c55c8097c1..b3a55af976 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -5540,7 +5540,7 @@ copy-directory (setq directory (directory-file-name (expand-file-name directory)) newname (expand-file-name newname)) - (cond ((not (directory-name-p newname)) + (cond ((not (file-directory-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)) -- 2.13.2 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* bug#28483: [PATCH] Fix copy-directory creating missing directory 2017-09-17 19:15 ` bug#28483: [PATCH] Fix copy-directory creating missing directory Aaron Jensen @ 2017-09-17 19:48 ` Philipp Stephani 2017-09-17 20:19 ` Aaron Jensen 0 siblings, 1 reply; 13+ messages in thread From: Philipp Stephani @ 2017-09-17 19:48 UTC (permalink / raw) To: Aaron Jensen, 28483 [-- Attachment #1: Type: text/plain, Size: 1074 bytes --] Aaron Jensen <aaronjensen@gmail.com> schrieb am So., 17. Sep. 2017 um 21:16 Uhr: > * lisp/files.el (copy-directory): Use file-directory-p instead of > directory-name-p. > --- > lisp/files.el | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lisp/files.el b/lisp/files.el > index c55c8097c1..b3a55af976 100644 > --- a/lisp/files.el > +++ b/lisp/files.el > @@ -5540,7 +5540,7 @@ copy-directory > (setq directory (directory-file-name (expand-file-name directory)) > newname (expand-file-name newname)) > > - (cond ((not (directory-name-p newname)) > + (cond ((not (file-directory-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)) > This would reintroduce the security hole that e22794867d878d53675fcc91d2ef1ad2494a2ff2 fixed. Paul, maybe you want to add some comments to the places where you introduced `directory-name-p' so that people don't attempt to revert these changes? [-- Attachment #2: Type: text/html, Size: 1489 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#28483: [PATCH] Fix copy-directory creating missing directory 2017-09-17 19:48 ` Philipp Stephani @ 2017-09-17 20:19 ` Aaron Jensen 2017-09-18 17:40 ` Philipp Stephani 0 siblings, 1 reply; 13+ messages in thread From: Aaron Jensen @ 2017-09-17 20:19 UTC (permalink / raw) To: 28483, Philipp Stephani On September 17, 2017 at 12:48:54 PM, Philipp Stephani (p.stephani2@gmail.com(mailto:p.stephani2@gmail.com)) wrote: > This would reintroduce the security hole that e22794867d878d53675fcc91d2ef1ad2494a2ff2 fixed. Indeed, sorry about that. I’m attempting to patch the downstream library that led me to this issue: https://github.com/syl20bnr/spacemacs/pull/9600 > Paul, maybe you want to add some comments to the places where you introduced `directory-name-p' so that people don't attempt to revert these changes? I’m not sure what Emac’s principles are on it, but perhaps an error pointing to this change when attempting to copy to a non-existing directory would help people in the future as well since this is a change in behavior to an existing function w/o a deprecation. Thanks, Aaron ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#28483: [PATCH] Fix copy-directory creating missing directory 2017-09-17 20:19 ` Aaron Jensen @ 2017-09-18 17:40 ` Philipp Stephani 0 siblings, 0 replies; 13+ messages in thread From: Philipp Stephani @ 2017-09-18 17:40 UTC (permalink / raw) To: Aaron Jensen, 28483 [-- Attachment #1: Type: text/plain, Size: 652 bytes --] Aaron Jensen <aaronjensen@gmail.com> schrieb am So., 17. Sep. 2017 um 22:19 Uhr: > > I’m not sure what Emac’s principles are on it, but perhaps an error > pointing to this change when attempting to copy to a non-existing > directory would help people in the future as well since this is a > change in behavior to an existing function w/o a deprecation. > > I think copy-directory is mostly used by libraries, so alerting the user wouldn't help: the problem is in the libraries that invoke copy-directory. That the behavior changed is unfortunate, but unavoidable due to security concerns. The behavior changes are mentioned in NEWS. [-- Attachment #2: Type: text/html, Size: 943 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#28483: 26.0.50; copy-directory does not create directories 2017-09-17 19:10 bug#28483: 26.0.50; copy-directory does not create directories Aaron Jensen 2017-09-17 19:15 ` bug#28483: [PATCH] Fix copy-directory creating missing directory Aaron Jensen @ 2017-09-17 19:20 ` Aaron Jensen 2017-09-17 20:40 ` Paul Eggert 1 sibling, 1 reply; 13+ messages in thread From: Aaron Jensen @ 2017-09-17 19:20 UTC (permalink / raw) To: 28483; +Cc: Paul Eggert [-- Attachment #1: Type: text/plain, Size: 280 bytes --] It looks like this actually regressed in e22794867d878d53675fcc91d2ef1ad2494a2ff2 and was an intentional change. Paul, could you please take a look at my patch and see if it doesn’t regress your intended change? Maybe there’s another cond necessary. Thanks, Aaron [-- Attachment #2: Type: text/html, Size: 1216 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#28483: 26.0.50; copy-directory does not create directories 2017-09-17 19:20 ` bug#28483: 26.0.50; copy-directory does not create directories Aaron Jensen @ 2017-09-17 20:40 ` Paul Eggert 2017-09-17 23:12 ` Aaron Jensen 2017-09-20 11:26 ` Eli Zaretskii 0 siblings, 2 replies; 13+ messages in thread From: Paul Eggert @ 2017-09-17 20:40 UTC (permalink / raw) To: Aaron Jensen, 28483-done The recent security patch to copy-directory had the unintended side effect of refusing to make the destination directory when COPY-CONTENTS is non-nil and when the destination is a directory name. Sorry about that. I installed a patch in the emacs-26 branch, here: http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-26&id=37b5e661d298cbfe51422cd515b6696a1cdaa868 Please give it a try. As I think it fixes the bug, I'm boldly closing this bug report; we can reopen it if I'm wrong. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#28483: 26.0.50; copy-directory does not create directories 2017-09-17 20:40 ` Paul Eggert @ 2017-09-17 23:12 ` Aaron Jensen 2017-09-17 23:52 ` Paul Eggert 2017-09-20 11:26 ` Eli Zaretskii 1 sibling, 1 reply; 13+ messages in thread From: Aaron Jensen @ 2017-09-17 23:12 UTC (permalink / raw) To: Paul Eggert, 28483-done On September 17, 2017 at 1:40:50 PM, Paul Eggert (eggert@cs.ucla.edu(mailto:eggert@cs.ucla.edu)) wrote: > The recent security patch to copy-directory had the unintended side effect of > refusing to make the destination directory when COPY-CONTENTS is non-nil and > when the destination is a directory name. Sorry about that. I installed a patch > in the emacs-26 branch, here: > > http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-26&id=37b5e661d298cbfe51422cd515b6696a1cdaa868 > > Please give it a try. As I think it fixes the bug, I'm boldly closing this bug > report; we can reopen it if I'm wrong. That fixed it for me. Thank you! And thanks for pointing out the emacs-26 branch, that’s exciting. Do fixes not typically get merged back into master until after the release? ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#28483: 26.0.50; copy-directory does not create directories 2017-09-17 23:12 ` Aaron Jensen @ 2017-09-17 23:52 ` Paul Eggert 0 siblings, 0 replies; 13+ messages in thread From: Paul Eggert @ 2017-09-17 23:52 UTC (permalink / raw) To: Aaron Jensen, 28483-done Aaron Jensen wrote: > Do > fixes not typically get merged back into master until after the > release? No, we typically merge them periodically well before then. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#28483: 26.0.50; copy-directory does not create directories 2017-09-17 20:40 ` Paul Eggert 2017-09-17 23:12 ` Aaron Jensen @ 2017-09-20 11:26 ` Eli Zaretskii 2017-09-20 18:59 ` bug#28520: " Paul Eggert 1 sibling, 1 reply; 13+ messages in thread From: Eli Zaretskii @ 2017-09-20 11:26 UTC (permalink / raw) To: Paul Eggert; +Cc: 28483, aaronjensen > From: Paul Eggert <eggert@cs.ucla.edu> > Date: Sun, 17 Sep 2017 13:40:45 -0700 > > The recent security patch to copy-directory had the unintended side effect of > refusing to make the destination directory when COPY-CONTENTS is non-nil and > when the destination is a directory name. Sorry about that. I installed a patch > in the emacs-26 branch, here: > > http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-26&id=37b5e661d298cbfe51422cd515b6696a1cdaa868 > > Please give it a try. As I think it fixes the bug, I'm boldly closing this bug > report; we can reopen it if I'm wrong. Thanks. I still see a problem in copy-directory if I modify the original recipe slightly: by having the directory ~/test2/a empty (in the original recipe it included one file. ~/test2/a/e). If that directory is empty, it is not copied to the destination. Moreover, the logic in copy-directory transfers the modes and timestamp of the (not-copied) directory to the destination directory, not to the copy. I think the problem is in this line: (cond ((eq filetype t) ; Directory but not a symlink. (copy-directory file newname keep-time parents)) <<<<<<<<<<< Instead of 'newname', there should be (file-name-as-directory newname) there. I think. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#28520: bug#28483: 26.0.50; copy-directory does not create directories 2017-09-20 11:26 ` Eli Zaretskii @ 2017-09-20 18:59 ` Paul Eggert 2017-09-20 19:54 ` Eli Zaretskii 0 siblings, 1 reply; 13+ messages in thread From: Paul Eggert @ 2017-09-20 18:59 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 28483, Adam Plaice, 28520-done, aaronjensen, Tino Calancha [-- Attachment #1: Type: text/plain, Size: 1007 bytes --] On 09/20/2017 04:26 AM, Eli Zaretskii wrote: > I think the problem is in this line: > > (cond > ((eq filetype t) ; Directory but not a symlink. > (copy-directory file newname keep-time parents)) <<<<<<<<<<< > > Instead of 'newname', there should be (file-name-as-directory newname) > there. I think. Thanks for diagnosing the problem and for the fix. That fix should work, and I think we can improve on it slightly by using (copy-directory file target keep-time parents t), as this makes the cond branch more parallel with the other alternatives and avoids a call to file-name-as-directory. So I installed the attached patch into the emacs-26 branch to do that, and to add a test case for this bug. This patch should also fix Bug#28520 "Dired recursive copy of directory fails", so I'll CC: that bug report and boldly close it. PS. Sorry, Adam, for misspelling your first name in the commit message. I'll try to remember to fix that when it spills out into the ChangeLog file. [-- Attachment #2: 0001-Fix-new-copy-directory-bug-with-empty-dirs.patch --] [-- Type: text/x-patch, Size: 2116 bytes --] From b4531a78ded7efb0c133763b5efe1f4dab1aa4de Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@cs.ucla.edu> Date: Wed, 20 Sep 2017 11:49:12 -0700 Subject: [PATCH] Fix new copy-directory bug with empty dirs Problem reported by Afdam Plaice (Bug#28520) and by Eli Zaretskii (Bug#28483#34). This is another bug that I introduced in my recent copy-directory changes. * lisp/files.el (copy-directory): Work with empty subdirectories, too. * test/lisp/files-tests.el (files-tests--copy-directory): Test for this bug. --- lisp/files.el | 2 +- test/lisp/files-tests.el | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp/files.el b/lisp/files.el index 0c30d40c13..f0a1f2380d 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -5564,7 +5564,7 @@ copy-directory (filetype (car (file-attributes file)))) (cond ((eq filetype t) ; Directory but not a symlink. - (copy-directory file newname keep-time parents)) + (copy-directory file target keep-time parents t)) ((stringp filetype) ; Symbolic link (make-symbolic-link filetype target t)) ((copy-file file target t keep-time))))) diff --git a/test/lisp/files-tests.el b/test/lisp/files-tests.el index f2a9a32180..285a884b69 100644 --- a/test/lisp/files-tests.el +++ b/test/lisp/files-tests.el @@ -399,11 +399,16 @@ files-tests--with-temp-file (dirname (file-name-as-directory dir)) (source (concat dirname "source")) (dest (concat dirname "dest/new/directory/")) - (file (concat (file-name-as-directory source) "file"))) + (file (concat (file-name-as-directory source) "file")) + (source2 (concat dirname "source2")) + (dest2 (concat dirname "dest/new2"))) (make-directory source) (write-region "" nil file) (copy-directory source dest t t t) (should (file-exists-p (concat dest "file"))) + (make-directory (concat (file-name-as-directory source2) "a") t) + (copy-directory source2 dest2) + (should (file-directory-p (concat (file-name-as-directory dest2) "a"))) (delete-directory dir 'recursive))) (provide 'files-tests) -- 2.13.5 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* bug#28520: bug#28483: 26.0.50; copy-directory does not create directories 2017-09-20 18:59 ` bug#28520: " Paul Eggert @ 2017-09-20 19:54 ` Eli Zaretskii 2017-09-20 23:04 ` Adam Plaice 0 siblings, 1 reply; 13+ messages in thread From: Eli Zaretskii @ 2017-09-20 19:54 UTC (permalink / raw) To: Paul Eggert; +Cc: 28483, plaice.adam+lists, 28520, aaronjensen, tino.calancha > Cc: 28483@debbugs.gnu.org, aaronjensen@gmail.com, 28520-done@debbugs.gnu.org, > Adam Plaice <plaice.adam+lists@gmail.com>, > Tino Calancha <tino.calancha@gmail.com> > From: Paul Eggert <eggert@cs.ucla.edu> > Date: Wed, 20 Sep 2017 11:59:37 -0700 > > Thanks for diagnosing the problem and for the fix. That fix should work, > and I think we can improve on it slightly by using (copy-directory file > target keep-time parents t), as this makes the cond branch more parallel > with the other alternatives and avoids a call to file-name-as-directory. > So I installed the attached patch into the emacs-26 branch to do that, > and to add a test case for this bug. Thanks, works for me. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#28520: bug#28483: 26.0.50; copy-directory does not create directories 2017-09-20 19:54 ` Eli Zaretskii @ 2017-09-20 23:04 ` Adam Plaice 0 siblings, 0 replies; 13+ messages in thread From: Adam Plaice @ 2017-09-20 23:04 UTC (permalink / raw) To: Eli Zaretskii, Paul Eggert; +Cc: 28520, tino.calancha Thanks for the very fast fix. The commit indeed resolves the problem for me. Adam > PS. Sorry, Adam, for misspelling your first name in the commit message. I'll try to remember to fix that when it spills out into the ChangeLog file. Don't worry about it! ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2017-09-20 23:04 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-09-17 19:10 bug#28483: 26.0.50; copy-directory does not create directories Aaron Jensen 2017-09-17 19:15 ` bug#28483: [PATCH] Fix copy-directory creating missing directory Aaron Jensen 2017-09-17 19:48 ` Philipp Stephani 2017-09-17 20:19 ` Aaron Jensen 2017-09-18 17:40 ` Philipp Stephani 2017-09-17 19:20 ` bug#28483: 26.0.50; copy-directory does not create directories Aaron Jensen 2017-09-17 20:40 ` Paul Eggert 2017-09-17 23:12 ` Aaron Jensen 2017-09-17 23:52 ` Paul Eggert 2017-09-20 11:26 ` Eli Zaretskii 2017-09-20 18:59 ` bug#28520: " Paul Eggert 2017-09-20 19:54 ` Eli Zaretskii 2017-09-20 23:04 ` Adam Plaice
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).