]> git.eshelyaron.com Git - emacs.git/commitdiff
gnus-group.el (gnus-import-other-newsrc-file): New function.
authorLars Ingebrigtsen <larsi@gnus.org>
Sun, 27 Feb 2011 08:20:21 +0000 (08:20 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Sun, 27 Feb 2011 08:20:21 +0000 (08:20 +0000)
lisp/gnus/ChangeLog
lisp/gnus/gnus-group.el
lisp/gnus/gnus.el

index 3eb7a477dd1243b941475fb066a3d9ad8d9cc29d..d06605458440b4d779046772c743740ecdcdb93c 100644 (file)
@@ -1,3 +1,7 @@
+2011-02-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-group.el (gnus-import-other-newsrc-file): New function.
+
 2011-02-25  Teodor Zlatanov  <tzz@lifelogs.com>
 
        * auth-source.el (auth-source-search): Cache empty result sets.
index 30cd1275e7b30db264060b9911af36c3b3ab520c..832cd758b61a255b85606de4d699a016d54ea913 100644 (file)
@@ -4400,6 +4400,21 @@ and the second element is the address."
 (defun gnus-group-set-params-info (group params)
   (gnus-group-set-info params group 'params))
 
+;; Ad-hoc function for inserting data from a different newsrc.eld
+;; file.  Use with caution, if at all.
+(defun gnus-import-other-newsrc-file (file)
+  (with-temp-buffer
+    (insert-file file)
+    (let (form)
+      (while (ignore-errors
+              (setq form (read (current-buffer))))
+       (when (and (consp form)
+                  (eq (cadr form) 'gnus-newsrc-alist))
+         (let ((infos (cadr (nth 2 form))))
+           (dolist (info infos)
+             (when (gnus-get-info (car info))
+               (gnus-set-info (car info) info)))))))))
+
 (defun gnus-add-marked-articles (group type articles &optional info force)
   ;; Add ARTICLES of TYPE to the info of GROUP.
   ;; If INFO is non-nil, use that info.  If FORCE is non-nil, don't
index 42acb65ff9fed47c6b41215e4d4a754309641561..a5c727925f6f18377e4c506acfc4ba1da248eeb9 100644 (file)
@@ -3114,6 +3114,10 @@ Return nil if not defined."
 (defmacro gnus-get-info (group)
   `(nth 2 (gnus-gethash ,group gnus-newsrc-hashtb)))
 
+(defun gnus-set-info (group info)
+  (setcar (nthcdr 2 (gnus-gethash group gnus-newsrc-hashtb))
+         info))
+
 ;;; Load the compatibility functions.
 
 (require 'gnus-ems)