CVS: tmda/contrib ChangeLog,1.102,1.103 tmda.el,1.5,1.6

Josh Huber <[email protected]> Thu, 29 Apr 2004 08:24:18 -0700
Newsgroups gmane.mail.spam.tmda.cvs
Message-ID <[email protected]>
Update of /cvsroot/tmda/tmda/contrib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16842

Modified Files:
	ChangeLog tmda.el 
Log Message:
Commit of tmda.el patch by Bob Rogers:

2004-04-03  Bob Rogers  <[email protected]>

        * tmda.el (tmda-pending-buffer-kill):  FSF emacs `=' expects 2 args.
        (tmda-pending-command): Remove comma that prevented compilation.
        (tmda-pending-tag-command): FSF emacs delete-char needs an arg.
        (tmda-pending-changelist): FSF emacs has no copy-tree defaultly.
        (tmda-check-version): Fix logic error in versions >= 1.*.
        (tmda-add-to-list, tmda-generate-address, tmda-pending-apply-changes):
        supply missing format string (fixes a bug in processing of
        output that contains '%').

        * tmda.el (tmda-pending-backward-clear):  New command, bound to
        DEL.



Index: ChangeLog
===================================================================
RCS file: /cvsroot/tmda/tmda/contrib/ChangeLog,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -r1.102 -r1.103
--- ChangeLog	1 Oct 2003 22:28:38 -0000	1.102
+++ ChangeLog	29 Apr 2004 15:24:15 -0000	1.103
@@ -1,3 +1,17 @@
+2004-04-03  Bob Rogers  <[email protected]>
+
+        * tmda.el (tmda-pending-buffer-kill):  FSF emacs `=' expects 2 args.
+        (tmda-pending-command): Remove comma that prevented compilation.
+        (tmda-pending-tag-command): FSF emacs delete-char needs an arg.
+        (tmda-pending-changelist): FSF emacs has no copy-tree defaultly.
+        (tmda-check-version): Fix logic error in versions >= 1.*.
+        (tmda-add-to-list, tmda-generate-address, tmda-pending-apply-changes):
+        supply missing format string (fixes a bug in processing of
+        output that contains '%').
+
+        * tmda.el (tmda-pending-backward-clear):  New command, bound to
+        DEL.
+
 2003-10-01  Jason R. Mastaler  <[email protected]>
 
 	* smtp-check-sender (data): Change the default probe address to

Index: tmda.el
===================================================================
RCS file: /cvsroot/tmda/tmda/contrib/tmda.el,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- tmda.el	14 Nov 2002 04:35:14 -0000	1.5
+++ tmda.el	29 Apr 2004 15:24:16 -0000	1.6
@@ -458,14 +458,14 @@
 			 "Blacklist sender wildcard in summary buffer.")
 
 (defun tmda-add-to-list (addr file)
-  (message (concat "Adding to " file " ..."))
+  (message "Adding to %s ..." file)
   (let ((require-final-newline t))
     (with-temp-buffer
       (insert-file-contents-literally file)
       (goto-char (point-min))
       (if (re-search-forward
 	   (concat "^" (regexp-quote addr) "$") nil t)
-	  (message (concat addr " already in " file))
+	  (message "%s already in %s" addr file)
 	(goto-char (point-max))
 	(insert addr)
 	(write-file file)))))
@@ -571,7 +571,7 @@
 		 nil))))
     (if string
 	(progn
-	  (message string)
+	  (message "%s" string)
 	  (kill-new string))
       (message "Invalid syntax, please try again."))))
 
@@ -580,13 +580,11 @@
 (defun tmda-pending-buffer-kill ()
   (interactive)
   (let* ((changes (tmda-pending-changelist))
-         (dcount (length (cdr (assoc ?d changes))))
-         (rcount (length (cdr (assoc ?r changes))))
-	 (quit
-	  (if (not (= 0 dcount rcount))
-              (y-or-n-p
-               "Quit tmda-pending buffer without applying changes? ")
-	    t)))
+	 (quit (if (or (cdr (assoc ?d changes))
+		       (cdr (assoc ?r changes)))
+		   (y-or-n-p
+		    "Quit tmda-pending buffer without applying changes? ")
+		   t)))
     (when quit
       (kill-buffer tmda-pending-buffer))))
 
@@ -646,7 +644,7 @@
 
 (defmacro tmda-pending-command (&rest forms)
   "Make the tmda-pending commands a little easier to read."
-  `(let ((msg ,(tmda-pending-msg)))
+  `(let ((msg (tmda-pending-msg)))
      (if msg
 	 (progn
 	   ,@forms)
@@ -670,7 +668,7 @@
      (beginning-of-line)
      (forward-char)
      (toggle-read-only 0)
-     (delete-char)
+     (delete-char 1)
      (insert char)
      (toggle-read-only 1))
    (when tmda-pending-tag-auto-advance
@@ -688,18 +686,26 @@
   (interactive)
   (tmda-pending-tag-command " "))
 
+(defun tmda-pending-backward-clear ()
+  "Clear any tagged operation on the previous line."
+  (interactive)
+  (let ((tmda-pending-tag-auto-advance nil))
+    (if (tmda-pending-prev-msg)
+	(tmda-pending-tag-command " ")
+	(error "No previous message."))))
+
 (defun tmda-pending-changelist ()
   (save-excursion
     (goto-char (point-min))
     (let (msg
           (first t)
-          (changelist (copy-tree '((?d) (?r)))))
+          (changelist (mapcar (function list) '(?d ?r))))
       (while (or first (tmda-pending-next-msg))
 	(when (setq msg (tmda-pending-msg))
-	  (let ((tag (save-excursion (forward-char 1)
-				     (char-after))))
-	    (when (not (eq tag ? ))
-              (push msg (cdr (assoc tag changelist))))))
+	  (let* ((tag (char-after (1+ (point))))
+		 (cell (assoc tag changelist)))
+	    (if cell
+		(setcdr cell (cons msg (cdr cell))))))
 	(setq first nil))
       changelist)))
 
@@ -711,14 +717,14 @@
     (message "Processing...")
     (when (< 0 (length dels))
       (message "Processing...deletes")
-      (message (shell-command-to-string
-                (format "tmda-pending -b -d %s"
-                        (mapconcat 'identity dels " ")))))
+      (message "%s" (shell-command-to-string
+		     (format "tmda-pending -b -d %s"
+			     (mapconcat 'identity dels " ")))))
     (when (< 0 (length rels))
       (message "Processing...releases")
-      (message (shell-command-to-string
-                (format "tmda-pending -b -r %s"
-                        (mapconcat 'identity rels " "))))))
+      (message "%s" (shell-command-to-string
+		     (format "tmda-pending -b -r %s"
+			     (mapconcat 'identity rels " "))))))
   (sleep-for 0.5)
   (message "Processing...refreshing pending list")
   (tmda-pending-refresh-buffer)
@@ -748,6 +754,7 @@
   (local-set-key "d" 'tmda-pending-delete)
   (local-set-key "c" 'tmda-pending-clear-mark)
   (local-set-key " " 'tmda-pending-clear-mark)
+  (local-set-key "\C-?" 'tmda-pending-backward-clear)
   (local-set-key "x" 'tmda-pending-apply-changes)
   (local-set-key "n" 'tmda-pending-next-msg)
   (local-set-key "p" 'tmda-pending-prev-msg)
@@ -774,9 +781,12 @@
 
 (defun tmda-check-version ()
   (let ((ver (shell-command-to-string "tmda-keygen --version")))
-    (string-match "\\([0-9]+\\)\\.\\([0-9]+\\)" ver)
-    (and (>= (string-to-int (match-string 1 ver)) tmda-major-ver-req)
-	 (>= (string-to-int (match-string 2 ver)) tmda-minor-ver-req))))
+    (and (string-match "\\([0-9]+\\)\\.\\([0-9]+\\)" ver)
+	 (let ((major (string-to-int (match-string 1 ver))))
+	   (or (> major tmda-major-ver-req)
+	       (and (= major tmda-major-ver-req)
+		    (>= (string-to-int (match-string 2 ver))
+			tmda-minor-ver-req)))))))
 
 ;; utility function to setup keybindings