branch: externals/rec-mode
commit 37e53b68466ce6fb2164c27a39f50c9a85f610e3
Author: Jose E. Marchesi <[email protected]>
Commit: Antoine Kalmbach <[email protected]>
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 ()