branch: externals/hyperbole commit 7b421cdcc100d2b430cad6770d85445f750af9a2 Author: Robert Weiner <r...@gnu.org> Commit: Robert Weiner <r...@gnu.org>
Support setting/getting attributes in invisible outline root 0 cell --- ChangeLog | 4 ++++ kotl/kotl-mode.el | 22 ++++++++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3623913355..0ef802019e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2022-01-19 Bob Weiner <r...@gnu.org> +* kotl/kotl-mode.el (kotl-mode:set-cell-attribute, kotl-mode:remove-cell-attribute): + Update interactive parts to utilize the hidden top-level 0 cell when given a + zero-valued prefix argument. + * hactypes.el (link-to-texinfo-node, link-to-Info-index-item, link-to-Info-node): Remove any runs of tabs or newlines that might be in name and replace each with a single space. diff --git a/kotl/kotl-mode.el b/kotl/kotl-mode.el index fe584725c4..20d6f80414 100644 --- a/kotl/kotl-mode.el +++ b/kotl/kotl-mode.el @@ -2475,6 +2475,8 @@ ATTRIBUTE and ignore any value of POS." (interactive (let* ((plist (copy-sequence (kcell-view:plist))) (existing-attributes plist) + (top-cell-flag (zerop (prefix-numeric-value + current-prefix-arg))) attribute) (barf-if-buffer-read-only) ;; Remove attribute values leaving only attribute symbols in existing-attributes. @@ -2490,7 +2492,9 @@ ATTRIBUTE and ignore any value of POS." (while (zerop (length (setq attribute (completing-read (format "Name of attribute to remove from cell <%s>: " - (kcell-view:label)) + (if top-cell-flag + "0" + (kcell-view:label))) (mapcar 'list (mapcar 'symbol-name existing-attributes)))))) @@ -2520,6 +2524,8 @@ confirmation." (interactive (let* ((plist (copy-sequence (kcell-view:plist))) (existing-attributes plist) + (top-cell-flag (zerop (prefix-numeric-value + current-prefix-arg))) attribute value) (barf-if-buffer-read-only) ;; Remove attribute values leaving only attribute symbols in existing-attributes. @@ -2535,19 +2541,23 @@ confirmation." (while (zerop (length (setq attribute (completing-read (format "Name of attribute to set in cell <%s>: " - (kcell-view:label)) + (if top-cell-flag + "0" + (kcell-view:label))) (mapcar 'list (mapcar 'symbol-name existing-attributes)))))) (beep)) (setq attribute (intern attribute) - value (kcell-view:get-attr attribute)) + value (if top-cell-flag + (kcell:get-attr (kview:top-cell kview) attribute) + (kcell-view:get-attr attribute))) (if value (setq value (read-minibuffer - (format "Change the value of `%s' to: " attribute) - (prin1-to-string value t))) + (format "Change the value of `%s' to (use double quotes around a string): " attribute) + (prin1-to-string value))) (setq value (read-minibuffer - (format "Set property `%s' to (use double quotes around a string): " attribute)))) + (format "Set attribute `%s' to (use double quotes around a string): " attribute)))) (list attribute value nil current-prefix-arg))) (barf-if-buffer-read-only) (if top-cell-flag