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

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

[elpa] externals/rec-mode 37e53b6 31/98: rec-mode: complete support for


From: Stefan Monnier
Subject: [elpa] externals/rec-mode 37e53b6 31/98: rec-mode: complete support for editing fields storing enumerated values.
Date: Thu, 12 Nov 2020 13:18:34 -0500 (EST)

branch: externals/rec-mode
commit 37e53b68466ce6fb2164c27a39f50c9a85f610e3
Author: Jose E. Marchesi <jemarch@gnu.org>
Commit: Antoine Kalmbach <ane@iki.fi>

    rec-mode: complete support for editing fields storing enumerated values.
---
 etc/rec-mode.el | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/etc/rec-mode.el b/etc/rec-mode.el
index b0438cd..e0f17fa 100644
--- a/etc/rec-mode.el
+++ b/etc/rec-mode.el
@@ -1220,18 +1220,27 @@ buffer"
         (cond
          ((equal (rec-type-kind field-type) 'enum)
           (let* ((data (rec-type-data field-type))
+                 (i -1)
                  (fast-selection-data (mapcar
                                        (lambda (elem)
-                                         (list elem ?a))
+                                         (setq i (+ i 1))
+                                         (list elem (+ i ?a)))
                                        data))
-                 (new-value (rec-fast-selection fast-selection-data "New 
value")))
-            (when new-value
-              (let ((buffer-read-only nil))
+                 (letter (rec-fast-selection fast-selection-data "New value")))
+            (when letter
+              (let ((buffer-read-only nil)
+                    new-value)
+                (mapcar
+                 (lambda (elem)
+                   (when (equal letter (cadr elem))
+                     (setq new-value (car elem))))
+                 fast-selection-data)
                 (rec-delete-field)
-                (rec-insert-field (list 'field
-                                        0
-                                        field-name
-                                        new-value))))))
+                (save-excursion
+                  (rec-insert-field (list 'field
+                                          0
+                                          field-name
+                                          new-value)))))))
          (t
           (setq edit-buf (get-buffer-create "Rec Edit"))
           (set-buffer edit-buf)
@@ -1477,7 +1486,7 @@ the modeline."
   (interactive)
   (let ((type (rec-current-field-type)))
     (if type
-        (message "%s" (rec-type-text type))
+        (display-message-or-buffer (rec-type-text type))
       (message "Unrestricted text"))))
 
 (defun rec-cmd-count ()



reply via email to

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