;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\207" [require cl-lib custom dictionary-connection button] 2)#@226 Customize helper for setting variable NAME to VALUE.
The helper is used by customize to check for an active connection
when setting a variable.  The user has then the choice to close
the existing connection.

(fn NAME VALUE)
(defalias 'dictionary-set-server-var #[514 "\302\300!\203 \203 \303!\304=\203 \305\306	\307Q!\203 \310!\210\311\"\207" [dictionary-connection dictionary-current-server boundp dictionary-connection-status up y-or-n-p "Close existing connection to " "? " dictionary-connection-close set-default] 6 (#$ . 206)])
(byte-code "\300\301\302\303\304\305%\210\300\306\302\307\304\301%\210\310\311\312\313\314DD\315\304\301\316\317\320\321\322\323&\210\310\324\312\313\325DD\326\304\301\316\317\320\327\322\323&\210\310\330\312\313\331DD\332\304\301\320\333\322\323&	\210\310\334\312\313\335DD\336\304\301\320\333\322\323&	\210\310\337\312\313\340DD\341\304\301\320\333\322\323&	\210\310\342\312\313\343DD\344\304\301\320\345\322\323&	\210\310\346\312\313\347DD\350\304\301\320\351\322\323&	\210\310\352\312\313\353DD\354\304\301\320\355\322\323&	\210\310\356\312\313\357DD\360\304\301\320\361\322\323&	\210\310\362\312\313\363DD\364\304\301\320\361\322\323&	\210\310\365\312\313\366DD\367\304\306\316\317\320\351\322\323&\210\310\370\312\313\371DD\372\304\306\316\317\320\333\322\323&\210\310\373\312\313\374DD\375\304\306\316\317\320\327\322\323&\210\310\376\312\313\377DD\201@ \304\301\320\351\322\323&	\210\310\201A \312\313\201B DD\201C \304\301\320\333\322\323&	\210\310\201D \312\313\201E DD\201F \304\301\320\333\322\323&	\210\310\201G \312\313\201H DD\201I \304\301\320\201J \201K \201L \201M \201N \201O \201L \201P \201Q \201R \201S \201T \201U  \"BBBBB\257D\322\323&	\207" [custom-declare-group dictionary nil "Client for accessing the dictd server based dictionaries." :group applications dictionary-proxy "Proxy configuration options for the dictionary client." custom-declare-variable dictionary-server funcall function #[0 "\300\207" [nil] 1 #1=""] "This server is contacted for searching the dictionary.\n\nYou can specify here:\n\n- Automatic: First try localhost, then dict.org after confirmation\n- localhost: Only use localhost\n- dict.org: Only use dict.org\n- User-defined: You can specify your own server here" :set dictionary-set-server-var :type (choice (const :tag "Automatic" nil) (const :tag "localhost" "localhost") (const :tag "dict.org" "dict.org") (string :tag "User-defined")) :version "28.1" dictionary-port #[0 "\300\207" [2628] 1 #1#] "The port of the dictionary server.\nThis port is probably always 2628 so there should be no need to modify it." natnum dictionary-identification #[0 "\300\207" ["dictionary.el emacs lisp dictionary client"] 1 #1#] "This is the identification string that will be sent to the server." string dictionary-default-dictionary #[0 "\300\207" ["*"] 1 #1#] "The dictionary which is used for searching definitions and matching.\n* and ! have a special meaning, * search all dictionaries, ! search until\none dictionary yields matches." dictionary-default-strategy #[0 "\300\207" ["."] 1 #1#] "The default strategy for listing matching words." dictionary-default-popup-strategy #[0 "\300\207" ["exact"] 1 #1#] "The default strategy for listing matching words within a popup window.\n\nThe following algorithms (defined by the dictd server) are supported\nby the choice value:\n\n- Exact match\n\n  The found word exactly matches the searched word.\n\n- Similar sounding\n\n  The found word sounds similar to the searched word.  For this match type\n  the soundex algorithm defined by Donald E. Knuth is used.  It will only\n  work with English words and the algorithm is not very reliable (i.e.,\n  the soundex algorithm is quite simple).\n\n- Levenshtein distance one\n\n  The Levenshtein distance is defined as the number of insertions, deletions,\n  or replacements needed to get the searched word.  This algorithm searches\n  for word where spelling mistakes are allowed.  Levenshtein distance one\n  means there is either a deleted character, an inserted character, or a\n  modified one.\n\n- User choice\n\n  Here you can enter any matching algorithm supported by your\n  dictionary server." (choice (const :tag "Exact match" "exact") (const :tag "Similar sounding" "soundex") (const :tag "Levenshtein distance one" "lev") (string :tag "User choice")) dictionary-create-buttons #[0 "\300\207" [t] 1 #1#] "Create some clickable buttons on top of the window if non-nil." boolean dictionary-link-dictionary #[0 "\300\207" ["*"] 1 #1#] "The dictionary which is used in links.\n* means to create links that search all dictionaries,\nnil means to create links that search only in the same dictionary\nwhere the current word was found." (choice (const :tag "Link to all dictionaries" "*") (const :tag "Link only to the same dictionary" nil) (string :tag "User choice")) dictionary-mode-hook #[0 "\300\207" [nil] 1 #1#] "Hook run in dictionary mode buffers." hook dictionary-post-buffer-hook #[0 "\300\207" [nil] 1 #1#] "Hook run at the end of every update of the dictionary buffer." dictionary-use-http-proxy #[0 "\300\207" [nil] 1 #1#] "Connects via a HTTP proxy using the CONNECT command when not nil." dictionary-proxy-server #[0 "\300\207" ["proxy"] 1 #1#] "The name of the HTTP proxy to use when `dictionary-use-http-proxy' is set." dictionary-proxy-port #[0 "\300\207" [3128] 1 #1#] "The port of the proxy server, used only when `dictionary-use-http-proxy' is set." dictionary-use-single-buffer #[0 "\300\207" [nil] 1 #1#] "Should the dictionary command reuse previous dictionary buffers?" dictionary-description-open-delimiter #[0 "\300\207" [#1#] 1 #1#] "The delimiter to display in front of the dictionaries description." dictionary-description-close-delimiter #[0 "\300\207" [#1#] 1 #1#] "The delimiter to display after of the dictionaries description." dictionary-coding-systems-for-dictionaries #[0 "\300\207" [(("mueller" . koi8-r))] 1 #1#] "Mapping of dictionaries to coding systems.\nEach entry in this list defines the coding system to be used for that\ndictionary.  The default coding system for all other dictionaries\nis utf-8" repeat cons :tag "Association" (string :tag "Dictionary name") choice "Coding system" :value 'utf-8 mapcar #[257 "\300D\207" [const] 3 "\n\n(fn X)"] coding-system-list] 20)
(custom-declare-face 'dictionary-word-definition-face '((((supports (:family "DejaVu Serif"))) (:family "DejaVu Serif")) (((type x)) (:font "Sans Serif")) (t (:font "default"))) "The face that is used for displaying the definition of the word." :group 'dictionary :version "28.1")
(custom-declare-face 'dictionary-word-entry-face '((((type x)) (:italic t)) (((type tty) (class color)) (:foreground "green")) (t (:inverse t))) "The face that is used for displaying the initial word entry line." :group 'dictionary :version "28.1")
(custom-declare-face 'dictionary-button-face '((t (:bold t))) "The face that is used for displaying buttons." :group 'dictionary :version "28.1")
(custom-declare-face 'dictionary-reference-face '((((type x) (class color) (background dark)) (:foreground "yellow")) (((type tty) (class color) (background dark)) (:foreground "cyan")) (((class color) (background light)) (:foreground "blue")) (t (:underline t))) "The face that is used for displaying a reference word." :group 'dictionary :version "28.1")#@66 The window configuration to be restored upon closing the buffer.
(defvar dictionary-window-configuration nil (#$ . 7556))#@32 The currently selected window.
(defvar dictionary-selected-window nil (#$ . 7683))#@51 The history buffer for point and window position.
(defvar dictionary-position-stack nil (#$ . 7771))#@49 The history buffer for functions and arguments.
(defvar dictionary-data-stack nil (#$ . 7877))#@24 The current positions.
(defvar dictionary-positions nil (#$ . 7977))#@50 The item that will be placed on stack next time.
(defvar dictionary-current-data nil (#$ . 8051))#@33 Keymap for the dictionary mode.
(defvar dictionary-mode-map (define-keymap :suppress t :parent button-buffer-map "q" 'dictionary-close "h" 'describe-mode "s" 'dictionary-search "d" 'dictionary-lookup-definition "D" 'dictionary-select-dictionary "M" 'dictionary-select-strategy "m" 'dictionary-match-words "l" 'dictionary-previous "n" 'forward-button "p" 'backward-button "SPC" 'scroll-up-command "S-SPC" 'scroll-down-command "M-SPC" 'scroll-down-command "DEL" 'scroll-down-command) (#$ . 8154))#@33 The current network connection.
(defvar dictionary-connection nil (#$ . 8654))#@40 The number of open dictionary buffers.
(defvar dictionary-instances 0 (#$ . 8738))#@49 Stores the point position while buffer display.
(defvar dictionary-marker nil (#$ . 8826))#@55 Determines if the Emacs has support to display color.
(defvar dictionary-color-support (byte-code "\3001 \301 0\207\210\302\207" [(error) display-color-p nil] 1) (#$ . 8922))#@32 History list of searched word.
(defvar dictionary-word-history nil (#$ . 9103))#@804 Mode for searching a dictionary.
This is a mode for searching a dictionary server implementing the
protocol defined in RFC 2229.

This is a quick reference to this mode describing the default key bindings:
\<dictionary-mode-map>
* \[dictionary-close] close the dictionary buffer
* \[describe-mode] display this help information
* \[dictionary-search] ask for a new word to search
* \[dictionary-lookup-definition] search the word at point
* \[forward-button] or TAB place point to the next link
* \[backward-button] or S-TAB place point to the prev link

* \[dictionary-match-words] ask for a pattern and list all matching words.
* \[dictionary-select-dictionary] select the default dictionary
* \[dictionary-select-strategy] select the default search strategy

* \`RET' or \`<mouse-2>' visit that link
(defalias 'dictionary-mode #[0 "\306=\204	 	T\307 \210\310 \210\311\n!\210\306\312\313\304!\210\314\313\305!\210\314\313\315!\210\313\316!\210\313\317!\210\313\320!\210\321\322\323\324\211$\210\325\326!\207" [major-mode dictionary-instances dictionary-mode-map mode-name dictionary-data-stack dictionary-position-stack dictionary-mode kill-all-local-variables buffer-disable-undo use-local-map "Dictionary" make-local-variable nil dictionary-current-data dictionary-positions dictionary-default-dictionary dictionary-default-strategy add-hook kill-buffer-hook dictionary-close t run-hooks dictionary-mode-hook] 5 (#$ . 9189)])#@63 Create a new dictionary buffer and install `dictionary-mode'.
(defalias 'dictionary #[0 "\203\n \303\304!\206 \305\304!\306 \307 \310!\210\311 \210\312\301!\210\312\302!\210\211\313 \210\314 \210\315 \210\316\314\317\"\207" [dictionary-use-single-buffer dictionary-window-configuration dictionary-selected-window get-buffer "*Dictionary*" generate-new-buffer current-window-configuration frame-selected-window switch-to-buffer-other-window dictionary-mode make-local-variable dictionary-check-connection dictionary-new-buffer dictionary-store-positions dictionary-store-state nil] 6 (#$ . 10630) nil])#@32 Create a new and clean buffer.
(defalias 'dictionary-new-buffer #[0 "\300 \210\301 \207" [dictionary-pre-buffer dictionary-post-buffer] 1 (#$ . 11243)])#@52 Return the reply code stored in REPLY.

(fn REPLY)
(defalias 'dictionary-reply-code #[257 "\211\300N\207" [reply-code] 3 (#$ . 11401)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put dictionary-reply-code speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@54 Return the string reply stored in REPLY.

(fn REPLY)
(defalias 'dictionary-reply #[257 "\211\300N\207" [reply] 3 (#$ . 11689)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put dictionary-reply speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@52 Return the reply list stored in REPLY.

(fn REPLY)
(defalias 'dictionary-reply-list #[257 "\211\300N\207" [reply-list] 3 (#$ . 11964)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put dictionary-reply-list speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@143 Opens a new connection to SERVER.
The connection takes the proxy setting in customization group
`dictionary-proxy' into account.

(fn SERVER)
(defalias 'dictionary-open-server #[257 "\306\307\310 >\203 \307\262\211\311\312#\210\313\f!\210\203( \314!\"\"\202, \314\"\315\f\211\316N\262\306\"\210\203r \311\317!\"#\210\320\321\322#!\210\320\323!\210\324 \325!\326A@!\327U\204c \330\331\"\210\323\232\204p \324 \262\202c \266\332 \210\320\333#P!\210\334 \311\306!\210\335\336\"?\205\223 \330\337\211\340N\262\"*\207" [coding-system-for-write coding-system-for-read dictionary-current-server dictionary-port dictionary-connection dictionary-use-http-proxy nil raw-text coding-system-list message "Opening connection to %s:%s" dictionary-connection-close dictionary-connection-open set-process-query-on-exit-flag dictionary-connection-process "Proxy CONNECT to %s:%d" dictionary-send-command format "CONNECT %s:%d HTTP/1.1" "" dictionary-read-reply dictionary-split-string string-to-number 200 error "Bad reply from proxy server %s" dictionary-check-initial-reply "client " dictionary-read-reply-and-split dictionary-check-reply 250 "Unknown server answer: %s" reply dictionary-proxy-server dictionary-proxy-port dictionary-identification] 8 (#$ . 12253)])#@46 Check if there is already a connection open.
(defalias 'dictionary-check-connection #[0 "\205	 \302!\303=?\205/ 	\203 \304	!\207\3051 \304\306!0\207\210\307\310\311\306\"!\203, \304\312!\207\313\314!\207" [dictionary-connection dictionary-server dictionary-connection-status up dictionary-open-server (error) "localhost" y-or-n-p format "Failed to open server %s, continue with dict.org? " "dict.org" error "Failed automatic server selection, please customize dictionary-server"] 4 (#$ . 13541)])#@57 Return non-nil if current buffer has `dictionary-mode'.
(defalias 'dictionary-mode-p #[0 "\301=\207" [major-mode dictionary-mode] 2 (#$ . 14047)])#@65 If current buffer is not a dictionary buffer, create a new one.
(defalias 'dictionary-ensure-buffer #[0 "\300 ?\205 \301 \207" [dictionary-mode-p dictionary] 1 (#$ . 14200)])#@77 Close the current dictionary buffer and its connection.

(fn &rest IGNORED)
(defalias 'dictionary-close #[128 "\305=\205$ \306	S\211\307X\203 \310\n!\210\f\311p!\210\312!\210\313!\266\202\207" [major-mode dictionary-instances dictionary-connection dictionary-window-configuration dictionary-selected-window dictionary-mode nil 0 dictionary-connection-close kill-buffer set-window-configuration select-window] 5 (#$ . 14381) nil])#@65 Send the command STRING to the network connection.

(fn STRING)
(defalias 'dictionary-send-command #[257 "\301 \210\302\"\207" [dictionary-connection dictionary-check-connection dictionary-connection-send-crlf] 4 (#$ . 14823)])#@38 Read the reply line from the server.
(defalias 'dictionary-read-reply #[0 "\301!\302\303\"\203 \211\304\211\224O\207\207" [dictionary-connection dictionary-connection-read-crlf string-match "?\n" 0] 4 (#$ . 15058)])#@138 Split STRING consisting of space-separated words into elements.
This function knows about the special meaning of quotes (")

(fn STRING)
(defalias 'dictionary-split-string #[257 "\300\203G G\301V\203G \302\301\301H\303U\203 \304\262\305\262\306#\203: \305\225SOB\262\301\225\300O\262\266\202 B\262\300\262\266\202 \211\237\207" [nil 0 "\\(\\s-+\\)" 34 "\\(\"\\)\\s-*" 1 string-match] 8 (#$ . 15284)])#@52 Read the reply, split it into words and return it.
(defalias 'dictionary-read-reply-and-split #[0 "\300\301!\302 \303!\304\305#\210\304\306#\210\304\307\310@!#\210\207" [make-symbol "reply-data" dictionary-read-reply dictionary-split-string put reply reply-list reply-code string-to-number] 8 (#$ . 15713)])#@95 Read the complete answer.
The answer is delimited by a decimal point (.) on a line by itself.
(defalias 'dictionary-read-answer #[0 "\301!\302\303\304#\203 \305\306\307\211$\262\302\225S\262\202 \302\262\303\310#\203/ \305\311\307\211$\262\207" [dictionary-connection dictionary-connection-read-to-point 0 string-match "\n" replace-match "\n" t "\n\\.\n.*" ""] 7 (#$ . 16034)])#@76 Extract the reply code from REPLY and check against CODE.

(fn REPLY CODE)
(defalias 'dictionary-check-reply #[514 "\211\300N\262\211\247\205 \211U\207" [reply-code] 5 (#$ . 16432)])#@62 Select coding system to use for DICTIONARY.

(fn DICTIONARY)
(defalias 'dictionary-coding-system #[257 "\301\"A\206	 \302\211\303 \235\205 \211\207" [dictionary-coding-systems-for-dictionaries assoc utf-8 coding-system-list] 4 (#$ . 16624)])#@80 Convert TEXT from the charset configured for DICTIONARY.

(fn TEXT DICTIONARY)
(defalias 'dictionary-decode-charset #[514 "\300!\211\203\f \301\"\207\207" [dictionary-coding-system decode-coding-string] 6 (#$ . 16874)])#@75 Convert TEXT to the charset defined for DICTIONARY.

(fn TEXT DICTIONARY)
(defalias 'dictionary-encode-charset #[514 "\300!\211\203\f \301\"\207\207" [dictionary-coding-system encode-coding-string] 6 (#$ . 17103)])#@48 Read the first reply from server and check it.
(defalias 'dictionary-check-initial-reply #[0 "\301 \302\303\"?\205 \304!\210\305\306\211\307N\262\"\207" [dictionary-connection dictionary-read-reply-and-split dictionary-check-reply 220 dictionary-connection-close error "Server returned: %s" reply] 6 (#$ . 17327)])#@216 Store the current state of operation for later restore.
The current state consist of a tuple of FUNCTION and DATA.
This is basically an implementation of a history to return to a
previous state.

(fn FUNCTION DATA)
(defalias 'dictionary-store-state #[514 "\203 	B\n\204 \304\305!\210\nBB\211\207" [dictionary-current-data dictionary-data-stack dictionary-positions dictionary-position-stack error "dictionary-store-state called before dictionary-store-positions"] 4 (#$ . 17653)])#@48 Store the current positions for later restore.
(defalias 'dictionary-store-positions #[0 "`\301 B\211\207" [dictionary-positions window-start] 2 (#$ . 18149)])#@71 Restore the state just before the last operation.

(fn &rest IGNORED)
(defalias 'dictionary-restore-state #[128 "\211A\242	\211A\242\204 \303\304!\210\305@A\"\210\306\307 A\"\210@b\210\211\211\207" [dictionary-position-stack dictionary-data-stack dictionary-current-data error "Already at begin of history" apply set-window-start selected-window] 6 (#$ . 18315)])#@208 Save the current state and start a new search based on ARGS.
The parameter ARGS is a cons cell where car is the word to search
and cdr is the dictionary where to search the word in.

(fn ARGS &optional ALL)
(defalias 'dictionary-new-search #[513 "\301 \210@A\203 \262\302 \210\303\304#\210\305\303\304E\"\207" [dictionary-default-dictionary dictionary-store-positions dictionary-ensure-buffer dictionary-new-search-internal dictionary-display-search-result dictionary-store-state] 9 (#$ . 18695) nil])#@167 Start a new search for WORD in DICTIONARY after preparing the buffer.
FUNCTION is the callback which is called for each search result.

(fn WORD DICTIONARY FUNCTION)
(defalias 'dictionary-new-search-internal #[771 "\300 \210\301#\207" [dictionary-pre-buffer dictionary-do-search] 7 (#$ . 19213)])#@207 Search for WORD in DICTIONARY and call FUNCTION for each result.
Optional argument NOMATCHING controls whether to suppress the display
of matching words.

(fn WORD DICTIONARY FUNCTION &optional NOMATCHING)
(defalias 'dictionary-do-search #[1027 "\300\301#\210\302\303\304\305\"\306\304\"\307\260!\210\300\310!\210\311 \312\313\"\2037 ?\205W \314c\210\315\316\317$\210\320 \207\312\321\"\203C \322\323\"\207\312\324\"\204T \322\325\211\326N\262\"\210!\207" [message "Searching for %s in %s" dictionary-send-command "define " dictionary-encode-charset "" " \"" "\"" nil dictionary-read-reply-and-split dictionary-check-reply 552 "Word not found" dictionary-do-matching "." #[257 "\300c\210\301!\207" [", maybe you are looking for one of these words\n\n" dictionary-display-only-match-result] 3 "\n\n(fn REPLY)"] dictionary-post-buffer 550 error "Dictionary \"%s\" is unknown, please select an existing one" 150 "Unknown server answer: %s" reply] 11 (#$ . 19519)])
(byte-code "\300\301\302\303\304\305%\210\300\306\307\301\302\310%\207" [define-button-type dictionary-link face dictionary-reference-face action #[257 "\300\301\"\300\302\"\300\303\"\211\203 \304\"\207!\207" [button-get callback data list-data apply] 7 "\n\n(fn BUTTON)"] dictionary-button :supertype dictionary-button-face] 6)#@59 These commands are executed at the begin of a new buffer.
(defalias 'dictionary-pre-buffer #[0 "\303\304 \210	\203] \305\306\307\310\311\312\313\314&\210\315c\210\305\316\307\310\311\317\313\320&\210\321c\210\305\322\307\310\311\323\313\324&\210\325c\210\305\326\307\310\311\327\313\330&\210\331c\210\305\332\307\310\311\333\313\334&\210\321c\210\305\335\307\310\311\336\313\337&\210\340c\210\341 \211\207" [buffer-read-only dictionary-create-buttons dictionary-marker nil erase-buffer insert-button "[Back]" :type dictionary-button callback dictionary-restore-state help-echo "Mouse-2 to go backwards in history" " " "[Search definition]" dictionary-search "Mouse-2 to look up a new word" "         " "[Matching words]" dictionary-match-words "Mouse-2 to find matches for a pattern" "        " "[Quit]" dictionary-close "Mouse-2 to close this window" "\n       " "[Select dictionary]" dictionary-select-dictionary "Mouse-2 to select dictionary for future searches" "[Select match strategy]" dictionary-select-strategy "Mouse-2 to select matching algorithm" "\n\n" point-marker] 8 (#$ . 20843)])#@57 These commands are executed at the end of a new buffer.
(defalias 'dictionary-post-buffer #[0 "b\210\302\303!\210\304\305\306!\207" [dictionary-marker buffer-read-only set-buffer-modified-p nil t run-hooks dictionary-post-buffer-hook] 2 (#$ . 21952)])#@51 Start displaying the result in REPLY.

(fn REPLY)
(defalias 'dictionary-display-search-result #[257 "\211\211\300N\262A@\211\301\232\203 \302\202 \303\304\261\210\305 \262\306\307\"\203K \211\300N\262\3108\3118A@\312\"\210\313 \262\314#\210\305 \262\266\202 \315 \207" [reply-list "1" " definition" " definitions" " found\n\n" dictionary-read-reply-and-split dictionary-check-reply 151 2 3 dictionary-display-word-entry dictionary-read-answer dictionary-display-word-definition dictionary-post-buffer] 10 (#$ . 22211)])#@164 Insert an explanation for DESCRIPTION from DICTIONARY.
The DICTIONARY is only used for decoding the bytes to display the DESCRIPTION.

(fn DICTIONARY DESCRIPTION)
(defalias 'dictionary-display-word-entry #[514 "`\302\303\"	\304\303\211\"\305\261\210\306`\307\310$\210\311c\207" [dictionary-description-open-delimiter dictionary-description-close-delimiter "From " dictionary-decode-charset " [" "]:" put-text-property face dictionary-word-entry-face "\n\n"] 11 (#$ . 22759)])#@204 Insert the definition in REPLY for the current WORD from DICTIONARY.
It will replace links which are found in the REPLY and replace
them with buttons to perform a new search.

(fn REPLY WORD DICTIONARY)
(defalias 'dictionary-display-word-definition #[771 "`\301\"c\210\302c\210\303`\304\305$\210\211b\210`dW\205T \306\307\310\311#\203N \312\224\312\225\203@ \313\225\313\224Z\312\224Z\262\312\225Z\262\314\315!\266\316\317%\266\202 db\210\202 \207" [dictionary-color-support dictionary-decode-charset "\n\n" put-text-property face dictionary-word-definition-face search-forward-regexp "\\({+\\)\\([^ '\"][^}]*\\)\\(}+\\)" nil t 2 1 replace-match "\\2" dictionary-mark-reference dictionary-new-search] 12 (#$ . 23249)])#@176 Format the area from START to END as link calling CALL.
The word is taken from the buffer, the DICTIONARY is given as argument.

(fn START END CALL DISPLAYED-WORD DICTIONARY)
(defalias 'dictionary-mark-reference #[1285 "\301\"\302\303\"\203 \304\305\306\211$\262\202 \302\307\"\203( \304\310\306\211$\262\202 \203/ \262\211\232?\205R \311\312\313\314	\315\nB\316\317\320\321\260&\n\207" [dictionary-link-dictionary buffer-substring-no-properties string-match "\n\\s-*" replace-match " " t "[*\"]" "" make-button :type dictionary-link callback data help-echo "Press Mouse-2 to lookup \"" "\" in \"" "\""] 21 (#$ . 23992)])#@78 Save the current state and start a dictionary selection.

(fn &rest IGNORED)
(defalias 'dictionary-select-dictionary #[128 "\300 \210\301 \210\302 \210\303\302\304\"\207" [dictionary-ensure-buffer dictionary-store-positions dictionary-do-select-dictionary dictionary-store-state nil] 4 (#$ . 24647) nil])#@71 The workhorse for doing the dictionary selection.

(fn &rest IGNORED)
(defalias 'dictionary-do-select-dictionary #[128 "\300\301!\210\302\303!\210\304 \300\305!\210\306\307\"\203 \310\311!\207\306\312\"\204* \310\313\211\314N\262\"\210\315 \207" [message "Looking up databases and descriptions" dictionary-send-command "show db" dictionary-read-reply-and-split nil dictionary-check-reply 554 error "No dictionary present" 110 "Unknown server answer: %s" reply dictionary-display-dictionaries] 7 (#$ . 24957)])#@158 Return a list of substrings of STRING which are separated by PATTERN.
If PATTERN is omitted, it defaults to "[ \f\t\n\r\v]+".

(fn STRING &optional PATTERN)
(defalias 'dictionary-simple-split-string #[513 "\211\204 \300\262\301\302\303#\203! \302\224OB\262\302\225\262\202	 \301OB\237\207" ["[ \f	\n]+" nil 0 string-match] 8 (#$ . 25478)])#@64 Handle the display of all dictionaries existing on the server.
(defalias 'dictionary-display-dictionaries #[0 "\300 \210\301c\210\302\303!\210\302\304!\210\305 \306\307\"\310\302\"\266\311 \207" [dictionary-pre-buffer "Please select your default dictionary:\n\n" dictionary-display-dictionary-line "* \"All dictionaries\"" "! \"The first matching dictionary\"" dictionary-read-answer dictionary-simple-split-string "\n+" mapc dictionary-post-buffer] 5 (#$ . 25838)])#@80 Display a single dictionary and its description read from STRING.

(fn STRING)
(defalias 'dictionary-display-dictionary-line #[257 "\300!\211@A@\301\"\205K \302\232\203 \303c\207\304\305Q\306\307\310\311\312		B\313\314&	\210\315!\204I \316c\210\304\317\306\307\310\311\320		B\321D\313\322&	\210\323c\207" [dictionary-split-string dictionary-decode-charset "--exit--" "(end of default search list)\n" insert-button ": " :type dictionary-link callback dictionary-set-dictionary data help-echo "Mouse-2 to select this dictionary" dictionary-special-dictionary " " "(Details)" list-data t "Mouse-2 to get more information" "\n"] 15 (#$ . 26313)])#@92 Select the dictionary which is the car of PARAM as new default.

(fn PARAM &optional MORE)
(defalias 'dictionary-set-dictionary #[513 "\211\203 \301!\207@\211\302 \210\303\304\"\207" [dictionary-default-dictionary dictionary-display-more-info dictionary-restore-state message "Dictionary %s has been selected"] 6 (#$ . 26975)])#@74 Check whether the special * or ! dictionary are seen in NAME.

(fn NAME)
(defalias 'dictionary-special-dictionary #[257 "\211\300\232\206	 \211\301\232\207" ["*" "!"] 3 (#$ . 27313)])#@81 Display the available information on the dictionary found in PARAM.

(fn PARAM)
(defalias 'dictionary-display-more-info #[257 "\211@A\300!?\205l \301 \210\302\303\"\210\304\305\306\307\"P!\210\310 \302\311!\210\312\313\"\2032 \314\315\"\266\202h \312\316\"\204C \314\317\211\320N\262\"\210\321 \210\322c\210\323\324\325\326\327\330		B\331\332&	\210\333c\210\334 \262\211c\210\335 \266\336\337\"\207" [dictionary-special-dictionary dictionary-store-positions message "Requesting more information on %s" dictionary-send-command "show info " dictionary-encode-charset "" dictionary-read-reply-and-split nil dictionary-check-reply 550 error "Dictionary \"%s\" does not exist" 112 "Unknown server answer: %s" reply dictionary-pre-buffer "Information on dictionary: " insert-button :type dictionary-link callback dictionary-set-dictionary data help-echo "Mouse-2 to select this dictionary" "\n\n" dictionary-read-answer dictionary-post-buffer dictionary-store-state dictionary-display-more-info] 14 (#$ . 27502)])#@76 Save the current state and start a strategy selection.

(fn &rest IGNORED)
(defalias 'dictionary-select-strategy #[128 "\300 \210\301 \210\302 \210\303\302\304\"\207" [dictionary-ensure-buffer dictionary-store-positions dictionary-do-select-strategy dictionary-store-state nil] 4 (#$ . 28531) nil])#@49 The workhorse for doing the strategy selection.
(defalias 'dictionary-do-select-strategy #[0 "\300\301!\210\302\303!\210\304 \300\305!\210\306\307\"\203 \310\311!\207\306\312\"\204* \310\313\211\314N\262\"\210\315 \207" [message "Request existing matching algorithm" dictionary-send-command "show strat" dictionary-read-reply-and-split nil dictionary-check-reply 555 error "No strategies available" 111 "Unknown server answer: %s" reply dictionary-display-strategies] 6 (#$ . 28835)])#@62 Handle the display of all strategies existing on the server.
(defalias 'dictionary-display-strategies #[0 "\300 \210\301c\210\302\303!\210\304 \305\306\"\307\302\"\266\310 \207" [dictionary-pre-buffer "Please select your default search strategy:\n\n" dictionary-display-strategy-line ". \"The servers default\"" dictionary-read-answer dictionary-simple-split-string "\n+" mapc dictionary-post-buffer] 5 (#$ . 29330)])#@57 Display a single strategy found in STRING.

(fn STRING)
(defalias 'dictionary-display-strategy-line #[257 "\300!\211@A@\205 \301\302\303\304\305\306\307\310&	\210\311c\207" [dictionary-split-string insert-button :type dictionary-link callback dictionary-set-strategy data help-echo "Mouse-2 to select this matching algorithm" "\n"] 14 (#$ . 29756)])#@67 Select this STRATEGY as new default.

(fn STRATEGY &rest IGNORED)
(defalias 'dictionary-set-strategy #[385 "\301 \210\302\303\"\207" [dictionary-default-strategy dictionary-restore-state message "Strategy %s has been selected"] 5 (#$ . 30118)])#@47 Run a new matching search on WORD.

(fn WORD)
(defalias 'dictionary-new-matching #[257 "\302 \210\303 \210\304	\305$\210\306\304	\305F\"\207" [dictionary-default-dictionary dictionary-default-strategy dictionary-ensure-buffer dictionary-store-positions dictionary-do-matching dictionary-display-match-result dictionary-store-state] 7 (#$ . 30371)])#@117 Search for WORD with STRATEGY in DICTIONARY and display them with FUNCTION.

(fn WORD DICTIONARY STRATEGY FUNCTION)
(defalias 'dictionary-do-matching #[1028 "\300\301$\210\302\303\304\305\"\306\304\305\"\307\304\n\305\"\310\260!\210\311 \300\312!\210\313\314\"\2030 \315\316\"\210\313\317\"\203< \315\320\"\210\313\321\"\203L \315\322$\210\313\323\"\204] \315\324\211\325N\262\"\210!\207" [message "Lookup matching words for %s in %s using %s" dictionary-send-command "match " dictionary-encode-charset "" " " " \"" "\"" dictionary-read-reply-and-split nil dictionary-check-reply 550 error "Dictionary \"%s\" is invalid" 551 "Strategy \"%s\" is invalid" 552 "No match for \"%s\" with strategy \"%s\" in dictionary \"%s\"." 152 "Unknown server answer: %s" reply] 13 (#$ . 30730)])#@88 Display the results from the current matches in REPLY without the headers.

(fn REPLY)
(defalias 'dictionary-display-only-match-result #[257 "\211\211\300N\262A@\301\302 \303\"\304\305\232\203 \306\202 \307\310\261\210\311C\312\313\314\"\"\210\315\316\242!!\207" [reply-list dictionary-simple-split-string dictionary-read-answer "\n+" " matching word" "1" "" "s" " found\n\n" nil mapc make-closure #[257 "\301!\211@A@\302\300\242\"\205$ \211\203 \211AB\241\207\300D\300\242B\240\207" [V0 dictionary-split-string assoc] 8 "\n\n(fn ITEM)"] dictionary-display-match-lines reverse] 8 (#$ . 31538)])#@66 Display the results in REPLY from a match operation.

(fn REPLY)
(defalias 'dictionary-display-match-result #[257 "\300 \210\211\211\301N\262A@\302\303 \304\"\305\306\232\203 \307\202 \310\311\261\210\312C\313\314\315\"\"\210\316\317\242!!\266\320 \207" [dictionary-pre-buffer reply-list dictionary-simple-split-string dictionary-read-answer "\n+" " matching word" "1" "" "s" " found\n\n" nil mapc make-closure #[257 "\301!\211@A@\302\300\242\"\205$ \211\203 \211AB\241\207\300D\300\242B\240\207" [V0 dictionary-split-string assoc] 8 "\n\n(fn ITEM)"] dictionary-display-match-lines reverse dictionary-post-buffer] 8 (#$ . 32156)])#@57 Display a line for each match found in LIST.

(fn LIST)
(defalias 'dictionary-display-match-lines #[257 "\300\301\"\207" [mapc #[257 "\211@A\300\301\261\210\302\303\304\"\305!\"\210\306c\207" ["Matches from " ":\n" mapc make-closure #[257 "\301\300\"\262\302c\210\303\304\305\306\307\310\300B\311\312&	\210\313c\207" [V0 dictionary-decode-charset "  " insert-button :type dictionary-link callback dictionary-new-search data help-echo "Mouse-2 to lookup word" "\n"] 11 "\n\n(fn WORD)"] reverse "\n"] 7 "\n\n(fn ITEM)"]] 4 (#$ . 32811)])
(defalias 'dictionary-search-default #[0 "\300 \203\f \301\302 \303 \"\207\304`\305\"@\206 \306\307!\207" [use-region-p buffer-substring-no-properties region-beginning region-end get-char-property data current-word t] 3])#@173 Search the WORD in DICTIONARY if given or in all if nil.
It presents the selection or word at point as default input and
allows editing it.

(fn WORD &optional DICTIONARY)
(defalias 'dictionary-search #[513 "\204 \301\302\303\304#\262\211\204 \262\305B!\207" [dictionary-default-dictionary read-string "Search word: " nil dictionary-word-history dictionary-new-search] 6 (#$ . 33587) (byte-code "\302 \303\304\305\"\306\307$\262\203% \303	\203 \310\311	\"\202 \312\306\211	$\202& 	D\207" [current-prefix-arg dictionary-default-dictionary dictionary-search-default read-string format-prompt "Search word" nil dictionary-word-history format "Dictionary (%s): " "Dictionary: "] 6)])#@43 Unconditionally lookup the word at point.
(defalias 'dictionary-lookup-definition #[0 "\301 \211\204\n \302\303!\210\304B!\207" [dictionary-default-dictionary current-word error "No word at point" dictionary-new-search] 4 (#$ . 34286) nil])#@52 Go to the previous location in the current buffer.
(defalias 'dictionary-previous #[0 "\300 \204	 \301\302!\210\303 \207" [dictionary-mode-p error "Current buffer is no dictionary buffer" dictionary-restore-state] 2 (#$ . 34534) nil])#@24 Display a little help.
(defalias 'dictionary-help #[0 "\300\301!\207" [describe-function dictionary-mode] 2 (#$ . 34774) [nil (dictionary-mode)]])
(make-obsolete 'dictionary-help 'describe-mode "29.1")#@108 Search PATTERN in current default dictionary using default strategy.

(fn &optional PATTERN &rest IGNORED)
(defalias 'dictionary-match-words #[384 "\204 \300\301\302\303#\262\304!\207" [read-string "Search pattern: " nil dictionary-word-history dictionary-new-matching] 6 (#$ . 34982) nil])#@84 Display entries matching the word at the cursor retrieved using EVENT.

(fn EVENT)
(defalias 'dictionary-mouse-popup-matching-words #[257 "\300 \301\302\"\216\212\303!\210\304 *\262\305!\207" [current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] mouse-set-point current-word dictionary-popup-matching-words] 5 (#$ . 35282) "e"])#@86 Display entries matching WORD or the current word if not given.

(fn &optional WORD)
(defalias 'dictionary-popup-matching-words #[256 "\302\206 \303 \206 \304\305!	\306$\207" [dictionary-default-dictionary dictionary-default-popup-strategy dictionary-do-matching current-word error "Nothing to search for" dictionary-process-popup-replies] 6 (#$ . 35662) nil])#@16 

(fn &ignore)
(defalias 'dictionary-process-popup-replies #[257 "\302\303 \304\"\305\306\"\307\301\310\311#\210\312\301\311\313B$\210\314	!\207" [dictionary-mode-map dictionary-mode-map-menu dictionary-simple-split-string dictionary-read-answer "\n+" mapcar #[257 "\300!\211@\301A@\"\302!\210\211\303\232\203 \304\207\305\306\307R\310\311BDD\312#\207" [dictionary-split-string dictionary-decode-charset message "" ["-" nil nil] vector "[" "] " dictionary-new-search quote t] 10 "\n\n(fn ITEM)"] defvar-1 nil "Menu used for displaying dictionary popup" easy-menu-do-define "Matching words" popup-menu] 9 (#$ . 36032)])#@58 Indicates whether the dictionary tooltip mode is active.
(defvar dictionary-tooltip-mode nil (#$ . 36669))
(byte-code "\301\244\210\302\303\304\305\306DD\307\310\311\312\313\314\315&	\207" [minor-mode-alist ((dictionary-tooltip-mode " Dict")) custom-declare-variable dictionary-tooltip-dictionary funcall function #[0 "\300\207" [nil] 1 ""] "This dictionary to lookup words for tooltips." :group dictionary :type (choice (const :tag "None" nil) string) :version "28.1"] 10)#@34 

(fn WORD &optional DICTIONARY)
(defalias 'dictionary-definition #[513 "\301\216\211\206 \302\303\304$)\207" [dictionary-default-dictionary #[0 "\300\207" [nil] 1] dictionary-do-search dictionary-read-definition t] 8 (#$ . 37149) nil])#@16 

(fn &ignore)
(defalias 'dictionary-read-definition #[257 "\300\301 \302\"\303\304A\305#\207" [dictionary-simple-split-string dictionary-read-answer "\n+" mapconcat identity "\n"] 6 (#$ . 37395)])
(defvar global-dictionary-tooltip-mode nil)#@14 

(fn EVENT)
(defalias 'dictionary-word-at-mouse-event #[257 "r\300!q\210\301\302!!\303 \203& \304 X\205- \211\305 X\205- \304 \305 {\202- \212\211b\210\306 ))\207" [tooltip-event-buffer posn-point event-end use-region-p region-beginning region-end current-word] 4 (#$ . 37643)])#@40 Event that triggered the tooltip mode.
(defvar dictionary-tooltip-mouse-event nil (#$ . 37931))#@79 Search the current word in the `dictionary-tooltip-dictionary'.

(fn &ignore)
(defalias 'dictionary-display-tooltip #[257 "\205\" 	\205\" \303\n!\211\203 \304	\"\211\203 \305\306	\"!\210\210\307\262\207" [dictionary-tooltip-mode dictionary-tooltip-dictionary dictionary-tooltip-mouse-event dictionary-word-at-mouse-event dictionary-definition tooltip-show dictionary-decode-charset t] 7 (#$ . 38032) "e"])#@84 Called whenever a dictionary tooltip display is about to be triggered.

(fn EVENT)
(defalias 'dictionary-tooltip-track-mouse #[257 "\302 \210\205 \303!\304 \207" [dictionary-tooltip-mode dictionary-tooltip-mouse-event tooltip-hide copy-sequence tooltip-start-delayed-tip] 3 (#$ . 38449) "e"])#@349 Turn off or on support for the dictionary tooltip mode.

It is normally internally called with 1 to enable support for the
tooltip mode.  The hook function will check the value of the
variable `dictionary-tooltip-mode' to decide if some action must be
taken.  When disabling the tooltip mode the value of this variable
will be set to nil.

(fn ON)
(defalias 'dictionary-switch-tooltip-mode #[257 "\300!\210\211\203 \301\302\303\"\207\304\302\303\"\207" [tooltip-mode add-hook tooltip-functions dictionary-display-tooltip remove-hook] 4 (#$ . 38752) nil])#@250 Display tooltips for the current word.

This function can be used to enable or disable the tooltip mode
for the current buffer (based on ARG).  If global-tooltip-mode is
active it will overwrite that mode for the current buffer.

(fn &optional ARG)
(defalias 'dictionary-tooltip-mode #[256 "\302\303!\210\211\203 \304!\305V\202 ?\306\300!\210\211\306\301!\210\211\306\307!\210\310\311!\210\211\2030 \312\313\314\"\210\207\312\315\316\"\210\207" [dictionary-tooltip-mode track-mouse require tooltip prefix-numeric-value 0 make-local-variable dictionary-tooltip-mouse-event dictionary-switch-tooltip-mode 1 local-set-key [mouse-movement] dictionary-tooltip-track-mouse [mouse-movement] ignore] 5 (#$ . 39315) "P"])#@349 Enable/disable `dictionary-tooltip-mode' for all buffers.

Internally it provides a default for the `dictionary-tooltip-mode'.
It can be overwritten for each buffer using `dictionary-tooltip-mode'.

Note: (global-dictionary-tooltip-mode 0) will not disable the mode
any buffer where (dictionary-tooltip-mode 1) has been called.

(fn &optional ARG)
(defalias 'global-dictionary-tooltip-mode #[256 "\301\302!\210\211\203 \303!\304V\202 ?\211\305\306\"\210\307\310!\210\305\311\"\210\312\313!\210\314\315\2030 \316\2021 \317\"\210\207" [global-dictionary-tooltip-mode require tooltip prefix-numeric-value 0 set-default dictionary-tooltip-mode make-local-variable dictionary-tooltip-mouse-event track-mouse dictionary-switch-tooltip-mode 1 global-set-key [mouse-movement] dictionary-tooltip-track-mouse ignore] 5 (#$ . 40040) "P"])#@14 

(fn EVENT)
(defalias 'dictionary-search-word-at-mouse #[257 "\300 \301\302\"\216\212\303!\210\304 *\262\305!\207" [current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] mouse-set-point current-word dictionary-search] 5 (#$ . 40881) "e"])#@200 Populate MENU with dictionary commands at CLICK.
When you add this function to `context-menu-functions',
the context menu will contain an item that searches
the word at mouse click.

(fn MENU CLICK)
(defalias 'dictionary-context-menu #[514 "\301\302\"\203 \303\304\305$\210\303\306\307\310$\210\207" [menu-bar-separator thing-at-mouse word define-key-after [dictionary-separator] middle-separator [dictionary-search-word-at-mouse] (menu-item "Dictionary Search" dictionary-search-word-at-mouse :help "Search the word at mouse click in dictionary") dictionary-separator] 7 (#$ . 41172)])
(provide 'dictionary)
