Subject: bug#28451: closed (Re: 26.0.50; copy-directory no longer creates parent directories of target if they do not exist)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 17 Sep 2017 20:17:02 +0000

Your bug report

#28451: 26.0.50; copy-directory no longer creates parent directories of target if they do not exist

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
28451: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=28451
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: 26.0.50; copy-directory no longer creates parent directories of target if they do not exist
From: Paul Eggert <[email-masked]>
To: Andrew Christianson <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sun, 17 Sep 2017 13:15:47 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

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.
From 37b5e661d298cbfe51422cd515b6696a1cdaa868 Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email-masked]>
Date: Sun, 17 Sep 2017 12:56:00 -0700
Subject: [PATCH] Fix recently-introduced copy-directory bug

Problem reported by Andrew Christianson (Bug#28451):
* lisp/files.el (copy-directory): If COPY-CONTENTS, make the
destination directory if it does not exist, even if it is a
directory name.  Simplify, and omit unnecessary test for an
already-existing non-directory target, since make-directory
diagnoses that for us now.
* test/lisp/files-tests.el (files-tests--copy-directory):
Test for this bug.
---
 lisp/files.el            | 20 +++++++++-----------
 test/lisp/files-tests.el | 11 +++++++++++
 2 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/lisp/files.el b/lisp/files.el
index c55c809..133fed9 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -5372,7 +5372,7 @@ make-directory
 	  (while (progn
 		   (setq parent (directory-file-name
 				 (file-name-directory dir)))
-		   (condition-case err
+		   (condition-case ()
 		       (files--ensure-directory dir)
 		     (file-missing
 		      ;; Do not loop if root does not exist (Bug#2309).
@@ -5544,16 +5544,14 @@ copy-directory
 	     ;; 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)))
+	    ;; NEWNAME is a directory name.  If COPY-CONTENTS is non-nil,
+	    ;; create NEWNAME if it is not already a directory;
+	    ;; otherwise, create NEWNAME/[DIRECTORY-BASENAME].
+	    ((if copy-contents
+		 (or parents (not (file-directory-p newname)))
+	       (setq newname (concat newname
+				     (file-name-nondirectory directory))))
+	     (make-directory (directory-file-name newname) parents)))
 
       ;; Copy recursively.
       (dolist (file
diff --git a/test/lisp/files-tests.el b/test/lisp/files-tests.el
index ef216c3..3117ea6 100644
--- a/test/lisp/files-tests.el
+++ b/test/lisp/files-tests.el
@@ -393,5 +393,16 @@ files-tests--with-temp-file
         (should (null (save-buffer)))
         (should (eq (buffer-size) 1))))))
 
+(ert-deftest files-tests--copy-directory ()
+  (let* ((dir (make-temp-file "files-mkdir-test" t))
+	 (dirname (file-name-as-directory dir))
+	 (source (concat dirname "source"))
+	 (dest (concat dirname "dest/new/directory/"))
+	 (file (concat (file-name-as-directory source) "file")))
+    (make-directory source)
+    (write-region "" nil file)
+    (copy-directory source dest t t t)
+    (should (file-exists-p (concat dest "file")))))
+
 (provide 'files-tests)
 ;;; files-tests.el ends here
-- 
2.7.4

Subject: 26.0.50; copy-directory no longer creates parent directories of target if they do not exist
From: Andrew Christianson <[email-masked]>
To: [email-masked]
Date: Wed, 13 Sep 2017 13:33:17 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

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))