emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals-release/org 5a8a1d4ff9 1/2: org-compile-file: Expand "~


From: ELPA Syncer
Subject: [elpa] externals-release/org 5a8a1d4ff9 1/2: org-compile-file: Expand "~" in SOURCE
Date: Sat, 7 Jan 2023 07:58:04 -0500 (EST)

branch: externals-release/org
commit 5a8a1d4ff95639bdcbeaa62eabcc09a41a5b1ed6
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>

    org-compile-file: Expand "~" in SOURCE
    
    * lisp/org-macs.el (org-compile-file): Expand "~" in the source before
    passing it as quoted shell argument.
    
    Reported-by: Alain.Cochard@unistra.fr
    Link: https://orgmode.org/list/25528.42190.53674.62381@gargle.gargle.HOWL
---
 lisp/org-macs.el | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/lisp/org-macs.el b/lisp/org-macs.el
index 72929cdd26..07c668a807 100644
--- a/lisp/org-macs.el
+++ b/lisp/org-macs.el
@@ -372,18 +372,23 @@ be set to a buffer or a buffer name.  `shell-command' 
then uses
 it for output."
   (let* ((base-name (file-name-base source))
         (full-name (file-truename source))
-        (out-dir (or (file-name-directory source) "./"))
+         (relative-name (file-relative-name source))
+        (out-dir (if (file-name-directory source)
+                      ;; Expand "~".  Shell expansion will be disabled
+                      ;; in the shell command call.
+                      (file-name-directory full-name)
+                    "./"))
         (output (expand-file-name (concat base-name "." ext) out-dir))
         (time (file-attribute-modification-time (file-attributes output)))
         (err-msg (if (stringp err-msg) (concat ".  " err-msg) "")))
     (save-window-excursion
       (pcase process
-       ((pred functionp) (funcall process (shell-quote-argument source)))
+       ((pred functionp) (funcall process (shell-quote-argument 
relative-name)))
        ((pred consp)
         (let ((log-buf (and log-buf (get-buffer-create log-buf)))
               (spec (append spec
                             `((?b . ,(shell-quote-argument base-name))
-                              (?f . ,(shell-quote-argument source))
+                              (?f . ,(shell-quote-argument relative-name))
                               (?F . ,(shell-quote-argument full-name))
                               (?o . ,(shell-quote-argument out-dir))
                               (?O . ,(shell-quote-argument output))))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]