From ff6fd9387626258841f5d3a6a8e9fc10d02a6377 Mon Sep 17 00:00:00 2001 From: TEC Date: Sat, 20 Nov 2021 22:43:44 +0800 Subject: [PATCH] ob-tangle: Check that integer file modes are valid * lisp/ob-tangle.el (org-babel-interpret-file-mode): Check that the integer as an octal represents a valid file mode, and complain otherwise. --- lisp/ob-tangle.el | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/ob-tangle.el b/lisp/ob-tangle.el index 90c7ae570..7484ffe76 100644 --- a/lisp/ob-tangle.el +++ b/lisp/ob-tangle.el @@ -317,7 +317,11 @@ The following forms are currently recognised: * The interpretation of these forms relies on `file-modes-symbolic-to-number', and uses `org-babel-tangle-default-mode' as the base mode." (cond - ((integerp mode) mode) + ((integerp mode) + (if (string-match-p "^[0-7][0-7][0-7]$" (format "%o" mode)) + mode + (user-error "%1$o is not a valid file mode octal. \ +Did you give the decimal value %1$d by mistake?" mode))) ((not (stringp mode)) (error "File mode %S not recognised as a valid format." mode)) ((string-match-p "^o0?[0-7][0-7][0-7]$" mode)