aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader2000-11-27 09:49:29 +0000
committerMiles Bader2000-11-27 09:49:29 +0000
commitec7251660f25010ae772a337cc0fbdcd3d7b6595 (patch)
treedb3d177eb239b5642279df456a13af4fd9740b14
parenta2e6f42617d5ec5927a096d016fe65b7ed0991f0 (diff)
downloademacs-ec7251660f25010ae772a337cc0fbdcd3d7b6595.tar.gz
emacs-ec7251660f25010ae772a337cc0fbdcd3d7b6595.zip
(widget-field-buffer, widget-field-start)
(widget-field-end): Handle widget field `pseudo-overlays'. (widget-field-value-delete): Delete WIDGET from `widget-field-new' if it's there instead of in `widget-field-list'.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/wid-edit.el29
2 files changed, 23 insertions, 11 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index f5683ff19e2..755b7ca1301 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,10 @@
12000-11-27 Miles Bader <miles@gnu.org> 12000-11-27 Miles Bader <miles@gnu.org>
2 2
3 * wid-edit.el (widget-field-buffer, widget-field-start)
4 (widget-field-end): Handle widget field `pseudo-overlays'.
5 (widget-field-value-delete): Delete WIDGET from `widget-field-new'
6 if it's there instead of in `widget-field-list'.
7
3 * help.el (help-manyarg-func-alist): Correct entry for `vconcat'. 8 * help.el (help-manyarg-func-alist): Correct entry for `vconcat'.
4 (help-make-xrefs): Delete extraneous newlines at the end of the 9 (help-make-xrefs): Delete extraneous newlines at the end of the
5 docstring. 10 docstring.
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 37454280445..6b5c1fbd99f 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1093,12 +1093,17 @@ When not inside a field, move to the previous button or field."
1093(defun widget-field-buffer (widget) 1093(defun widget-field-buffer (widget)
1094 "Return the start of WIDGET's editing field." 1094 "Return the start of WIDGET's editing field."
1095 (let ((overlay (widget-get widget :field-overlay))) 1095 (let ((overlay (widget-get widget :field-overlay)))
1096 (and overlay (overlay-buffer overlay)))) 1096 (cond ((overlayp overlay)
1097 (overlay-buffer overlay))
1098 ((consp overlay)
1099 (marker-buffer (car overlay))))))
1097 1100
1098(defun widget-field-start (widget) 1101(defun widget-field-start (widget)
1099 "Return the start of WIDGET's editing field." 1102 "Return the start of WIDGET's editing field."
1100 (let ((overlay (widget-get widget :field-overlay))) 1103 (let ((overlay (widget-get widget :field-overlay)))
1101 (and overlay (overlay-start overlay)))) 1104 (if (overlayp overlay)
1105 (overlay-start overlay)
1106 (car overlay))))
1102 1107
1103(defun widget-field-end (widget) 1108(defun widget-field-end (widget)
1104 "Return the end of WIDGET's editing field." 1109 "Return the end of WIDGET's editing field."
@@ -1106,15 +1111,16 @@ When not inside a field, move to the previous button or field."
1106 ;; Don't subtract one if local-map works at the end of the overlay, 1111 ;; Don't subtract one if local-map works at the end of the overlay,
1107 ;; or if a special `boundary' field has been added after the widget 1112 ;; or if a special `boundary' field has been added after the widget
1108 ;; field. 1113 ;; field.
1109 (and overlay 1114 (if (overlayp overlay)
1110 (if (and (not (eq (get-char-property (overlay-end overlay) 1115 (if (and (not (eq (get-char-property (overlay-end overlay)
1111 'field 1116 'field
1112 (widget-field-buffer widget)) 1117 (widget-field-buffer widget))
1113 'boundary)) 1118 'boundary))
1114 (or widget-field-add-space 1119 (or widget-field-add-space
1115 (null (widget-get widget :size)))) 1120 (null (widget-get widget :size))))
1116 (1- (overlay-end overlay)) 1121 (1- (overlay-end overlay))
1117 (overlay-end overlay))))) 1122 (overlay-end overlay))
1123 (cdr overlay))))
1118 1124
1119(defun widget-field-find (pos) 1125(defun widget-field-find (pos)
1120 "Return the field at POS. 1126 "Return the field at POS.
@@ -1745,6 +1751,7 @@ the earlier input."
1745(defun widget-field-value-delete (widget) 1751(defun widget-field-value-delete (widget)
1746 "Remove the widget from the list of active editing fields." 1752 "Remove the widget from the list of active editing fields."
1747 (setq widget-field-list (delq widget widget-field-list)) 1753 (setq widget-field-list (delq widget widget-field-list))
1754 (setq widget-field-new (delq widget widget-field-new))
1748 ;; These are nil if the :format string doesn't contain `%v'. 1755 ;; These are nil if the :format string doesn't contain `%v'.
1749 (let ((overlay (widget-get widget :field-overlay))) 1756 (let ((overlay (widget-get widget :field-overlay)))
1750 (when (overlayp overlay) 1757 (when (overlayp overlay)