Your message dated Mon, 08 Sep 2025 06:04:05 +0000
with message-id <[email protected]>
and subject line Bug#1085464: fixed in dpkg-dev-el 37.20
has caused the Debian Bug report #1085464,
regarding dpkg-dev-el: several cosmetic suggestions
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1085464: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1085464
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: dpkg-dev-el
Severity: wishlist
Tags: patch

Hello.
Some suggestions are attached.
I hope that you will find some of them useful.
Thanks for maintaining this package.
>From 60e55e0eae1f81b5aeeb7b7f5572e2a05d10b4bb Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 5 Jul 2024 10:47:12 +0200
Subject: [PATCH 01/27] Build-Depend on dh-elpa via the convenient
 dh-sequence-elpa

---
 debian/control | 2 +-
 debian/rules   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/debian/control b/debian/control
index 420a37e..ed8f9d7 100644
--- a/debian/control
+++ b/debian/control
@@ -6,7 +6,7 @@ Uploaders:
  David Bremner <[email protected]>,
  Xiyue Deng <[email protected]>,
 Build-Depends: debhelper-compat (= 13),
- dh-elpa,
+ dh-sequence-elpa,
  elpa-debian-el,
 Standards-Version: 4.7.0
 Homepage: https://salsa.debian.org/emacsen-team/dpkg-dev-el
diff --git a/debian/rules b/debian/rules
index e8e22ba..2d33f6a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,4 +1,4 @@
 #!/usr/bin/make -f
 
 %:
-	dh $@ --with elpa
+	dh $@
-- 
2.39.2

>From 0ce37655345048ef5e77f12757c32964086866da Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 5 Jul 2024 10:51:14 +0200
Subject: [PATCH 02/27] Remove a transition maintainer script older than
 oldoldstable

---
 debian/dpkg-dev-el.maintscript | 1 -
 1 file changed, 1 deletion(-)
 delete mode 100644 debian/dpkg-dev-el.maintscript

diff --git a/debian/dpkg-dev-el.maintscript b/debian/dpkg-dev-el.maintscript
deleted file mode 100644
index 4a80e3c..0000000
--- a/debian/dpkg-dev-el.maintscript
+++ /dev/null
@@ -1 +0,0 @@
-rm_conffile /etc/emacs/site-start.d/50dpkg-dev-el.el
-- 
2.39.2

>From 2632ff216870bfe4209dae28b9a1dc8767039aae Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 5 Jul 2024 10:54:49 +0200
Subject: [PATCH 03/27] Remove a transitional package older than oldoldstable

---
 debian/control | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/debian/control b/debian/control
index ed8f9d7..745b8be 100644
--- a/debian/control
+++ b/debian/control
@@ -29,10 +29,3 @@ Description: Emacs helpers specific to Debian development
   * debian-control-mode - a helper mode for debian/control files;
   * debian-copyright - major mode for Debian package copyright files;
   * readme-debian - major mode for editing README.Debian files.
-
-Package: dpkg-dev-el
-Architecture: all
-Depends: ${misc:Depends}, elpa-dpkg-dev-el
-Description: Transition package, dpkg-dev-el to elpa-dpkg-dev-el
- The dpkg-dev-el emacs addon has been elpafied.  This dummy package
- helps ease transition from dpkg-dev-el to elpa-dpkg-dev-el.
-- 
2.39.2

>From 7da14280a6b8578f469bde40df74f5236f2a90ba Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sun, 21 Jul 2024 10:39:35 +0200
Subject: [PATCH 04/27] Construct the syntax table once when loading the mode
 source file

---
 debian-autopkgtest-control-mode.el | 15 +++++++--------
 debian-control-mode.el             | 10 ++++------
 debian-copyright.el                | 15 +++++++--------
 readme-debian.el                   | 15 ++++++++-------
 4 files changed, 26 insertions(+), 29 deletions(-)

diff --git a/debian-autopkgtest-control-mode.el b/debian-autopkgtest-control-mode.el
index f50a353..ef004be 100644
--- a/debian-autopkgtest-control-mode.el
+++ b/debian-autopkgtest-control-mode.el
@@ -46,8 +46,6 @@
 
 (defvar debian-autopkgtest-control-mode-map nil
   "Keymap for debian-autopkgtest-control-mode.")
-(defvar debian-autopkgtest-control-mode-syntax-table nil
-  "Syntax table for debian-autopkgtest-control-mode.")
 
 (defvar debian-autopkgtest-control-mode-font-lock-keywords nil
   "Regexps to highlight in font-lock.")
@@ -94,12 +92,13 @@ https://people.debian.org/~eriberto/README.package-tests.html.";)
 As defined in the `Depends' section in
 https://people.debian.org/~eriberto/README.package-tests.html.";)
 
-(if debian-autopkgtest-control-mode-syntax-table
-    ()              ; Do not change the table if it is already set up.
-  (setq debian-autopkgtest-control-mode-syntax-table (make-syntax-table))
-  (modify-syntax-entry ?\" ".   " debian-autopkgtest-control-mode-syntax-table)
-  (modify-syntax-entry ?\\ ".   " debian-autopkgtest-control-mode-syntax-table)
-  (modify-syntax-entry ?' "w   " debian-autopkgtest-control-mode-syntax-table))
+(defvar debian-autopkgtest-control-mode-syntax-table
+  (let ((table (make-syntax-table)))
+    (modify-syntax-entry ?\" ".   " table)
+    (modify-syntax-entry ?\\ ".   " table)
+    (modify-syntax-entry ?'  "w   " table)
+    table)
+  "Syntax table for debian-autopkgtest-control-mode.")
 
 (defun debian-autopkgtest-control-mode--font-lock-add-field-keywords (field-names)
   "Add font lock for field in FIELD-NAMES."
diff --git a/debian-control-mode.el b/debian-control-mode.el
index 45ff91f..6542392 100644
--- a/debian-control-mode.el
+++ b/debian-control-mode.el
@@ -154,14 +154,12 @@
   :type 'face
   :group 'debian-control)
 
-(defvar debian-control-syntax-table nil
+(defvar debian-control-syntax-table
+  (let ((table (make-syntax-table)))
+    (modify-syntax-entry ?\n "> " table)
+    table)
   "Syntax table used in debian-control-mode buffers.")
 
-(if debian-control-syntax-table
-    ()
-  (setq debian-control-syntax-table (make-syntax-table))
-  (modify-syntax-entry ?\n "> " debian-control-syntax-table))
-
 ;; FIXME: As of policy 3.5.6.0, the allowed characters in a field name
 ;; are not specified.  So we just go with "word constituent" or '-'
 ;; characters before a colon.
diff --git a/debian-copyright.el b/debian-copyright.el
index 3ed5b32..03f6135 100644
--- a/debian-copyright.el
+++ b/debian-copyright.el
@@ -48,8 +48,6 @@
 
 (defvar debian-copyright-mode-map nil
   "Keymap for debian/copyright mode.")
-(defvar debian-copyright-mode-syntax-table nil
-  "Syntax table for debian/copyright mode.")
 
 (defvar debian-copyright-font-lock-keywords nil
   "Regexps to highlight in font-lock.")
@@ -97,12 +95,13 @@ It should be immediately followed by a non-slash character.")
     "MPL-2\\.0")
   "Supported licenses based on /usr/share/common-licenses.")
 
-(if debian-copyright-mode-syntax-table
-    ()              ; Do not change the table if it is already set up.
-  (setq debian-copyright-mode-syntax-table (make-syntax-table))
-  (modify-syntax-entry ?\" ".   " debian-copyright-mode-syntax-table)
-  (modify-syntax-entry ?\\ ".   " debian-copyright-mode-syntax-table)
-  (modify-syntax-entry ?' "w   " debian-copyright-mode-syntax-table))
+(defvar debian-copyright-mode-syntax-table
+  (let ((table (make-syntax-table)))
+    (modify-syntax-entry ?\" ".   " table)
+    (modify-syntax-entry ?\\ ".   " table)
+    (modify-syntax-entry ?'  "w   " table)
+    table)
+  "Syntax table for debian/copyright mode.")
 
 (defun debian-copyright--font-lock-add-field-keywords (field-names)
   "Add font lock for field in FIELD-NAMES."
diff --git a/readme-debian.el b/readme-debian.el
index 390d401..d328d18 100644
--- a/readme-debian.el
+++ b/readme-debian.el
@@ -84,13 +84,14 @@ Automatically invoked when saving file."
 (if readme-debian-mode-map
     ()
   (setq readme-debian-mode-map (make-sparse-keymap)))
-(defvar readme-debian-mode-syntax-table nil "Syntax table for README.Debian mode.")
-(if readme-debian-mode-syntax-table
-    ()                   ; Do not change the table if it is already set up.
-  (setq readme-debian-mode-syntax-table (make-syntax-table))
-  (modify-syntax-entry ?\" ".   " readme-debian-mode-syntax-table)
-  (modify-syntax-entry ?\\ ".   " readme-debian-mode-syntax-table)
-  (modify-syntax-entry ?' "w   " readme-debian-mode-syntax-table))
+
+(defvar readme-debian-mode-syntax-table
+  (let ((table (make-syntax-table)))
+    (modify-syntax-entry ?\" ".   " table)
+    (modify-syntax-entry ?\\ ".   " table)
+    (modify-syntax-entry ?'  "w   " table)
+    table)
+  "Syntax table for README.Debian mode.")
 
 (defvar font-lock-defaults)             ;For XEmacs byte-compilation
 ;;;###autoload
-- 
2.39.2

>From da9dcafddb645b9b234d87a89884e5c8c0656685 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sun, 21 Jul 2024 11:16:43 +0200
Subject: [PATCH 05/27] Construct the key map once when loading the mode source
 file

---
 debian-bts-control.el    |  9 ++++-----
 debian-changelog-mode.el | 43 ++++++++++++++--------------------------
 readme-debian.el         |  7 +++----
 3 files changed, 22 insertions(+), 37 deletions(-)

diff --git a/debian-bts-control.el b/debian-bts-control.el
index 56dc469..2e3930c 100644
--- a/debian-bts-control.el
+++ b/debian-bts-control.el
@@ -121,12 +121,11 @@ the top of the message."
   "Email address domain to send control message to.")
 
 (defvar debian-bts-control-minor-mode nil)
-(defvar debian-bts-control-minor-mode-map nil
+(defvar debian-bts-control-minor-mode-map
+  (let ((map (make-sparse-keymap)))
+    (define-key map "\C-c\C-b" 'debian-bts-control)
+    map)
   "Keymap for `debian-bts-control' minor mode.")
-(if debian-bts-control-minor-mode-map
-    nil
-  (setq debian-bts-control-minor-mode-map (make-sparse-keymap))
-  (define-key debian-bts-control-minor-mode-map "\C-c\C-b" 'debian-bts-control))
 
 (easy-menu-define debian-bts-control-menu debian-bts-control-minor-mode-map
   "Debian Bug Mode Menu"
diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index a7844b6..71cdf37 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -732,35 +732,22 @@ Upload to " val  " anyway?")))
 (autoload 'outline-next-visible-heading "outline")
 (autoload 'outline-prev-visible-heading "outline")
 
-(defvar debian-changelog-mode-map nil
+(defvar debian-changelog-mode-map
+  (let ((map (make-sparse-keymap)))
+    (define-key map "\C-c\C-a" 'debian-changelog-add-entry)
+    (define-key map "\C-c\C-o" 'debian-changelog-build-open-bug-list)
+    (define-key map "\C-c\C-b" 'debian-changelog-close-bug)
+    (define-key map "\C-c\C-f" 'debian-changelog-finalise-last-version)
+    (define-key map "\C-c\C-c" 'debian-changelog-finalise-and-save)
+    (define-key map "\C-c\C-v" 'debian-changelog-add-version)
+    (define-key map "\C-c\C-d" 'debian-changelog-distribution)
+    (define-key map "\C-c\C-u" 'debian-changelog-urgency)
+    (define-key map "\C-c\C-e" 'debian-changelog-unfinalise-last-version)
+    (define-key map "\C-c\C-n" 'outline-next-visible-heading)
+    (define-key map "\C-c\C-p" 'outline-previous-visible-heading)
+    (define-key map "\C-c\C-t" 'debian-changelog-toggle-team-upload)
+    map)
   "Keymap for Debian changelog major mode.")
-(if debian-changelog-mode-map
-    nil
-  (setq debian-changelog-mode-map (make-sparse-keymap))
-  (define-key debian-changelog-mode-map "\C-c\C-a"
-              'debian-changelog-add-entry)
-  (define-key debian-changelog-mode-map "\C-c\C-o"
-              'debian-changelog-build-open-bug-list)
-  (define-key debian-changelog-mode-map "\C-c\C-b"
-              'debian-changelog-close-bug)
-  (define-key debian-changelog-mode-map "\C-c\C-f"
-              'debian-changelog-finalise-last-version)
-  (define-key debian-changelog-mode-map "\C-c\C-c"
-              'debian-changelog-finalise-and-save)
-  (define-key debian-changelog-mode-map "\C-c\C-v"
-              'debian-changelog-add-version)
-  (define-key debian-changelog-mode-map "\C-c\C-d"
-              'debian-changelog-distribution)
-  (define-key debian-changelog-mode-map "\C-c\C-u"
-              'debian-changelog-urgency)
-  (define-key debian-changelog-mode-map "\C-c\C-e"
-              'debian-changelog-unfinalise-last-version)
-  (define-key debian-changelog-mode-map "\C-c\C-n"
-              'outline-next-visible-heading)
-  (define-key debian-changelog-mode-map "\C-c\C-p"
-              'outline-previous-visible-heading)
-  (define-key debian-changelog-mode-map "\C-c\C-t"
-              'debian-changelog-toggle-team-upload))
 
 ;;
 ;; menu definition (Chris Waters)
diff --git a/readme-debian.el b/readme-debian.el
index d328d18..6bed091 100644
--- a/readme-debian.el
+++ b/readme-debian.el
@@ -80,10 +80,9 @@ Automatically invoked when saving file."
     (if (and (= (point)(point-max)) (not (bolp)))
         (insert "\n"))))
 
-(defvar readme-debian-mode-map nil "Keymap for README.Debian mode.")
-(if readme-debian-mode-map
-    ()
-  (setq readme-debian-mode-map (make-sparse-keymap)))
+(defvar readme-debian-mode-map
+  (make-sparse-keymap)
+  "Keymap for README.Debian mode.")
 
 (defvar readme-debian-mode-syntax-table
   (let ((table (make-syntax-table)))
-- 
2.39.2

>From f97c9428949f7be03ac28b66907e45525ec185b9 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sun, 21 Jul 2024 11:55:19 +0200
Subject: [PATCH 06/27] Construct the font lock keywords once when loading the
 mode source file

---
 debian-autopkgtest-control-mode.el | 43 ++++++------------
 debian-copyright.el                | 72 +++++++++++++-----------------
 2 files changed, 43 insertions(+), 72 deletions(-)

diff --git a/debian-autopkgtest-control-mode.el b/debian-autopkgtest-control-mode.el
index ef004be..2d7edc4 100644
--- a/debian-autopkgtest-control-mode.el
+++ b/debian-autopkgtest-control-mode.el
@@ -47,9 +47,6 @@
 (defvar debian-autopkgtest-control-mode-map nil
   "Keymap for debian-autopkgtest-control-mode.")
 
-(defvar debian-autopkgtest-control-mode-font-lock-keywords nil
-  "Regexps to highlight in font-lock.")
-
 (defvar debian-autopkgtest-control-mode--field-names
   '("Architecture"
     "Classes"
@@ -100,26 +97,19 @@ https://people.debian.org/~eriberto/README.package-tests.html.";)
     table)
   "Syntax table for debian-autopkgtest-control-mode.")
 
-(defun debian-autopkgtest-control-mode--font-lock-add-field-keywords (field-names)
-  "Add font lock for field in FIELD-NAMES."
-  (dolist (field-name field-names)
-    (add-to-list 'debian-autopkgtest-control-mode-font-lock-keywords
-                 `(,(concat "^" field-name ":") . font-lock-keyword-face))))
-
-(defun debian-autopkgtest-control-mode--font-lock-add-dependency-extensions
-    (extensions)
-  "Add font lock for dependency EXTENSIONS."
-  (dolist (extension extensions)
-    (add-to-list 'debian-autopkgtest-control-mode-font-lock-keywords
-                 `(,extension . font-lock-variable-name-face))))
-
-(defun debian-autopkgtest-control-mode--font-lock-add-restrictions (restrictions)
-  "Add font lock for RESTRICTIONS."
-  (dolist (restriction restrictions)
-    (add-to-list 'debian-autopkgtest-control-mode-font-lock-keywords
-                 `(,(concat "^\\Restrictions:.*\\_<\\(" restriction
-                            "\\)\\_>")
-                   (1 font-lock-type-face)))))
+(defvar debian-autopkgtest-control-mode-font-lock-keywords
+  (append
+   (mapcar (lambda (field-name)
+             `(,(concat "^" field-name ":") . font-lock-keyword-face))
+           debian-autopkgtest-control-mode--field-names)
+   (mapcar (lambda (extension)
+             `(,extension . font-lock-variable-name-face))
+           debian-autopkgtest-control-mode--dependency-extensions)
+   (mapcar (lambda (restriction)
+             `(,(concat "^\\Restrictions:.*\\_<\\(" restriction "\\)\\_>")
+               (1 font-lock-type-face)))
+           debian-autopkgtest-control-mode--restrictions))
+  "Regexps to highlight in font-lock.")
 
 ;;;###autoload
 (defun debian-autopkgtest-control-mode ()
@@ -132,13 +122,6 @@ https://people.debian.org/~eriberto/README.package-tests.html.";)
   (mapc 'make-local-variable '(font-lock-defaults write-file-hooks))
   (use-local-map debian-autopkgtest-control-mode-map)
   (set-syntax-table debian-autopkgtest-control-mode-syntax-table)
-  ;; Add font locks
-  (debian-autopkgtest-control-mode--font-lock-add-field-keywords
-   debian-autopkgtest-control-mode--field-names)
-  (debian-autopkgtest-control-mode--font-lock-add-dependency-extensions
-   debian-autopkgtest-control-mode--dependency-extensions)
-  (debian-autopkgtest-control-mode--font-lock-add-restrictions
-   debian-autopkgtest-control-mode--restrictions)
   (setq font-lock-defaults
         '(debian-autopkgtest-control-mode-font-lock-keywords
           nil  ;keywords-only
diff --git a/debian-copyright.el b/debian-copyright.el
index 03f6135..f76c291 100644
--- a/debian-copyright.el
+++ b/debian-copyright.el
@@ -49,9 +49,6 @@
 (defvar debian-copyright-mode-map nil
   "Keymap for debian/copyright mode.")
 
-(defvar debian-copyright-font-lock-keywords nil
-  "Regexps to highlight in font-lock.")
-
 (defvar debian-copyright--field-names
   '("Comment"
     "Copyright"
@@ -103,36 +100,35 @@ It should be immediately followed by a non-slash character.")
     table)
   "Syntax table for debian/copyright mode.")
 
-(defun debian-copyright--font-lock-add-field-keywords (field-names)
-  "Add font lock for field in FIELD-NAMES."
-  (dolist (field-name field-names)
-    (add-to-list 'debian-copyright-font-lock-keywords
-                 `(,(concat "^" field-name ":") . font-lock-keyword-face))))
-
-(defun debian-copyright--font-lock-add-email ()
-  "Add font lock for email addresses.
-This is not a fully compliant email detecting regexp.  It
-additionally detects the extra `<' and `>' around the address.  I
-hope this works well enough until the day we have to follow
-https://stackoverflow.com/a/201378.";
-  (add-to-list 'debian-copyright-font-lock-keywords
-               '("<?\\([^<> \t\n]+@[^<> \t\n]+\\.[^<> \t\n]+\\)>?"
-                 (1 font-lock-variable-name-face))))
-
-(defun debian-copyright--font-lock-add-urls (protocol-prefixes)
-  "Add font lock for a URL with PROTOCOL-PREFIXES."
-  (dolist (protocol-prefix protocol-prefixes)
-    (add-to-list 'debian-copyright-font-lock-keywords
-                 `(,(concat "\\(" protocol-prefix "[^/ \t\n][^ \t\n]*\\)")
-                   (1 font-lock-constant-face)))))
-
-(defun debian-copyright--font-lock-add-licenses (supported-licenses)
-  "Add font lock for SUPPORTED-LICENSES."
-  (dolist (supported-license supported-licenses)
-    (add-to-list 'debian-copyright-font-lock-keywords
-                 `(,(concat "^\\License:.*\\_<\\(" supported-license
-                            "\\+?\\)\\_>")
-                   (1 font-lock-type-face)))))
+(defvar debian-copyright--goto-addr-highlight-p
+  (progn
+    (defvar goto-address-highlight-p)  ;; To suppress comp warnings.
+    (and (featurep 'goto-addr)
+         goto-address-highlight-p))
+  "Whether URLs are highlighted with goto-addr (instead of font-lock).")
+
+(defvar debian-copyright-font-lock-keywords
+  (append
+   (mapcar (lambda (field-name)
+             `(,(concat "^" field-name ":") . font-lock-keyword-face))
+           debian-copyright--field-names)
+   ;; Add font lock for email addresses.
+   ;; This is not a fully compliant email detecting regexp.  It
+   ;; additionally detects the extra `<' and `>' around the address.  I
+   ;; hope this works well enough until the day we have to follow
+   ;; https://stackoverflow.com/a/201378.
+   '(("<?\\([^<> \t\n]+@[^<> \t\n]+\\.[^<> \t\n]+\\)>?"
+      (1 font-lock-variable-name-face)))
+   (unless debian-copyright--goto-addr-highlight-p
+     (mapcar (lambda (protocol-prefix)
+               `(,(concat "\\(" protocol-prefix "[^/ \t\n][^ \t\n]*\\)")
+                 (1 font-lock-constant-face)))
+             debian-copyright--supported-url-protocol-prefixes))
+   (mapcar (lambda (supported-license)
+             `(,(concat "^\\License:.*\\_<\\(" supported-license "\\+?\\)\\_>")
+               (1 font-lock-type-face)))
+           debian-copyright--supported-licenses))
+  "Regexps to highlight in font-lock.")
 
 ;;;###autoload
 (defun debian-copyright-mode ()
@@ -145,15 +141,7 @@ https://stackoverflow.com/a/201378.";
   (mapc 'make-local-variable '(font-lock-defaults write-file-hooks))
   (use-local-map debian-copyright-mode-map)
   (set-syntax-table debian-copyright-mode-syntax-table)
-  ;; Add font locks
-  (debian-copyright--font-lock-add-field-keywords debian-copyright--field-names)
-  (debian-copyright--font-lock-add-email)
-  (debian-copyright--font-lock-add-licenses debian-copyright--supported-licenses)
-  (defvar goto-address-highlight-p)  ;; To suppress comp warnings.
-  (if (or (not (featurep 'goto-addr))
-          (not goto-address-highlight-p))
-      (debian-copyright--font-lock-add-urls
-       debian-copyright--supported-url-protocol-prefixes)
+  (when debian-copyright--goto-addr-highlight-p
     (goto-address))
   (setq font-lock-defaults
         '(debian-copyright-font-lock-keywords
-- 
2.39.2

>From d8bec39f404c80ca8c09007ba33813db116c832b Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sun, 21 Jul 2024 13:41:52 +0200
Subject: [PATCH 07/27] Shorten declaration of local variables with setq-local

Especially, document font-lock-defaults in all files and remove a
wrong parameter from the call in debian-control-mode.el.

The original motivation is a warning that (mapc ...) should not be
used when the result is ignored.
---
 debian-autopkgtest-control-mode.el |  7 +++----
 debian-bts-control.el              |  2 +-
 debian-changelog-mode.el           | 26 ++++++++++++++------------
 debian-control-mode.el             | 20 +++++++-------------
 debian-copyright.el                |  4 ++--
 readme-debian.el                   |  5 ++---
 6 files changed, 29 insertions(+), 35 deletions(-)

diff --git a/debian-autopkgtest-control-mode.el b/debian-autopkgtest-control-mode.el
index 2d7edc4..8f6d077 100644
--- a/debian-autopkgtest-control-mode.el
+++ b/debian-autopkgtest-control-mode.el
@@ -119,15 +119,14 @@ https://people.debian.org/~eriberto/README.package-tests.html.";)
   (kill-all-local-variables)
   (setq major-mode 'debian-autopkgtest-control-mode)
   (setq mode-name "debian-autopkgtest-control")
-  (mapc 'make-local-variable '(font-lock-defaults write-file-hooks))
+  (make-local-variable 'write-file-hooks)
   (use-local-map debian-autopkgtest-control-mode-map)
   (set-syntax-table debian-autopkgtest-control-mode-syntax-table)
-  (setq font-lock-defaults
+  (setq-local font-lock-defaults
         '(debian-autopkgtest-control-mode-font-lock-keywords
           nil  ;keywords-only
           nil  ;case-fold
-          nil  ;syntax-alist
-          ))
+          ())) ; local syntax table alist
   (run-mode-hooks 'debian-autopkgtest-control-mode-hook))
 
 
diff --git a/debian-bts-control.el b/debian-bts-control.el
index 2e3930c..4d63aa7 100644
--- a/debian-bts-control.el
+++ b/debian-bts-control.el
@@ -302,7 +302,7 @@ a negative prefix argument turns it off.
 \\<debian-bts-control-minor-mode-map>
 \\[debian-bts-control]\t\tAdd a control command to the current message."
   (interactive "P")
-  (set (make-local-variable 'debian-bts-control-minor-mode)
+  (setq-local debian-bts-control-minor-mode
        (if arg
            (> (prefix-numeric-value arg) 0)
          (not debian-bts-control-minor-mode)))
diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index 71cdf37..ba9d9d6 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -1542,24 +1542,26 @@ interface to set it, or simply set the variable
   ;;  done.
   (use-local-map debian-changelog-mode-map)
   ;; Let each entry behave as one paragraph:
-  (set (make-local-variable 'fill-forward-paragraph-function)
+  (setq-local fill-forward-paragraph-function
        #'debian-changelog--forward-paragraph)
-  (set (make-local-variable 'paragraph-start) "\\s *[*+-]\\|\\s *$\\|\f\\|^\\<")
-  (set (make-local-variable 'paragraph-separate) "\\s *$\\|\f\\|^\\<")
+  (setq-local paragraph-start "\\s *[*+-]\\|\\s *$\\|\f\\|^\\<")
+  (setq-local paragraph-separate "\\s *$\\|\f\\|^\\<")
   ;; Let each version behave as one page.
   ;; Match null string on the heading line so that the heading line
   ;; is grouped with what follows.
-  (set (make-local-variable 'page-delimiter) "^\\<")
-  (set (make-local-variable 'version-control) 'never)
-  (set (make-local-variable 'adaptive-fill-regexp) "\\s *")
-  (set (make-local-variable 'font-lock-defaults)
+  (setq-local page-delimiter "^\\<")
+  (setq-local version-control 'never)
+  (setq-local adaptive-fill-regexp "\\s *")
+  (setq-local font-lock-defaults
        '((debian-changelog-font-lock-keywords
           debian-changelog-font-lock-keywords-1
-          debian-changelog-font-lock-keywords-2) t t))
-  (set (make-local-variable
-        'debian-changelog-local-variables-maybe-remove-done) nil)
-  (set (make-local-variable 'indent-line-function) 'indent-relative-maybe)
-  (set (make-local-variable 'outline-regexp) "^[a-z]")
+          debian-changelog-font-lock-keywords-2)
+         t               ; keywords-only?
+         t               ; case-fold?
+         ()))            ; local syntax table alist
+  (setq-local debian-changelog-local-variables-maybe-remove-done nil)
+  (setq-local indent-line-function 'indent-relative-maybe)
+  (setq-local outline-regexp "^[a-z]")
   (setq local-abbrev-table text-mode-abbrev-table)
   (set-syntax-table text-mode-syntax-table)
   (debian-bug-bug-menu-init debian-changelog-mode-map)
diff --git a/debian-control-mode.el b/debian-control-mode.el
index 6542392..7533d7d 100644
--- a/debian-control-mode.el
+++ b/debian-control-mode.el
@@ -297,30 +297,24 @@ It should be immediately followed by a non-slash character.")
   "A major mode for editing Debian control files (i.e. debian/control)."
   (set-syntax-table debian-control-syntax-table)
   ;; Comments
-  (make-local-variable 'comment-start-skip)  ;Need this for font-lock...
-  (setq comment-start-skip "^#+\s-*")
-  (make-local-variable 'comment-start)
-  (make-local-variable 'comment-end)
-  (setq comment-start "#"
-        comment-end "")
+  (setq-local comment-start-skip "^#+\s-*")  ;Need this for font-lock...
+  (setq-local comment-start "#")
+  (setq-local comment-end "")
 
   ;; Support # style comments
   (setq-local syntax-propertize-function
               (syntax-propertize-rules ("^\\(#\\)" (1 "<"))))
 
-  (make-local-variable 'font-lock-defaults)
-  (setq font-lock-defaults
+  (setq-local font-lock-defaults
         '(debian-control-font-lock-keywords
           nil           ;;; Keywords only? No, let it do syntax via table.
           nil           ;;; case-fold?
-          nil           ;;; Local syntax table.
-          nil           ;;; Use `backward-paragraph' ? No
-          ))
-  (set (make-local-variable 'fill-paragraph-function)
+          ()))         ; local syntax table alist
+  (setq-local fill-paragraph-function
        #'debian-control-mode-fill-paragraph)
   (make-local-variable 'after-change-functions)
   (push 'debian-control-mode-after-change-function after-change-functions)
-  (set (make-local-variable 'imenu-generic-expression)
+  (setq-local imenu-generic-expression
        '((nil "^\\(Package\\|Source\\):\\s-*\\([-a-zA-Z0-9+.]+?\\)\\s-*$" 2)))
 
   (define-key debian-control-mode-map (kbd "C-c C-b") 'debian-control-view-package-bugs)
diff --git a/debian-copyright.el b/debian-copyright.el
index f76c291..16a94df 100644
--- a/debian-copyright.el
+++ b/debian-copyright.el
@@ -138,12 +138,12 @@ It should be immediately followed by a non-slash character.")
   (kill-all-local-variables)
   (setq major-mode 'debian-copyright-mode)
   (setq mode-name "debian/copyright")
-  (mapc 'make-local-variable '(font-lock-defaults write-file-hooks))
+  (make-local-variable 'write-file-hooks)
   (use-local-map debian-copyright-mode-map)
   (set-syntax-table debian-copyright-mode-syntax-table)
   (when debian-copyright--goto-addr-highlight-p
     (goto-address))
-  (setq font-lock-defaults
+  (setq-local font-lock-defaults
         '(debian-copyright-font-lock-keywords
           nil  ;keywords-only
           nil  ;case-fold
diff --git a/readme-debian.el b/readme-debian.el
index 6bed091..162dc4f 100644
--- a/readme-debian.el
+++ b/readme-debian.el
@@ -104,14 +104,13 @@ will be updated.
   (kill-all-local-variables)
   (setq major-mode 'readme-debian-mode)
   (setq mode-name "README.Debian")
-  (make-local-variable 'font-lock-defaults)
   (use-local-map readme-debian-mode-map)
   (set-syntax-table readme-debian-mode-syntax-table)
-  (setq font-lock-defaults
+  (setq-local font-lock-defaults
         '(readme-debian-font-lock-keywords
           nil ;; keywords-only? No, let it do syntax via table.
           nil ;; case-fold?
-          nil ;; Local syntax table.
+          ()  ;; Local syntax table.
           ))
   ;; add timestamp update func to write-contents-hooks
   (if (or (= emacs-major-version 20)
-- 
2.39.2

>From 3270788a00af1cfac98a0d598525b5a1b66a72d4 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 5 Jul 2024 15:13:22 +0200
Subject: [PATCH 08/27] Simplify addition of a co-maintainer by changelog-mode

---
 debian-changelog-mode.el | 65 +++++++++++-----------------------------
 1 file changed, 17 insertions(+), 48 deletions(-)

diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index ba9d9d6..e98ac7a 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -1308,8 +1308,9 @@ Use UTC if `debian-changelog-date-utc-flag' is non-nil."
 
 (defun debian-changelog-last-maintainer ()
   "Return maintainer name and e-mail of the last changelog entry as
-a list in the form (NAME EMAIL)."
-  (save-excursion
+a list in the form (NAME EMAIL).
+The point is left after the > character closing the email part of the
+signature line at the end of the last entry."
     (goto-char (point-min))
     (let ((string
            (if (re-search-forward "^ -- \\(.*\\)>" nil t)
@@ -1317,7 +1318,7 @@ a list in the form (NAME EMAIL)."
                    (match-string-no-properties 1)
                  (match-string 1))
              (error "Maintainer name and email not found."))))
-      (split-string string " <"))))
+      (split-string string " <")))
 
 (defun debian-changelog-web-developer-page ()
   "Browse the BTS for the last upload maintainer's developer summary page."
@@ -1327,48 +1328,10 @@ a list in the form (NAME EMAIL)."
         (load "browse-url" nil t)
         (if (not (featurep 'browse-url))
             (error "This function requires the browse-url elisp package"))))
-  (let ((email (cadr (debian-changelog-last-maintainer))))
+  (let ((email (cadr (save-excursion (debian-changelog-last-maintainer)))))
     (browse-url (concat "http://qa.debian.org/developer.php?login="; email))
     (message "Looking up developer summary page for %s via browse-url" email)))
 
-;; co-maintenance as per bug #352957 by Luca Capello 2006
-(defun debian-changelog-comaintainer-insert (name separator)
-  "In the line before SEPARATOR, insert the co-maintainer name as for
-the form [ NAME ]."
-  (goto-char (point-min))
-  (re-search-forward (concat "\n " separator))
-  (forward-line -1)
-  (insert "\n  [ " name " ]")
-  (when (string= "--" separator)
-    (insert "\n")))
-
-(defun debian-changelog-comaintainer ()
-  "If the last maintainer is different from the current one, create a
-co-maintained changelog entry."
-  (let ((name (car (debian-changelog-last-maintainer))))
-    (unless (string= name debian-changelog-full-name)
-      (let ((maintainers-found)
-            (debian-changelog-last-entry-end
-             (progn (goto-char (point-min))
-                    (re-search-forward "\n --"))))
-        (mapc (lambda (x)
-                (goto-char (point-min))
-                (when (search-forward x debian-changelog-last-entry-end t)
-                  (add-to-list 'maintainers-found x)))
-              (list name debian-changelog-full-name))
-        ;; set the co-maintenance if any
-        (if maintainers-found
-            ;; co-maintenance, debian-changelog-full-name is not present
-            (if (and (member name maintainers-found)
-                     (not (member debian-changelog-full-name
-                                  maintainers-found)))
-                (debian-changelog-comaintainer-insert
-                 debian-changelog-full-name "--"))
-          ;; no co-maintenance
-          (mapc (lambda (x)
-                  (debian-changelog-comaintainer-insert (car x) (cadr x)))
-                `((,name " *") (,debian-changelog-full-name "--"))))))))
-
 ;;
 ;; interactive function to unfinalise changelog (so modifications can be made)
 ;;
@@ -1381,12 +1344,18 @@ can be made."
   (if (debian-changelog-finalised-p) nil
     (error "Most recent version is not finalised"))
   (save-excursion
-    (debian-changelog-comaintainer)
-    (goto-char (point-min))
-    (re-search-forward "\n --")
-    (let ((dels (point)))
-      (end-of-line)
-      (delete-region dels (point)))))
+    ;; Save the name of the last maintainer, then cut after " --".
+    (let ((last-maintainer (car (debian-changelog-last-maintainer))))
+      (beginning-of-line)
+      (delete-region (+ 3 (point)) (point-at-eol))
+      (unless (or (string= last-maintainer debian-changelog-full-name)
+                  (search-backward debian-changelog-full-name nil t))
+        ;; Mention the new co-maintainer at the end of the entry.
+        (insert "  [ " debian-changelog-full-name " ]\n\n")
+        (unless (search-backward last-maintainer nil 1)
+          ;; Mention the last maintainer at the beginning of the entry.
+          (end-of-line)
+          (insert "\n  [ " last-maintainer " ]"))))))
 
 ;;
 ;; Functions to handle team upload
-- 
2.39.2

>From ec3237003135916b77325f29d7deeb0fbdeeb41c Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sat, 19 Oct 2024 10:05:12 +0200
Subject: [PATCH 09/27] Simplify some conditionals

---
 debian-bts-control.el    |  31 +++----
 debian-changelog-mode.el | 172 +++++++++++++++++----------------------
 debian-control-mode.el   |   6 +-
 3 files changed, 92 insertions(+), 117 deletions(-)

diff --git a/debian-bts-control.el b/debian-bts-control.el
index 4d63aa7..b6d9238 100644
--- a/debian-bts-control.el
+++ b/debian-bts-control.el
@@ -306,17 +306,15 @@ a negative prefix argument turns it off.
        (if arg
            (> (prefix-numeric-value arg) 0)
          (not debian-bts-control-minor-mode)))
-  (cond
-   (debian-bts-control-minor-mode                 ;Setup the minor-mode
-    (if (fboundp 'font-lock-add-keywords)
-        (font-lock-add-keywords nil debian-bts-control-font-lock-keywords t))
-    )))
+  (if (and debian-bts-control-minor-mode ; Setup the minor-mode
+           (fboundp 'font-lock-add-keywords))
+      (font-lock-add-keywords nil debian-bts-control-font-lock-keywords t)))
 
 ;; Install ourselves:
-(or (assq 'debian-bts-control-minor-mode minor-mode-alist)
+(unless (assq 'debian-bts-control-minor-mode minor-mode-alist)
     (setq minor-mode-alist
           (cons '(debian-bts-control-minor-mode " DBugC") minor-mode-alist)))
-(or (assq 'debian-bts-control-minor-mode minor-mode-map-alist)
+(unless (assq 'debian-bts-control-minor-mode minor-mode-map-alist)
     (setq minor-mode-map-alist
           (cons (cons 'debian-bts-control-minor-mode
                       debian-bts-control-minor-mode-map)
@@ -339,17 +337,14 @@ a negative prefix argument turns it off.
 
 (defun debian-bts-control-prompt (prompt &optional number)
   "Prompt for bug number using sensible default if found."
-  (let ((default-number number))
-    (unless default-number
-      (save-excursion
-        (goto-char (point-min))
-        (if (re-search-forward (concat "\\([0-9]+\\)@" debian-bts-emaildomain)
-                               (mail-header-end) t)
-            (setq default-number (match-string-no-properties 1)))))
-    (if default-number
-        (read-string (format "%s [%s]: " prompt default-number)
-                     nil nil default-number)
-      (read-string (format "%s: " prompt)))))
+  (unless number
+    (save-excursion
+      (goto-char (point-min))
+      (if (re-search-forward (concat "\\([0-9]+\\)@" debian-bts-emaildomain)
+                             (mail-header-end) t)
+          (setq number (match-string-no-properties 1)))))
+  (read-string (format (if number "%s [%s]: " "%s: ") prompt number)
+               nil nil number))
 
 ;;;###autoload
 (defun debian-bts-control (action &optional arg)
diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index e98ac7a..408f5f4 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -607,9 +607,8 @@ STRING should be given if the last search was by `string-match' on STRING."
 (defun debian-changelog-local-variables-maybe-remove ()
   "Ask to remove local variables block if buffer not read-only."
   (interactive)
-  (if (or debian-changelog-local-variables-maybe-remove-done
-          buffer-read-only)
-      nil
+  (unless (or debian-changelog-local-variables-maybe-remove-done
+              buffer-read-only)
     (setq debian-changelog-local-variables-maybe-remove-done t)
     (if (debian-changelog-local-variables-exists-p)
         (save-excursion
@@ -889,8 +888,7 @@ for the debian/changelog file to add the entry to."
   (goto-char (point-min))
   (re-search-forward "\n --")
   (backward-char 5)
-  (if (prog1 (looking-at "\n") (forward-char 1))
-      nil
+  (unless (prog1 (looking-at "\n") (forward-char 1))
     (insert "\n"))
   (insert "  * ")
   (save-excursion (insert "\n")))
@@ -926,10 +924,11 @@ for the debian/changelog file to add the entry to."
       (let ((action (capitalize
                      (read-string
                       "Most recent version is finalised, [u]nfinalize or [a]dd new version? "))))
-        (if (not (string-match "^[uU]" action))
-            (debian-changelog-add-version)
-          (debian-changelog-unfinalise-last-version)
-          (debian-changelog-add-entry-plain)))
+        (if (string-match "^[uU]" action)
+            (progn
+              (debian-changelog-unfinalise-last-version)
+              (debian-changelog-add-entry-plain))
+          (debian-changelog-add-version)))
     (debian-changelog-add-entry-plain))
   (insert filename ": "))
 
@@ -948,24 +947,22 @@ for the debian/changelog file to add the entry to."
 (defun debian-changelog-close-bug (bug-number)
   "Add a new change entry to close a BUG-NUMBER."
   (interactive
-   (progn
-     (if (eq (debian-changelog-finalised-p) t)
-         (error (substitute-command-keys "most recent version has been finalised - use \\[debian-changelog-unfinalise-last-version] or \\[debian-changelog-add-version]")))
+   (if (eq (debian-changelog-finalised-p) t)
+       (error (substitute-command-keys "most recent version has been finalised - use \\[debian-changelog-unfinalise-last-version] or \\[debian-changelog-add-version]"))
      (list (completing-read "Bug number to close: "
                             debian-bug-open-alist nil nil))))
-  (if (not (string-match "^[0-9]+$" bug-number))
-      (error "The bug number should consists of only digits"))
+  (unless (string-match "^[0-9]+$" bug-number)
+    (error "The bug number should consists of only digits"))
   (debian-changelog-add-entry)
-  (cond
-   ((and debian-bug-open-alist
-         (assoc bug-number debian-bug-open-alist))
-    (insert (cadr (assoc bug-number debian-bug-open-alist)))
-    (fill-paragraph nil))
-   (t
+  (if (and debian-bug-open-alist
+           (assoc bug-number debian-bug-open-alist))
+      (progn
+        (insert (cadr (assoc bug-number debian-bug-open-alist)))
+        (fill-paragraph nil))
     (save-excursion
       (insert " " (debian-changelog--rris
                    "%s" bug-number debian-changelog-close-bug-statement)))
-    (message "Enter a brief description of what was done here."))))
+    (message "Enter a brief description of what was done here.")))
 
 ;;
 ;; interactive functions to set urgency and distribution
@@ -980,8 +977,8 @@ for the debian/changelog file to add the entry to."
               "Select distribution: "
               debian-changelog-allowed-distributions
               nil t nil)))
-    (if (not (equal str ""))
-        (debian-changelog-setdistribution str))))
+    (unless (equal str "")
+      (debian-changelog-setdistribution str))))
 
 (defun debian-changelog-urgency ()
   "Delete the current urgency and prompt for a new one."
@@ -992,8 +989,8 @@ for the debian/changelog file to add the entry to."
               "Select urgency: "
               '(("low" 1) ("medium" 2) ("high" 3) ("critical" 4))
               nil t nil)))
-    (if (not (equal str ""))
-        (debian-changelog-seturgency str))))
+    (unless (equal str "")
+      (debian-changelog-seturgency str))))
 
 ;;
 ;; internal function: test if changelog has been finalized or not
@@ -1007,22 +1004,18 @@ for the debian/changelog file to add the entry to."
 \(ie, has a maintainer name and email address and a release date."
   (save-excursion
     (goto-char (point-min))
-    (or (re-search-forward "\n\\S-" (point-max) t)
-        (goto-char (point-max)))
+    (unless (re-search-forward "\n\\S-" (point-max) t)
+      (goto-char (point-max)))
     (if (re-search-backward "\n --" (point-min) t)
         (forward-char 4)
       ;;(beginning-of-line)
       ;;(insert " --\n\n")
       ;;(backward-char 2)
       )
-    (cond
-     ((looking-at
-       "[ \n]+\\S-[^\n\t]+\\S- <[^ \t\n<>]+> +\\S-[^\t\n]+\\S-[ \t]*\n")
-      t)
-     ((looking-at "[ \t]*\n")
-      nil)
-     (t
-      "finalisation line has bad format (not ` -- maintainer <email> date')"))))
+    (or (looking-at
+         "[ \n]+\\S-[^\n\t]+\\S- <[^ \t\n<>]+> +\\S-[^\t\n]+\\S-[ \t]*\n")
+        (and (not (looking-at "[ \t]*\n"))
+             "finalisation line has bad format (not ` -- maintainer <email> date')"))))
 ;;
 ;;  interactive functions to add new versions (whole new sections)
 ;;  to changelog.
@@ -1040,10 +1033,10 @@ for the debian/changelog file to add the entry to."
   "Add a new version section to a debian-style changelog file.
 If file is empty, create initial entry."
   (interactive)
-  (if (not (= (point-min)(point-max)))
-      (let ((f (debian-changelog-finalised-p)))
-        (and (stringp f) (error f))
-        (or f (error "Previous version not yet finalised"))))
+  (unless (= (point-min)(point-max))
+    (let ((f (debian-changelog-finalised-p)))
+      (if (stringp f) (error f))
+      (unless f (error "Previous version not yet finalised"))))
   (goto-char (point-min))
   (let ((pkg-name (or (debian-changelog-suggest-package-name)
                       (read-string "Package name: ")))
@@ -1078,12 +1071,8 @@ If file is empty, create initial entry."
                        " *debian-changelog-mode-temp-buffer*")))
       (set-buffer tmp-buffer)
       (unwind-protect
-          (progn
-            (let ((mesg (call-process "dpkg" nil '(t nil) nil
-                                      "--compare-versions" vsn1 "gt" vsn2)))
-              (if (equal mesg 0)
-                  t
-                nil)))
+          (equal 0 (call-process "dpkg" nil '(t nil) nil
+                                 "--compare-versions" vsn1 "gt" vsn2))
         (kill-buffer tmp-buffer)))))
 
 (defun debian-changelog-suggest-version ()
@@ -1129,8 +1118,7 @@ If file is empty, create initial entry."
 ;;; match 4: debian version number exists if matched
 ;;; match 5: debian version number
 ;;; match 6: rest of string
-      (if (not findmatch)
-          nil
+      (when findmatch
         (let ((pkg-name (match-string-no-properties 1))
               (epoch (or (match-string-no-properties 2) ""))
               (upstream-vsn (match-string-no-properties 3))
@@ -1269,8 +1257,8 @@ If file is empty, create initial entry."
   "Finalise, if necessary, and then save a debian-style changelog file."
   (interactive)
   (let ((f (debian-changelog-finalised-p)))
-    (and (stringp f) (error f))
-    (or f (debian-changelog-finalise-last-version)))
+    (if (stringp f) (error f))
+    (unless f (debian-changelog-finalise-last-version)))
   (save-buffer))
 
 ;;
@@ -1294,8 +1282,8 @@ Use UTC if `debian-changelog-date-utc-flag' is non-nil."
 (defun debian-changelog-finalise-last-version ()
   "Finalise maintainer's name and email and release date."
   (interactive)
-  (and (debian-changelog-finalised-p)
-       (debian-changelog-unfinalise-last-version))
+  (if (debian-changelog-finalised-p)
+      (debian-changelog-unfinalise-last-version))
   (if debian-changelog-local-variables-maybe-remove
       (debian-changelog-local-variables-maybe-remove))
   (save-excursion
@@ -1312,22 +1300,20 @@ a list in the form (NAME EMAIL).
 The point is left after the > character closing the email part of the
 signature line at the end of the last entry."
     (goto-char (point-min))
-    (let ((string
-           (if (re-search-forward "^ -- \\(.*\\)>" nil t)
-               (if (fboundp 'match-string-no-properties)
-                   (match-string-no-properties 1)
-                 (match-string 1))
-             (error "Maintainer name and email not found."))))
+    (unless (re-search-forward "^ -- \\(.*\\)>" nil t)
+      (error "Maintainer name and email not found."))
+    (let ((string (if (fboundp 'match-string-no-properties)
+                      (match-string-no-properties 1)
+                    (match-string 1))))
       (split-string string " <")))
 
 (defun debian-changelog-web-developer-page ()
   "Browse the BTS for the last upload maintainer's developer summary page."
   (interactive)
-  (if (not (featurep 'browse-url))
-      (progn
-        (load "browse-url" nil t)
-        (if (not (featurep 'browse-url))
-            (error "This function requires the browse-url elisp package"))))
+  (unless (featurep 'browse-url)
+    (load "browse-url" nil t)
+    (unless (featurep 'browse-url)
+      (error "This function requires the browse-url elisp package")))
   (let ((email (cadr (save-excursion (debian-changelog-last-maintainer)))))
     (browse-url (concat "http://qa.debian.org/developer.php?login="; email))
     (message "Looking up developer summary page for %s via browse-url" email)))
@@ -1341,7 +1327,7 @@ signature line at the end of the last entry."
 Removes maintainer's name, email address and release date so that new entries
 can be made."
   (interactive)
-  (if (debian-changelog-finalised-p) nil
+  (unless (debian-changelog-finalised-p)
     (error "Most recent version is not finalised"))
   (save-excursion
     ;; Save the name of the last maintainer, then cut after " --".
@@ -1534,20 +1520,17 @@ interface to set it, or simply set the variable
   (setq local-abbrev-table text-mode-abbrev-table)
   (set-syntax-table text-mode-syntax-table)
   (debian-bug-bug-menu-init debian-changelog-mode-map)
-  (cond
-   (debian-changelog-use-imenu
+  (when debian-changelog-use-imenu
     (require 'imenu)
     (setq imenu-create-index-function 'imenu--create-debian-changelog-index)
-    (if (or window-system
-            (fboundp 'tmm-menubar))
-        (progn
-          (imenu-add-to-menubar "History")
-          ;; (imenu-update-menubar)
-          ))))
-  (cond
-   (debian-changelog-highlight-mouse-t
+    (when (or window-system
+              (fboundp 'tmm-menubar))
+      (imenu-add-to-menubar "History")
+      ;; (imenu-update-menubar)
+      ))
+  (when debian-changelog-highlight-mouse-t
     (debian-changelog-setup-highlight-mouse-keymap)
-    (debian-changelog-highlight-mouse)))
+    (debian-changelog-highlight-mouse))
   (run-mode-hooks 'debian-changelog-mode-hook))
 ;;(easy-menu-add debian-changelog-menu))
 
@@ -1786,14 +1769,13 @@ match 1 -> package name
           ;;  ((and debian-changelog-use-imenu
           ;;        (or window-system (fboundp 'tmm-menubar)))
           ;;   (imenu-add-to-menubar "History")))
-          (cond
-           (debian-changelog-is-XEmacs
-            (set-keymap-name m 'debian-changelog-mouse-keymap)
-            (define-key m [button3]
-                        'debian-bug-web-this-bug-under-mouse))
-           (t
+          (if debian-changelog-is-XEmacs
+              (progn
+                (set-keymap-name m 'debian-changelog-mouse-keymap)
+                (define-key m [button3]
+                  'debian-bug-web-this-bug-under-mouse))
             (define-key m [down-mouse-3]
-                        'debian-bug-web-this-bug-under-mouse)))
+              'debian-bug-web-this-bug-under-mouse))
           m)))
 
 (defvar debian-changelog-ext-list nil
@@ -1837,21 +1819,20 @@ Also set keymap."
            nil t)
         (setq s (match-beginning 2))
         (setq e (match-end 2))
-        (cond
-         ((string-match "XEmacs\\|Lucid" emacs-version)
-          (setq extent (make-extent s e))
-          (setq debian-changelog-ext-list
-                (cons extent debian-changelog-ext-list))
-          (set-extent-property extent 'highlight t)
-          (set-extent-property extent 'start-open t)
-          ;; (set-extent-property extent 'balloon-help 'debian-changelog-label-help)
-          ;; (set-extent-property extent 'help-echo 'debian-changelog-label-help-echo)
-          (set-extent-property extent 'keymap debian-changelog-mouse-keymap))
-         (t
+        (if (string-match "XEmacs\\|Lucid" emacs-version)
+            (progn
+              (setq extent (make-extent s e))
+              (setq debian-changelog-ext-list
+                    (cons extent debian-changelog-ext-list))
+              (set-extent-property extent 'highlight t)
+              (set-extent-property extent 'start-open t)
+              ;; (set-extent-property extent 'balloon-help 'debian-changelog-label-help)
+              ;; (set-extent-property extent 'help-echo 'debian-changelog-label-help-echo)
+              (set-extent-property extent 'keymap debian-changelog-mouse-keymap))
           (let ((before-change-functions) (after-change-functions))
             (put-text-property s e 'local-map
                                debian-changelog-mouse-keymap)
-            (put-text-property s e 'mouse-face 'highlight)))))
+            (put-text-property s e 'mouse-face 'highlight))))
       (set-buffer-modified-p modified))))
 
 ;;;-------------
@@ -1928,8 +1909,7 @@ Also set keymap."
               (push (cons (match-string-no-properties 4) marker)
                     index-alist)))))
 ;;;       (message "Scanning changelog history... done.")
-        (cond
-         (index-bug-alist
+        (when index-bug-alist
           (push (cons "Closed Bugs (chrono)"
                       index-bug-alist)
                 index-alist)
@@ -1937,7 +1917,7 @@ Also set keymap."
           (push (cons "Closed Bugs (sorted)"
                       (sort index-bugsorted-alist
                             'debian-changelog-imenu-sort))
-                index-alist)))
+                index-alist))
         index-alist))))
 
 (defun debian-changelog-imenu-sort (el1 el2)
diff --git a/debian-control-mode.el b/debian-control-mode.el
index 7533d7d..6c8afdc 100644
--- a/debian-control-mode.el
+++ b/debian-control-mode.el
@@ -430,7 +430,7 @@ It should be immediately followed by a non-slash character.")
                               (beginning-of-line)
                               (looking-at "^\\(Package\\|Source\\)"))
                             (re-search-backward "^\\(Package\\|Source\\)" nil t))
-                        (not (not (string-match "Package" (match-string 0))))
+                        (string-match "Package" (match-string 0))
                       (error "Couldn't find Package or Source field")))
           (fields (if binary-p
                       debian-control-binary-fields
@@ -536,10 +536,10 @@ text file."
   "Find-file a possibly compressed FILE"
   (require 'jka-compr)
   (let ((installed (jka-compr-installed-p)))
-    (if (not installed)
+    (unless installed
         (auto-compression-mode t))
     (find-file file)
-    (if (not installed)
+    (unless installed
         (auto-compression-mode -1))))
 
 (defun debian-control-mode-bugs-mouse-click (event)
-- 
2.39.2

>From e19fea178fefd1e57f8642011a361ed2b04da682 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sat, 19 Oct 2024 10:31:35 +0200
Subject: [PATCH 10/27] Simplify debian-changelog-setdistribution

---
 debian-changelog-mode.el | 50 +++++++++++++++++-----------------------
 1 file changed, 21 insertions(+), 29 deletions(-)

diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index 408f5f4..afc4ba2 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -683,41 +683,33 @@ STRING should be given if the last search was by `string-match' on STRING."
 (defun debian-changelog-getdistribution ()
   (debian-changelog-getheadervalue ") \\(.*\\)\\;"))
 (defvar last-nonmenu-event)
-(defun debian-changelog-setdistribution (val)
-  (if (not (string-match "^.*security" val))
-      (debian-changelog-setheadervalue ") \\(.*\\)\\;" val)
-    (cond
-     ((or (and (fboundp 'should-use-dialog-box-p)
-               (should-use-dialog-box-p))
-          (and window-system
-               (equal last-nonmenu-event '(menu-bar))
-               use-dialog-box))
-      (if (y-or-n-p
-           (concat
-            "Warning, although the {oldstable,stable,testing}-security
+(defvar debian-changelog-setdistribution-question
+  "Warning, although the {oldstable,stable,testing}-security
 distribution exists it should not be used unless you are a
 member of the security team.  Please don't upload to it if you
 are not 150% sure that your package is suitable.  In case of
 doubt, please send the files to [email protected] via
 mail instead.
 
-Upload to " val  " anyway?"))
-          (debian-changelog-setheadervalue ") \\(.*\\)\\;" val)))
-     (t
-      (let ((window-config (current-window-configuration)))
-        (with-output-to-temp-buffer "*Help*"
-          (princ (concat
-                  "Warning, although the {oldstable,stable,testing}-security
-distribution exists it should not be used unless you are a
-member of the security team.  Please don't upload to it if you
-are not 150% sure that your package is suitable.  In case of
-doubt, please send the files to [email protected] via
-mail instead.
-
-Upload to " val  " anyway?")))
-        (if (y-or-n-p (format "Upload to %s anyway? " val))
-            (debian-changelog-setheadervalue ") \\(.*\\)\\;" val))
-        (set-window-configuration window-config))))))
+Upload to %s anyway?")
+(defun debian-changelog-setdistribution (val)
+  (cond
+   ((not (string-match "^.*security" val))
+    (debian-changelog-setheadervalue ") \\(.*\\)\\;" val))
+   ((or (and (fboundp 'should-use-dialog-box-p)
+             (should-use-dialog-box-p))
+        (and window-system
+             (equal last-nonmenu-event '(menu-bar))
+             use-dialog-box))
+    (if (y-or-n-p (format debian-changelog-setdistribution-question val))
+        (debian-changelog-setheadervalue ") \\(.*\\)\\;" val)))
+   (t
+    (let ((window-config (current-window-configuration)))
+      (with-output-to-temp-buffer "*Help*"
+        (princ (format debian-changelog-setdistribution-question val)))
+      (if (y-or-n-p (format "Upload to %s anyway? " val))
+          (debian-changelog-setheadervalue ") \\(.*\\)\\;" val))
+      (set-window-configuration window-config)))))
 
 (defun debian-changelog--get-all-code-names ()
   "Returns a list of all code names from supported distributions."
-- 
2.39.2

>From 9fca71d32585cedb97f78522aec9be517d5d05d3 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sat, 19 Oct 2024 10:45:33 +0200
Subject: [PATCH 11/27] Simplify debian-changelog-add-entry-file

---
 debian-changelog-mode.el | 31 ++++++++++++-------------------
 1 file changed, 12 insertions(+), 19 deletions(-)

diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index afc4ba2..9771c75 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -887,26 +887,19 @@ for the debian/changelog file to add the entry to."
 
 (defun debian-changelog-add-entry-file ()
   "Add an entry for current file in debian/changelog."
-  (let* ((this-file (buffer-file-name))
-         (directory (if (not this-file)
-                        (error "This buffer has no file associated to it")
-                      (directory-file-name (file-name-directory this-file))))
+  (let* ((this-file (or (buffer-file-name)
+                        (error "This buffer has no file associated to it")))
+         (directory (directory-file-name (file-name-directory this-file)))
          (filename (file-name-nondirectory this-file))
-         (success))
-    (while directory
-      (let ((changelog (expand-file-name "debian/changelog" directory)))
-        (cond
-         ((file-readable-p changelog)
-          (debian-changelog-add-entry-file-specified changelog filename)
-          (setq directory nil
-                success t))
-         (t
-          (if (not (string-match "\\(.*\\)/\\([^/]+\\)$" directory))
-              (setq directory nil)
-            (setq filename (concat (match-string 2 directory) "/" filename)
-                  directory (match-string 1 directory)))))))
-    (if (not success)
-        (error "debian directory not found"))))
+         changelog)
+    (while (progn
+             (setq changelog (expand-file-name "debian/changelog" directory))
+             (not (file-readable-p changelog)))
+      (unless (string-match "\\(.*\\)/\\([^/]+\\)$" directory)
+        (error "debian directory not found"))
+      (setq filename (concat (match-string 2 directory) "/" filename)
+            directory (match-string 1 directory)))
+    (debian-changelog-add-entry-file-specified changelog filename)))
 
 (defun debian-changelog-add-entry-file-specified (changelog filename)
   "Insert an entry in debian CHANGELOG file for FILENAME."
-- 
2.39.2

>From 9825abe69677e2c1373023d6e5d83b45ce94d47b Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sat, 19 Oct 2024 11:16:35 +0200
Subject: [PATCH 12/27] Simplify debian-changelog-fontify-version

---
 debian-changelog-mode.el | 40 +++++++++++++++++-----------------------
 1 file changed, 17 insertions(+), 23 deletions(-)

diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index 9771c75..7bcc705 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -1631,34 +1631,28 @@ match 1 -> package name
     ;; match 3: upstream version number
     ;; match 4: debian version number exists if matched
     ;; match 5: debian version number
-    (cond
-     ((not (match-string 4))
-      ;; No Debian version number -> Debian native package
-      (store-match-data
+    (store-match-data
+     (cond
+      ((not (match-string 4))
+       ;; No Debian version number -> Debian native package
        (list (match-beginning 1)(match-end 3)
              (match-beginning 1)(match-end 1)
              (match-beginning 3)(match-end 3)
              nil nil
-             nil nil)))
-     ((match-string 4)
+             nil nil))
       ;; Debian version number -> Let's see if NMU...
-      (let* ((deb-vsn (match-string 5))
-             (is-NMU (save-match-data (string-match "\\." deb-vsn))))
-        (cond
-         (is-NMU
-          (store-match-data
-           (list (match-beginning 1)(match-end 5)
-                 (match-beginning 1)(match-end 1)
-                 nil nil
-                 nil nil
-                 (match-beginning 3)(match-end 5))))
-         (t
-          (store-match-data
-           (list (match-beginning 1)(match-end 5)
-                 (match-beginning 1)(match-end 1)
-                 nil nil
-                 (match-beginning 3)(match-end 5)
-                 nil nil)))))))
+      ((save-match-data (string-match "\\." (match-string 5)))
+       (list (match-beginning 1)(match-end 5)
+             (match-beginning 1)(match-end 1)
+             nil nil
+             nil nil
+             (match-beginning 3)(match-end 5)))
+      (t
+       (list (match-beginning 1)(match-end 5)
+             (match-beginning 1)(match-end 1)
+             nil nil
+             (match-beginning 3)(match-end 5)
+             nil nil))))
     t))
 
 (defun debian-changelog-fontify-urgency-crit (limit)
-- 
2.39.2

>From b5ef19ef5f08d40df51112b2ad8eec789321bf00 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 18 Oct 2024 18:32:19 +0200
Subject: [PATCH 13/27] Simplify
 debian-changelog-imenu-prev-index-position-function

---
 debian-changelog-mode.el | 56 +++++++++++++++++-----------------------
 1 file changed, 23 insertions(+), 33 deletions(-)

diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index 7bcc705..0b7fae1 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -1827,39 +1827,29 @@ Also set keymap."
 (make-variable-buffer-local 'debian-changelog-imenu-doing-closebug)
 
 (defun debian-changelog-imenu-prev-index-position-function ()
-  (cond
-   (debian-changelog-imenu-doing-closebug
-    (if (not (posix-search-backward
-              "\\(closes:\\)\\|[^0-9]\\([0-9]+\\)" nil t))
-        nil                             ; No match
-      ;; match 1 -> "closes:"
-      ;; match 2 -> a bug number
-      (cond
-       ((match-string 1)
-        (setq debian-changelog-imenu-doing-closebug nil)
-        (debian-changelog-imenu-prev-index-position-function))
-       (t
-        ;; Return the bug number match
-        t))))
-   (t
-    (if (not (re-search-backward
-              "\\(closes: *\\(bug\\)?#? *[0-9]+\\)\\|\\(^\\sw.* (\\(.+\\))\\)"
-              nil t))
-        nil                             ; No match
-      ;; match 1 -> "closes:"
-      ;; match 4 -> a version number
-      (cond
-       ((match-string 1)
-        (setq debian-changelog-imenu-doing-closebug t)
-        (forward-char -1)
-        (re-search-forward
-         "\\(closes:\\) *\\(\\(bug\\)?#? *[0-9]+\\(, *\\(bug\\)?#? *[0-9]+\\)*\\)"
-         nil t)
-        (forward-char 1)
-        (debian-changelog-imenu-prev-index-position-function))
-       (t
-        ;; Return the version number match
-        t))))))
+  (if debian-changelog-imenu-doing-closebug
+      (and (posix-search-backward "\\(closes:\\)\\|[^0-9]\\([0-9]+\\)" nil t)
+           ;; match 1 -> "closes:"
+           ;; match 2 -> a bug number
+           (or (not (match-string 1)) ;; Return the bug number match
+
+               (progn
+                 (setq debian-changelog-imenu-doing-closebug nil)
+                 (debian-changelog-imenu-prev-index-position-function))))
+    (and (re-search-backward
+          "\\(closes: *\\(bug\\)?#? *[0-9]+\\)\\|\\(^\\sw.* (\\(.+\\))\\)"
+          nil t)
+         ;; match 1 -> "closes:"
+         ;; match 4 -> a version number
+         (or (not (match-string 1)) ;; Return the version number match
+             (progn
+               (setq debian-changelog-imenu-doing-closebug t)
+               (forward-char -1)
+               (re-search-forward
+                "\\(closes:\\) *\\(\\(bug\\)?#? *[0-9]+\\(, *\\(bug\\)?#? *[0-9]+\\)*\\)"
+                nil t)
+               (forward-char 1)
+               (debian-changelog-imenu-prev-index-position-function))))))
 
 (defvar debian-changelog-imenu-counter nil
   "Debian-changelog-mode internal variable for imenu support.")
-- 
2.39.2

>From b07d76a7bf54374d31cf08668954cbd7feff8068 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sat, 12 Oct 2024 15:15:09 +0200
Subject: [PATCH 14/27] Shorten some constructs with push

---
 debian-bts-control.el    | 9 +++------
 debian-changelog-mode.el | 6 ++----
 2 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/debian-bts-control.el b/debian-bts-control.el
index b6d9238..a701428 100644
--- a/debian-bts-control.el
+++ b/debian-bts-control.el
@@ -312,13 +312,10 @@ a negative prefix argument turns it off.
 
 ;; Install ourselves:
 (unless (assq 'debian-bts-control-minor-mode minor-mode-alist)
-    (setq minor-mode-alist
-          (cons '(debian-bts-control-minor-mode " DBugC") minor-mode-alist)))
+  (push '(debian-bts-control-minor-mode " DBugC") minor-mode-alist))
 (unless (assq 'debian-bts-control-minor-mode minor-mode-map-alist)
-    (setq minor-mode-map-alist
-          (cons (cons 'debian-bts-control-minor-mode
-                      debian-bts-control-minor-mode-map)
-                minor-mode-map-alist)))
+  (push (cons 'debian-bts-control-minor-mode debian-bts-control-minor-mode-map)
+        minor-mode-map-alist))
 
 (defvar debian-bts-control-alist
   '(("reassign") ("severity") ("reopen") ("submitter") ("forwarded")
diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index 0b7fae1..3481749 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -1779,8 +1779,7 @@ Also set keymap."
                     (and (<= (point-min)(extent-start-position extent))
                          (>= (point-max)(extent-end-position extent))))
                 (delete-extent extent)
-              (setq debian-changelog-ext-list
-                    (cons extent debian-changelog-ext-list)))
+              (push extent debian-changelog-ext-list))
             (setq local-extent-list (cdr local-extent-list)))
         ;; Remove properties for regular emacs
         ;; FIXME This detroys all mouse-faces and local-maps!
@@ -1801,8 +1800,7 @@ Also set keymap."
         (if (string-match "XEmacs\\|Lucid" emacs-version)
             (progn
               (setq extent (make-extent s e))
-              (setq debian-changelog-ext-list
-                    (cons extent debian-changelog-ext-list))
+              (push extent debian-changelog-ext-list)
               (set-extent-property extent 'highlight t)
               (set-extent-property extent 'start-open t)
               ;; (set-extent-property extent 'balloon-help 'debian-changelog-label-help)
-- 
2.39.2

>From 28f3a0be5b096ac748c107fb5e02cd2fdc65e8a2 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sat, 12 Oct 2024 15:18:05 +0200
Subject: [PATCH 15/27] Shorten some constructs with dolist

---
 debian-changelog-mode.el | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index 3481749..ae0d3f8 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -1767,20 +1767,18 @@ match 1 -> package name
 Also set keymap."
   (interactive)
   (save-excursion
-    (let ((s)(e)(extent)(local-extent-list debian-changelog-ext-list)
+    (let ((s)(e)(local-extent-list debian-changelog-ext-list)
           (inhibit-read-only t)
           (modified (buffer-modified-p))) ;put-text-property changing this?
       ;; Remove the mouse face properties first.
       (setq debian-changelog-ext-list nil)              ;Reconstructed below...
       (if (string-match "XEmacs\\|Lucid" emacs-version)
-          (while local-extent-list
-            (setq extent (car local-extent-list))
+          (dolist (extent local-extent-list)
             (if (or (extent-detached-p extent)
                     (and (<= (point-min)(extent-start-position extent))
                          (>= (point-max)(extent-end-position extent))))
                 (delete-extent extent)
-              (push extent debian-changelog-ext-list))
-            (setq local-extent-list (cdr local-extent-list)))
+              (push extent debian-changelog-ext-list)))
         ;; Remove properties for regular emacs
         ;; FIXME This detroys all mouse-faces and local-maps!
         (let ((before-change-functions) (after-change-functions))
-- 
2.39.2

>From cdb024248df3a152e38b794d42af9e7b6c4a9ab7 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sat, 12 Oct 2024 15:28:47 +0200
Subject: [PATCH 16/27] Simplify (list 'a 'b) to '(a b)

---
 debian-changelog-mode.el | 52 ++++++++++++++++++++--------------------
 1 file changed, 26 insertions(+), 26 deletions(-)

diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index ae0d3f8..4ef8c95 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -516,7 +516,7 @@ the bug number."
   :options '(turn-on-auto-fill flyspell-mode))
 
 (defcustom debian-changelog-add-version-hook
-  (list 'debian-changelog-add-new-upstream-release)
+  '(debian-changelog-add-new-upstream-release)
   "Hooks run just before inserting the signature separator \"--\" in a
 new version in debian/changelog."
   :group 'debian-changelog
@@ -541,7 +541,7 @@ Pass ARGS to `replace-regexp-in-string' (GNU Emacs) or to
         ;; and arguments are in different order.
         ;; Patch from Rafael Laboissiere <[email protected]>
         ;; Closes: #476271
-        (apply 'replace-in-string (list (nth 2 args) (nth 0 args) (nth 1 args))))
+        (replace-in-string (nth 2 args) (nth 0 args) (nth 1 args)))
     ;; Emacs:
     (apply 'replace-regexp-in-string args)))
 
@@ -1564,36 +1564,36 @@ interface to set it, or simply set the variable
 ;; this is somewhat limiting; I may consider adding my own faces later.
 
 (defvar debian-changelog-font-lock-keywords-1
-  (list
-   ;; package name line: pkg (1.0-1) unstable; urgency=medium
-   '(debian-changelog-fontify-version
+  '(
+    ;; package name line: pkg (1.0-1) unstable; urgency=medium
+    (debian-changelog-fontify-version
      (1 font-lock-function-name-face)
      (2 font-lock-type-face nil t)
      (3 font-lock-string-face nil t)
      (4 debian-changelog-warning-face nil t))
-   '(debian-changelog-fontify-stable . debian-changelog-warning-face)
-   '(debian-changelog-fontify-backports . debian-changelog-warning-face)
-   '(debian-changelog-fontify-frozen . font-lock-type-face)
-   '(debian-changelog-fontify-unstable . font-lock-string-face)
-   '(debian-changelog-fontify-experimental . debian-changelog-warning-face)
-   '(debian-changelog-fontify-unreleased . debian-changelog-warning-face)
-   '(debian-changelog-fontify-urgency-crit . debian-changelog-warning-face)
-   '(debian-changelog-fontify-urgency-high . debian-changelog-warning-face)
-   '(debian-changelog-fontify-urgency-med . font-lock-type-face)
-   '(debian-changelog-fontify-urgency-low . font-lock-string-face)
-   '(debian-changelog-fontify-known-releases . font-lock-string-face)
+   (debian-changelog-fontify-stable . debian-changelog-warning-face)
+   (debian-changelog-fontify-backports . debian-changelog-warning-face)
+   (debian-changelog-fontify-frozen . font-lock-type-face)
+   (debian-changelog-fontify-unstable . font-lock-string-face)
+   (debian-changelog-fontify-experimental . debian-changelog-warning-face)
+   (debian-changelog-fontify-unreleased . debian-changelog-warning-face)
+   (debian-changelog-fontify-urgency-crit . debian-changelog-warning-face)
+   (debian-changelog-fontify-urgency-high . debian-changelog-warning-face)
+   (debian-changelog-fontify-urgency-med . font-lock-type-face)
+   (debian-changelog-fontify-urgency-low . font-lock-string-face)
+   (debian-changelog-fontify-known-releases . font-lock-string-face)
    ;; bug closers
-   '(;"\\(closes:\\) *\\(\\(bug\\)?#? *[0-9]+\\(, *\\(bug\\)?#? *[0-9]+\\)*\\)"
-     ;; Process lines that continue on multiple lines - Fred Bothamy
-     "\\(closes:\\)[ \t\n]*\\(\\(bug\\)?#? *[0-9]+\\(,[ \t\n]*\\(bug\\)?#? *[0-9]+\\)*\\)"
-     (1 font-lock-keyword-face)
-     (2 debian-changelog-warning-face))
-   '("^\t.*$" . debian-changelog-warning-face)
+   (;"\\(closes:\\) *\\(\\(bug\\)?#? *[0-9]+\\(, *\\(bug\\)?#? *[0-9]+\\)*\\)"
+    ;; Process lines that continue on multiple lines - Fred Bothamy
+    "\\(closes:\\)[ \t\n]*\\(\\(bug\\)?#? *[0-9]+\\(,[ \t\n]*\\(bug\\)?#? *[0-9]+\\)*\\)"
+    (1 font-lock-keyword-face)
+    (2 debian-changelog-warning-face))
+   ("^\t.*$" . debian-changelog-warning-face)
    ;; maintainer line (enforce 2 space exactly between email and date)
-   '("^ -- \\(.+\\) <\\(.+@.+\\)>  \\([^ ].+\\)$"
-     (1 font-lock-variable-name-face)
-     (2 font-lock-variable-name-face)
-     (3 font-lock-string-face)))
+   ("^ -- \\(.+\\) <\\(.+@.+\\)>  \\([^ ].+\\)$"
+    (1 font-lock-variable-name-face)
+    (2 font-lock-variable-name-face)
+    (3 font-lock-string-face)))
   "First level highlighting for `debian-changelog-mode'.")
 
 (defvar debian-changelog-font-lock-keywords-2
-- 
2.39.2

>From 6415b675873f97d3c72cce359174cf2c3f470c14 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sat, 12 Oct 2024 15:37:40 +0200
Subject: [PATCH 17/27] Use quasiquote to prevent duplicate submenu definitions

The emacs and xemacs versions were diverging more than necessary.
* one of the best-packaging-practices was wrong
* emacs seems to handle :active like xemacs

Related:
debian-changelog-is-XEmacs is defined twice, with inconsistent definitions
---
 debian-changelog-mode.el | 172 ++++++++++++++-------------------------
 1 file changed, 63 insertions(+), 109 deletions(-)

diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index 4ef8c95..42d80c5 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -749,115 +749,69 @@ Upload to %s anyway?")
    (not (null (save-match-data (string-match "XEmacs\\|Lucid" emacs-version))))
    (= 21 emacs-major-version)))
 
-(cond
- (debian-changelog-is-XEmacs
-  (easy-menu-define
-    debian-changelog-menu debian-changelog-mode-map "Debian Changelog Mode Menu"
-    '("Changelog"
-      ["New Version" debian-changelog-add-version (debian-changelog-finalised-p)]
-      ["Add Entry" debian-changelog-add-entry
-       (not (debian-changelog-finalised-p))]
-      ["Build Open Bug List" debian-changelog-build-open-bug-list]
-      ["Close Bug" debian-changelog-close-bug
-       (not (debian-changelog-finalised-p))]
-      "--"
-      ("Set Distribution"
-       ["unstable" (debian-changelog-setdistribution "unstable") t]
-       ("--")
-       ["testing" (debian-changelog-setdistribution "testing") t]
-       ["testing-security" (debian-changelog-setdistribution "testing-security") t]
-       ("--")
-       ["stable" (debian-changelog-setdistribution "stable") t]
-       ["stable-security" (debian-changelog-setdistribution "stable-security") t]
-       ["stable-proposed-updates" (debian-changelog-setdistribution "stable-proposed-updates") t]
-       ("--")
-       ["oldstable-security" (debian-changelog-setdistribution "oldstable-security") t]
-       ["oldstable-proposed-updates" (debian-changelog-setdistribution "oldstable-proposed-updates") t]
-       ("--")
-       ["experimental" (debian-changelog-setdistribution "experimental") t]
-       ["UNRELEASED" (debian-changelog-setdistribution "UNRELEASED") t])
-      ("Set Urgency"
-       ["low" (debian-changelog-seturgency "low") t]
-       ["medium" (debian-changelog-seturgency "medium") t]
-       ["high" (debian-changelog-seturgency "high") t]
-       ["critical" (debian-changelog-seturgency "critical") t])
-      "--"
-      ["Unfinalise" debian-changelog-unfinalise-last-version
-       (debian-changelog-finalised-p)]
-      ["Finalise" debian-changelog-finalise-last-version
-       (not (debian-changelog-finalised-p))]
-      ["Finalise+Save" debian-changelog-finalise-and-save
-       (not (debian-changelog-finalised-p))]
-      "--"
-      "Web View"
-      ["Best Practices" (browse-url "http://www.debian.org/doc/developers-reference/best-pkging-practices.html#bpp-debian-changelog";) t]
-      ["Bugs for This Package" (debian-bug-web-bugs) t]
-      ["Archived Bugs for This Package" (debian-bug-web-bugs t) t]
-      ["Bug Number..." (debian-bug-web-bug) t]
-      ["Package Info" (debian-bug-web-packages) t]
-      ;; ("Package web pages..."
-      ;;  ["stable" (debian-bug-web-package "stable") t]
-      ;;  ["testing" (debian-bug-web-package "testing") t]
-      ;;  ["unstable" (debian-bug-web-package "unstable") t])
-      ["Developer Page for This Package" (debian-bug-web-developer-page) t]
-      ["Developer Page for This Maintainer" (debian-changelog-web-developer-page)
-       t]
-      "--"
-      ["Customize" (customize-group "debian-changelog") (fboundp 'customize-group)])))
- (t
-  (easy-menu-define
-    debian-changelog-menu debian-changelog-mode-map "Debian Changelog Mode Menu"
-    '("Changelog"
-      ["New Version" debian-changelog-add-version (debian-changelog-finalised-p)]
-      ["Add Entry" debian-changelog-add-entry
-       (not (debian-changelog-finalised-p))]
-      ["Build Open Bug List" debian-changelog-build-open-bug-list]
-      ["Close Bug" debian-changelog-close-bug
-       (not (debian-changelog-finalised-p))]
-      "--"
-      ("Set Distribution"     :active (not (debian-changelog-finalised-p))
-       ["unstable" (debian-changelog-setdistribution "unstable") t]
-       ("--")
-       ["testing" (debian-changelog-setdistribution "testing") t]
-       ["testing-security" (debian-changelog-setdistribution "testing-security") t]
-       ("--")
-       ["stable" (debian-changelog-setdistribution "stable") t]
-       ["stable-security" (debian-changelog-setdistribution "stable-security") t]
-       ["stable-proposed-updates" (debian-changelog-setdistribution "stable-proposed-updates") t]
-       ("--")
-       ["oldstable-security" (debian-changelog-setdistribution "oldstable-security") t]
-       ["oldstable-proposed-updates" (debian-changelog-setdistribution "oldstable-proposed-updates") t]
-       ("--")
-       ["experimental" (debian-changelog-setdistribution "experimental") t]
-       ["UNRELEASED" (debian-changelog-setdistribution "UNRELEASED") t])
-      ("Set Urgency"     :active (not (debian-changelog-finalised-p))
-       ["low" (debian-changelog-seturgency "low") t]
-       ["medium" (debian-changelog-seturgency "medium") t]
-       ["high" (debian-changelog-seturgency "high") t]
-       ["critical" (debian-changelog-seturgency "critical") t])
-      "--"
-      ["Unfinalise" debian-changelog-unfinalise-last-version
-       (debian-changelog-finalised-p)]
-      ["Finalise" debian-changelog-finalise-last-version
-       (not (debian-changelog-finalised-p))]
-      ["Finalise+Save" debian-changelog-finalise-and-save
-       (not (debian-changelog-finalised-p))]
-      "--"
-      "Web View"
-      ["Best Practices" (browse-url "http://www.debian.org/doc/developers-reference/ch-best-pkging-practices.en.html#s-bpp-debian-changelog";) t]
-      ["Bugs for This Package" (debian-bug-web-bugs) t]
-      ["Archived Bugs for This Package" (debian-bug-web-bugs t) t]
-      ["Bug Number..." (debian-bug-web-bug) t]
-      ["Package Info" (debian-bug-web-packages) t]
-      ("Package web pages..."
-       ["stable" (debian-bug-web-package "stable") t]
-       ["testing" (debian-bug-web-package "testing") t]
-       ["unstable" (debian-bug-web-package "unstable") t])
-      ["Developer Page for This Package" (debian-bug-web-developer-page) t]
-      ["Developer Page for This Maintainer" (debian-changelog-web-developer-page)
-       t]
-      "--"
-      ["Customize" (customize-group "debian-changelog") (fboundp 'customize-group)]))))
+(easy-menu-define
+  debian-changelog-menu debian-changelog-mode-map "Debian Changelog Mode Menu"
+  `("Changelog"
+    ["New Version" debian-changelog-add-version (debian-changelog-finalised-p)]
+    ["Add Entry" debian-changelog-add-entry
+     (not (debian-changelog-finalised-p))]
+    ["Build Open Bug List" debian-changelog-build-open-bug-list]
+    ["Close Bug" debian-changelog-close-bug
+     (not (debian-changelog-finalised-p))]
+    "--"
+    ("Set Distribution"
+     ,@(unless debian-changelog-is-XEmacs
+         '(:active (not (debian-changelog-finalised-p))))
+     ["unstable" (debian-changelog-setdistribution "unstable") t]
+     ("--")
+     ["testing" (debian-changelog-setdistribution "testing") t]
+     ["testing-security" (debian-changelog-setdistribution "testing-security") t]
+     ("--")
+     ["stable" (debian-changelog-setdistribution "stable") t]
+     ["stable-security" (debian-changelog-setdistribution "stable-security") t]
+     ["stable-proposed-updates" (debian-changelog-setdistribution "stable-proposed-updates") t]
+     ("--")
+     ["oldstable-security" (debian-changelog-setdistribution "oldstable-security") t]
+     ["oldstable-proposed-updates" (debian-changelog-setdistribution "oldstable-proposed-updates") t]
+     ("--")
+     ["experimental" (debian-changelog-setdistribution "experimental") t]
+     ["UNRELEASED" (debian-changelog-setdistribution "UNRELEASED") t])
+    ("Set Urgency"
+     ,@(unless debian-changelog-is-XEmacs
+         '(:active (not (debian-changelog-finalised-p))))
+     ["low" (debian-changelog-seturgency "low") t]
+     ["medium" (debian-changelog-seturgency "medium") t]
+     ["high" (debian-changelog-seturgency "high") t]
+     ["critical" (debian-changelog-seturgency "critical") t])
+    "--"
+    ["Unfinalise" debian-changelog-unfinalise-last-version
+     (debian-changelog-finalised-p)]
+    ["Finalise" debian-changelog-finalise-last-version
+     (not (debian-changelog-finalised-p))]
+    ["Finalise+Save" debian-changelog-finalise-and-save
+     (not (debian-changelog-finalised-p))]
+    "--"
+    "Web View"
+    ["Best Practices"
+     (browse-url
+      ,(if debian-changelog-is-XEmacs
+           "http://www.debian.org/doc/developers-reference/best-pkging-practices.html#bpp-debian-changelog";
+         "http://www.debian.org/doc/developers-reference/ch-best-pkging-practices.en.html#s-bpp-debian-changelog";))
+     t]
+    ["Bugs for This Package" (debian-bug-web-bugs) t]
+    ["Archived Bugs for This Package" (debian-bug-web-bugs t) t]
+    ["Bug Number..." (debian-bug-web-bug) t]
+    ["Package Info" (debian-bug-web-packages) t]
+    ,@(unless debian-changelog-is-XEmacs
+        '("Package web pages..."
+          ["stable" (debian-bug-web-package "stable") t]
+          ["testing" (debian-bug-web-package "testing") t]
+          ["unstable" (debian-bug-web-package "unstable") t]))
+    ["Developer Page for This Package" (debian-bug-web-developer-page) t]
+    ["Developer Page for This Maintainer" (debian-changelog-web-developer-page)
+     t]
+    "--"
+    ["Customize" (customize-group "debian-changelog") (fboundp 'customize-group)]))
 
 ;;
 ;; interactive function to add a new line to the changelog
-- 
2.39.2

>From b7d25ea65bdc2d560cfce2df2f6f94870de8e035 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 18 Oct 2024 18:26:45 +0200
Subject: [PATCH 18/27] Stop building an a-list for completing-read

---
 debian-bts-control.el    | 15 ++++++++-------
 debian-changelog-mode.el |  2 +-
 debian-control-mode.el   |  8 +++-----
 3 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/debian-bts-control.el b/debian-bts-control.el
index a701428..0c9cbe9 100644
--- a/debian-bts-control.el
+++ b/debian-bts-control.el
@@ -318,11 +318,12 @@ a negative prefix argument turns it off.
         minor-mode-map-alist))
 
 (defvar debian-bts-control-alist
-  '(("reassign") ("severity") ("reopen") ("submitter") ("forwarded")
-    ("notforwarded") ("retitle") ("clone") ("merge") ("unmerge")
-    ("tags") ("package") ("owner") ("noowner") ("found")
-    ("notfound") ("fixed") ("notfixed") ("block") ("unblock") ("archive")
-    ("unarchive") ("affects") ("forcemerge") ("summary"))
+  ;; The name is historical, this is not an alist.
+  '("reassign" "severity" "reopen" "submitter" "forwarded"
+    "notforwarded" "retitle" "clone" "merge" "unmerge"
+    "tags" "package" "owner" "noowner" "found"
+    "notfound" "fixed" "notfixed" "block" "unblock" "archive"
+    "unarchive" "affects" "forcemerge" "summary")
   "List of available commands at [email protected].")
 
 (defun debian-bts-bug-number-at-point ()
@@ -444,7 +445,7 @@ in `debian-bts-control-modes-to-reuse'."
                           number-default))
              (sign (completing-read
                     (concat verbose "[ + | - | = ] ")
-                    '(("+") ("-") ("=")) nil nil))
+                    '("+" "-" "=") nil nil))
              (package (completing-read
                        (concat verbose "Package affected: ")
                        (debian-bug-fill-packages-obarray) nil nil)))
@@ -745,7 +746,7 @@ in `debian-bts-control-modes-to-reuse'."
                           (concat verbose "Bug number")
                           number-default))
              (add (completing-read "+, -, = (default +): "
-                                   '(("+") ("-") ("=")) nil t nil nil "+"))
+                                   '("+" "-" "=") nil t nil nil "+"))
              (tag (completing-read "Tag: " debian-bug-alltags-alist nil t)))
         (insert (format "tags %s %s %s\n" bug-number add tag))))
      ((string-equal "close" action)
diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index 42d80c5..ff7472e 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -926,7 +926,7 @@ for the debian/changelog file to add the entry to."
       (error (substitute-command-keys "most recent version has been finalised - use \\[debian-changelog-unfinalise-last-version] or \\[debian-changelog-add-version]")))
   (let ((str (completing-read
               "Select urgency: "
-              '(("low" 1) ("medium" 2) ("high" 3) ("critical" 4))
+              '("low" "medium" "high" "critical")
               nil t nil)))
     (unless (equal str "")
       (debian-changelog-seturgency str))))
diff --git a/debian-control-mode.el b/debian-control-mode.el
index 6c8afdc..4e5d5b6 100644
--- a/debian-control-mode.el
+++ b/debian-control-mode.el
@@ -439,7 +439,7 @@ It should be immediately followed by a non-slash character.")
      (list
       binary-p
       (completing-read (format "Add %s package field: " (if binary-p "binary" "source"))
-                       (mapcar #'(lambda (x) (cons x nil)) fields)))))
+                       fields))))
   (require 'cl-lib)
   (let ((fields (if binary
                     debian-control-binary-fields
@@ -512,8 +512,7 @@ text file."
   (interactive
    (list (intern
           (completing-read "Policy format: "
-                           (mapcar #'(lambda (x) (cons x 0))
-                                   '("html" "text" "checklist"))
+                           '("html" "text" "checklist")
                            nil t))))
   (cl-case format
     (text
@@ -570,8 +569,7 @@ text file."
   (interactive
    (list
     (completing-read "View bugs for package: "
-                     (mapcar #'(lambda (x) (cons x 0))
-                             (debian-control-mode-bug-package-names))
+                     (debian-control-mode-bug-package-names)
                      nil t)))
   (browse-url (concat "http://bugs.debian.org/"; package)))
 
-- 
2.39.2

>From baabe878a4706ce286dd2076283a5716a9174e35 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 18 Oct 2024 18:48:10 +0200
Subject: [PATCH 19/27] Trivial simplifications

memq already compares with eq.

(match-string 0) is either Package or Source, there is no need for a
second full regex search.
---
 debian-bts-control.el  | 3 +--
 debian-control-mode.el | 9 ++++-----
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/debian-bts-control.el b/debian-bts-control.el
index 0c9cbe9..f4200ff 100644
--- a/debian-bts-control.el
+++ b/debian-bts-control.el
@@ -360,8 +360,7 @@ in `debian-bts-control-modes-to-reuse'."
   (let ((number-default (debian-bts-bug-number-at-point)))
     (cond
      ((or arg
-          (and (car (memq t (mapcar #'(lambda (item) (eq item major-mode))
-                                    debian-bts-control-modes-to-reuse)))
+          (and (memq major-mode debian-bts-control-modes-to-reuse)
                (not debian-bts-control-minor-mode)))
       (debian-bug--set-CC debian-bts-emailaddress
                           (concat
diff --git a/debian-control-mode.el b/debian-control-mode.el
index 4e5d5b6..5de0013 100644
--- a/debian-control-mode.el
+++ b/debian-control-mode.el
@@ -430,7 +430,7 @@ It should be immediately followed by a non-slash character.")
                               (beginning-of-line)
                               (looking-at "^\\(Package\\|Source\\)"))
                             (re-search-backward "^\\(Package\\|Source\\)" nil t))
-                        (string-match "Package" (match-string 0))
+                        (string-prefix-p "P" (match-string 0))
                       (error "Couldn't find Package or Source field")))
           (fields (if binary-p
                       debian-control-binary-fields
@@ -525,9 +525,8 @@ text file."
      (browse-url
       (if (file-exists-p "/usr/share/doc/debian-policy/policy.html/index.html")
           "file:///usr/share/doc/debian-policy/policy.html/index.html"
-        (prog1
-            "http://www.debian.org/doc/debian-policy";
-          (message "Note: package `debian-policy' not installed, using web version")))))
+        (message "Note: package `debian-policy' not installed, using web version")
+        "http://www.debian.org/doc/debian-policy";)))
     (t
      (error "Unknown format %s for policy" format))))
 
@@ -557,7 +556,7 @@ text file."
       (while (not (eobp))
         (when (looking-at "^\\(Package\\|Source\\):\\s-*\\([-a-zA-Z0-9+.]+?\\)\\s-*$")
           (push (concat
-                 (if (save-match-data (string-match "Source" (match-string 1)))
+                 (if (string-prefix-p "S" (match-string 1))
                      "src:"
                    "")
                  (match-string-no-properties 2)) result))
-- 
2.39.2

>From e5fc8b642e2fe3578b9ebe9950fcdbe108710ae6 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 18 Oct 2024 18:59:52 +0200
Subject: [PATCH 20/27] Simplify debian-changelog-add-version

---
 debian-changelog-mode.el | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index ff7472e..14d8380 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -980,12 +980,13 @@ If file is empty, create initial entry."
   (let ((pkg-name (or (debian-changelog-suggest-package-name)
                       (read-string "Package name: ")))
         (version (or (debian-changelog-suggest-version)
-                     (read-string "New version (including any revision): "))))
-    (if (debian-changelog-experimental-p)
-        (insert pkg-name " (" version ") experimental; urgency=medium\n\n  * ")
-      (insert pkg-name " (" version ") " (car debian-changelog-allowed-distributions) "; urgency=medium\n\n  * "))
-    (run-hooks 'debian-changelog-add-version-hook)
-    (save-excursion (insert "\n\n --\n\n"))))
+                     (read-string "New version (including any revision): ")))
+        (distribution (if (debian-changelog-experimental-p)
+                          "experimental"
+                        (car debian-changelog-allowed-distributions))))
+    (insert pkg-name " (" version ") " distribution "; urgency=medium\n\n  * "))
+  (run-hooks 'debian-changelog-add-version-hook)
+  (save-excursion (insert "\n\n --\n\n")))
 
 (defun debian-changelog-experimental-p ()
   ;; Peter S Galbraith, 04 May 2001
-- 
2.39.2

>From a4827ddc771a5b51158283f41b5fce8ba90f261a Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 18 Oct 2024 19:00:50 +0200
Subject: [PATCH 21/27] Simplify debian-changelog-finalised-p

---
 debian-changelog-mode.el | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index 14d8380..f725fcf 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -943,10 +943,9 @@ for the debian/changelog file to add the entry to."
 \(ie, has a maintainer name and email address and a release date."
   (save-excursion
     (goto-char (point-min))
-    (unless (re-search-forward "\n\\S-" (point-max) t)
-      (goto-char (point-max)))
-    (if (re-search-backward "\n --" (point-min) t)
-        (forward-char 4)
+    (re-search-forward "\n\\S-" nil 1)
+    (when (re-search-backward "\n --" nil t)
+      (forward-char 4)
       ;;(beginning-of-line)
       ;;(insert " --\n\n")
       ;;(backward-char 2)
-- 
2.39.2

>From 280daff50ac5cea798a1ec0c52dae87e784bd785 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 18 Oct 2024 19:02:02 +0200
Subject: [PATCH 22/27] Simplify debian-changelog-highlight-mouse

---
 debian-changelog-mode.el | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index f725fcf..ae89fde 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -1721,7 +1721,7 @@ match 1 -> package name
 Also set keymap."
   (interactive)
   (save-excursion
-    (let ((s)(e)(local-extent-list debian-changelog-ext-list)
+    (let ((local-extent-list debian-changelog-ext-list)
           (inhibit-read-only t)
           (modified (buffer-modified-p))) ;put-text-property changing this?
       ;; Remove the mouse face properties first.
@@ -1747,21 +1747,21 @@ Also set keymap."
            ;; Same deal as for font-lock - patch from Fred Bothamy.
            "\\(closes:\\)[ \t\n]*\\(\\(bug\\)?#? *[0-9]+\\(,[ \t\n]*\\(bug\\)?#? *[0-9]+\\)*\\)"
            nil t)
-        (setq s (match-beginning 2))
-        (setq e (match-end 2))
-        (if (string-match "XEmacs\\|Lucid" emacs-version)
-            (progn
-              (setq extent (make-extent s e))
-              (push extent debian-changelog-ext-list)
-              (set-extent-property extent 'highlight t)
-              (set-extent-property extent 'start-open t)
-              ;; (set-extent-property extent 'balloon-help 'debian-changelog-label-help)
-              ;; (set-extent-property extent 'help-echo 'debian-changelog-label-help-echo)
-              (set-extent-property extent 'keymap debian-changelog-mouse-keymap))
-          (let ((before-change-functions) (after-change-functions))
-            (put-text-property s e 'local-map
-                               debian-changelog-mouse-keymap)
-            (put-text-property s e 'mouse-face 'highlight))))
+        (let ((s (match-beginning 2))
+              (e (match-end 2)))
+          (if (string-match "XEmacs\\|Lucid" emacs-version)
+              (let ((extent (make-extent s e)))
+                (push extent debian-changelog-ext-list)
+                (set-extent-property extent 'highlight t)
+                (set-extent-property extent 'start-open t)
+                ;; (set-extent-property extent 'balloon-help 'debian-changelog-label-help)
+                ;; (set-extent-property extent 'help-echo 'debian-changelog-label-help-echo)
+                (set-extent-property extent 'keymap debian-changelog-mouse-keymap))
+            (let ((before-change-functions)
+                  (after-change-functions))
+              (put-text-property s e 'local-map
+                                 debian-changelog-mouse-keymap)
+              (put-text-property s e 'mouse-face 'highlight)))))
       (set-buffer-modified-p modified))))
 
 ;;;-------------
-- 
2.39.2

>From 95344a8091f824e6f7c5a846446a31c1e30cfedc Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 18 Oct 2024 19:08:35 +0200
Subject: [PATCH 23/27] Fix indentation in debian-changelog-font-lock-keyword-1

---
 debian-changelog-mode.el | 46 ++++++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/debian-changelog-mode.el b/debian-changelog-mode.el
index ae89fde..76bbaab 100644
--- a/debian-changelog-mode.el
+++ b/debian-changelog-mode.el
@@ -1525,29 +1525,29 @@ interface to set it, or simply set the variable
      (2 font-lock-type-face nil t)
      (3 font-lock-string-face nil t)
      (4 debian-changelog-warning-face nil t))
-   (debian-changelog-fontify-stable . debian-changelog-warning-face)
-   (debian-changelog-fontify-backports . debian-changelog-warning-face)
-   (debian-changelog-fontify-frozen . font-lock-type-face)
-   (debian-changelog-fontify-unstable . font-lock-string-face)
-   (debian-changelog-fontify-experimental . debian-changelog-warning-face)
-   (debian-changelog-fontify-unreleased . debian-changelog-warning-face)
-   (debian-changelog-fontify-urgency-crit . debian-changelog-warning-face)
-   (debian-changelog-fontify-urgency-high . debian-changelog-warning-face)
-   (debian-changelog-fontify-urgency-med . font-lock-type-face)
-   (debian-changelog-fontify-urgency-low . font-lock-string-face)
-   (debian-changelog-fontify-known-releases . font-lock-string-face)
-   ;; bug closers
-   (;"\\(closes:\\) *\\(\\(bug\\)?#? *[0-9]+\\(, *\\(bug\\)?#? *[0-9]+\\)*\\)"
-    ;; Process lines that continue on multiple lines - Fred Bothamy
-    "\\(closes:\\)[ \t\n]*\\(\\(bug\\)?#? *[0-9]+\\(,[ \t\n]*\\(bug\\)?#? *[0-9]+\\)*\\)"
-    (1 font-lock-keyword-face)
-    (2 debian-changelog-warning-face))
-   ("^\t.*$" . debian-changelog-warning-face)
-   ;; maintainer line (enforce 2 space exactly between email and date)
-   ("^ -- \\(.+\\) <\\(.+@.+\\)>  \\([^ ].+\\)$"
-    (1 font-lock-variable-name-face)
-    (2 font-lock-variable-name-face)
-    (3 font-lock-string-face)))
+    (debian-changelog-fontify-stable . debian-changelog-warning-face)
+    (debian-changelog-fontify-backports . debian-changelog-warning-face)
+    (debian-changelog-fontify-frozen . font-lock-type-face)
+    (debian-changelog-fontify-unstable . font-lock-string-face)
+    (debian-changelog-fontify-experimental . debian-changelog-warning-face)
+    (debian-changelog-fontify-unreleased . debian-changelog-warning-face)
+    (debian-changelog-fontify-urgency-crit . debian-changelog-warning-face)
+    (debian-changelog-fontify-urgency-high . debian-changelog-warning-face)
+    (debian-changelog-fontify-urgency-med . font-lock-type-face)
+    (debian-changelog-fontify-urgency-low . font-lock-string-face)
+    (debian-changelog-fontify-known-releases . font-lock-string-face)
+    ;; bug closers
+    (;"\\(closes:\\) *\\(\\(bug\\)?#? *[0-9]+\\(, *\\(bug\\)?#? *[0-9]+\\)*\\)"
+     ;; Process lines that continue on multiple lines - Fred Bothamy
+     "\\(closes:\\)[ \t\n]*\\(\\(bug\\)?#? *[0-9]+\\(,[ \t\n]*\\(bug\\)?#? *[0-9]+\\)*\\)"
+     (1 font-lock-keyword-face)
+     (2 debian-changelog-warning-face))
+    ("^\t.*$" . debian-changelog-warning-face)
+    ;; maintainer line (enforce 2 space exactly between email and date)
+    ("^ -- \\(.+\\) <\\(.+@.+\\)>  \\([^ ].+\\)$"
+     (1 font-lock-variable-name-face)
+     (2 font-lock-variable-name-face)
+     (3 font-lock-string-face)))
   "First level highlighting for `debian-changelog-mode'.")
 
 (defvar debian-changelog-font-lock-keywords-2
-- 
2.39.2

>From 5fdaca54f90893d4a5f1200ecaafc4f4a8ac9751 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 18 Oct 2024 19:09:44 +0200
Subject: [PATCH 24/27] readme-debian-date-string: replace an unneeded let*
 with let

---
 readme-debian.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/readme-debian.el b/readme-debian.el
index 162dc4f..bdc4c25 100644
--- a/readme-debian.el
+++ b/readme-debian.el
@@ -54,8 +54,8 @@
   ;; this function could be simpler if xemacs supported %z, but
   ;; it doesn't, so we're shelling out to invoke date -R to obtain
   ;; Debian-policy-compliant date string.
-  (let* ((date-program "date -R")
-         (system-time-locale "C"))
+  (let ((date-program "date -R")
+        (system-time-locale "C"))
     (if (featurep 'xemacs)
         (replace-in-string (exec-to-string date-program) "\n" "")
       ;; if it's not xemacs, just use format-time-string
-- 
2.39.2

>From e49f463584daaf7dc9330149db44390f0a9b3739 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 18 Oct 2024 19:12:40 +0200
Subject: [PATCH 25/27] Simplify some uses of looking-at
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Especially, use point-at-[be]ol eobp bolp… that are guaranteed with
both emacs and xemacs.
---
 debian-control-mode.el | 46 +++++++++++++-----------------------------
 readme-debian.el       | 24 +++++++++++-----------
 2 files changed, 26 insertions(+), 44 deletions(-)

diff --git a/debian-control-mode.el b/debian-control-mode.el
index 5de0013..952bc31 100644
--- a/debian-control-mode.el
+++ b/debian-control-mode.el
@@ -128,16 +128,6 @@
 
 ;; XEmacs compatibility
 (eval-and-compile
-  (unless (fboundp 'line-beginning-position)
-    (defun line-beginning-position ()
-      (save-excursion
-        (beginning-of-line)
-        (point))))
-  (unless (fboundp 'line-end-position)
-    (defun line-end-position ()
-      (save-excursion
-        (end-of-line)
-        (point))))
   (unless (fboundp 'match-string-no-properties)
     (defalias 'match-string-no-properties 'match-string)))
 
@@ -340,27 +330,19 @@ It should be immediately followed by a non-slash character.")
             (goto-char beg)
             (beginning-of-line)
             (while (< (point) end)
-              (cond ((looking-at (concat "^\\(Source:\\)\\s-*"
-                                         debian-control-package-name-regexp
-                                         "\\s-*$"))
-                     (add-text-properties
-                      (match-beginning 2) (match-end 2)
-                      `(mouse-face
-                        highlight
-                        debian-control-mode-package ,(match-string 2)
-                        help-echo "C-mouse-2: View bugs for this source package"
-                        keymap ,debian-control-mode-package-name-keymap)))
-                    ((looking-at (concat "^\\(Package:\\)\\s-*"
-                                         debian-control-package-name-regexp
-                                         "\\s-*$"))
-                     (add-text-properties
-                      (match-beginning 2) (match-end 2)
-                      `(mouse-face
-                        highlight
-                        debian-control-mode-package ,(match-string 2)
-                        help-echo "C-mouse-2: View bugs for this binary package"
-                        keymap ,debian-control-mode-package-name-keymap)))
-                    (t nil))
+              (when (looking-at (concat "^\\(Source\\|Package\\):\\s-*"
+                                        debian-control-package-name-regexp
+                                        "\\s-*$"))
+                (add-text-properties
+                 (match-beginning 2) (match-end 2)
+                 `(mouse-face
+                   highlight
+                   debian-control-mode-package ,(match-string 2)
+                   help-echo ,(format "C-mouse-2: View bugs for this %s package"
+                                      (if (string-prefix-p "S" (match-string 1))
+                                          "source"
+                                        "binary"))
+                   keymap ,debian-control-mode-package-name-keymap)))
               (forward-line 1)))
         (set-match-data data)
         (set-buffer-modified-p modified)))))
@@ -396,7 +378,7 @@ It should be immediately followed by a non-slash character.")
             (beginning-of-line)
             (looking-at debian-control-field-regexp))
           (setq beg (match-end 0)
-                end (line-end-position))
+                end (point-at-eol))
         ;; Otherwise, we're looking at a description; handle filling
         ;; areas separated with "."  specially
         (setq beg (save-excursion
diff --git a/readme-debian.el b/readme-debian.el
index bdc4c25..c05c656 100644
--- a/readme-debian.el
+++ b/readme-debian.el
@@ -66,18 +66,18 @@
 Automatically invoked when saving file."
   (save-excursion
     (goto-char (point-min))
-    (if (re-search-forward "^ -- " nil t)
-        (delete-region (progn (beginning-of-line) (point)) (progn (end-of-line) (point)))
-      (goto-char (point-max))
-      (if (bolp)
-          (insert "\n")
-        (insert "\n\n")))
-    (insert (concat
-             " -- "
-             debian-changelog-full-name
-             " <" debian-changelog-mailing-address ">, "
-             (readme-debian-date-string)))
-    (if (and (= (point)(point-max)) (not (bolp)))
+    (cond
+     ((re-search-forward "^ -- " nil 1)
+      (delete-region (point-at-bol) (point-at-eol)))
+     ((bolp)
+      (insert "\n"))
+     (t
+      (insert "\n\n")))
+    (insert " -- "
+            debian-changelog-full-name
+            " <" debian-changelog-mailing-address ">, "
+            (readme-debian-date-string))
+    (if (and (eobp) (not (bolp)))
         (insert "\n"))))
 
 (defvar readme-debian-mode-map
-- 
2.39.2

>From 76a9fc6f158365581c296e46c32de4f5c461a1a7 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 18 Oct 2024 19:22:37 +0200
Subject: [PATCH 26/27] debian-control-mode-add-field: simplify, remove a
 variable

---
 debian-control-mode.el | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/debian-control-mode.el b/debian-control-mode.el
index 952bc31..6b2c486 100644
--- a/debian-control-mode.el
+++ b/debian-control-mode.el
@@ -441,23 +441,22 @@ It should be immediately followed by a non-slash character.")
                (point))))
     (save-restriction
       (narrow-to-region beg end)
-      (let ((curfields (let ((result nil))
-                         (goto-char (point-min))
-                         (while (not (eobp))
-                           (when (looking-at debian-control-field-regexp)
-                             (push (cons (seq-subseq
-                                          ;; Text properties are evil
-                                          (match-string-no-properties 1)
-                                          0
-                                          ;; Strip off the ':'
-                                          (- (match-end 1)
-                                             (match-beginning 1)
-                                             1))
-                                         (match-beginning 0))
-                                   result))
-                           (forward-line 1))
-                         result))
-            (x nil))
+      (let ((curfields nil) x)
+        ;; Populate curfields
+        (goto-char (point-min))
+        (while (not (eobp))
+          (when (looking-at debian-control-field-regexp)
+            (push (cons (seq-subseq
+                         ;; Text properties are evil
+                         (match-string-no-properties 1)
+                         0
+                         ;; Strip off the ':'
+                         (- (match-end 1)
+                            (match-beginning 1)
+                            1))
+                        (match-beginning 0))
+                  curfields))
+          (forward-line 1))
         ;; If the field is already present, just jump to it
         (if (setq x (assoc field curfields))
             (goto-char (cdr x))
-- 
2.39.2

>From f3217839897853a885a85efa4e2017c0b58c3f36 Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Fri, 18 Oct 2024 22:11:31 +0200
Subject: [PATCH 27/27] dpkg-dev-el: replace an incorrect let with let*

---
 dpkg-dev-el.el | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/dpkg-dev-el.el b/dpkg-dev-el.el
index 9fd0665..70e3473 100644
--- a/dpkg-dev-el.el
+++ b/dpkg-dev-el.el
@@ -113,10 +113,10 @@
 If [package] is a debian native (no separate changelog.Debian) then answer
 `utf-8', otherwise remove ourselves from `file-coding-system-alist' and see
 what other rules say."
-    (let ((filename (if (consp (cadr args))
-                        (car (cadr args)) ;; ("filename" . buffer) in emacs 22
-                      (cadr args)))       ;; "filename" in emacs 21
-          (dirname  (file-name-directory filename)))
+    (let* ((filename (if (consp (cadr args))
+                         (car (cadr args)) ;; ("filename" . buffer) in emacs 22
+                       (cadr args)))       ;; "filename" in emacs 21
+           (dirname  (file-name-directory filename)))
       (if (file-exists-p (concat dirname "changelog.Debian.gz"))
           (let ((file-coding-system-alist
                  (remove '("/usr/share/doc/[^/]+/changelog\\'"
-- 
2.39.2


--- End Message ---
--- Begin Message ---
Source: dpkg-dev-el
Source-Version: 37.20
Done: Xiyue Deng <[email protected]>

We believe that the bug you reported is fixed in the latest version of
dpkg-dev-el, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Xiyue Deng <[email protected]> (supplier of updated dpkg-dev-el package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Sun, 07 Sep 2025 22:26:53 -0700
Source: dpkg-dev-el
Architecture: source
Version: 37.20
Distribution: unstable
Urgency: medium
Maintainer: Debian Emacsen team <[email protected]>
Changed-By: Xiyue Deng <[email protected]>
Closes: 1085464 1111341 1112562
Changes:
 dpkg-dev-el (37.20) unstable; urgency=medium
 .
   * Upload to unstable
 .
 dpkg-dev-el (37.20~exp7) experimental; urgency=medium
 .
   * Enable yaml-mode for debian/upstream/metadata
     - Thanks Niels Thykier for the suggestions. (Closes: #1112562)
 .
 dpkg-dev-el (37.20~exp6) experimental; urgency=medium
 .
   * Add more rfc822 watch fields supported in the latest devscripts
     - Update the examples in tests from the latest debian-watch(5).
 .
 dpkg-dev-el (37.20~exp5) experimental; urgency=medium
 .
   * Improve comment handling
     - Allow empty characters before `#'.
   * Add support for distro-info to get suite names for Debian and Ubuntu
     - Also added simple test cases.
   * Add distro-info to Recommends and Build-Depends for tests in d/control
 .
 dpkg-dev-el (37.20~exp4) experimental; urgency=medium
 .
   * Add support for uscan-template(5) fields
     - Also highlight "auto" in more supported fields.
 .
 dpkg-dev-el (37.20~exp3) experimental; urgency=medium
 .
   * Style fixes in debian-rfc822-mode
 .
 dpkg-dev-el (37.20~exp2) experimental; urgency=medium
 .
   * Add autoload cookie to derived modes
     - So that the mode definitions are available when using the major
       modes.
 .
 dpkg-dev-el (37.20~exp1) experimental; urgency=medium
 .
   * Adapt improvements and fixes by Nicolas Boulenguez (Closes: #1085464)
     - Thanks for the work!
   * Use one debputy lsp entry to manage all supported modes
     - So that a single debputy instance can manage all opened buffers in
       those supported modes.  Thanks Niels Thykier for the suggestion and
       the example setting!
   * Add debian-rfc822-mode.el defining a base rfc822-style mode
     - Other rfc822-style modes can derive from this base mode for easy
       customization.
   * Derive debian-autopkgtest-control-mode from debian-rfc822-mode
     - Also update tests on the fontification of a single `@'.
   * Add debian-rfc822-watch-mode for debian/watch version 5 files
     - Derive from debian-rfc822-mode. (Closes: #1111341)
   * Add faceup tests for debian-deb822-watch-mode
     - Examples are taken from debian-watch(5).
   * Update d/copyright for newly added files
Checksums-Sha1:
 2da13abcf9b163cdf3ae2f39aee565a84b359159 2061 dpkg-dev-el_37.20.dsc
 33a625e8466e636a542f3da0af516937113a0338 48120 dpkg-dev-el_37.20.tar.xz
 4ebe30fb9d5bf41caa5374cf034dff2399bd8a62 87412 dpkg-dev-el_37.20.git.tar.xz
 40990bc0fa67f44492723f9c9dfec20281a56889 18062 
dpkg-dev-el_37.20_source.buildinfo
Checksums-Sha256:
 4576d6f7b5ac2f39b0af2c6cb3ef8cb886c88b3dcb83de585fd39e2f4846f5e4 2061 
dpkg-dev-el_37.20.dsc
 ef15d5fc5e03c2491d6aceee9058eba1b99dff237006bbe4794ee81c619111a6 48120 
dpkg-dev-el_37.20.tar.xz
 038c8c70d5bbccb0b6e9bb8af908bcf7aca6a59e43acfdc8df6b1c83a9b8340f 87412 
dpkg-dev-el_37.20.git.tar.xz
 bd695d06600b9daa0c97a6027b367abdecc5a6de9683d056680c2ded9af7f7b6 18062 
dpkg-dev-el_37.20_source.buildinfo
Files:
 0bb169d3c697de0bc607903037580723 2061 editors optional dpkg-dev-el_37.20.dsc
 1a37ce18a9b965c0866cac7c041abbd1 48120 editors optional 
dpkg-dev-el_37.20.tar.xz
 d1c39d8f8711cf0d18e464876c357314 87412 editors optional 
dpkg-dev-el_37.20.git.tar.xz
 c39a5e60a85b11b694bb0c2850ae9f0f 18062 editors optional 
dpkg-dev-el_37.20_source.buildinfo
Git-Tag-Info: tag=4062570b023d265ac47d625282f026acd56f3b75 
fp=88a41f77aa3cd668c8f8b5802de965ed63825c93
Git-Tag-Tagger: Xiyue Deng <[email protected]>

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEN02M5NuW6cvUwJcqYG0ITkaDwHkFAmi+bGkACgkQYG0ITkaD
wHksqhAAmV0z/S07JngzhW3uW0YW+4mkWPxdR9+AtCgsndYMaVZrZ7svP/eeJUx9
IZvyWC8QM5ogDdbZR8cSrISuMz4Ng9Qzwm12VCEFrpri1mXUdx0eqMXcO/jt2iXY
QhgP3XADcOyoCMrwXhQjlr41NQEx6mCyEvt0Lm/g3DY4eDGDvRd6/TxJAX8MFFDx
cP0ti8EGGD6FZJvD8VdEiQdosyaMTU3vdrOsukTwIPu48bR/5bTC+u5IMoyv1GJA
0xydKxXH5Mk5LGaIrhb2XBI1ZNLdUK1Jk0YVp25tbbTEP7oA3viGCtP2W6PgOrn+
11cr76o2fswjjBnR0AJt59zSBNjUaVc76frqmE+BSCfBN9iDmOZXQ834N/CfTcr6
ylwytT53GYF+1mvk26Kc3cH6F2IYNKKjk4rLy/fcdDc77rjZne1bSs2r/6qZtgPJ
WhhsYSFF1CPMVXm4YzfWstWtRE6erYo4zVm8QoRyxc1pNH55pZ2Juoz9F80rMmSq
uq2FAQmCDCOgFO02QlY3gi3lXC9LkcYqWu+Ae/XSqhB0vmPxDRfoNnnzb1nSKvro
DceNXPB3WxQETVr5TBx224FktlPPGyBdeD4emRnnJOCt2EoLnv90eI1Of5KSwX7D
GUK2Zi9D157ogdgGO+lnDcXk7wd4RHfHf9X4BHuANlE8PPUhNbo=
=YCek
-----END PGP SIGNATURE-----

Attachment: pgpCwwDQ6ELpw.pgp
Description: PGP signature


--- End Message ---

Reply via email to