;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #@88 Normalize RANGE. If RANGE is a single range, return (RANGE). Otherwise, return RANGE. (defalias 'gnus-range-normalize #[(range) "\243<\203\207C\207" [range] 1 (#$ . 408)]) (put 'gnus-range-normalize 'byte-optimizer 'byte-compile-inline-expand) #@30 Return last element of LIST. (defalias 'gnus-last-element #[(list) "A\203\fA\211\202@\207" [list] 2 (#$ . 664)]) (byte-code "\300\301\302\303#\210\304\305\306\307#\210\300\305\306\303#\207" [make-obsolete gnus-last-element "use `car' of `last' instead." "27.1" defalias gnus-copy-sequence copy-tree nil] 4) #@65 Return a list of elements of LIST1 that do not appear in LIST2. (defalias 'gnus-set-difference #[(list1 list2) "\306\307\310\"\311\n\311\211\203\f@\312 \313 #\210\fA\211\204* \311\211\203=\f@\314 \"\2046 B\fA\211\204(*\237*\207" [result hash2 list2 elt --dolist-tail-- list1 make-hash-table :test eq nil puthash t gethash] 5 (#$ . 984)]) #@103 Return a range comprising all the RANGES, which are pre-sorted. RANGES will be destructively altered. (defalias 'gnus-range-nconcat #[(&rest ranges) "\305\306\"\211\211A\242\211\243<\203 \202 C)\303\n!\306\211\203\235\f@\211\211\243<\2034 \2026 C) @\247\203F \211@ @B\240\210 @\247\203T \211@ @B\240\210 @AT @@U\203n @ @A\241\210 A\241\210\202\222 \241\210 @@ @AU\203\202 \211@@\240\210 @@ @AU\203\222 \211@@\240\210\303 !\fA\211\204%*\n@:\203\260\nG\307U\203\260\n@\202\261\n*\207" [ranges range result last --dolist-tail-- delete nil 1] 4 (#$ . 1350)]) #@110 Return the range of elements in RANGE1 that do not appear in RANGE2. Both ranges must be in ascending order. (defalias 'gnus-range-difference #[(range1 range2) "\211\243<\203\f \202 C)\n\211\243<\203 \202 C)\306\307!B\211\310\fA\203\374\fA@ \n@\n \247\203C \202F @  \247\203S \202V A\f\n\247\203c\n\202f\n@ \n\247\203s\n\202v\nA \fV\203\211\f\211AA\241\210\202\367 \fU\203\240 <\203\240\fA \240\210\202\367 \204\252\306\202\367\f W\203\272\f\211A\210\202\367 W\203\312\n\211A\210\202\367  X\203\343\fX\203\343\f\211AA\241\210\202\367\f  SBT\fBD\fAA\244\241\210.\202* A+\207" [range1 range range2 new-range r safe nil copy-sequence t r1 r2 min1 max1 min2 max2] 5 (#$ . 1945)]) #@135 Return a list of elements of LIST1 that do not appear in LIST2. Both lists have to be sorted over <. The tail of LIST1 is not copied. (defalias 'gnus-sorted-difference #[(list1 list2) "\303 \2035\n\2035 @\n@U\203 A\nA\202 @\n@W\203/ @B A\211\202\nA\202\237 \244)\207" [out list1 list2 nil] 3 (#$ . 2713)]) #@121 Return a list of elements of LIST1 that do not appear in LIST2. Both lists have to be sorted over <. LIST1 is modified. (defalias 'gnus-sorted-ndifference #[(list1 list2) "\304B\211\203; \203;@ @U\203$\nA\241\210A A\202@ @W\2035A\211\202 A\202 A*\207" [list1 top prev list2 nil] 3 (#$ . 3045)]) #@105 Return a list of elements that are in LIST1 or LIST2 but not both. Both lists have to be sorted over <. (defalias 'gnus-sorted-complement #[(list1 list2) "\303 \203\n\n\204 \206R\n\202R \203J\n\203J @\n@U\203+ A\nA\202 @\n@W\203? @B A\211\202\n@B\nA\202\237 \206Q\n\244)\207" [out list1 list2 nil] 3 (#$ . 3372)]) (defalias 'gnus-intersection #[(list1 list2) "\303 \203 @\n>\203 @B A\211\204)\207" [result list2 list1 nil] 3]) #@83 Return intersection of LIST1 and LIST2. LIST1 and LIST2 have to be sorted over <. (defalias 'gnus-sorted-intersection #[(list1 list2) "\303 \2035\n\2035 @\n@U\203 @B A\nA\202 @\n@W\203/ A\211\202\nA\202\237)\207" [out list1 list2 nil] 3 (#$ . 3842)]) #@87 Return intersection of RANGE1 and RANGE2. RANGE1 and RANGE2 have to be sorted over <. (defalias 'gnus-sorted-range-intersection #[(range1 range2) "\306 @\211\247\203 A\247\203 A\306\202 \n\202 \nA\n@\f@\211\247\203:\fA\247\2036\fA\306\202? \202? A @ A\fA\n\203\322 \203\322 W\203] A\306\202\234\nW\203l\fA\306\202\234\n ] ^\211 U\203\205 B\202\214 BB* W\203\232\306\202\234\306\n\204\265 @\211\247\203\254\n\202\261\nA\n@ A \204G\f@\211\247\203\305 \202\312 A @\fA\202GA\203\334\237\202\350@\247\203\346\202\350@-\207" [out range1 min1 max1 range2 min2 nil max2 max min] 4 (#$ . 4118)]) (defalias 'gnus-set-sorted-intersection 'gnus-sorted-nintersection) #@118 Return intersection of LIST1 and LIST2 by modifying cdr pointers of LIST1. LIST1 and LIST2 have to be sorted over <. (defalias 'gnus-sorted-nintersection #[(list1 list2) "\304B\211\203; \203;@ @U\203!A A\202@ @W\2035\nA\241\210A\211\202 A\202\n\304\241\210 A*\207" [list1 top prev list2 nil] 3 (#$ . 4862)]) #@76 Return union of LIST1 and LIST2. LIST1 and LIST2 have to be sorted over <. (defalias 'gnus-sorted-union #[(list1 list2) "\303 \203?\n\203? @\n@U\203 @B A\nA\202 @\n@W\2034 @B A\211\202\n@B\nA\202 \203O @B A\211\204C\n\203_\n@B\nA\211\204S\237)\207" [out list1 list2 nil] 3 (#$ . 5201)]) #@111 Return union of LIST1 and LIST2 by modifying cdr pointers of LIST1. LIST1 and LIST2 have to be sorted over <. (defalias 'gnus-sorted-nunion #[(list1 list2) "\304B\211\203E \203E@ @U\203!A A\202@ @W\2032A\211\202\n @C\241\210\nA A\n\241\210\202 \203Y\n @C\241\210\nA A\211\204I A*\207" [list1 top prev list2 nil] 3 (#$ . 5528)]) #@150 Convert sorted list of numbers to a list of ranges or a single range. If ALWAYS-LIST is non-nil, this function will always release a list of ranges. (defalias 'gnus-compress-sequence #[(numbers &optional always-list) "@@\305\205uA<\204\202u\203L\n@U\204E\nT@U\203/@\202E \nU\2039 \202< \nB B@@A\211\204\f\204e \204e \nU\203_ C\202u \nB\202u \nU\203o \202r \nB B\237+\207" [numbers first last result always-list nil] 3 (#$ . 5895)]) (defalias 'gnus-uncompress-sequence 'gnus-uncompress-range) #@134 Expand a list of ranges into a list of numbers. RANGES is either a single range on the form `(num . num)' or a list of these ranges. (defalias 'gnus-uncompress-range #[(ranges) "\304\211\211 \204\304\202j A<\2040 @ A\n X\203+\nB\nT\211\202\237\202j \203h @:\204H @\247\203a @B\202a @@ @A\n X\203a\nB\nT\211\202Q A\211\2044\237+\207" [result last first ranges nil] 4 (#$ . 6433)]) #@112 Return a list of ranges that has all articles from both RANGES and LIST. Note: LIST has to be sorted over `<'. (defalias 'gnus-add-to-range #[(ranges list) "\204 \306 \307\"\207\310 !A<\204C\311\211\211\211\f\203\223 \203\223 @:\2046@\2069@@ \203R A\203R A@\fW\203R A\211\204> @\fW\203k  A\n\311\241\210\306 \307\"\f\244\f@:\204v@\206y@A \203\214 @ X\203\214 A\211\204~A\211\204% \203\240\306 \307\"\f\244\f\312\f\313\"\211\f\211\203D@:\204\374A\203=A@:\204\333@TA@U\203=\211@A@B\240\210\211AA\241\210\202=@TA@@U\203=A@@\240\210\211A@\240\210\211AA\241\210\202=A\203=A@:\204#@ATA@U\203=@A@\241\210\211AA\241\210\202=@ATA@@U\203=@A@A\241\210\211AA\241\210A\211\204\255\f-\207" [ranges list temp highest lowest ilist gnus-compress-sequence t copy-sequence nil sort #[(r1 r2) ":\204 \206 @ :\204 \206 @W\207" [r1 r2] 2] out] 6 (#$ . 6853)]) #@218 Return a range that has all articles from RANGE2 removed from RANGE1. The returned range is always a list. RANGE2 can also be a unsorted list of articles. RANGE1 is modified by side effects, RANGE2 is not modified. (defalias 'gnus-remove-from-range #[(range1 range2) "\203 \204\n\207\306\211\211\211\211\211\211\307 !\n \fA<\203)\202+C\310 A<\2037 \2029 C\311\"@ @\n :\203P @\202R  :\203_ A\202a \n:\203n\n@\202p\n\n:\203}\nA\202\n\2038 \2038\n W\203\267 \210 A\211@\211\n:\203\242\n@\202\244\n\n:\203\261\nA\202\263\n\202\200 X\203\354\f\nX\203\354\210A\211@\211 :\203\327 @\202\331  :\203\346 A\202\350 \202\200 X\203$\n\fX\203$ \210 A\nT @\211\n:\203\n@\202\n\n:\203\nA\202 \n\202\200 X\203\244\n\fX\203\244 S=\203@ \fB\f\202I SB\fB\f \210 A\n\fW\203Z\nT\202\200\210A\211@\211 :\203n @\202p  :\203} A\202  @\211\n:\203\217\n@\202\221\n\n:\203\236\nA\202\240\n\202\200 \fX\203\362\f\nX\203\362 S=\203\300 \fB\f\202\311 SB\fB\f\210A\211@\211 :\203\335 @\202\337  :\203\354 A\202\356 \202\200\f W\203\200\210A \f=\203\f \fB\f\202 \fB\fB\f@\211 :\203# @\202%  :\2032 A\2024 \202\200 \203Y \f=\203L \fB\f\202T \fB\fB\f\210A\203j\211A\242\fB\f\202Y\f\237.\207" [range1 range2 r2_max r2_min r1_max r1_min nil copy-tree sort #[(e1 e2) ":\203\n@\202  :\203 @\202 W\207" [e1 e2] 2] r2 r1 out] 10 (#$ . 7803)]) (defalias 'gnus-member-of-range #[(number ranges) "A<\204 @Y\205Z AX\207\303\203W@\247\203% @Y\202* @@Y\203W\n\203W@\247\203> @U\202K @@Y\203P @AX\203P\304A\211\204\n)?\207" [ranges number not-stop t nil] 3]) #@85 Return a list of numbers in LIST that are members of RANGES. LIST is a sorted list. (defalias 'gnus-list-range-intersection #[(list ranges) "\211\243<\203\f \202 C)\305\211\f\211A\242\211\203^\203>@\247\203/@ W\2024@A W\203>A\211\204\"\203@\247\203O@ U\202T @@Y\203 \nB\202\n\237*\207" [ranges range result number list nil] 3 (#$ . 9585)]) (defalias 'gnus-inverse-list-range-intersection 'gnus-list-range-difference) #@89 Return a list of numbers in LIST that are not members of RANGES. LIST is a sorted list. (defalias 'gnus-list-range-difference #[(list ranges) "\211\243<\203\f \202 C)\305\211\f\211A\242\211\203_\203>@\247\203/@ W\2024@A W\203>A\211\204\"\203X@\247\203P@ U?\202U @@W\203 \nB\202\n\237*\207" [ranges range result number list nil] 3 (#$ . 10043)]) #@53 Return the length RANGE would have if uncompressed. (defalias 'gnus-range-length #[(range) "\204\304\207A<\204\305A@\306#\207\304\307\211\203; @ \n:\2031\305\nA\n@\306#\2022\310\\ A\211\204\307 +\207" [range sum x --dolist-tail-- 0 - -1 nil 1] 6 (#$ . 10428)]) #@42 Add RANGE2 to RANGE1 (nondestructively). (defalias 'gnus-range-add #[(range1 range2) "A<\204 C A<\204 C\211A\242 \211A\242\306\211\211  \204. \203\276 \2047\306\202r \204?\307\202r \247\203Q \247\203Q W\202r \247\203_ @W\202r \247\203l @ W\202r @ @W \n\203} \202~ \n\211 \204\213\n\202\217\n\204\225 \202\217 \247\203\324\n\247\203\324 \n=\203\256 \202\217 T\n=\203\277 \nB\202\217\nT =\203\320\n B\202\217\306\202\217 \247\203 \n@Y\203\361 \nAX\203\361\n\202\217 T\n@=\203 \nAB\202\217 S\nA=\203\n@ B\202\217\306\202\217\n\247\203b\n @Y\2038\n AX\2038 \202\217\nT @=\203K\n AB\202\217\nS A=\203^ @\nB\202\217\306\202\217 AT\n@W\203q\306\202\217\nAT @W\203\200\306\202\217 @\n@^ A\nA]B*\206\245 \203\233 \fB\n\203\244 \202\245 \n\203\265\211A\242\211 \202' \211A\242\202% \203\306 \fB\310\f!-\207" [range1 range2 selector item range item2 nil t reverse item1 tmp2 tmp1] 6 (#$ . 10716)]) #@42 Add NUM into sorted LIST by side effect. (defalias 'gnus-add-to-sorted-list #[(list num) "\304B\211\203@ W\203A\211\204\n@ =\204'\n B\241\210 A*\207" [list top prev num nil] 4 (#$ . 11760)]) #@46 Apply FUNC to each value contained by RANGE. (defalias 'gnus-range-map #[(func range) "\211\243<\203\f\202C)\205B\211A\242\211\247\203&\n !\210\202> @ A\211 X\203=\n\f!\210\fT\211\202-*)\202\207" [range span func last first] 3 (#$ . 11974)]) (provide 'gnus-range)