From 975311184af24c7276c3b30e7381f182baad8c39 Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Wed, 24 Aug 2022 02:45:07 +0200 Subject: [PATCH] Add org-unique-id-maybe as a wrapper to org-unique-id This new function allows for a cleaner hook addition. It also moves the check for the presence of the auto-id option to this function. This allows the user to call org-unique-id on any org buffer, regardless of the presence of auto-id and its value. --- org-unique-id.el | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/org-unique-id.el b/org-unique-id.el index 5c7b9d5..db87767 100644 --- a/org-unique-id.el +++ b/org-unique-id.el @@ -118,9 +118,22 @@ somewhere. ie, #+OPTIONS: auto-id:t" (save-excursion (widen) (goto-char (point-min)) - (let ((case-fold-search t)) - (when (re-search-forward "^#\\+OPTIONS:.*auto-id:t" (point-max) t) - (org-map-entries (lambda () (org-unique-id-get (point) t))))))) + (org-map-entries (lambda () (org-unique-id-get (point) t))))) + +;;;###autoload +(defun org-unique-id-maybe () + "Execute `org-unique-id' if in an org buffer and if enabled. + +This function executes `org-unique-id' when the buffer’s major +mode is `org-mode', when the buffer is not read-only, and if +\\='auto-id:t\\' is found in an #+OPTIONS line." + (let ((case-fold-search t)) + (when (and (eq major-mode 'org-mode) + (eq buffer-read-only nil) + (save-excursion + (let ((case-fold-search t)) + (re-search-forward "^#\\+OPTIONS:.*auto-id:t" (point-max) t)))) + (org-unique-id)))) (provide 'org-unique-id)