all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Start of Emacs 30 release cycle
@ 2024-06-23 13:44 Eli Zaretskii
  2024-06-24  8:32 ` Stephen Berman
  0 siblings, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2024-06-23 13:44 UTC (permalink / raw)
  To: emacs-devel

Hi,

I've created the emacs-30 release branch, which will be used to
release the Emacs 30.x series.  Changes installed on this branch
should be bugfixes that do not modify too low-level code, and thus
don't risk destabilizing the codebase we have on that branch now.  All
the other changes, including new features, should be installed on
master, as usual.  If in doubt whether a particular change should be
installed on master or on the release branch, please ask here.

Please build the emacs-30 branch on your system and with your
configuration options, and report any problems you see (via "M-x
report-emacs-bug").

I hope to make the first pretest of Emacs 30.1 in about a month from
now.

Thanks.



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-23 13:44 Eli Zaretskii
@ 2024-06-24  8:32 ` Stephen Berman
  2024-06-24 12:47   ` Eli Zaretskii
  0 siblings, 1 reply; 15+ messages in thread
From: Stephen Berman @ 2024-06-24  8:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

On Sun, 23 Jun 2024 16:44:48 +0300 Eli Zaretskii <eliz@gnu.org> wrote:

> I've created the emacs-30 release branch, which will be used to
> release the Emacs 30.x series.  Changes installed on this branch
> should be bugfixes that do not modify too low-level code, and thus
> don't risk destabilizing the codebase we have on that branch now.  All
> the other changes, including new features, should be installed on
> master, as usual.  If in doubt whether a particular change should be
> installed on master or on the release branch, please ask here.

Can the patches for wid-edit.el in bug#69942 and bug#70594 still be
installed on the emacs-30 branch?  In particular, the patch in bug#70594
fixes (or, as I see it, completes) commit 91333dacfa1, which is on the
emacs-30 branch.

Steve Berman



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-24  8:32 ` Stephen Berman
@ 2024-06-24 12:47   ` Eli Zaretskii
  2024-06-24 13:49     ` Stephen Berman
  0 siblings, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2024-06-24 12:47 UTC (permalink / raw)
  To: Stephen Berman, maurooaranda; +Cc: emacs-devel

> From: Stephen Berman <stephen.berman@gmx.net>
> Cc: emacs-devel@gnu.org
> Date: Mon, 24 Jun 2024 10:32:21 +0200
> 
> On Sun, 23 Jun 2024 16:44:48 +0300 Eli Zaretskii <eliz@gnu.org> wrote:
> 
> > I've created the emacs-30 release branch, which will be used to
> > release the Emacs 30.x series.  Changes installed on this branch
> > should be bugfixes that do not modify too low-level code, and thus
> > don't risk destabilizing the codebase we have on that branch now.  All
> > the other changes, including new features, should be installed on
> > master, as usual.  If in doubt whether a particular change should be
> > installed on master or on the release branch, please ask here.
> 
> Can the patches for wid-edit.el in bug#69942 and bug#70594 still be
> installed on the emacs-30 branch?  In particular, the patch in bug#70594
> fixes (or, as I see it, completes) commit 91333dacfa1, which is on the
> emacs-30 branch.

Given the efforts it took me to get any responses to repeated pings in
discussing those bugs, it would be justified for me to say NO.  (One
of the two bugs still doesn't have a consensus about what to install,
AFAIU.)  But I'm willing to give people one more chance.  I think it'd
also be good to see the patches themselves, since we've seen them so
long ago.



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-24 12:47   ` Eli Zaretskii
@ 2024-06-24 13:49     ` Stephen Berman
  2024-06-24 15:05       ` Eli Zaretskii
  0 siblings, 1 reply; 15+ messages in thread
From: Stephen Berman @ 2024-06-24 13:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: maurooaranda, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1875 bytes --]

On Mon, 24 Jun 2024 15:47:24 +0300 Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Stephen Berman <stephen.berman@gmx.net>
>> Cc: emacs-devel@gnu.org
>> Date: Mon, 24 Jun 2024 10:32:21 +0200
>>
>> On Sun, 23 Jun 2024 16:44:48 +0300 Eli Zaretskii <eliz@gnu.org> wrote:
>>
>> > I've created the emacs-30 release branch, which will be used to
>> > release the Emacs 30.x series.  Changes installed on this branch
>> > should be bugfixes that do not modify too low-level code, and thus
>> > don't risk destabilizing the codebase we have on that branch now.  All
>> > the other changes, including new features, should be installed on
>> > master, as usual.  If in doubt whether a particular change should be
>> > installed on master or on the release branch, please ask here.
>>
>> Can the patches for wid-edit.el in bug#69942 and bug#70594 still be
>> installed on the emacs-30 branch?  In particular, the patch in bug#70594
>> fixes (or, as I see it, completes) commit 91333dacfa1, which is on the
>> emacs-30 branch.
>
> Given the efforts it took me to get any responses to repeated pings in
> discussing those bugs, it would be justified for me to say NO.

In case you've forgotten, I responded numerous times, including finding
shortcomings in previous patches of mine and correcting them (and in
another case (bug#69941) even withdrawing my patch as unsuitable).  I
appreciate that Mauro has more familiarity and experience with the
widget code than I do, but maybe he just doesn't have time for it now.

>                                                                 (One
> of the two bugs still doesn't have a consensus about what to install,
> AFAIU.)  But I'm willing to give people one more chance.  I think it'd
> also be good to see the patches themselves, since we've seen them so
> long ago.

Here's the patch for bug#69942:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: widget-unselected face patch --]
[-- Type: text/x-patch, Size: 5230 bytes --]

diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index dc481d4d0a5..b7673b01c73 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -555,6 +555,29 @@ widget-specify-active
       (delete-overlay inactive)
       (widget-put widget :inactive nil))))

+(defface widget-unselected
+  '((t :inherit widget-inactive))
+  "Face used for unselected widgets."
+  :group 'widget-faces
+  :version "30.1")
+
+(defun widget-specify-unselected (widget from to)
+  "Fontify WIDGET as unselected (not chosen)."
+  (let ((overlay (make-overlay from to nil t nil)))
+    (overlay-put overlay 'face 'widget-unselected)
+    (overlay-put overlay 'evaporate t)
+    ;; The overlay priority here should be lower than the priority in
+    ;; `widget-specify-active' (bug#69942).
+    (overlay-put overlay 'priority 90)
+    (widget-put widget :unselected overlay)))
+
+(defun widget-specify-selected (widget)
+  "Remove fontification of WIDGET as unselected (not chosen)."
+  (let ((unselected (widget-get widget :unselected)))
+    (when unselected
+      (delete-overlay unselected)
+      (widget-put widget :unselected nil))))
+
 ;;; Widget Properties.

 (defsubst widget-type (widget)
@@ -2439,10 +2462,16 @@ 'checkbox
 (defun widget-checkbox-action (widget &optional event)
   "Toggle checkbox, notify parent, and set active state of sibling."
   (widget-toggle-action widget event)
-  (let ((sibling (widget-get-sibling widget)))
+  (let* ((sibling (widget-get-sibling widget))
+         (from (widget-get sibling :from))
+	 (to (widget-get sibling :to)))
     (when sibling
-      (widget-apply sibling
-	            (if (widget-value widget) :activate :deactivate))
+      (if (widget-value widget)
+          (progn
+            (widget-apply sibling :activate)
+            (widget-specify-selected sibling))
+        :deactivate
+        (widget-specify-unselected sibling from to))
       (widget-clear-undo))))

 ;;; The `checklist' Widget.
@@ -2498,15 +2527,18 @@ widget-checklist-add-item
 	       ((eq escape ?v)
 		(setq child
 		      (cond ((not chosen)
-			     (let ((child (widget-create-child widget type)))
-			       (widget-apply child :deactivate)
+			     (let* ((child (widget-create-child widget type))
+                                    (from (widget-get child :from))
+			            (to (widget-get child :to)))
+                               (widget-specify-unselected child from to)
 			       child))
                             ((widget-inline-p type t)
 			     (widget-create-child-value
 			      widget type (cdr chosen)))
 			    (t
 			     (widget-create-child-value
-			      widget type (car (cdr chosen)))))))
+			      widget type (car (cdr chosen)))
+                             (widget-specify-selected child)))))
 	       (t
 		(error "Unknown escape `%c'" escape)))))
      ;; Update properties.
@@ -2677,8 +2709,11 @@ widget-radio-add-item
 				(widget-create-child-value
 				 widget type value)
 			      (widget-create-child widget type)))
-		(unless chosen
-		  (widget-apply child :deactivate)))
+                (if chosen
+                    (widget-specify-selected child)
+                  (let ((from (widget-get child :from))
+			(to (widget-get child :to)))
+                    (widget-specify-unselected child from to))))
 	       (t
 		(error "Unknown escape `%c'" escape)))))
      ;; Update properties.
@@ -2728,14 +2763,17 @@ widget-radio-value-set
     (dolist (current (widget-get widget :children))
       (let* ((button (widget-get current :button))
 	     (match (and (not found)
-			 (widget-apply current :match value))))
+			 (widget-apply current :match value)))
+             (from (widget-get current :from))
+	     (to (widget-get current :to)))
 	(widget-value-set button match)
 	(if match
-	    (progn
-	      (widget-value-set current value)
-	      (widget-apply current :activate))
-	  (widget-apply current :deactivate))
-	(setq found (or found match))))))
+            (progn
+              (widget-value-set current value)
+              (widget-apply current :activate)
+              (widget-specify-selected current))
+          (widget-specify-unselected current from to))
+        (setq found (or found match))))))

 (defun widget-radio-validate (widget)
   ;; Valid if we have made a valid choice.
@@ -2755,13 +2793,16 @@ widget-radio-action
   (let ((buttons (widget-get widget :buttons)))
     (when (memq child buttons)
       (dolist (current (widget-get widget :children))
-	(let* ((button (widget-get current :button)))
+	(let* ((button (widget-get current :button))
+               (from (widget-get current :from))
+	       (to (widget-get current :to)))
 	  (cond ((eq child button)
 		 (widget-value-set button t)
-		 (widget-apply current :activate))
+		 (widget-apply current :activate)
+                 (widget-specify-selected current))
 		((widget-value button)
 		 (widget-value-set button nil)
-		 (widget-apply current :deactivate)))))))
+                 (widget-specify-unselected current from to)))))))
   ;; Pass notification to parent.
   (widget-apply widget :notify child event))


[-- Attachment #3: Type: text/plain, Size: 38 bytes --]


And here's the patch for bug#70594:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: widget-move patch --]
[-- Type: text/x-patch, Size: 2675 bytes --]

diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index dc481d4d0a5..407309c3429 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1263,42 +1263,40 @@ widget-move
 ARG may be negative to move backward.
 When the second optional argument is non-nil,
 nothing is shown in the echo area."
-  (let ((wrapped 0)
-	(number arg)
-	(old (widget-tabable-at)))
-    ;; Forward.
-    (while (> arg 0)
-      (cond ((eobp)
-	     (goto-char (point-min))
-	     (setq wrapped (1+ wrapped)))
-	    (widget-use-overlay-change
-	     (goto-char (next-overlay-change (point))))
-	    (t
-	     (forward-char 1)))
-      (and (= wrapped 2)
-	   (eq arg number)
-	   (error "No buttons or fields found"))
-      (let ((new (widget-tabable-at)))
-	(when new
-	  (unless (eq new old)
-	    (setq arg (1- arg))
-	    (setq old new)))))
-    ;; Backward.
-    (while (< arg 0)
-      (cond ((bobp)
-	     (goto-char (point-max))
-	     (setq wrapped (1+ wrapped)))
-	    (widget-use-overlay-change
-	     (goto-char (previous-overlay-change (point))))
-	    (t
-	     (backward-char 1)))
-      (and (= wrapped 2)
-	   (eq arg number)
-	   (error "No buttons or fields found"))
-      (let ((new (widget-tabable-at)))
-	(when new
-	  (unless (eq new old)
-	    (setq arg (1+ arg))))))
+  (let* ((wrapped 0)
+	 (number arg)
+         (fwd (> arg 0))                ; widget-forward is caller.
+         (bwd (< arg 0))                ; widget-backward is caller.
+	 (old (widget-tabable-at))
+         (tabable (if old 1 0))
+         pos)
+    (catch 'one
+      (while (> (abs arg) 0)
+        (cond ((or (and fwd (eobp)) (and bwd (bobp)))
+	       (goto-char (cond (fwd (point-min))
+                                (bwd (point-max))))
+	       (setq wrapped (1+ wrapped)))
+	      (widget-use-overlay-change
+	       (goto-char (cond (fwd (next-overlay-change (point)))
+                                (bwd (previous-overlay-change (point))))))
+	      (t
+	       (cond (fwd (forward-char 1))
+                     (bwd (backward-char 1)))))
+        (and (= wrapped 2)
+	     (eq arg number)
+             (if (= tabable 1)
+                 (progn
+                   (goto-char pos)
+                   (throw 'one (message "Only one tabable widget")))
+	       (error "No buttons or fields found")))
+        (let ((new (widget-tabable-at)))
+	  (when new
+	    (if (eq new old)
+                (setq pos (point))
+              (cl-incf tabable)
+	      (setq arg (cond (fwd (1- arg))
+                              (bwd (1+ arg))))
+	      (setq old new))))))
     (let ((new (widget-tabable-at)))
       (while (and (eq (widget-tabable-at) new) (not (bobp)))
 	(backward-char)))

[-- Attachment #5: Type: text/plain, Size: 14 bytes --]


Steve Berman

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-24 13:49     ` Stephen Berman
@ 2024-06-24 15:05       ` Eli Zaretskii
  2024-06-25 10:41         ` Stephen Berman
  0 siblings, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2024-06-24 15:05 UTC (permalink / raw)
  To: Stephen Berman; +Cc: maurooaranda, emacs-devel

> From: Stephen Berman <stephen.berman@gmx.net>
> Cc: maurooaranda@gmail.com,  emacs-devel@gnu.org
> Date: Mon, 24 Jun 2024 15:49:24 +0200
> 
> > Given the efforts it took me to get any responses to repeated pings in
> > discussing those bugs, it would be justified for me to say NO.
> 
> In case you've forgotten, I responded numerous times, including finding
> shortcomings in previous patches of mine and correcting them (and in
> another case (bug#69941) even withdrawing my patch as unsuitable).

I didn't forget.

> > of the two bugs still doesn't have a consensus about what to install,
> > AFAIU.)  But I'm willing to give people one more chance.  I think it'd
> > also be good to see the patches themselves, since we've seen them so
> > long ago.
> 
> Here's the patch for bug#69942:

Thanks, but I thought there was a documentation addition to it?

> And here's the patch for bug#70594:

This one is okay for the emacs-30 branch.



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-24 15:05       ` Eli Zaretskii
@ 2024-06-25 10:41         ` Stephen Berman
  2024-06-25 13:48           ` Eli Zaretskii
  2024-06-25 14:10           ` Robert Pluim
  0 siblings, 2 replies; 15+ messages in thread
From: Stephen Berman @ 2024-06-25 10:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: maurooaranda, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 592 bytes --]

On Mon, 24 Jun 2024 18:05:32 +0300 Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Stephen Berman <stephen.berman@gmx.net>
>> Cc: maurooaranda@gmail.com,  emacs-devel@gnu.org
>> Date: Mon, 24 Jun 2024 15:49:24 +0200
[...]
>>
>> Here's the patch for bug#69942:
>
> Thanks, but I thought there was a documentation addition to it?

Yes, indeed.  Is the attached complete patch ready to install in
emacs-30?

>> And here's the patch for bug#70594:
>
> This one is okay for the emacs-30 branch.

Thanks, I pushed it in commit 2f18929319a and I'll close the bug.

Steve Berman


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch for bug#69942 --]
[-- Type: text/x-patch, Size: 6649 bytes --]

diff --git a/doc/misc/widget.texi b/doc/misc/widget.texi
index 2e378e86fc7..8769d9c6191 100644
--- a/doc/misc/widget.texi
+++ b/doc/misc/widget.texi
@@ -3287,6 +3287,16 @@ Customization
 Face used for inactive widgets.
 @end deffn

+@deffn Face widget-unselected
+Face used for unselected widgets.  This face is also used on the text
+labels of radio-button and checkbox widgets.
+
+The default value inherits @code{widget-inactive} face.  If you want to
+visually distinguish the labels of unselected active radio-button or
+checkbox widgets from the labels of unselected inactive widgets,
+customize this face to a non-default value.
+@end deffn
+
 @defopt widget-mouse-face
 Face used for highlighting a button when the mouse pointer moves
 across it.
diff --git a/etc/NEWS b/etc/NEWS
index d8fa92eb71e..841eb7c9c35 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1906,6 +1906,12 @@ options of GNU 'ls'.
 ** Widget

 +++
+*** New face 'widget-unselected'.
+Customize this face to a non-default value to visually distinguish the
+labels of unselected active radio-button or checkbox widgets from the
+labels of unselected inactive widgets (the default value inherits
+'widget-inactive' face).
+
 *** New user option 'widget-skip-inactive'.
 If non-nil, moving point forward or backward between widgets by typing
 'TAB' or 'S-TAB' skips over inactive widgets.  The default value is nil.
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 3b467434d29..c86e82f5852 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -568,6 +568,29 @@ widget-specify-active
       (delete-overlay inactive)
       (widget-put widget :inactive nil))))

+(defface widget-unselected
+  '((t :inherit widget-inactive))
+  "Face used for unselected widgets."
+  :group 'widget-faces
+  :version "30.1")
+
+(defun widget-specify-unselected (widget from to)
+  "Fontify WIDGET as unselected (not chosen)."
+  (let ((overlay (make-overlay from to nil t nil)))
+    (overlay-put overlay 'face 'widget-unselected)
+    (overlay-put overlay 'evaporate t)
+    ;; The overlay priority here should be lower than the priority in
+    ;; `widget-specify-active' (bug#69942).
+    (overlay-put overlay 'priority 90)
+    (widget-put widget :unselected overlay)))
+
+(defun widget-specify-selected (widget)
+  "Remove fontification of WIDGET as unselected (not chosen)."
+  (let ((unselected (widget-get widget :unselected)))
+    (when unselected
+      (delete-overlay unselected)
+      (widget-put widget :unselected nil))))
+
 ;;; Widget Properties.

 (defsubst widget-type (widget)
@@ -2452,10 +2475,16 @@ 'checkbox
 (defun widget-checkbox-action (widget &optional event)
   "Toggle checkbox, notify parent, and set active state of sibling."
   (widget-toggle-action widget event)
-  (let ((sibling (widget-get-sibling widget)))
+  (let* ((sibling (widget-get-sibling widget))
+         (from (widget-get sibling :from))
+	 (to (widget-get sibling :to)))
     (when sibling
-      (widget-apply sibling
-	            (if (widget-value widget) :activate :deactivate))
+      (if (widget-value widget)
+          (progn
+            (widget-apply sibling :activate)
+            (widget-specify-selected sibling))
+        :deactivate
+        (widget-specify-unselected sibling from to))
       (widget-clear-undo))))

 ;;; The `checklist' Widget.
@@ -2511,15 +2540,18 @@ widget-checklist-add-item
 	       ((eq escape ?v)
 		(setq child
 		      (cond ((not chosen)
-			     (let ((child (widget-create-child widget type)))
-			       (widget-apply child :deactivate)
+			     (let* ((child (widget-create-child widget type))
+                                    (from (widget-get child :from))
+			            (to (widget-get child :to)))
+                               (widget-specify-unselected child from to)
 			       child))
                             ((widget-inline-p type t)
 			     (widget-create-child-value
 			      widget type (cdr chosen)))
 			    (t
 			     (widget-create-child-value
-			      widget type (car (cdr chosen)))))))
+			      widget type (car (cdr chosen)))
+                             (widget-specify-selected child)))))
 	       (t
 		(error "Unknown escape `%c'" escape)))))
      ;; Update properties.
@@ -2690,8 +2722,11 @@ widget-radio-add-item
 				(widget-create-child-value
 				 widget type value)
 			      (widget-create-child widget type)))
-		(unless chosen
-		  (widget-apply child :deactivate)))
+                (if chosen
+                    (widget-specify-selected child)
+                  (let ((from (widget-get child :from))
+			(to (widget-get child :to)))
+                    (widget-specify-unselected child from to))))
 	       (t
 		(error "Unknown escape `%c'" escape)))))
      ;; Update properties.
@@ -2741,14 +2776,17 @@ widget-radio-value-set
     (dolist (current (widget-get widget :children))
       (let* ((button (widget-get current :button))
 	     (match (and (not found)
-			 (widget-apply current :match value))))
+			 (widget-apply current :match value)))
+             (from (widget-get current :from))
+	     (to (widget-get current :to)))
 	(widget-value-set button match)
 	(if match
-	    (progn
-	      (widget-value-set current value)
-	      (widget-apply current :activate))
-	  (widget-apply current :deactivate))
-	(setq found (or found match))))))
+            (progn
+              (widget-value-set current value)
+              (widget-apply current :activate)
+              (widget-specify-selected current))
+          (widget-specify-unselected current from to))
+        (setq found (or found match))))))

 (defun widget-radio-validate (widget)
   ;; Valid if we have made a valid choice.
@@ -2768,13 +2806,16 @@ widget-radio-action
   (let ((buttons (widget-get widget :buttons)))
     (when (memq child buttons)
       (dolist (current (widget-get widget :children))
-	(let* ((button (widget-get current :button)))
+	(let* ((button (widget-get current :button))
+               (from (widget-get current :from))
+	       (to (widget-get current :to)))
 	  (cond ((eq child button)
 		 (widget-value-set button t)
-		 (widget-apply current :activate))
+		 (widget-apply current :activate)
+                 (widget-specify-selected current))
 		((widget-value button)
 		 (widget-value-set button nil)
-		 (widget-apply current :deactivate)))))))
+                 (widget-specify-unselected current from to)))))))
   ;; Pass notification to parent.
   (widget-apply widget :notify child event))


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-25 10:41         ` Stephen Berman
@ 2024-06-25 13:48           ` Eli Zaretskii
  2024-06-26  6:45             ` Stephen Berman
  2024-06-25 14:10           ` Robert Pluim
  1 sibling, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2024-06-25 13:48 UTC (permalink / raw)
  To: Stephen Berman; +Cc: maurooaranda, emacs-devel

> From: Stephen Berman <stephen.berman@gmx.net>
> Cc: maurooaranda@gmail.com,  emacs-devel@gnu.org
> Date: Tue, 25 Jun 2024 12:41:02 +0200
> 
> On Mon, 24 Jun 2024 18:05:32 +0300 Eli Zaretskii <eliz@gnu.org> wrote:
> 
> >> From: Stephen Berman <stephen.berman@gmx.net>
> >> Cc: maurooaranda@gmail.com,  emacs-devel@gnu.org
> >> Date: Mon, 24 Jun 2024 15:49:24 +0200
> [...]
> >>
> >> Here's the patch for bug#69942:
> >
> > Thanks, but I thought there was a documentation addition to it?
> 
> Yes, indeed.  Is the attached complete patch ready to install in
> emacs-30?

Yes, thanks.



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-25 10:41         ` Stephen Berman
  2024-06-25 13:48           ` Eli Zaretskii
@ 2024-06-25 14:10           ` Robert Pluim
  2024-06-25 14:48             ` Stephen Berman
  1 sibling, 1 reply; 15+ messages in thread
From: Robert Pluim @ 2024-06-25 14:10 UTC (permalink / raw)
  To: Stephen Berman; +Cc: Eli Zaretskii, maurooaranda, emacs-devel

>>>>> On Tue, 25 Jun 2024 12:41:02 +0200, Stephen Berman <stephen.berman@gmx.net> said:
    Stephen> Yes, indeed.  Is the attached complete patch ready to install in
    Stephen> emacs-30?

Minor comments below (although globally Iʼd say youʼre overriding the
.dir-locals.el setting for `indent-tabs-mode', which is why the diffs
look funny)

    Stephen> diff --git a/doc/misc/widget.texi b/doc/misc/widget.texi
    Stephen> index 2e378e86fc7..8769d9c6191 100644
    Stephen> --- a/doc/misc/widget.texi
    Stephen> +++ b/doc/misc/widget.texi
    Stephen> @@ -3287,6 +3287,16 @@ Customization
    Stephen>  Face used for inactive widgets.
    Stephen>  @end deffn

    Stephen> +@deffn Face widget-unselected
    Stephen> +Face used for unselected widgets.  This face is also used on the text
    Stephen> +labels of radio-button and checkbox widgets.
    Stephen> +
    Stephen> +The default value inherits @code{widget-inactive} face.  If you want to

'inherits from the'

    Stephen> +visually distinguish the labels of unselected active radio-button or
    Stephen> +checkbox widgets from the labels of unselected inactive widgets,
    Stephen> +customize this face to a non-default value.
    Stephen> +@end deffn
    Stephen> +
    Stephen>  @defopt widget-mouse-face
    Stephen>  Face used for highlighting a button when the mouse pointer moves
    Stephen>  across it.
    Stephen> diff --git a/etc/NEWS b/etc/NEWS
    Stephen> index d8fa92eb71e..841eb7c9c35 100644
    Stephen> --- a/etc/NEWS
    Stephen> +++ b/etc/NEWS
    Stephen> @@ -1906,6 +1906,12 @@ options of GNU 'ls'.
    Stephen>  ** Widget

    Stephen>  +++
    Stephen> +*** New face 'widget-unselected'.
    Stephen> +Customize this face to a non-default value to visually distinguish the
    Stephen> +labels of unselected active radio-button or checkbox widgets from the
    Stephen> +labels of unselected inactive widgets (the default value inherits

'inherits from the'

    Stephen> +'widget-inactive' face).
    Stephen> +
    Stephen>  *** New user option 'widget-skip-inactive'.
    Stephen>  If non-nil, moving point forward or backward between widgets by typing
    Stephen>  'TAB' or 'S-TAB' skips over inactive widgets.  The default value is nil.
    Stephen> diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
    Stephen> index 3b467434d29..c86e82f5852 100644
    Stephen> --- a/lisp/wid-edit.el
    Stephen> +++ b/lisp/wid-edit.el
    Stephen> @@ -568,6 +568,29 @@ widget-specify-active
    Stephen>        (delete-overlay inactive)
    Stephen>        (widget-put widget :inactive nil))))

    Stephen> +(defface widget-unselected
    Stephen> +  '((t :inherit widget-inactive))
    Stephen> +  "Face used for unselected widgets."
    Stephen> +  :group 'widget-faces
    Stephen> +  :version "30.1")
    Stephen> +
    Stephen> +(defun widget-specify-unselected (widget from to)
    Stephen> +  "Fontify WIDGET as unselected (not chosen)."

I think the "(not chosen)" bit is redundant.

    Stephen> +  (let ((overlay (make-overlay from to nil t nil)))
    Stephen> +    (overlay-put overlay 'face 'widget-unselected)
    Stephen> +    (overlay-put overlay 'evaporate t)
    Stephen> +    ;; The overlay priority here should be lower than the priority in
    Stephen> +    ;; `widget-specify-active' (bug#69942).
    Stephen> +    (overlay-put overlay 'priority 90)
    Stephen> +    (widget-put widget :unselected overlay)))
    Stephen> +
    Stephen> +(defun widget-specify-selected (widget)
    Stephen> +  "Remove fontification of WIDGET as unselected (not chosen)."

And here as well.

Robert
-- 



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-25 14:10           ` Robert Pluim
@ 2024-06-25 14:48             ` Stephen Berman
  2024-06-25 15:09               ` Robert Pluim
  0 siblings, 1 reply; 15+ messages in thread
From: Stephen Berman @ 2024-06-25 14:48 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Eli Zaretskii, maurooaranda, emacs-devel

On Tue, 25 Jun 2024 16:10:30 +0200 Robert Pluim <rpluim@gmail.com> wrote:

>>>>>> On Tue, 25 Jun 2024 12:41:02 +0200, Stephen Berman
> <stephen.berman@gmx.net> said:
>     Stephen> Yes, indeed.  Is the attached complete patch ready to install in
>     Stephen> emacs-30?
>
> Minor comments below (although globally Iʼd say youʼre overriding the
> .dir-locals.el setting for `indent-tabs-mode', which is why the diffs
> look funny)

I haven't changed indent-tabs-mode: its global value is the default t
but in buffers under emacs/lisp nil.  And the diffs don't look funny to
me; how do they look funny to you?

>     Stephen> +The default value inherits @code{widget-inactive} face.
>
> 'inherits from the'

>     Stephen> +labels of unselected inactive widgets (the default value inherits
>
> 'inherits from the'

>     Stephen> +(defun widget-specify-unselected (widget from to)
>     Stephen> +  "Fontify WIDGET as unselected (not chosen)."
>
> I think the "(not chosen)" bit is redundant.
>
>     Stephen> +(defun widget-specify-selected (widget)
>     Stephen> +  "Remove fontification of WIDGET as unselected (not chosen)."
>
> And here as well.

Ok, I'll make those changes.

Thanks.

Steve Berman



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-25 14:48             ` Stephen Berman
@ 2024-06-25 15:09               ` Robert Pluim
  2024-06-25 15:57                 ` Eli Zaretskii
  0 siblings, 1 reply; 15+ messages in thread
From: Robert Pluim @ 2024-06-25 15:09 UTC (permalink / raw)
  To: Stephen Berman; +Cc: Eli Zaretskii, maurooaranda, emacs-devel

>>>>> On Tue, 25 Jun 2024 16:48:43 +0200, Stephen Berman <stephen.berman@gmx.net> said:

    Stephen> On Tue, 25 Jun 2024 16:10:30 +0200 Robert Pluim <rpluim@gmail.com> wrote:
    >>>>>>> On Tue, 25 Jun 2024 12:41:02 +0200, Stephen Berman
    >> <stephen.berman@gmx.net> said:
    Stephen> Yes, indeed.  Is the attached complete patch ready to install in
    Stephen> emacs-30?
    >> 
    >> Minor comments below (although globally Iʼd say youʼre overriding the
    >> .dir-locals.el setting for `indent-tabs-mode', which is why the diffs
    >> look funny)

    Stephen> I haven't changed indent-tabs-mode: its global value is the default t
    Stephen> but in buffers under emacs/lisp nil.  And the diffs don't look funny to
    Stephen> me; how do they look funny to you?

eg this hunk:

 (defsubst widget-type (widget)
@@ -2452,10 +2475,16 @@ 'checkbox
 (defun widget-checkbox-action (widget &optional event)
   "Toggle checkbox, notify parent, and set active state of sibling."
   (widget-toggle-action widget event)
-  (let ((sibling (widget-get-sibling widget)))
+  (let* ((sibling (widget-get-sibling widget))
+         (from (widget-get sibling :from))
+	 (to (widget-get sibling :to)))

Thereʼs a tab on the line for 'to', but the line for 'from' uses spaces.

Robert
-- 



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-25 15:09               ` Robert Pluim
@ 2024-06-25 15:57                 ` Eli Zaretskii
  2024-06-26  6:53                   ` Stephen Berman
  0 siblings, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2024-06-25 15:57 UTC (permalink / raw)
  To: Robert Pluim; +Cc: stephen.berman, maurooaranda, emacs-devel

> From: Robert Pluim <rpluim@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>,  maurooaranda@gmail.com,  emacs-devel@gnu.org
> Date: Tue, 25 Jun 2024 17:09:48 +0200
> 
>     Stephen> I haven't changed indent-tabs-mode: its global value is the default t
>     Stephen> but in buffers under emacs/lisp nil.  And the diffs don't look funny to
>     Stephen> me; how do they look funny to you?
> 
> eg this hunk:
> 
>  (defsubst widget-type (widget)
> @@ -2452,10 +2475,16 @@ 'checkbox
>  (defun widget-checkbox-action (widget &optional event)
>    "Toggle checkbox, notify parent, and set active state of sibling."
>    (widget-toggle-action widget event)
> -  (let ((sibling (widget-get-sibling widget)))
> +  (let* ((sibling (widget-get-sibling widget))
> +         (from (widget-get sibling :from))
> +	 (to (widget-get sibling :to)))
> 
> Thereʼs a tab on the line for 'to', but the line for 'from' uses spaces.

The original .dir-locals.el also has TABs.



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-25 13:48           ` Eli Zaretskii
@ 2024-06-26  6:45             ` Stephen Berman
  0 siblings, 0 replies; 15+ messages in thread
From: Stephen Berman @ 2024-06-26  6:45 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: maurooaranda, emacs-devel

On Tue, 25 Jun 2024 16:48:47 +0300 Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Stephen Berman <stephen.berman@gmx.net>
>> Cc: maurooaranda@gmail.com,  emacs-devel@gnu.org
>> Date: Tue, 25 Jun 2024 12:41:02 +0200
>>
>> On Mon, 24 Jun 2024 18:05:32 +0300 Eli Zaretskii <eliz@gnu.org> wrote:
>>
>> >> From: Stephen Berman <stephen.berman@gmx.net>
>> >> Cc: maurooaranda@gmail.com,  emacs-devel@gnu.org
>> >> Date: Mon, 24 Jun 2024 15:49:24 +0200
>> [...]
>> >>
>> >> Here's the patch for bug#69942:
>> >
>> > Thanks, but I thought there was a documentation addition to it?
>>
>> Yes, indeed.  Is the attached complete patch ready to install in
>> emacs-30?
>
> Yes, thanks.

Done (with the doc changes suggested by Robert Pluim) in commit
8d354925ddb and I'll close the bug.

Steve Berman



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
@ 2024-06-26  6:48 Pedro Andres Aranda Gutierrez
  0 siblings, 0 replies; 15+ messages in thread
From: Pedro Andres Aranda Gutierrez @ 2024-06-26  6:48 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 441 bytes --]

Hi

just taking a second to say thank you and report that I have emacs-30
running on a Linux (with native comp) and two MacBooks (one of them
ancient) without major nuisances...

Best, /PA
-- 
Fragen sind nicht da, um beantwortet zu werden,
Fragen sind da um gestellt zu werden
Georg Kreisler

Headaches with a Juju log:
unit-basic-16: 09:17:36 WARNING juju.worker.uniter.operation we should run
a leader-deposed hook here, but we can't yet

[-- Attachment #2: Type: text/html, Size: 773 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-25 15:57                 ` Eli Zaretskii
@ 2024-06-26  6:53                   ` Stephen Berman
  2024-06-26  9:27                     ` Robert Pluim
  0 siblings, 1 reply; 15+ messages in thread
From: Stephen Berman @ 2024-06-26  6:53 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Robert Pluim, maurooaranda, emacs-devel

On Tue, 25 Jun 2024 18:57:33 +0300 Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Robert Pluim <rpluim@gmail.com>
>> Cc: Eli Zaretskii <eliz@gnu.org>,  maurooaranda@gmail.com,  emacs-devel@gnu.org
>> Date: Tue, 25 Jun 2024 17:09:48 +0200
>> 
>>     Stephen> I haven't changed indent-tabs-mode: its global value is the default t
>>     Stephen> but in buffers under emacs/lisp nil.  And the diffs don't look
>>     Stephen> funny to
>>     Stephen> me; how do they look funny to you?
>> 
>> eg this hunk:
>> 
>>  (defsubst widget-type (widget)
>> @@ -2452,10 +2475,16 @@ 'checkbox
>>  (defun widget-checkbox-action (widget &optional event)
>>    "Toggle checkbox, notify parent, and set active state of sibling."
>>    (widget-toggle-action widget event)
>> -  (let ((sibling (widget-get-sibling widget)))
>> +  (let* ((sibling (widget-get-sibling widget))
>> +         (from (widget-get sibling :from))
>> +	 (to (widget-get sibling :to)))
>> 
>> Thereʼs a tab on the line for 'to', but the line for 'from' uses spaces.

Ah, right.  I see things like that when I give the diff a close look,
but since the faces of whitespace-mode, though enabled, are not visible
in diff-mode (is this intended?), I often don't notice it.

> The original .dir-locals.el also has TABs.

And wid-edit.el is replete with tabs and spaces, so if I unintentionally
added a tab or two (but using only default settings for
emacs-lisp-mode), I don't think it significantly worsens the situation.

Steve Berman



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Start of Emacs 30 release cycle
  2024-06-26  6:53                   ` Stephen Berman
@ 2024-06-26  9:27                     ` Robert Pluim
  0 siblings, 0 replies; 15+ messages in thread
From: Robert Pluim @ 2024-06-26  9:27 UTC (permalink / raw)
  To: Stephen Berman; +Cc: Eli Zaretskii, maurooaranda, emacs-devel

>>>>> On Wed, 26 Jun 2024 08:53:52 +0200, Stephen Berman <stephen.berman@gmx.net> said:

    >>> Thereʼs a tab on the line for 'to', but the line for 'from' uses spaces.

    Stephen> Ah, right.  I see things like that when I give the diff a close look,
    Stephen> but since the faces of whitespace-mode, though enabled, are not visible
    Stephen> in diff-mode (is this intended?), I often don't notice it.

Yes, it can be hard to spot. The indentation difference is what I
notices.

    >> The original .dir-locals.el also has TABs.

    Stephen> And wid-edit.el is replete with tabs and spaces, so if I unintentionally
    Stephen> added a tab or two (but using only default settings for
    Stephen> emacs-lisp-mode), I don't think it significantly worsens the situation.

Right. And we definitely do not want "letʼs change all the tabs to
spaces" patches

Robert
-- 



^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2024-06-26  9:27 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-26  6:48 Start of Emacs 30 release cycle Pedro Andres Aranda Gutierrez
  -- strict thread matches above, loose matches on Subject: below --
2024-06-23 13:44 Eli Zaretskii
2024-06-24  8:32 ` Stephen Berman
2024-06-24 12:47   ` Eli Zaretskii
2024-06-24 13:49     ` Stephen Berman
2024-06-24 15:05       ` Eli Zaretskii
2024-06-25 10:41         ` Stephen Berman
2024-06-25 13:48           ` Eli Zaretskii
2024-06-26  6:45             ` Stephen Berman
2024-06-25 14:10           ` Robert Pluim
2024-06-25 14:48             ` Stephen Berman
2024-06-25 15:09               ` Robert Pluim
2024-06-25 15:57                 ` Eli Zaretskii
2024-06-26  6:53                   ` Stephen Berman
2024-06-26  9:27                     ` Robert Pluim

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.