瀏覽代碼

ob-tangle: Make ls-style file mode regex stricter

* lisp/ob-tangle (org-babel-interpret-file-mode): Instead of allowing 9
characters from [rwx-], require [r-][w-][x-] repeated thrice.  This no
longer allows invalid ls-style file modes.
TEC 3 年之前
父節點
當前提交
048f478799
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      lisp/ob-tangle.el

+ 2 - 1
lisp/ob-tangle.el

@@ -327,8 +327,9 @@ Did you give the decimal value %1$d by mistake?" mode)))
    ((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)
+    ;; Match regexp taken from `file-modes-symbolic-to-number'.
     (file-modes-symbolic-to-number mode org-babel-tangle-default-mode))
-   ((string-match-p "^[rwx-]\\{9\\}$" mode)
+   ((string-match-p "^\\(?:[r-][w-][x-]\\)\\{3\\}$" mode)
     (file-modes-symbolic-to-number (concat  "u=" (substring mode 0 3)
                                             ",g=" (substring mode 3 6)
                                             ",a=" (substring mode 6 9))