浏览代码

ob-tangle: Use oXXX as file mode octal shorthand

* lisp/ob-tangle (org-babel-interpret-file-mode): Accept "o755" and
similar as octal shorthand. A non-digit character must be included as
otherwise `org-babel-parse-header-arguments' will convert it to a
base-10 integer.
TEC 3 年之前
父节点
当前提交
3a6686010e
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      lisp/ob-tangle.el

+ 3 - 3
lisp/ob-tangle.el

@@ -310,7 +310,7 @@ matching a regular expression."
   "Determine the integer representation of a file MODE specification.
 The following forms are currently recognised:
 - an integer (returned without modification)
-- \"755\" (chmod style octal)
+- \"o755\" (chmod style octal)
 - \"rwxrw-r--\" (ls style specification)
 - \"a=rw,u+x\" (chmod style) *
 
@@ -320,8 +320,8 @@ The following forms are currently recognised:
    ((integerp mode) mode)
    ((not (stringp mode))
     (error "File mode %S not recognised as a valid format." mode))
-   ((string-match-p "^0?[0-7][0-7][0-7]$" mode)
-    (string-to-number mode 8))
+   ((string-match-p "^o0?[0-7][0-7][0-7]$" mode)
+    (string-to-number (replace-regexp-in-string "^o" "" mode) 8))
    ((string-match-p "^[ugoa]*\\(?:[+-=][rwxXstugo]*\\)+\\(,[ugoa]*\\(?:[+-=][rwxXstugo]*\\)+\\)*$" mode)
     (file-modes-symbolic-to-number mode org-babel-tangle-default-mode))
    ((string-match-p "^[rwx-]\\{9\\}$" mode)