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

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

[nongnu] elpa/hyperdrive 9c0cf70040 094/102: Fix: (h//format) Don't use


From: ELPA Syncer
Subject: [nongnu] elpa/hyperdrive 9c0cf70040 094/102: Fix: (h//format) Don't use lambdas in format-spec yet
Date: Wed, 29 Nov 2023 04:00:58 -0500 (EST)

branch: elpa/hyperdrive
commit 9c0cf700400cdc96b42c34e1e99b52f2349d0988
Author: Joseph Turner <joseph@ushin.org>
Commit: Joseph Turner <joseph@ushin.org>

    Fix: (h//format) Don't use lambdas in format-spec yet
    
    Revert one of the changes in 62ef2a26.  We can revisit these changes
    when deprecating Emacs 28.
---
 hyperdrive-lib.el | 41 +++++++++++++++++++++++++----------------
 1 file changed, 25 insertions(+), 16 deletions(-)

diff --git a/hyperdrive-lib.el b/hyperdrive-lib.el
index 5dce6a2b6f..8acbec9d57 100644
--- a/hyperdrive-lib.el
+++ b/hyperdrive-lib.el
@@ -975,22 +975,31 @@ according to FORMATS, by default `hyperdrive-formats', 
which see."
                               (propertize value 'face face))
                     "")))
       (format-spec format
-                   `((?H . ,(lambda () (h//preferred-format hyperdrive)))
-                     (?P . ,(lambda () (fmt 'petname petname 'h/petname)))
-                     (?N . ,(lambda () (fmt 'nickname nickname 'h/nickname)))
-                     (?k . ,(lambda () (fmt 'short-key public-key 
'h/public-key)))
-                     (?K . ,(lambda () (fmt 'public-key public-key 
'h/public-key)))
-                     (?S . ,(lambda () (fmt 'seed seed 'h/seed)))
-                     (?D . ,(lambda ()
-                              (if (car domains)
-                                  (format (alist-get 'domains formats)
-                                          (string-join
-                                           (mapcar (lambda (domain)
-                                                     (propertize domain
-                                                                 'face 
'h/domain))
-                                                   domains)
-                                           ","))
-                                ""))))))))
+                   ;; TODO(deprecate-28): Use lambdas in each specifier.
+                   `((?H . ,(and (string-match-p (rx "%"
+                                                     ;; Flags
+                                                     (optional (1+ (or " " "0" 
"-" "<" ">" "^" "_")))
+                                                     (0+ digit) ;; Width
+                                                     (0+ digit) ;; Precision
+                                                     "H")
+                                                 format)
+                                 ;; HACK: Once using lambdas in this specifier,
+                                 ;; remove the `string-match-p' check.
+                                 (h//preferred-format hyperdrive)))
+                     (?P . ,(fmt 'petname petname 'h/petname))
+                     (?N . ,(fmt 'nickname nickname 'h/nickname))
+                     (?k . ,(fmt 'short-key public-key 'h/public-key))
+                     (?K . ,(fmt 'public-key public-key 'h/public-key))
+                     (?S . ,(fmt 'seed seed 'h/seed))
+                     (?D . ,(if (car domains)
+                                (format (alist-get 'domains formats)
+                                        (string-join
+                                         (mapcar (lambda (domain)
+                                                   (propertize domain
+                                                               'face 
'h/domain))
+                                                 domains)
+                                         ","))
+                              "")))))))
 
 (defun h//preferred-format (hyperdrive &optional format formats)
   "Return HYPERDRIVE's formatted hostname, or nil.



reply via email to

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