From 3a6686010e6c1b243208af10ee2635a5e3a82908 Mon Sep 17 00:00:00 2001 From: TEC Date: Sat, 20 Nov 2021 22:40:26 +0800 Subject: [PATCH] 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. --- lisp/ob-tangle.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lisp/ob-tangle.el b/lisp/ob-tangle.el index 316844579..90c7ae570 100644 --- a/lisp/ob-tangle.el +++ b/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)