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

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

[elpa] externals/dash 9727f7c 288/316: Simplify Lisp -> Texinfo printing


From: ELPA Syncer
Subject: [elpa] externals/dash 9727f7c 288/316: Simplify Lisp -> Texinfo printing
Date: Mon, 15 Feb 2021 15:58:19 -0500 (EST)

branch: externals/dash
commit 9727f7c38c0997d574e73a8d75b783cc76d81c7d
Author: Basil L. Contovounesios <contovob@tcd.ie>
Commit: Basil L. Contovounesios <contovob@tcd.ie>

    Simplify Lisp -> Texinfo printing
    
    * dev/examples-to-info.el (dash--print-lisp-as-texi): Use
    print-escape-control-characters instead of emulating it.
    * dash.texi: Regenerate.
---
 dash.texi               |  2 +-
 dev/examples-to-info.el | 27 +++++++++------------------
 2 files changed, 10 insertions(+), 19 deletions(-)

diff --git a/dash.texi b/dash.texi
index f6149b5..aae4f9f 100644
--- a/dash.texi
+++ b/dash.texi
@@ -4345,7 +4345,7 @@ See @var{srfi-26} for detailed description.
 @end group
 @group
 (-map (-cut <> 1 2 3) '(list vector string))
-    @result{} '((1 2 3) [1 2 3] "\^A\^B\^C")
+    @result{} '((1 2 3) [1 2 3] "\1\2\3")
 @end group
 @end example
 @end defmac
diff --git a/dev/examples-to-info.el b/dev/examples-to-info.el
index da5da5d..1730a46 100644
--- a/dev/examples-to-info.el
+++ b/dev/examples-to-info.el
@@ -30,25 +30,16 @@
 
 (defun dash--print-lisp-as-texi (obj)
   "Print Lisp OBJ suitably for Texinfo."
-  (save-excursion (let ((print-quoted t)) (prin1 obj)))
-  (while (re-search-forward (rx (| (group "\\?")
-                                   (group (in "{}"))
-                                   (group ?\' symbol-start "nil" symbol-end)
-                                   (not (in ?\n print))))
+  (let ((print-quoted t)
+        (print-escape-control-characters t))
+    (save-excursion (prin1 obj)))
+  (while (re-search-forward (rx (| (group ?\' symbol-start "nil" symbol-end)
+                                   (group "\\?") (in "{}")))
                             nil 'move)
-    (cond ((match-beginning 1)
-           ;; Unescape `-any\?' -> `-any?'.
-           (delete-region (- (point) 2) (1- (point))))
-          ((match-beginning 2)
-           ;; Escape braces with @.
-           (backward-char)
-           (insert ?@)
-           (forward-char))
-          ;; Don't let '() be printed as 'nil.
-          ((match-beginning 3) (replace-match "'()" t t))
-          ;; Translate unprintable characters such as ?\^A.
-          ((let ((desc (text-char-description (preceding-char))))
-             (replace-match (concat "\\" desc) t t))))))
+    (replace-match (cond ((match-beginning 1) "'()") ; 'nil -> '().
+                         ((match-beginning 2) "?")   ; `-any\?' -> `-any?'.
+                         ("@\\&"))                   ; { -> @{.
+                   t)))
 
 (defun example-to-string (example)
   (pcase-let* ((`(,actual ,err ,expected) example)



reply via email to

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