]>
Commit | Line | Data |
---|---|---|
53e6db90 DC |
1 | ;ELC\1c\0\0\0 |
2 | ;;; Compiled | |
3 | ;;; in Emacs version 28.2 | |
4 | ;;; with all optimizations. | |
5 | ||
6 | ||
7 | ||
8 | (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\310\311\312\313\314\315%\210\316\317\320\321\322\323\314\311&\a\210\316\324\325\326\322\327\314\311&\a\210\316\330\331\332\322\323\314\311&\a\210\316\333\334\335\322\336\337\340\314\311& \210\316\341\342\343\322\344\314\311&\a\210\316\345\346\347\322\350\314\311&\a\210\316\351\352\353\322\354\314\311&\a\210\316\355\352\356\322\354\314\311&\a\210\316\357\352\360\322\354\314\311&\a\210\316\361\352\362\322\354\314\311&\a\210\316\363\312\364\314\311\322\336&\a\210\316\365\366\367\314\311\322\323\370\371\372\373&\v\210\316\374\312\375\314\311\322\354&\a\210\316\376\312\375\314\311\322\354&\a\210\377\201@\0\201A\0\201B\0\314\311%\210\377\201C\0\201D\0\201E\0\314\311%\210\377\201F\0\201G\0\201H\0\314\311%\210\377\201I\0\201J\0\201K\0\314\311%\210\377\201L\0\201M\0\201N\0\314\311%\210\377\201O\0\201P\0\201Q\0\314\311%\210\377\201R\0\201S\0\201T\0\314\311%\207" [require jabber-presence jabber-util jabber-alert jabber-keymap format-spec cl-lib jabber-private custom-declare-group jabber-roster nil "roster display options" :group jabber custom-declare-variable jabber-roster-line-format " %a %c %-25n %u %-8s %S" "The format specification of the lines in the roster display.\n\nThese fields are available:\n\n%a Avatar, if any\n%c \"*\" if the contact is connected, or \" \" if not\n%u sUbscription state - see below\n%n Nickname of contact, or JID if no nickname\n%j Bare JID of contact (without resource)\n%r Highest-priority resource of contact\n%s Availability of contact as string (\"Online\", \"Away\" etc)\n%S Status string specified by contact\n\n%u is replaced by one of the strings given by\n`jabber-roster-subscription-display'." :type string jabber-roster-subscription-display '(("none" . " ") ("from" . "< ") ("to" . " >") ("both" . "<->")) "Strings used for indicating subscription status of contacts.\n\"none\" means that there is no subscription between you and the\ncontact.\n\"from\" means that the contact has a subscription to you, but you\nhave no subscription to the contact.\n\"to\" means that you have a subscription to the contact, but the\ncontact has no subscription to you.\n\"both\" means a mutual subscription.\n\nHaving a \"presence subscription\" means being able to see the\nother person's presence.\n\nSome fancy arrows you might want to use, if your system can\ndisplay them: ← → ⇄ ↔" (list (cons :format "%v" (const :format #1="" "none") (string :tag "None")) (cons :format "%v" (const :format #1# "from") (string :tag "From")) (cons :format "%v" (const :format #1# "to") (string :tag "To")) (cons :format "%v" (const :format #1# "both") (string :tag "Both"))) jabber-resource-line-format " %r - %s (%S), priority %p" "The format specification of resource lines in the roster display.\nThese are displayed when `jabber-show-resources' permits it.\n\nThese fields are available:\n\n%c \"*\" if the contact is connected, or \" \" if not\n%n Nickname of contact, or JID if no nickname\n%j Bare JID of contact (without resource)\n%p Priority of this resource\n%r Name of this resource\n%s Availability of resource as string (\"Online\", \"Away\" etc)\n%S Status string specified by resource." jabber-roster-sort-functions '(jabber-roster-sort-by-status jabber-roster-sort-by-displayname) "Sort roster according to these criteria.\n\nThese functions should take two roster items A and B, and return:\n<0 if A < B\n0 if A = B\n>0 if A > B." hook :options (jabber-roster-sort-by-status jabber-roster-sort-by-displayname jabber-roster-sort-by-group) jabber-sort-order '("chat" #1# "away" "dnd" "xa") "Sort by status in this order. Anything not in list goes last.\nOffline is represented as nil." (repeat (restricted-sexp :match-alternatives (stringp nil))) jabber-show-resources 'sometimes "Show contacts' resources in roster?\nThis can be one of the following symbols:\n\nnil Never show resources\nsometimes Show resources when there are more than one\nalways Always show resources." (radio (const :tag "Never" nil) (const :tag "When more than one connected resource" sometimes) (const :tag "Always" always)) jabber-show-offline-contacts t "Show offline contacts in roster when non-nil." boolean jabber-remove-newlines "Remove newlines in status messages?\nNewlines in status messages mess up the roster display. However,\nthey are essential to status message poets. Therefore, you get to\nchoose the behaviour.\n\nTrailing newlines are always removed, regardless of this variable." jabber-roster-show-bindings "Show keybindings in roster buffer?." jabber-roster-show-title "Show title in roster buffer?." jabber-roster-mode-hook "Hook run when entering Roster mode." jabber-roster-default-group-name "other" "Default group name for buddies without groups." :get (lambda (var) (let ((val (symbol-value var))) (when (stringp val) (set-text-properties 0 (length val) nil val)) val)) :set (lambda (var val) (when (stringp val) (set-text-properties 0 (length val) nil val)) (custom-set-default var val)) jabber-roster-show-empty-group "Show empty groups in roster?." jabber-roster-roll-up-group custom-declare-face jabber-roster-user-online ((t (:foreground "blue" :weight bold :slant normal))) "Face for displaying online users." jabber-roster-user-xa ((((background dark)) (:foreground "magenta" :weight normal :slant italic)) (t (:foreground "black" :weight normal :slant italic))) "Face for displaying extended away users." jabber-roster-user-dnd ((t (:foreground "red" :weight normal :slant italic))) "Face for displaying do not disturb users." jabber-roster-user-away ((t (:foreground "dark green" :weight normal :slant italic))) "Face for displaying away users." jabber-roster-user-chatty ((t (:foreground "dark orange" :weight bold :slant normal))) "Face for displaying chatty users." jabber-roster-user-error ((t (:foreground "red" :weight light :slant italic))) "Face for displaying users sending presence errors." jabber-roster-user-offline ((t (:foreground "dark grey" :weight light :slant italic))) "Face for displaying offline users."] 12) | |
9 | #@20 Debug roster draw.\1f | |
10 | (defvar jabber-roster-debug nil (#$ . 6197)) | |
11 | (defvar jabber-roster-mode-map (byte-code "\302 \18\303\b!\210\304\b \"\210\305\b\306\307#\210\305\b\310\311#\210\305\b\312\313#\210\305\b\314\313#\210\305\b\315\313#\210\305\b\316\317#\210\305\b\320\321#\210\305\b\322\323#\210\305\b\324\325#\210\305\b\326\327#\210\305\b\330\331#\210\305\b\332\333#\210\305\b\334\335#\210\305\b\336\337#\210\305\b\340\341#\210\305\b\342\343#\210\305\b\344\345#\210\305\b\346\347#\210\305\b\350\351#\210\305\b\352\353#\210\b)\207" [map jabber-common-keymap make-sparse-keymap suppress-keymap set-keymap-parent define-key [mouse-2] jabber-roster-mouse-2-action-at-point " " jabber-go-to-next-roster-item [33554441] jabber-go-to-previous-roster-item [134217737] [backtab] "\r" jabber-roster-ret-action-at-point "\v" jabber-roster-delete-at-point "e" jabber-roster-edit-action-at-point "s" jabber-send-subscription-request "q" bury-buffer "i" jabber-get-disco-items "j" jabber-muc-join "I" jabber-get-disco-info "b" jabber-get-browse "v" jabber-get-version "a" jabber-send-presence "g" jabber-display-roster "S" jabber-ft-send "o" jabber-roster-toggle-offline-display "H" jabber-roster-toggle-binding-display] 4)) | |
12 | #@104 Action for RET. | |
13 | Before try to roll up/down group. Eval `chat-with-jid-at-point' is no group at | |
14 | point.\1f | |
15 | (defalias 'jabber-roster-ret-action-at-point #[nil "\303`\304\"\303`\305\"\303`\306\"\18\19\211\1a\203\1e\0 \203\1e\0\307 \n\"\202'\0\310 \311\b!\312\313\b%+\207" [jid-at-point account-at-point group-at-point get-text-property jabber-group jabber-account jabber-jid jabber-roster-roll-group jabber-disco-get-info jabber-jid-user nil jabber-roster-ret-action-at-point-1] 7 (#$ . 7385) nil]) | |
16 | (defalias 'jabber-roster-ret-action-at-point-1 #[(jc jid result) "\b@\304=\203\f\0\305 \n\"\207\b@\e\306\307\310\v!\205\18\0\v\311\312\313\314&\ 6\203.\0\315 \n\316 \n\317#\317$\2022\0\305 \n\")\207" [result jc jid identities error jabber-chat-with cl-find "conference" sequencep :key #[(i) "\b\301H\207" [i 1] 2] :test string= jabber-muc-join jabber-muc-read-my-nickname t] 7]) | |
17 | #@108 Action for mouse 2. | |
18 | Before try to roll up/down group. Eval `chat-with-jid-at-point' is no group | |
19 | at point.\1f | |
20 | (defalias 'jabber-roster-mouse-2-action-at-point #[(e) "\303\b!\210\304`\305\"\304`\306\"\19\211\1a\203\1d\0 \203\1d\0\307 \n\"\202\1f\0\310 *\207" [e account-at-point group-at-point mouse-set-point get-text-property jabber-group jabber-account jabber-roster-roll-group jabber-popup-combined-menu] 5 (#$ . 8235) "e"]) | |
21 | #@117 Delete at point from roster. | |
22 | Try to delete the group from all contaacs. | |
23 | Delete a jid if there is no group at point.\1f | |
24 | (defalias 'jabber-roster-delete-at-point #[nil "\303`\304\"\303`\305\"\18\211\19\203%\0\b\203%\0\306 \307\310\b!\311\"\"\1a\312\b\n #)\202'\0\313 *\207" [account-at-point group-at-point jids-with-group get-text-property jabber-group jabber-account gethash plist-get fsm-get-state-data :roster-hash jabber-roster-delete-group-from-jids jabber-roster-delete-jid-at-point] 6 (#$ . 8653) nil]) | |
25 | #@97 Action for e. Before try to edit group name. | |
26 | Eval `jabber-roster-change' is no group at point.\1f | |
27 | (defalias 'jabber-roster-edit-action-at-point #[nil "\303`\304\"\303`\305\"\18\211\19\203%\0\b\203%\0\306 \307\310\b!\311\"\"\1a\312\b\n #)\202(\0\313\314!*\207" [account-at-point group-at-point jids-with-group get-text-property jabber-group jabber-account gethash plist-get fsm-get-state-data :roster-hash jabber-roster-edit-group-from-jids call-interactively jabber-roster-change] 6 (#$ . 9153) nil]) | |
28 | #@109 Roll up/down group in roster. | |
29 | If optional SET is t, roll up group. | |
30 | If SET is nor t or nil, roll down group.\1f | |
31 | (defalias 'jabber-roster-roll-group #[(jc group-name &optional set) "\306\b!\19\307 \310\"\1a\311\v\n\312\313$\203+\0\f\203 \0\f\203'\0\f\314=\204'\0\315\316\n\"\202B\0\n\202B\0\f\2039\0\f\203A\0\f\314=\203A\0\317\n\vC\"\202B\0\n\1d\n\r\232?\205R\0\320 \310\r#\210\321 +\207" [jc state-data roll-groups group-name set new-roll-groups fsm-get-state-data plist-get :roster-roll-groups cl-find :test string= t cl-remove-if-not #[(group-name-in-list) "\b \230?\207" [group-name group-name-in-list] 2] append plist-put jabber-display-roster] 5 (#$ . 9647)]) | |
32 | #@162 Major mode for Jabber roster display. | |
33 | Use the keybindings (mnemonic as Chat, Roster, Info, MUC, Service) to | |
34 | bring up menus of actions. | |
35 | \{jabber-roster-mode-map}\1f | |
36 | (defalias 'jabber-roster-mode #[nil "\304 \210\305\10\306\11\307\n!\210\310\13\311\312!\203\17\0\312\313!\207\314\313!\207" [major-mode mode-name jabber-roster-mode-map buffer-read-only kill-all-local-variables jabber-roster-mode "jabber-roster" use-local-map t fboundp run-mode-hooks jabber-roster-mode-hook run-hooks] 2 (#$ . 10292)]) | |
37 | (put 'jabber-roster-mode 'mode-class 'special) | |
38 | #@134 Switch to roster buffer. | |
39 | Optional JC argument is ignored; it's there so this function can | |
40 | be used in `jabber-post-connection-hooks'.\1f | |
41 | (defalias 'jabber-switch-to-roster-buffer #[(&optional _jc) "\301\b!\204 \0\302 \207\303\b!\207" [jabber-roster-buffer get-buffer jabber-display-roster switch-to-buffer] 2 (#$ . 10835) nil]) | |
42 | #@70 Sort roster according to online status. | |
43 | JC is the Jabber connection.\1f | |
44 | (defalias 'jabber-sort-roster #[(jc) "\305\b!\19\306 \307\"\310\1a\211\e\2050\0\v@\211\12@\1c\311\f\312\313\f\306 \314\"\"\315\"\306 \314\"#\210)\vA\211\13\204\ f\0\310+\207" [jc state-data group --dolist-tail-- group-name fsm-get-state-data plist-get :roster-groups nil puthash sort gethash :roster-hash jabber-roster-sort-items] 9 (#$ . 11162)]) | |
45 | #@56 Make a hash based roster. | |
46 | JC is the Jabber connection.\1f | |
47 | (defalias 'jabber-roster-prepare-roster #[(jc) "\306\b!\19\307\310\311\"\1a\312 \313\"\e\314\1c\v\314\1d\211\1e\1a\203y\0\ e\1a@\211\15\315N\211\1e\r\203Y\0\ e\r\314\1e\e\211\1e\1a\203U\0\ e\1a@\16\e\316\f\ e\eC\"\14\317\ e\e\316\320\ e\e\n\"\rC\"\n#\210\ e\1aA\211\16\1a\2041\0*\202o\0\316\f\ e\1cC\"\14\317\ e\1c\316\320\ e\1c\n\"\rC\"\n#\210)\ e\1aA\211\16\1a\204\19\0*\321\322\f\310\323#\324\"\14\325 \326\327\330\f\"#\210\325 \331\n#,\207" [jc state-data hash buddies all-groups buddy fsm-get-state-data make-hash-table :test equal plist-get :roster nil groups append puthash gethash sort cl-remove-duplicates string= string< plist-put :roster-groups mapcar list :roster-hash --dolist-tail-- group jabber-roster-default-group-name] 7 (#$ . 11567)]) | |
48 | #@102 Sort roster items A and B according to `jabber-roster-sort-functions'. | |
49 | Return t if A is less than B.\1f | |
50 | (defalias 'jabber-roster-sort-items #[(a b) "\302\18\303\304 \"\210\b\305W)\207" [result jabber-roster-sort-functions nil seq-find #[(fn) "\b \n\"\211\13\304U?\207" [fn a b result 0] 4] 0] 3 (#$ . 12289)]) | |
51 | #@77 Sort roster items by online status. | |
52 | See `jabber-sort-order' for order used.\1f | |
53 | (defalias 'jabber-roster-sort-by-status #[(a b) "\305\211\18 !\b\n!\e\211\1c\vW\203\14\0\306\202\1f\0\f\vV\203\1e\0\307\202\1f\0\310+\207" [#1=#:--cl-order-- a b b-order a-order #[(item) "\b\302N \235G\207" [item jabber-sort-order show] 2] 1 -1 0] 4 (#$ . 12596)]) | |
54 | #@38 Sort roster items by displayed name.\1f | |
55 | (defalias 'jabber-roster-sort-by-displayname #[(a b) "\304\b!\304 !\1a\211\e\n\231\203\12\0\305\202\1d\0\v\n\230\203\1c\0\306\202\1d\0\307*\207" [a b b-name a-name jabber-jid-displayname -1 0 1] 4 (#$ . 12922)]) | |
56 | #@40 Sort roster items by group membership.\1f | |
57 | (defalias 'jabber-roster-sort-by-group #[(a b) "\305\211\18 !\b\n!\e\211\1c\v\231\203\14\0\306\202\1f\0\f\v\230\203\1e\0\307\202\1f\0\310+\207" [#1=#:--cl-first-group-- a b b-group a-group #[(item) "\b\301N@\206\b\0\302\207" [item groups ""] 2] -1 0 1] 4 (#$ . 13160)]) | |
58 | #@36 Make status strings more readable.\1f | |
59 | (defalias 'jabber-fix-status #[(status) "\b\205(\0\302\303\b\"\203\12\0\304\305\306\211\b$\10 \203'\0\302\307\b\"\203'\0\304\310\306\211\b$\10\202\16\0\b\207" [status jabber-remove-newlines string-match "\n+$" replace-match "" t "\n" " "] 5 (#$ . 13452)]) | |
60 | #@97 Ewoc displaying the roster. | |
61 | There is only one; we don't rely on buffer-local variables or | |
62 | such.\1f | |
63 | (defvar jabber-roster-ewoc nil (#$ . 13730)) | |
64 | #@57 Filter BUDDIES for items to be displayed in the roster.\1f | |
65 | (defalias 'jabber-roster-filter-display #[(buddies) "\301\302\b\"\207" [buddies cl-remove-if-not #[(buddy) "\b\206\a\0 \302N\207" [jabber-show-offline-contacts buddy connected] 2]] 3 (#$ . 13877)]) | |
66 | #@111 Toggle display of offline contacts. | |
67 | To change this permanently, customize the `jabber-show-offline-contacts'.\1f | |
68 | (defalias 'jabber-roster-toggle-offline-display #[nil "\b?\10\301 \207" [jabber-show-offline-contacts jabber-display-roster] 1 (#$ . 14134) nil]) | |
69 | #@44 Toggle display of the roster binding text.\1f | |
70 | (defalias 'jabber-roster-toggle-binding-display #[nil "\b?\10\301 \207" [jabber-roster-show-bindings jabber-display-roster] 1 (#$ . 14393) nil]) | |
71 | #@130 Switch to the main jabber buffer and refresh it. | |
72 | Switch to the roster display and refresh it to reflect the current | |
73 | information.\1f | |
74 | (defalias 'jabber-display-roster #[nil "r\306\b!q\210 \307=\204\ f\0\307 \210\310\12\311\312!\205\19\0\312 i\e\1c\313 \210\310\15\ e@\203/\0\314\315\316\317#\320\261\ 2\210\ eA\2037\0\321c\210\322c\210\ eB\204E\0\323c\210\202\202\0\324 \1eC\325\ eC\326\327#\210\314\330\331\332\ eD\ eE\"A\"\ eFG\333U?\205k\0\330\334\335\ eF!\"\336Q\316\332\ eD\ eG\"A\206y\0\337\340\ eC%\320\261\ 2\210)\ eB\310\1eH\211\1eI\203q\ 1\ eI@\16H\341\342\ eH!\343\"\204\241\0\344\ eH!\210\345\ eH!\210`\346\ eH\210\347\314\341\342\ eH!\350\"\351\341\342\ eH!\352\"Q\316\353#\354P\355#\310\1eJ\1eK\1eL\356\342\ eH!\357\ eK#\210\341\342\ eH!\360\"\310\1eM\211\1eI\203W\ 1\ eI@\211\16M@\1eN\361\362\ eN\341\342\ eH!\343\"\"!\1eO\ eP\204\n\ 1\ eOG\333V\203M\ 1\363\ eK\ eM\310D\"\1eQ\364\ eN\341\342\ eH!\365\"\366\367$\204L\ 1\370\ eO!\310\1eR\211\1eI\203K\ 1\ eI@\16R\371\ eK\ eQ\ eM\ eRD#\210\ eIA\211\16I\2041\ 1*)*\ eIA\211\16I\204\345\0*db\210\320c\210\372\ eL`\373\ eH$\210+\ eIA\211\16I\204\215\0*eb\210\374\12\375\376!\203\250\ 1\377\310\1eS\211\1eI\203\247\ 1\ eI@\16S\201U\0\ eS\201V\0p\ eT\201V\0p\"$\210\ eIA\211\16I\204\207\ 1*\f\205\270\ 1eb\210\fSy\210\201W\0\v!+\207" [jabber-roster-buffer major-mode buffer-read-only current-column current-line jabber-roster-ewoc get-buffer-create jabber-roster-mode nil fboundp line-number-at-pos erase-buffer jabber-propertize "Jabber roster" face jabber-title-large "\n" "RET Open chat buffer C-k Delete roster item\ne Edit item s Send subscription request\nq Bury buffer i Get disco items\nI Get disco info b Browse\nj Join groupchat (MUC) v Get client version\na Send presence o Show offline contacts on/off\nC-c C-c Chat menu C-c C-m Multi-User Chat menu\nC-c C-i Info menu C-c C-r Roster menu\nC-c C-s Service menu\n\nH Toggle displaying this text\n" "__________________________________\n\n" "Not connected\n" make-sparse-keymap define-key [mouse-2] jabber-send-presence format " - %s" assoc 0 " (%s)" jabber-fix-status " -" jabber-roster-user-online keymap plist-get fsm-get-state-data :roster-hash jabber-roster-prepare-roster jabber-sort-roster ewoc-create #[(data) "\b@\211\19@\1a\bA@\e\305\f\n\v#+\207" [data group group-name buddy jc jabber-display-roster-entry] 5] :username "@" :server jabber-title-medium "\n__________________________________\n" "__________________________________" plist-put :roster-ewoc :roster-groups jabber-roster-filter-display gethash ewoc-enter-last cl-find :roster-roll-groups :test string= reverse ewoc-enter-after put-text-property jabber-account t called-interactively-p interactive (jabber-info-message-hooks jabber-alert-info-message-hooks) jabber-roster-show-title jabber-roster-show-bindings jabber-connections map *jabber-current-show* jabber-presence-strings *jabber-current-status* jabber-presence-faces jc --dolist-tail-- new-groups ewoc before-ewoc group group-name buddies jabber-roster-show-empty-group group-node buddy hook jabber-alert-info-message-function run-hook-with-args roster move-to-column] 10 (#$ . 14585) nil]) | |
75 | #@106 Format and insert a roster entry for BUDDY at point. | |
76 | BUDDY is a JID symbol. JC is the Jabber connection.\1f | |
77 | (defalias 'jabber-display-roster-entry #[(jc group-name buddy) "\b\203i\ 1\306 \307\310\311\312\b\313N#B\314\b\315N\203\1a\0\316\202\e\0\311B\317\320\b\321N\206%\0\322\n\"AB\323\b\324NG\325V\2039\0\b\324N\202<\0\326\b!B\327\326\b!B\330\b\331N\206J\0\332B\333\320\b\334N\v\"A\206Y\0\b\334NB\335\b\336N\203i\0\337\b\336N!\202j\0\332B\257\b\"\1c\340\325\fG\341\320\b\334N\r\"A\206\7f\0\342\343\326\b!\344\326\b!\345\ e6\257\b\f$\210\fc\210\ e7\346=\204\250\0\ e7\347=\205g\ 1\350\b!\351V\205g\ 1\b\352N\353\1e\19\211\1e8\205f\ 1\ e8@\16\19\354\ e\19A\315\"\203\\\ 1\306\ e9\314\316B\323\b\324NG\325V\203\330\0\b\324N\202\333\0\326\b!B\327\326\b!B\330\ e\19@G\325V\203\361\0\ e\19@\202\362\0\355B\333\320\354\ e\19A\334\"\v\"A\206\a\ 1\354\ e\19A\334\"B\335\354\ e\19A\336\"\203\1d\ 1\337\354\ e\19A\336\"!\202\1e\ 1\332B\356\357\354\ e\19A\360\"!B\257\a\"\1e:\340\325\ e:G\341\320\354\ e\19A\334\"\r\"A\206B\ 1\342\344\361\362\326\b!\ e\19@#\345\ e6\257\ 6\ e:$\210\363\ e:\261\ 2\210)\ e8A\211\168\204\264\0\353*)\207\ e;\206p\ 1\ e<\1e;\340\325\ e;G\341\364\365\ e;\345\ e6\257\ 6\ e;$\210\ e;c)\207" [buddy jabber-roster-line-format jabber-roster-subscription-display jabber-presence-strings buddy-str jabber-presence-faces format-spec 97 jabber-propertize " " display avatar 99 connected "*" 117 assoc subscription "none" 110 name 0 symbol-name 106 114 resource "" 115 show 83 status jabber-fix-status add-text-properties face jabber-roster-user-online help-echo jabber-jid jabber-account always sometimes jabber-count-connected-resources 1 resources nil plist-get "empty" 112 number-to-string priority format "%s/%s" "\n" jabber-title-small jabber-group jc jabber-show-resources --dolist-tail-- jabber-resource-line-format resource-str group-name jabber-roster-default-group-name] 14 (#$ . 17699)]) | |
78 | #@171 Update roster, in memory and on display. | |
79 | Add NEW-ITEMS, update CHANGED-ITEMS and remove DELETED-ITEMS, all | |
80 | three being lists of JID symbols. | |
81 | JC is the Jabber connection.\1f | |
82 | (defalias 'jabber-roster-update #[(jc new-items changed-items deleted-items) "\306\307\b!\310\"\19\306\307\b!\311\"\1a\306\307\b!\312\"\e\306\307\b!\313\"\1c\314\1d\ e'\315\1e(\211\1e)\203=\0\ e)@\16(\316\ e( \"\11\ e)A\211\16)\204)\0*\317\ e* \"\11\320\307\b!\310 #\210\n\204W\0\321\b!\210\202]\ 1\ e+\203`\0\322\323!\210\317\ e'\ e,\"\315\1e(\211\1e)\203\311\0\ e)@\16(\324\ e(!\1e-\ e+\203\206\0\322\325\ e-P!\210\326\327\f\"\315\1e.\211\1e)\203\277\0\ e)@\16.\ e+\203\247\0\322\330\ e-\331\ e.R!\210\332\ e.\316\ e(\333\ e.\n\"\"\n#\210\ e)A\211\16)\204\223\0+\ e)A\211\16)\204o\0*\317\ e,\ e*\"\315\1e/\211\1e)\203B\ 1\ e)@\16/\324\ e/!\1e-\ e+\203\360\0\322\334\ e-P!\210\ e/\335N\206\372\0\ e0C\315\1e.\211\1e)\2038\ 1\ e)@\16.\ e+\203\17\ 1\322\334\ e-\336\ e.R!\210\332\ e.\317\333\ e.\n\"\ e/C\"\n#\210\317\f\ e.CC\"\14\ e)A\211\16)\204\ 3\ 1+\ e)A\211\16)\204\331\0*\ e+\203L\ 1\322\337!\210\340\341\f\342\343#\344\"\14\320\307\b!\313\f#\210\ e+\203f\ 1\322\345!\210\346 -\207" [jc roster hash ewoc all-groups terminator plist-get fsm-get-state-data :roster :roster-hash :roster-ewoc :roster-groups #[(deleted-items) "\b\306\19\211\1a\205<\0\n@\211\11\304N\307\e\211\1c\203/\0\f\306\1d\211\1a\203+\0\n@\15\303\r!\210\nA\211\12\204\1d\0*\2023\0\303\f!\210*\nA\211\12\204\b\0\306*\207" [deleted-items delete-this --dolist-tail-- terminator groups group nil #[(g) "\b\206\ 5\0 \1a\306\n\v\"\211\1c\204\15\0\307\r\nC\"\15\310\n\311\ e\n\f\"\v#*\207" [g jabber-roster-default-group-name group hash buddies new-groups gethash append puthash delq delete-this] 6]] 3] nil delq append plist-put jabber-roster-prepare-roster message "update hash-based roster" symbol-name "delete jid: " mapcar #[(g) "\b@\207" [g] 1] "try to delete jid: " " from group " puthash gethash "insert jid: " groups " to group " "remove duplicates from new group" sort cl-remove-duplicates :test #[(g1 g2) "\b@ @\1a\211\e\n\230*\207" [g1 g2 g2-name g1-name] 3] #[(g1 g2) "\b@ @\1a\211\e\n\231*\207" [g1 g2 g2-name g1-name] 3] "re display roster" jabber-display-roster deleted-items delete-this --dolist-tail-- new-items jabber-roster-debug changed-items jid group insert-this jabber-roster-default-group-name] 8 (#$ . 19438)]) | |
83 | (byte-code "\300\301\302\"\210\303\301\302\304#\207" [defalias jabber-presence-update-roster ignore make-obsolete "27.2"] 4) | |
84 | #@148 Return position of next property appearence or nil if there is none. | |
85 | If optional PREV is non-nil, return position of previous property appearence.\1f | |
86 | (defalias 'jabber-next-property #[(&optional prev) "`\306\b\203\n\0\307\202\v\0\310\19\1a\e\n\204T\0 \v\311\" \v\312\"\1c\211\1d\204$\0\f\2028\0\f\204,\0\r\2028\0\b\2034\0\313\2025\0\314\r\f\"*\211\13\204D\0\315\211\12\202\ f\0\316\v\311\"\206O\0\316\v\312\"\211\12\203\12\0\v+\207" [prev nextprev found pos group jid nil previous-single-property-change next-single-property-change jabber-jid jabber-group max min t get-text-property] 5 (#$ . 21706)]) | |
87 | #@54 Move the cursor to the next jid/group in the buffer.\1f | |
88 | (defalias 'jabber-go-to-next-roster-item #[nil "\301 \211\18\204\ f\0eb\210\301 \202\10\0\b\211\18\203\1a\0\bb\202\1c\0eb*\207" [next jabber-next-property] 2 (#$ . 22269) nil]) | |
89 | #@58 Move the cursor to the previous jid/group in the buffer.\1f | |
90 | (defalias 'jabber-go-to-previous-roster-item #[nil "\301\302!\211\18\204\11\0db\210\301\302!\202\12\0\b\211\18\203\1c\0\bb\202\1e\0db*\207" [previous jabber-next-property prev] 3 (#$ . 22487) nil]) | |
91 | #@90 Restore roster's groups rolling state from private storage. | |
92 | JC is the Jabber connection.\1f | |
93 | (defalias 'jabber-roster-restore-groups #[(jc) "\301\b\302\303\304\305%\207" [jc jabber-private-get roster "emacs-jabber" jabber-roster-restore-groups-1 ignore] 6 (#$ . 22730) (list (jabber-read-account))]) | |
94 | #@171 Parse roster groups and restore rolling state. | |
95 | ||
96 | JC is the Jabber connection. | |
97 | XML-DATA is the parsed tree data from the stream (stanzas) | |
98 | obtained from `xml-parse-region'.\1f | |
99 | (defalias 'jabber-roster-restore-groups-1 #[(jc xml-data) "\b\211\306\ 1:\205\f\0\307\ 2\ 2\"\266\203\310\230\205<\0\311\b!@\211\19;\205!\0\312 \313\"\211\1a\314\e\211\1c\205;\0\f@\13\315\r\v\316#\210\fA\211\14\204*\0\314,\207" [xml-data data groups group --dolist-tail-- jc xmlns xml-get-attribute-or-nil "emacs-jabber" last split-string "\n" nil jabber-roster-roll-group t] 7 (#$ . 23032)]) | |
100 | #@56 Save roster's groups rolling state in private storage.\1f | |
101 | (defalias 'jabber-roster-save-groups #[nil "\b\305\19\211\1a\2056\0\n@\11\306\307 !\310\"\211\e\203\1e\0\311\312\v\313#\202\1f\0\314\1c\315 \316\317\fE\320\321\320\322&\ 6\210*\nA\211\12\204\b\0\305*\207" [jabber-connections jc --dolist-tail-- groups roll-groups nil plist-get fsm-get-state-data :roster-roll-groups mapconcat #[(a) "\301\b!\207" [a substring-no-properties] 2] "\n" "" jabber-private-set roster ((xmlns . "emacs-jabber")) jabber-report-success "Roster groups saved" "Failed to save roster groups"] 8 (#$ . 23575) nil]) | |
102 | (provide 'jabber-roster) |