;ELC ;;; compiled by amu@mit.edu on Sat Sep 13 16:20:47 1997 ;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/gnus-5.4.67/lisp/nnvirtual.el ;;; emacs version 19.30.1. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`nnvirtual.el' was compiled for Emacs 19.29 or later")) (byte-code "タチ!安ツ!安テ!安ト!安ナ!安ニ!安ヌ!以ノハヒ\"ヒ宇\fB\fネヘDBヒ" [require nntp nnheader gnus nnoo gnus-util gnus-start gnus-sum nnvirtual mapcar #[(p) "C" [p] 1] nil nnoo-definition-alist "*internal-non-initialized-backend*" nnoo-state-alist] 4) #@300 *If non-nil, always scan groups for unread articles when entering a group. If this variable is nil (which is the default) and you read articles in a component group after the virtual group has been activated, the read articles from the component group will show up when you enter the virtual group. (defvar nnvirtual-always-rescan nil (#$ . -748)) (nnoo-define (quote nnvirtual-always-rescan) nil) #@36 *Regexp to match component groups. (defvar nnvirtual-component-regexp nil (#$ . -1152)) (nnoo-define (quote nnvirtual-component-regexp) nil) #@42 Component group in this nnvirtual group. (defvar nnvirtual-component-groups nil (#$ . 1299)) (byte-code "タチツ\"暗ト Bニヌ!ツヌ Bタヌツ\"" [nnoo-define nnvirtual-component-groups nil "nnvirtual 1.1" nnvirtual-version current-load-list boundp nnvirtual-current-group] 3) #@100 Table of rules on how to map between component group and article number to virtual article number. (defvar nnvirtual-mapping-table nil (#$ . 1575)) (nnoo-define (quote nnvirtual-mapping-table) nil) #@95 Table indexed by component group to an offset to be applied to article numbers in that group. (defvar nnvirtual-mapping-offsets nil (#$ . 1779)) (nnoo-define (quote nnvirtual-mapping-offsets) nil) #@43 Number of articles in this virtual group. (defvar nnvirtual-mapping-len 0 (#$ . 1982)) (nnoo-define (quote nnvirtual-mapping-len) nil) #@126 Compressed sequence of read articles on the virtual group as computed from the unread status of individual component groups. (defvar nnvirtual-mapping-reads nil (#$ . 2124)) (nnoo-define (quote nnvirtual-mapping-reads) nil) #@105 Compressed marks alist for the virtual group as computed from the marks of individual component groups. (defvar nnvirtual-mapping-marks nil (#$ . 2355)) (nnoo-define (quote nnvirtual-mapping-marks) nil) #@98 T if we have already installed the group info for this group, and shouldn't blast over it again. (defvar nnvirtual-info-installed nil (#$ . 2564)) (byte-code "タチツ\"暗ト! ナトBタトツ\"杏ネノ\"位ヒ!" [nnoo-define nnvirtual-info-installed nil boundp nnvirtual-status-string "" current-load-list autoload gnus-cache-articles-in-group "gnus-cache" nnoo-define-basics-1 nnvirtual] 3) (defalias 'nnvirtual-retrieve-headers #[(articles &optional newsgroup server fetch-old) "タ !浬nq暗 \f@;ナニヌネ!!ノ\f!ハ ヒ演演\f \n@@@A陰\fロモヤ!ユ\"ロヨユ\"ロラ!\fロユル\fヒ# )ロ\nq ナ=リレ ebmミ`ロ\n!`|緯\f\"ン\"┿゙y`゚y`|m\n\"違\f\n$衣ymqdb遺\n!\f6\f\"6浬nq暗 遺!井゚ed#)褂!.)" [nnvirtual-possibly-change-server server nntp-server-buffer erase-buffer articles headers nnheader-set-temp-buffer get-buffer-create " *virtual headers*" nnvirtual-partition-sequence system-name nil prefix result article carticle cgroup carticles vbuf gnus-check-server gnus-find-method-for-group t gnus-request-group gnus-group-real-prefix gnus-use-cache gnus-retrieve-headers nnvirtual-convert-headers read delq nnvirtual-reverse-map-article 0 1 princ nnvirtual-update-xref-header insert-buffer-substring gnus-group-make-articles-read sort-numeric-fields nov kill-buffer] 9]) (byte-code "タチ!按テ!Ыfトテ Bニテト\"" [nnoo-register-function nnvirtual-retrieve-headers boundp nnvirtual-last-accessed-component-group nil current-load-list nnoo-define] 3) (defalias 'nnvirtual-request-article #[(article &optional group server buffer) "タ !\n;3 トナニ\"q以 ! ハ ヒ\"\nフ A@$*ヘ\n!@Иトナミ\n#iム!Шトナメ#iモヤ\"jトナユ#iモq椅A\")iラA\"*" [nnvirtual-possibly-change-server server article nnvirtual-last-accessed-component-group nnheader-report nnvirtual "Don't know what server to request from" buffer gnus-find-method-for-group method gnus-get-function request-article nil nnvirtual-map-article amap cgroup "No such article: %s" gnus-check-group "Can't open server where %s exists" gnus-request-group t "Can't open component group %s" gnus-request-article-this-buffer gnus-request-article] 6]) (nnoo-register-function (quote nnvirtual-request-article)) (defalias 'nnvirtual-open-server #[(server &optional defs) "タ 桷\fタ\nD Bテト\n # ニヌヌ ハ ヌ\fヌ ヌズAヌ陰@@スメ\"6モ \"B6* cヤトユ\n#ニ" [nnvirtual-component-regexp defs server nnoo-change-server nnvirtual nnvirtual-component-groups t nil nnvirtual-mapping-table nnvirtual-mapping-offsets 0 nnvirtual-mapping-len nnvirtual-mapping-reads nnvirtual-mapping-marks nnvirtual-info-installed gnus-newsrc-alist group newsrc string-match delete nnheader-report "No component groups: %s"] 4]) (nnoo-register-function (quote nnvirtual-open-server)) (defalias 'nnvirtual-request-group #[(group &optional server dont-check) "タ !按テ \f\"ナニヌネ #\n! $フ  ヘホ $" [nnvirtual-possibly-change-server server delete nnvirtual-current-group nnvirtual-component-groups nil nnheader-report nnvirtual "No component groups in %s" group dont-check nnvirtual-always-rescan nnvirtual-create-mapping nnheader-insert "211 %d 1 %d %s\n" nnvirtual-mapping-len] 6]) (nnoo-register-function (quote nnvirtual-request-group)) (defalias 'nnvirtual-request-type #[(group &optional article) "チツ!ト @ A\")" [article unknown nnvirtual-map-article mart gnus-request-type] 4]) (nnoo-register-function (quote nnvirtual-request-type)) (defalias 'nnvirtual-request-update-mark #[(group article mark) "タ !@ト \nA #\n# U#ヌ !#+ " [nnvirtual-map-article article nart cgroup gnus-request-update-mark mark nmark gnus-group-auto-expirable-p gnus-expirable-mark] 5]) (nnoo-register-function (quote nnvirtual-request-update-mark)) (defalias 'nnvirtual-close-group #[(group &optional server) "タ !ツテ !トナ噂"闇" [nnvirtual-possibly-change-server server gnus-ephemeral-group-p nnvirtual-current-group nnvirtual-update-read-and-marked t] 3]) (nnoo-register-function (quote nnvirtual-close-group)) (defalias 'nnvirtual-request-list #[(&optional server) "タチツ\"" [nnheader-report nnvirtual "LIST is not implemented."] 3]) (nnoo-register-function (quote nnvirtual-request-list)) (defalias 'nnvirtual-request-newgroups #[(date &optional server) "タチツ\"" [nnheader-report nnvirtual "NEWGROUPS is not supported."] 3]) (nnoo-register-function (quote nnvirtual-request-newgroups)) (defalias 'nnvirtual-request-list-newsgroups #[(&optional server) "タチツ\"" [nnheader-report nnvirtual "LIST NEWSGROUPS is not implemented."] 3]) (nnoo-register-function (quote nnvirtual-request-list-newsgroups)) (defalias 'nnvirtual-request-update-info #[(group info &optional server) "タ !5\n?5  AA杏 寃$ヌ 11 AAC。伊)ノ" [nnvirtual-possibly-change-server server nnvirtual-info-installed gnus-atomic-be-safe inhibit-quit info nnvirtual-mapping-reads 3 nnvirtual-mapping-marks t] 2]) (nnoo-register-function (quote nnvirtual-request-update-info)) (defalias 'nnvirtual-catchup-group #[(group &optional server all) "タ !-ツテ !?-トナ噂"鞍!ネ \nヒフ\" q夷ナ\"+" [nnvirtual-possibly-change-server server gnus-ephemeral-group-p nnvirtual-current-group nnvirtual-update-read-and-marked nil copy-sequence nnvirtual-component-groups t gnus-expert-user gnus-group-marked mapcar #[(g) "タ \n\"J@ァ?テ !" [intern-soft g gnus-newsrc-hashtb gnus-activate-group] 3] gnus-group-buffer gnus-group-catchup-current all] 3]) (nnoo-register-function (quote nnvirtual-catchup-group)) #@66 Return the real group and article for virtual GROUP and ARTICLE. (defalias 'nnvirtual-find-group-art #[(group article) "タ !" [nnvirtual-map-article article] 2 (#$ . 8107)]) (nnoo-register-function (quote nnvirtual-find-group-art)) #@40 Convert HEAD headers into NOV headers. (defalias 'nnvirtual-convert-headers #[nil "q庵ツテ\"ナ\f!ヌノ 陰@)ハ!," [nntp-server-buffer make-vector 100 0 dependencies gnus-get-newsgroup-headers headers nil header erase-buffer nnheader-insert-nov] 3 (#$ . 8345)]) #@131 Edit current NOV header in current buffer to have an xref to the component group, and also server prefix any existing xref lines. (defalias 'nnvirtual-update-xref-header #[(group article prefix system-name) "タy庵ツ!安秒暗トナ ニ#トc`SfヌU)ネu伊ハ!ヒ\fヘマア威p\"囲c形テトナ メ#Iナ }eb意ヤユメ#ソ\ヨラメ#eb意ルレ\"ブタ遍OX)ロPユメ#ユヨラメ#`dU┃ヘcラ┃モンユメ#Ν澗巴c)v)ユ`Sf゙Uゲc" [0 looking-at "[^ ]* [^ ]* [^ ]* [^ ]* [^ ]* [^ ]* [^ ]* " search-forward " " gnus-point-at-eol move 32 -1 delete-char 1 "Xref: " system-name " " group ":" princ article t re-search-forward "Xref: *[^\n:0-9 ]+ *" nil replace-match "" gname string-match "^[^:]+:" ":[0-9]+" prefix "[^ ]+:[0-9]+" 9] 5 (#$ . 8629)]) (defalias 'nnvirtual-possibly-change-server #[(server) "?チテ\n!*嚀ト!" [server nnvirtual backend nnoo-current-server nnvirtual-open-server] 2]) #@200 Copy marks from the virtual group to the component groups. If READ-P is not nil, update the (un)read status of the components. If UPDATE-P is not nil, call gnus-group-update-group on the components. (defalias 'nnvirtual-update-read-and-marked #[(read-p update-p) "ヤ ツテタ !!トナニヌネタ  \"J88\"ハ演演 \f ハ陰@ コヨ @ A\"9)メヌネ陰@ \"J8\fジニ\f8ジニ\f嵬8陰@Ψ@A陰@ メリ @ Aハル%x)メメロ陰@ル\"ち." [nnvirtual-current-group read-p nnvirtual-partition-sequence gnus-list-of-unread-articles mapcar #[(ml) "@チA!B" [ml nnvirtual-partition-sequence] 3] 3 2 intern-soft gnus-newsrc-hashtb nil entry info carticles groups type mark type-marks unreads gnus-atomic-be-safe inhibit-quit gnus-newsgroup-active gnus-update-read-articles nnvirtual-component-groups gnus-add-marked-articles t update-p gnus-group-update-group] 8 (#$ . 9504)]) #@58 Return the prefixed name of the current nnvirtual group. (defalias 'nnvirtual-current-group #[nil "タ P" ["nnvirtual:" nnvirtual-current-group] 2 (#$ . 10431)]) #@37 Merge many sorted lists of numbers. (defalias 'nnvirtual-merge-sorted-lists #[(&rest lists) "A@チツテ\"ト\"" [lists sort apply nconc <] 4 (#$ . 10598)]) #@94 Return a cons of the component group and article corresponding to the given virtual ARTICLE. (defalias 'nnvirtual-map-article #[(article) "チ \f@ニHV\fAЫn\fK ヌVK\f@ ネHZノZハ ヒH\"\f\nH@ ヒH・ ノH\\\f\nHA\\B+" [nnvirtual-mapping-table nil group-pos entry table article 3 0 4 1 mod 2 nnvirtual-mapping-offsets] 5 (#$ . 10761)]) #@91 Return the virtual article number corresponding to the given component GROUP and ARTICLE. (defalias 'nnvirtual-reverse-map-article #[(group article) "チツ\fH@\fT\fHAZ 6 @チHV6 A% @^チV^\f ノHW^ ハH\f\\ ヒHZ ノH_\\ヒ\\+" [nnvirtual-mapping-table 0 nil entry group-pos table group nnvirtual-mapping-offsets article 2 4 1] 5 (#$ . 11114)]) #@235 Return list of virtual article numbers for all ARTICLES in GROUP. The ARTICLES should be sorted, and can be a compressed sequence. If any of the article numbers has no corresponding virtual article, then it is left out of the result. (defalias 'nnvirtual-reverse-map-sequence #[(group articles) "」ァ Cチ演演陰@ギ :*  0 @ A\f Xヌ\f\"ェ\nB\fT1-" [articles nil new-a j i a result nnvirtual-reverse-map-article group] 6 (#$ . 11494)]) (put (quote nnvirtual-reverse-map-sequence) (quote byte-optimizer) (quote byte-compile-inline-expand)) #@345 Return an association list of component article numbers. These are indexed by elements of nnvirtual-component-groups, based on the sequence ARTICLES of virtual article numbers. ARTICLES should be sorted, and can be a compressed sequence. If any of the article numbers has no corresponding component article, then it is left out of the result. (defalias 'nnvirtual-partition-sequence #[(articles) "」ァ Cチツ \"ト演演 \n陰@ バ :9  C @ AXヒ!デフ@\n\"A AB。TEチヘ\n\"\n." [articles mapcar #[(g) "C" [g] 1] nnvirtual-component-groups nil entry article j i a carticles nnvirtual-map-article assoc #[(x) "陰泯" [x] 2]] 7 (#$ . 12076)]) #@200 Build the tables necessary to map between component (group, article) to virtual article. Generate the set of read messages and marks for the virtual group based on the marks on the component groups. (defalias 'nnvirtual-create-mapping #[nil "タ演加演演演演演演 \n \f モヤ\"ラリ\"ルレロ\"!チレ゙\"Λ@Z_Z゚ \fZ%B \fレ\"サ@タUサ陰畛l粤レ \"\"レ&\"チ'レ@Aτ@'B'AツTX22@UAぼTX@U畛\nU( Bぼ\nB BぼXコUカ B3B B (チ)." [0 nil beg reads next-tot next-M marks unreads size max min active all-marks all-unreads actives i M tot cnt mapc #[(g) "タ !@\nA\nu\f Yu\fナU?u \f ZニZ\fEBネ ! ハヒフ  \"J88ォミム !BB  BB BB\f ZニZT\\]" [gnus-activate-group g active min max 0 -1 actives gnus-list-of-unread-articles unreads 3 2 intern-soft gnus-newsrc-hashtb marks gnus-use-cache cache gnus-cache-articles-in-group all-unreads all-marks size cnt tot M] 6] nnvirtual-component-groups nnvirtual-mapping-len sort #[(g1 g2) "A@ A@W" [g1 g2] 2] vconcat mapcar #[(entry) "@チ8\nZB" [entry 2 M] 3] nnvirtual-mapping-offsets nnvirtual-mapping-table #[(entry) "A@" [entry] 1] vector #[(x) " Z" [x size] 2] 1 apply nnvirtual-merge-sorted-lists #[(x) "@A 」ァ Cテ演演 陰@チ:7@@A Xノ\n\"ジ\fBTB." [x articles group nil new-a j i a result nnvirtual-reverse-map-article] 6] #[(type) "Aチツテトナ\"\"!B" [type gnus-compress-sequence apply nnvirtual-merge-sorted-lists mapcar #[(x) "@ AA暸\n」ァ\nCト演演 \n陰@ド:=G@AX!ハ \"ダ  B TI ." [x type articles group nil new-a j i a result nnvirtual-reverse-map-article] 6] all-marks] 7] gnus-article-mark-lists nnvirtual-mapping-marks nnvirtual-mapping-reads nnvirtual-info-installed] 18 (#$ . 12777)]) (provide (quote nnvirtual))