emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/logos be3333b696: Guard against void outline-regexp


From: ELPA Syncer
Subject: [elpa] externals/logos be3333b696: Guard against void outline-regexp
Date: Mon, 19 Sep 2022 22:57:45 -0400 (EDT)

branch: externals/logos
commit be3333b6969c34bb3317d11f1daef6aa5af476cb
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>

    Guard against void outline-regexp
    
    The previous value would cause a problem if the outline-regexp had not
    been set yet.  In a typical Emacs session, even on 'emacs -Q', the
    outline-regexp is set in the scratch buffer, so we always have a valid
    value.  However, when the user changes the initial-buffer-choice or
    opens Emacs directly for a given file, the outline-regexp can be void,
    causing an error with logos-outline-regexp-alist.
    
    Thanks to Xiaoduan for informing me about this error and for testing my
    code on how to fix it.  This was done via a private channel and is
    shared with permission.
---
 README.org | 17 ++++++++++-------
 logos.el   |  4 ++--
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/README.org b/README.org
index 4fdc28ce59..72797c6930 100644
--- a/README.org
+++ b/README.org
@@ -226,13 +226,15 @@ changes out-of-the-box 
([[#h:2bb57369-352a-43bf-afe3-0bed2fcc7359][Extra tweaks]
 #+begin_src emacs-lisp
 (require 'logos)
 
-;; If you want to use outlines instead of page breaks (the ^L)
+;; If you want to use outlines instead of page breaks (the ^L):
 (setq logos-outlines-are-pages t)
+
+;; This is the default value for the outlines:
 (setq logos-outline-regexp-alist
       `((emacs-lisp-mode . "^;;;+ ")
         (org-mode . "^\\*+ +")
         (markdown-mode . "^\\#+ +")
-        (t . ,(or outline-regexp logos--page-delimiter))))
+        (t . ,(if (boundp 'outline-regexp) outline-regexp 
logos--page-delimiter))))
 
 ;; These apply when `logos-focus-mode' is enabled.  Their value is
 ;; buffer-local.
@@ -434,7 +436,7 @@ as an outline, else the standard =^L=.
 (setq logos-outline-regexp-alist
       `((emacs-lisp-mode . "^;;;+ ")
         (org-mode . "^\\*+ +")
-        (t . ,(or outline-regexp logos--page-delimiter))))
+        (t . ,(if (boundp 'outline-regexp) outline-regexp 
logos--page-delimiter))))
 #+end_src
 
 It is possible to tweak those regular expressions to target both the
@@ -444,7 +446,7 @@ outline and the page delimiters:
 (setq logos-outline-regexp-alist
       `((emacs-lisp-mode . ,(format "\\(^;;;+ \\|%s\\)" (default-value 
'page-delimiter)))
         (org-mode . ,(format "\\(^\\*+ +\\|%s\\)" (default-value 
'page-delimiter)))
-        (t . ,(or outline-regexp logos--page-delimiter))))
+        (t . ,(if (boundp 'outline-regexp) outline-regexp 
logos--page-delimiter))))
 #+end_src
 
 The form =,(format "\\(^;;;+ \\|%s\\)" logos--page-delimiter)= expands
@@ -458,7 +460,7 @@ pattern).  Putting it all together:
 (setq logos-outline-regexp-alist
       `((emacs-lisp-mode . ,(format "\\(^;;;+ \\|%s\\)" logos--page-delimiter))
         (org-mode . ,(format "\\(^\\*+ +\\|^-\\{5\\}$\\|%s\\)" 
logos--page-delimiter))
-        (t . ,(or outline-regexp logos--page-delimiter))))
+        (t . ,(if (boundp 'outline-regexp) outline-regexp 
logos--page-delimiter))))
 #+end_src
 
 Another Org-specific tweak is to use heading levels up to a specific
@@ -472,7 +474,7 @@ end result can look like this:
 (setq logos-outline-regexp-alist
       `((emacs-lisp-mode . ,(format "\\(^;;;+ \\|%s\\)" logos--page-delimiter))
         (org-mode . ,(format "\\(^\\*\\{1,3\\} +\\|^-\\{5\\}$\\|%s\\)" 
logos--page-delimiter))
-        (t . ,(or outline-regexp logos--page-delimiter))))
+        (t . ,(if (boundp 'outline-regexp) outline-regexp 
logos--page-delimiter))))
 #+end_src
 
 ** Leverage logos-focus-mode-extra-functions
@@ -620,7 +622,8 @@ Logos is meant to be a collective effort.  Every bit of 
help matters.
   Omar AntolĂ­n Camarena, Philip Kaludercic, Remco van 't Veer, and user
   Ypot.
 
-+ Ideas and/or user feedback :: Daniel Mendler, Marcel Ventosa, Ypot.
++ Ideas and/or user feedback :: Daniel Mendler, Marcel Ventosa,
+  Xiaoduan, Ypot.
 
 * GNU Free Documentation License
 :PROPERTIES:
diff --git a/logos.el b/logos.el
index 5d288a5520..233199c6a0 100644
--- a/logos.el
+++ b/logos.el
@@ -6,7 +6,7 @@
 ;; Maintainer: Logos Development <~protesilaos/logos@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/logos
 ;; Mailing-List: https://lists.sr.ht/~protesilaos/logos
-;; Version: 0.5.0
+;; Version: 0.5.1
 ;; Package-Requires: ((emacs "27.1"))
 ;; Keywords: convenience, focus, writing, presentation, narrowing
 
@@ -114,7 +114,7 @@ When this variable is nil, pages are demarcated by the
   `((emacs-lisp-mode . "^;;;+ ")
     (org-mode . "^\\*+ +")
     (markdown-mode . "^\\#+ +")
-    (t . ,(or outline-regexp logos--page-delimiter)))
+    (t . ,(if (boundp 'outline-regexp) outline-regexp logos--page-delimiter)))
   "Alist of major mode and regular expression of the outline.
 Only used when `logos-outlines-are-pages' is non-nil.
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]