emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r103845: gnus-registry.el: Don't use


From: Katsumi Yamaoka
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r103845: gnus-registry.el: Don't use ERT if it's not available.
Date: Wed, 06 Apr 2011 12:55:49 +0000
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 103845
author: Teodor Zlatanov <address@hidden>
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Wed 2011-04-06 12:55:49 +0000
message:
  gnus-registry.el: Don't use ERT if it's not available.
   (gnus-registry-delete-entries): New convenience function.
   (gnus-registry-import-eld): Import from old .eld registry.
  registry.el: Don't use ERT if it's not available.
  proto-stream.el (gnutls-negotiate): Revert inadvertent commit of the version 
from the Claudio Bley GnuTLS patch (extra optional parametersnand host name).
modified:
  lisp/gnus/ChangeLog
  lisp/gnus/gnus-registry.el
  lisp/gnus/registry.el
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2011-04-06 12:18:10 +0000
+++ b/lisp/gnus/ChangeLog       2011-04-06 12:55:49 +0000
@@ -1,3 +1,15 @@
+2011-04-06  Teodor Zlatanov  <address@hidden>
+
+       * gnus-registry.el: Don't use ERT if it's not available.
+       (gnus-registry-delete-entries): New convenience function.
+       (gnus-registry-import-eld): Import from old .eld registry.
+
+       * registry.el: Don't use ERT if it's not available.
+
+       * proto-stream.el (gnutls-negotiate): Revert inadvertent commit of the
+       version from the Claudio Bley GnuTLS patch (extra optional parameters
+       and host name).
+
 2011-04-05  Teodor Zlatanov  <address@hidden>
 
        * gnus-registry.el (gnus-registry-fixup-registry): New function to

=== modified file 'lisp/gnus/gnus-registry.el'
--- a/lisp/gnus/gnus-registry.el        2011-04-05 22:35:05 +0000
+++ b/lisp/gnus/gnus-registry.el        2011-04-06 12:55:49 +0000
@@ -57,7 +57,10 @@
 
 (eval-when-compile (require 'cl))
 
-(require 'ert)
+(eval-when-compile
+  (when (null (require 'ert nil t))
+    (defmacro* ert-deftest (name () &body docstring-keys-and-body))))
+
 (require 'gnus)
 (require 'gnus-int)
 (require 'gnus-sum)
@@ -807,6 +810,9 @@
 
     (nth 1 (assoc id entries))))
 
+(defun gnus-registry-delete-entries (idlist)
+  (registry-delete gnus-registry-db idlist nil))
+
 (defun gnus-registry-get-id-key (id key)
   (cdr-safe (assq key (gnus-registry-get-or-make-entry id))))
 
@@ -818,6 +824,51 @@
     (registry-insert db id entry)
     entry))
 
+(defun gnus-registry-import-eld (file)
+  (interactive "fOld registry file to import? ")
+  ;; example content:
+  ;;   (setq gnus-registry-alist '(
+  ;; ("<messageID>" ((marks nil)
+  ;;                 (mtime 19365 1776 440496)
+  ;;                 (sender . "root (Cron Daemon)")
+  ;;                 (subject . "Cron"))
+  ;;  "cron" "nnml+private:cron")
+  (load file t)
+  (when (boundp 'gnus-registry-alist)
+    (let* ((old (symbol-value 'gnus-registry-alist))
+           (count 0)
+           (expected (length old))
+           entry)
+      (while (car-safe old)
+        (incf count)
+        ;; don't use progress reporters for backwards compatibility
+        (when (and (< 0 expected)
+                   (= 0 (mod count 100)))
+          (message "importing: %d of %d (%.2f%%)"
+                   count expected (/ (* 100 count) expected)))
+        (setq entry (car-safe old)
+              old (cdr-safe old))
+        (let* ((id (car-safe entry))
+               (new-entry (gnus-registry-get-or-make-entry id))
+               (rest (cdr-safe entry))
+               (groups (loop for p in rest
+                             when (stringp p)
+                             collect p))
+               extra-cell key val)
+          ;; remove all the strings from the entry
+          (delete* nil rest :test (lambda (a b) (stringp b)))
+          (gnus-registry-set-id-key id 'group groups)
+          ;; just use the first extra element
+          (setq rest (car-safe rest))
+          (while (car-safe rest)
+            (setq extra-cell (car-safe rest)
+                  key (car-safe extra-cell)
+                  val (cdr-safe extra-cell)
+                  rest (cdr-safe rest))
+            (when (and val (atom val))
+              (setq val (list val)))
+            (gnus-registry-set-id-key id key val))))
+      (message "Import done, collected %d entries" count))))
 
 (ert-deftest gnus-registry-usage-test ()
   (let* ((n 100)

=== modified file 'lisp/gnus/registry.el'
--- a/lisp/gnus/registry.el     2011-04-06 02:01:39 +0000
+++ b/lisp/gnus/registry.el     2011-04-06 12:55:49 +0000
@@ -77,7 +77,10 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'ert))
+(eval-when-compile
+  (when (null (require 'ert nil t))
+    (defmacro* ert-deftest (name () &body docstring-keys-and-body))))
+
 (eval-when-compile (require 'cl))
 (eval-and-compile
   (or (ignore-errors (progn


reply via email to

[Prev in Thread] Current Thread [Next in Thread]