MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.117.158.174
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/progmodes/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/progmodes/idlw-help.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:09:26 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/progmodes/idlw-help.el
;;; in Emacs version 24.3.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.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@34 Whether browse-url is available.
(defvar idlwave-help-browse-url-available t (#$ . 562))
(byte-code "\300\301!\210\302\303\304\305\306\307%\210\310\311\304\312\306\303\313\314&\207" [require browse-url custom-declare-group idlwave-online-help nil "Online Help options for IDLWAVE mode." :group idlwave custom-declare-variable idlwave-html-help-pre-v6 "Whether pre or post-v6.0 IDL help documents are being used." :type boolean] 8)
(defvar idlwave-html-link-sep (byte-code "\203\301\207\302\207" [idlwave-html-help-pre-v6 "#" "#wp"] 1))
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\307&\207" [custom-declare-variable idlwave-html-system-help-location "help/online_help/" "The directory, relative to `idlwave-system-directory', where the IDL\nHTML help files live, for IDL 6.2 and later.  This location, if found,\nis used in preference to the old `idlwave-html-help-location'." :group idlwave-online-help :type directory idlwave-html-help-location (if (memq system-type '(ms-dos windows-nt)) nil "/usr/local/etc/") "The directory where the idl_html_help/ dir lives.  Obsolete for IDL\n6.2 or later (see `idlwave-html-system-help-location')."] 8)
#@20 Obsolete variable.
(defvar idlwave-help-use-hh nil (#$ . 1752))
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\313&\210\300\314\315\316\304\305\306\317&\210\300\320\321\322\304\305\306\317&\210\300\323\324\325\304\305\306\307&\207" [custom-declare-variable idlwave-help-use-assistant t "Whether to use the IDL Assistant as the help browser." :group idlwave-online-help :type boolean idlwave-help-browser-function browse-url-browser-function "Function to use to display HTML help.\nDefaults to `browse-url-browser-function', which see." function idlwave-help-browser-generic-program browse-url-generic-program "Program to run if using `browse-url-generic-program'." string idlwave-help-browser-generic-args (if (boundp 'browse-url-generic-args) browse-url-generic-args "") "Program args to use if using `browse-url-generic-program'." idlwave-help-browser-is-local nil "Whether the browser will display locally in an Emacs window.\nSeveral browsers run and/or display inside Emacs windows, but most are\nexternal programs.  If the browser name contains \"-w3\", it is\nassumed to be local to Emacs.  For other local browsers, this variable\nmust be explicitly set non-nil in order for the variable\n`idlwave-help-use-dedicated-frame' to function."] 8)
#@55 Obsolete variable.  See `idlwave-html-help-location'.
(defvar idlwave-help-directory "" (#$ . 3044))
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\313&\210\300\314\315\316\304\305\306\317&\210\300\320\321\322\304\305\306\323&\210\300\324\325\326\304\305\306\307&\210\300\327\302\330\304\305\306\307&\210\300\331\332\333\304\305\306\334&\210\300\335\336\337\304\305\306\334&\210\340\341\342\343\304\305%\207" [custom-declare-variable idlwave-help-use-dedicated-frame t "Non-nil means, use a separate frame for Online Help if possible." :group idlwave-online-help :type boolean idlwave-help-frame-parameters '((height . 32) (unsplittable . t)) "The frame parameters for the special Online Help frame.\nSee also `idlwave-help-use-dedicated-frame'.\nIf you do not set the frame width here, the value specified in\n`idlw-help.el' will be used." (repeat (cons symbol sexp)) idlwave-max-popup-menu-items 20 "Maximum number of items per pane in popup menus.\nCurrently only used for class selection during completion help." integer idlwave-extra-help-function 'idlwave-help-with-source "The function to call for online help if the normal help fails.\nOnline help works only for system routines which are described in the\nIDL manuals.  A function may be specified to access help from other sources.\n\nThe function must accept four arguments: NAME, TYPE, CLASS, KEYWORD.\nThe Help buffer is current when this function is called, and the help\ntext should be loaded into this buffer.  If help is found, the\nfunction should return the buffer position which should be used as\n`window-start' in the help window.  Also, the variable\n`idlwave-help-mode-line-indicator' should be set to a useful string,\nwhich will be displayed in the mode line of the help window.  If\nshould also set the variable `idlwave-help-min-frame-width' to a\npositive integer.  IDLWAVE will ensure that the help frame is at least\nthat many columns wide.  Failure to find help should be indicated by\nthrowing an error.\n\nWhen this variable is non-nil, IDLWAVE will allow the mouse-3 help click\nfor every routine and keyword, even though the item may not be highlighted\nin blue (indicating the availability of system documentation).\n\nThe default value for this function is `idlwave-help-with-source' which\nloads the routine source file into the help buffer.  If you try to write\na different function which accesses a special help file or so, it is\nprobably a good idea to still call this function as a fallback." symbol idlwave-help-fontify-source-code nil "Non-nil means, fontify source code displayed as help like normal code." idlwave-help-source-try-header "Non-nil means, try to find help in routine header when displaying source.\nRoutines which are not documented in the system manual use their source as\nhelp text.  When this variable is non-nil, we try to find a description of\nthe help item in the first routine doclib header above the routine definition.\nIf the variable is nil, or if we cannot find/parse the header, the routine\ndefinition is displayed instead." idlwave-help-doclib-name "name" "A regexp for the heading word to search for in doclib headers\nwhich specifies the `name' section.  Can be used for localization\nsupport." string idlwave-help-doclib-keyword "KEYWORD" "A regexp for the heading word to search for in doclib headers\nwhich specifies the `keywords' section.  Can be used for localization\nsupport." custom-declare-face idlwave-help-link ((t :inherit link)) "Face for highlighting links into IDLWAVE online help."] 8)
#@20 Obsolete variable.
(defvar idlwave-help-activate-links-aggressively nil (#$ . 6624))
#@43 The frame for display of IDL online help.
(defvar idlwave-help-frame nil (#$ . 6715))
#@38 The default width of the help frame.
(defvar idlwave-help-frame-width 102 (#$ . 6807))
#@43 Is the system online help text available?
(defvar idlwave-html-help-is-available nil (#$ . 6900))
#@60 Used for the special mode line in the `idlwave-help-mode'.
(defvar idlwave-help-mode-line-indicator "" (#$ . 7004))
(defvar idlwave-help-window-configuration nil)
(defvar idlwave-help-special-topic-words nil)
#@41 The keymap used in `idlwave-help-mode'.
(defvar idlwave-help-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\326#\210\302\327\326#\210)\207" [map make-sparse-keymap define-key "q" idlwave-help-quit "w" widen "
" #[(arg) "\301!\207" [arg scroll-up] 2 nil "p"] " " scroll-up-command [delete] scroll-down-command "h" idlwave-help-find-header "H" idlwave-help-find-first-header "." idlwave-help-toggle-header-match-and-def "F" idlwave-help-fontify "\277" idlwave-help-return-to-calling-frame "x"] 4) (#$ . 7219))
#@30 Menu for Help IDLWAVE system
(defvar idlwave-help-menu nil (#$ . 7888))
(byte-code "\301\302\303\304$\210\305\306N\204\307\305\306\310\311!#\210\312\300!\204!\307\300\313\314#\210\301\207" [idlwave-help-mode-map easy-menu-do-define idlwave-help-menu "Menu for Help IDLWAVE system" ("IDLHelp" ["Definition <-> Help Text" idlwave-help-toggle-header-match-and-def t] ["Find DocLib Header" idlwave-help-find-header t] ["Find First DocLib Header" idlwave-help-find-first-header t] ["Fontify help buffer" idlwave-help-fontify t] "--" ["Quit" idlwave-help-quit t]) idlwave-help-mode-hook variable-documentation put purecopy "Hook run when entering IDLWAVE Help mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp definition-name idlwave-help-mode] 5)
(defvar idlwave-help-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [idlwave-help-mode-map variable-documentation put purecopy "Keymap for `idlwave-help-mode'." boundp idlwave-help-mode-syntax-table definition-name idlwave-help-mode] 5)
(defvar idlwave-help-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [idlwave-help-mode-syntax-table variable-documentation put purecopy "Syntax table for `idlwave-help-mode'." idlwave-help-mode-abbrev-table definition-name idlwave-help-mode] 5)
(defvar idlwave-help-mode-abbrev-table (progn (define-abbrev-table 'idlwave-help-mode-abbrev-table nil) idlwave-help-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [idlwave-help-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `idlwave-help-mode'." idlwave-help-mode derived-mode-parent special-mode] 5)
#@864 Major mode for displaying IDL Help.

This is a VIEW mode for the ASCII version of IDL Help files,
with some extras.  Its main purpose is speed - so don't
expect a fully hyper-linked help.

Scrolling:          SPC  DEL  RET
Text Searches:      Inside Topic: Use Emacs search functions
Exit:               [q]uit or mouse button 3 will kill the frame

When the hep text is a source file, the following commands are available

Fontification:      [F]ontify the buffer like source code
Jump:               [h] to function doclib header
                    [H] to file doclib header
                    [.] back and forth between header and definition

Here are all keybindings.
\{idlwave-help-mode-map}

In addition to any hooks its parent mode `special-mode' might have run,
this mode runs the hook `idlwave-help-mode-hook', as the final step
during initialization.
(defalias 'idlwave-help-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2036
\321 =\203<\322\f\323 \"\210)\324'\325\"\204V'(=\204V\326'\325(C#\210\327!\210\330\f!\210'(\331 \210\332)\"\210\307\211*+\333\334\335\336\337\340\257,\307-\306\341!\210\342!\306\343!\210\342#\306\344!\210\342$)\345\346!\207" [delay-mode-hooks major-mode mode-name idlwave-help-mode-map idlwave-help-mode-syntax-table parent make-local-variable t special-mode idlwave-help-mode "IDLWAVE Help" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table buffer-disable-undo easy-menu-add "" mode-line-modified mode-line-buffer-identification ":  " idlwave-help-mode-line-indicator " -%-" idlwave-help-def-pos nil idlwave-help-args idlwave-help-in-header run-mode-hooks idlwave-help-mode-hook idlwave-help-mode-abbrev-table local-abbrev-table idlwave-help-menu truncate-lines case-fold-search mode-line-format buffer-read-only] 7 (#$ . 9741) nil])
#@76 Return the help directory where HTML files are, or nil if that is unknown.
(defalias 'idlwave-html-help-location #[nil "\304\305 \"	;\203	G\306V\203	\206\307\310!\211\203(\311!\203(\2028\n\2058\304\312\n\"\311\n!\2058\n*\207" [idlwave-html-system-help-location idlwave-html-help-location help-dir syshelp-dir expand-file-name idlwave-sys-dir 0 getenv "IDLWAVE_HELP_LOCATION" file-directory-p "idl_html_help"] 4 (#$ . 11791)])
(defvar idlwave-help-assistant-available nil)
(defalias 'idlwave-help-check-locations #[nil "\304 \305 \306	!\203\203\306!\204\307\310!\210\n\2054\311 \312=?\2054\307\313!\210\314?\2054\315\316!*\207" [help-loc sys-dir idlwave-help-use-assistant idlwave-help-browse-url-available idlwave-sys-dir idlwave-html-help-location file-directory-p message "HTML help location not found: try setting `idlwave-system-directory' and/or `idlwave-html-help-location'." idlwave-help-assistant-available t "Cannot locate IDL Assistant, enabling default browser." nil error "browse-url is not available; install it or IDL Assistant to use HTML help"] 2])
#@105 Wrapper around the call to `idlwave-do-context-help1'.
It collects and prints the diagnostics messages.
(defalias 'idlwave-do-context-help #[(&optional arg) "p`D\306\n\203\f\232\203
	\232\203\307 \202/	\310!\210\205/\311\312\313\314\237\315#\"*\207" [idlwave-help-diagnostics marker idlwave-experimental last-command this-command idlwave-last-context-help-pos nil idlwave-help-select-help-frame idlwave-do-context-help1 message "%s" mapconcat identity "; " arg] 6 (#$ . 12895)])
(defvar idlwave-help-do-class-struct-tag nil)
(defvar idlwave-help-do-struct-tag nil)
#@62 The work-horse version of `idlwave-context-help', which see.
(defalias 'idlwave-do-context-help1 #[(&optional arg) "\212\306f\307\232\203\310u\210\202`Sf\311\232\203\312u\210\306	\313\232\314\212\306x\210`)\212\306w\210`)\315\f
\"@\316@A\317#B\320\321@\"\205M\f
\322ZWC\323\324!\205b\320\325@\"\205b\f
\322ZWD\306\211EF\306\211GH\306\211IJ	\204\215C\204\310D\204\310\326@!\327\235\204\310\330 E\331\332 8G\333E@!\334\232\203\310\212\335 \210`)\211K`{L\320\336L\"\203\307\337\340\341\310L\"EE\341\310L\"M*	\203\323EH\202B\203\350G\342>\204\350BACH\202\320\343@\"\2036\344\310@\"N\345N!O\236P\344\346@\"\211Q\205\347Q!\350P\236A\236AR\351P\236A@)R\203-\352)R\"))CH-\202\320\353@\"\203W\341\310@\"N\316NS\317#A\211)CH*\202G\354=\203\222\355 \204o\356\357e`\360Z]\317#\203\222\361@!T\236P@\227\362PU\351P\236A@\211)U\363EH+\202C\203\352@\364\225\306O\306\211VWQ\365\331\366 8Q\"\211W\203\346\367W!V\361W!T\236\203\307\370\371!\210\317X\306V\203\332V\362PWB\202\336W\362P\363\306Q\257H+\202D\203\341\310@\"@\364\225\306OQY\372Y!\210Z[\306\211\211\211Q\257H*\202G\373>\203\366@;\203\366\320\374@\"\203\366\320\375@\"\204\366\fSf\307U\204E\212
b\210\376\377!)\203\254\201\\@E\"\211F\204s\201]\201^\201_\201`\331E8E@\"@\226#\201a\"\210\202\222F:\203\222\201]\201^\201bFG@#\201a\"\210F@F\201c\317CEFC#H\201c\317CE\"I\202
f\360\232\203\300\201c\317CE\"H\202\201\\@E\"\211F:\203\324F@F\201c\317CEFC#H\317@\340\306FI\201c\317CE\"J\202\201c\317CE\"HJ\203\306\201d\201e\217\2026I\203 \306\201f\201g\217\2026H\2031\201h\201iH\"\2026\370\201j!.\207" [idlwave-query-class arg idlwave-force-class-query chars beg end nil 47 1 61 -1 (4) "a-zA-Z0-9_$.!" buffer-substring-no-properties assoc-string t string-match "self\\." 4 fboundp idlwave-complete-structure-tag "\\`\\([^.]+\\)\\." string-to-char (33 46) idlwave-what-module-find-class 2 idlwave-where idlwave-downcase-safe "obj_new" idlwave-beginning-of-statement "OBJ_NEW([ 	]*['\"]\\([a-zA-Z][a-zA-Z0-9$_]+\\)['\"]" "init" fun match-string (function-keyword procedure-keyword) "\\`!\\([a-zA-Z0-9_]+\\)\\(.\\([A-Za-z0-9_]+\\)\\)?" match-string-no-properties idlwave-sintern-sysvar 3 idlwave-sintern-sysvartag tags link idlwave-substitute-link-target "^\\.\\([A-Z_]+\\)" class idlwave-in-quote re-search-backward "\\<inherits[ 	]+[A-Za-z0-9_]*\\=" 40 idlwave-sintern-class "__define" pro 0 idlwave-class-or-superclass-with-tag idlwave-current-routine idlwave-class-found-in error "No help available for system class tags" idlwave-prepare-structure-tag-completion (function-keyword procedure-keyword) "\\S-" "!" looking-at "[ 	]*=" this-word idlwave-help-special-topic-words st-ass classtag structtag module keyword cw mod1 mod2 mod3 bos str idlwave-current-obj_new-class word idlwave-system-variables-alist entry tag tag-target idlwave-executive-commands-alist idlwave-system-class-info name found-in class-with idlwave-help-do-class-struct-tag var idlwave-structtag-struct-location idlwave-help-do-struct-tag idlwave-expand-keyword idlwave-help-diagnostics format "%s does not accept `%s' kwd" idlwave-make-full-name ding "%d matches for kwd abbrev `%s'" append (byte-code "\301\302\"\207" [mod1 apply idlwave-online-help] 3) ((error (byte-code "\300\301\302\217\207" [nil (byte-code "\301\302\"\207" [mod2 apply idlwave-online-help] 3) ((error (byte-code "\301\302\"\207" [mod3 apply idlwave-online-help] 3)))] 3))) (byte-code "\301\302\"\207" [mod1 apply idlwave-online-help] 3) ((error (byte-code "\301\302\"\207" [mod2 apply idlwave-online-help] 3))) apply idlwave-online-help "Don't know which item to show help for"] 7 (#$ . 13482)])
#@132 Display online help on an item in the *Completions* buffer.
Needs additional info stored in global `idlwave-completion-help-info'.
(defalias 'idlwave-do-mouse-completion-help #[(ev) "\306 	\211@\nA@\307\n8\310\n8\211%*\311\n8+\312\n8,\313\211-.\314/!\210\315 \211-\316\230\203;\317\320!\210\321\322\323-#.\324!\210\325>\203\237-%\326=\204b%;\203\210,\203\210\327\330\f!
\"0\326.,\203}\3310%,B\"0\332/0\333\334$%)%;\2033\335\336\f%\"
\337%!#%\2023\340=\203-+%\326=\204\273%;\203\373,\203\373\341\330\f!\342+!
#0\326.,\203\332\3310%,B\"0\332/0\333\334$\211%;\203\367\335\336\f%\"
\337%!#%)\2023\f\227\343\230\20331%\344\2023\345=\203-%\313-\20239\203/\346!\203/\347-\"\210\2023\317\350!\210*\203M%\204M.\203I.\326=\203M\317\350!\210\351.\f\206V-
%+%.\207" [cw idlwave-completion-help-info info what idlw-help-name type selected-window 2 3 4 5 nil mouse-set-point idlwave-this-word "" error "No help item selected" get-text-property 0 link select-window (procedure function routine) t idlwave-all-method-classes idlwave-sintern-method idlwave-members-only idlwave-popup-select "Select Class" sort idlwave-find-inherited-class idlwave-sintern-routine-or-method idlwave-sintern-class keyword idlwave-all-method-keyword-classes idlwave-sintern-keyword "obj_new" "Init" class fboundp set "Cannot help with this item" idlwave-online-help need-class idlw-help-kwd sclasses word idlw-help-link ev classes idlwave-current-obj_new-class] 7 (#$ . 17310)])
#@179 Highlight all completions for which help is available and attach link.
Those words in `idlwave-completion-help-links' have links.  The
`idlwave-help-link' face is used for this.
(defalias 'idlwave-highlight-linked-completions #[nil "\205\224r\306\307!q\210\212\310\311\312D\211@\313\f8\314\211\314\211eb\210\315\316\314\310#\210\315\317\314\310#\205\222\320\224\320\225\321\320!\314
9\203]\322
!\203]
\323\"\202k\203k\324\310#\203\213:\203\325\n\326AD\"\314\327\n#\210)b\210\2020.\207" [idlwave-highlight-help-links-in-completion case-fold-search props idlwave-completion-help-info info what get-buffer "*Completions*" t face idlwave-help-link 3 nil re-search-forward "possible completions are:" "\\s-\\([A-Za-z0-9_.]+\\)\\(\\s-\\|\\'\\)" 1 match-string fboundp test assoc-string append link add-text-properties class word beg end doit idlwave-completion-help-links buffer-read-only] 5 (#$ . 18865)])
(add-hook 'idlwave-completion-setup-hook 'idlwave-highlight-linked-completions)
#@45 The frame to return to from the help frame.
(defvar idlwave-help-return-frame nil (#$ . 19914))
#@61 Exit IDLWAVE Help buffer.  Kill the dedicated frame if any.
(defalias 'idlwave-help-quit #[nil "\203=\306 	=\203=\n\2039\307!\2039\310\311\312\313!\210\314\f!\2038\306 =\2048
\f\\\211W\204 +\315	!\207\316!\203N\317!\210\320\321 !\207\322\323 !\207" [idlwave-help-use-dedicated-frame idlwave-help-frame idlwave-experimental idlwave-help-return-frame step time selected-frame frame-live-p 1.0 0 0.1 select-frame sit-for delete-frame window-configuration-p set-window-configuration select-window previous-window kill-buffer idlwave-help-get-help-buffer maxtime idlwave-help-window-configuration] 3 (#$ . 20016) nil])
#@162 Display the help window.
Move window start to POS-OR-FUNC, if passed as a position, or call it
if passed as a function.  See `idlwave-help-use-dedicated-frame'.
(defalias 'idlwave-help-display-help-window #[(&optional pos-or-func) "\306 \307 \n\203\203\310 \210\311!\210\202/\312\313\"\204\"\314 \315\313\316 #\210\317\312!!\210\320 \210
\203I\321
!\203B
 \210\202I
b\210\322\323!\210\317	!*\207" [buf cw window-system idlwave-help-use-dedicated-frame idlwave-help-window-configuration pos-or-func selected-window idlwave-help-get-help-buffer idlwave-help-show-help-frame switch-to-buffer get-buffer-window nil current-window-configuration display-buffer selected-frame select-window raise-frame functionp recenter 0] 4 (#$ . 20660)])
#@24 Select the help frame.
(defalias 'idlwave-help-select-help-frame #[nil "\302!\205\303 =?\205\303 \304!\207" [idlwave-help-frame idlwave-help-return-frame frame-live-p selected-frame select-frame] 2 (#$ . 21418)])
#@58 Select the frame from which the help frame was selected.
(defalias 'idlwave-help-return-to-calling-frame #[nil "\301!\205\302 =?\205\303!\207" [idlwave-help-return-frame frame-live-p selected-frame select-frame] 2 (#$ . 21645) nil])
#@332 Display HTML or other special help on a certain topic.
Either loads an HTML link, if LINK is non-nil, or gets special-help on
the optional arguments, if any special help is defined.  If LINK is
t, first look up the optional arguments in the routine info list to
see if a link is set for it.  Try extra help functions if necessary.
(defalias 'idlwave-online-help #[(link &optional name type class keyword) "\306=\203H\307	\n\310 \311\306&\211\203*
\203#\312\f
\"A\211\204G\313\f!\202G\203G\314!\236\300\f\236A@\211\203G\315\316\317	\"\"\210);\203Q\320!\207\203]\321	\n
$\207\322	\n
$\207" [link name type class entry keyword t idlwave-best-rinfo-assoc idlwave-routines nil idlwave-entry-find-keyword idlwave-entry-has-help idlwave-sintern-class message "No routine info for %s, falling back on class help." idlwave-make-full-name idlwave-help-html-link idlwave-help-get-special-help idlwave-help-error idlwave-system-class-info idlwave-extra-help-function] 8 (#$ . 21892)])
#@59 Call the function given by `idlwave-extra-help-function'.
(defalias 'idlwave-help-get-special-help #[(name type class keyword) "\306 r\307 q\210\310\n\f
\f$*\211
\203 \311
!\210\202(\312\f
\f$\210\313!*\207" [cw buffer-read-only idlwave-extra-help-function name type class selected-window idlwave-help-get-help-buffer nil idlwave-help-display-help-window idlwave-help-error select-window keyword help-pos] 6 (#$ . 22899)])
#@32 Get HTML help on a given LINK.
(defalias 'idlwave-help-html-link #[(link) "\306 	\307\f;\203\310\f!\204\311\312!\210\313\314\f\"!\203,\315!\202C\204:\316\317\320!\"\203@\321\322!\202C\323\n!,\207" [idlwave-help-browser-function idlwave-help-browser-generic-program full-link browse-url-generic-program help-loc browse-url-browser-function idlwave-html-help-location nil file-directory-p error "Invalid help location" browse-url-file-url expand-file-name idlwave-help-assistant-open-link string-match "w3" symbol-name idlwave-help-display-help-window #[nil "\301!\207" [full-link browse-url] 2] browse-url link idlwave-help-use-assistant idlwave-help-browser-is-local] 4 (#$ . 23339)])
#@534 Provide help for routines not documented in the IDL manuals.
Works by loading the routine source file into the help buffer.
Depending on the value of `idlwave-help-source-try-header', it
attempts to show the routine definition or the header description.
If `idlwave-help-do-class-struct-tag' is non-nil, keyword is a tag
to show help on from the class definition structure.
If `idlwave-help-do-struct-tag' is non-nil, show help from the
matching structure tag definition.

This function can be used as `idlwave-extra-help-function'.
(defalias 'idlwave-help-with-source #[(name type class keyword) "\n\306
:\205

A#
:\203
@\202
$;\205$
;?%\307\211&'\307\211()%\203<\310\311*\204S\312\313\314
*\206J\306$\315 $8!&\307+
*$,F-\307\211.\307\204q&;\203\310\203z/\202~\316&!\211)\203\225\317)!&\320 \210\321)!\210\202\265\322&!\203\253\320 \210\323&\307\211\211\324%\210\202\265\325
*$,$\210eb\2100\203\322)\204\322\326 \210\202\322\325
*$,$\210&1	\203\212\327\330
\"\203\352
\331\332\224O\202\3542$\333$\307##\205\374\334,!)\202)\203\212\250\205b\205\334,!)\202)%\203 e\202)\335
*$,$\211(+3\203T\204T	\204T\212(\206Bdb\210\336
*$,\337%\211'.)'\204^(\203s\340\341!\203g\342!'\206n(b\210\202}\325
*$,$\210`.\n\207" [idlwave-help-do-class-struct-tag class-struct-tag idlwave-help-do-struct-tag struct-tag case-fold-search name t nil "Init" fun idlwave-routine-source-file 3 idlwave-best-rinfo-assoc idlwave-routines idlwave-get-buffer-visiting buffer-file-name erase-buffer insert-buffer-substring file-exists-p insert-file-contents replace idlwave-help-error idlwave-help-fontify string-match "[a-zA-Z0-9]\\(__\\)" 0 1 idlwave-find-class-definition idlwave-find-struct-tag idlwave-help-find-routine-definition idlwave-help-find-in-doc-header exact boundp idlwave-help-min-frame-width 80 real-class class class-only file header-pos def-pos in-buf type idlwave-help-def-pos keyword idlwave-help-args idlwave-help-in-header idlwave-current-tags-buffer idlwave-help-fontify-source-code idlwave-help-mode-line-indicator idlwave-current-tags-class idlwave-help-source-try-header] 8 (#$ . 24056)])
#@140 Find the definition of routine CLASS::NAME in current buffer.
Returns the point of match if successful, nil otherwise.
KEYWORD is ignored.
(defalias 'idlwave-help-find-routine-definition #[(name type class keyword) "\212db\210\303\304\305=\203\306\202\307=\203\310\202\311\312\313\314	\n\"\227!\315\260\316\317#\205.\320\224)\207" [type class name re-search-backward "^[ 	]*" pro "pro" fun "function" "\\(pro\\|function\\)" "[ 	]+" regexp-quote idlwave-make-full-name "[, 	
\n]" nil t 0] 8 (#$ . 26269)])
#@1372 Find the requested help in the doc-header above point.

First checks if there is a doc-lib header which describes the correct
routine.  Then tries to find the KEYWORDS section and the KEYWORD, if
given.  Returns the point which should be window start of the help
window.  If EXACT is non-nil, the full help position must be found -
down to the keyword requested.  This setting is for context help, if
the exact spot is needed.

If EXACT is nil, the position of the header is returned if it
describes the correct routine - even if the keyword description cannot
be found.  TYPE is ignored.

This function expects a more or less standard routine header.  In
particular it looks for the `NAME:' tag, either with a colon, or alone
on a line.  Then `NAME:' must be followed by the routine name on the
same or the next line.  When KEYWORD is non-nil, looks first for a
`KEYWORDS' section.  It is amazing how inconsistent this is through
some IDL libraries I have seen.  We settle for a line containing an
upper case "KEYWORD" string.  If this line is not found we search
for the keyword anyway to increase the hit-rate

When one of these sections exists we check for a line starting with any of

  /KEYWORD  KEYWORD-  KEYWORD=  KEYWORD

with spaces allowed between the keyword and the following dash or equal sign.
If there is a match, we assume it is the keyword description.
(defalias 'idlwave-help-find-in-doc-header #[(name type class keyword &optional exact) "\306	;\203!\307\211\211\310	\227!\311\310\n\227!\312\313\310	\227!\314Q\315\260	\202%\310\n\227!\316\f\317\313\320\321\260\307\322\323\307
\315\260 \324\325!\326\327\260\"#\205]\330\331\310#\226!\313\310#\226!\332\315\260$#\205l\330\310#\226!\333Q%\334\211&'\334\211()\334*\335\336\215.\f\207" [case-fold-search class name rname idlwave-help-doclib-name name-re t "\\(" regexp-quote "::\\)?" "\\>\\)" "\\|" "\\(__define\\)?" "\\)" "\\(^;+\\*?[ 	]*" "\\([ 	]*:\\|[ 	]*$\\)[ 	]*\\(\n;+[ 	]*\\)*" "^;+[ 	]*" ":[ 	]*$\\)" "\\).*\n" "\\(^;+.*\n\\)*" "^;+\\*?[ 	]*" "\\([-A-Z_ ]*" "[-A-Z_ ]*\\)" "\\(:\\|[ 	]*\n\\)" "^;+[ 	]+" "\\(/" "[ 	]*[-=:\n]" "\\>" nil exit (byte-code "\212eb\210\306\307\310#\211\203\240\306\n\307\310#\211\203\240	b\210\306\f\310#\211\203\232\203\204
b\210\307\306\310#)\203>\311\224\307\306\310#)\204j\306\310#\204j\307\306\310#)\204j\306\310#\203q\311\224\202\204\203\204\312\313\314\226\"!\210\315\316\307\"\210\315\316\206\225\206\225
\206\225	\"\210\202b\210\202)\312\317!\210\315\316\307\"\207" [idlwave-doclib-start dstart idlwave-doclib-end dend name-re name-pos re-search-forward nil t 0 idlwave-help-diagnostics format "Could not find description of kwd %s" throw exit "Could not find doclib header" keyword case-fold-search kwds-re kwds-pos kwd-re kwd-re2 kwd-pos exact] 4) idlwave-doclib-start header-re idlwave-help-doclib-keyword kwds-re keyword kwd-re kwd-re2 dstart dend name-pos kwds-pos kwd-pos] 11 (#$ . 26794)])
#@84 Add a diagnostics string to the list.
When DING is non-nil, ring the bell as well.
(defalias 'idlwave-help-diagnostics #[(string &optional ding) "\303\301!\205	B\n\205\302 \207" [string idlwave-help-diagnostics ding boundp] 2 (#$ . 29799)])
(defalias 'idlwave-help-toggle-header-top-and-def #[(arg) "\304	\203
\304\n\202-\305@A@\3068\304$\211\203\"\307\202-\310\311\312\3068@\"\"\210\2057b\210\313\314!)\207" [pos idlwave-help-in-header idlwave-help-def-pos idlwave-help-args nil idlwave-help-find-in-doc-header 2 t error "Cannot find doclib header for routine %s" idlwave-make-full-name recenter 0] 6 nil "P"])
(defalias 'idlwave-help-find-first-header #[(arg) "\302\212eb\210\303	\302\304#\203\305\224)\203b\210\306\305!\202\"\307\310!)\207" [pos idlwave-doclib-start nil re-search-forward t 0 recenter error "No DocLib Header in current file"] 4 nil "P"])
#@28 Jump to the DocLib Header.
(defalias 'idlwave-help-find-header #[(arg) "\203\302\303!\207\303\304\305\"\207" [arg idlwave-help-in-header idlwave-help-find-first-header nil idlwave-help-toggle-header-match-and-def top] 3 (#$ . 30696) "P"])
(defalias 'idlwave-help-toggle-header-match-and-def #[(arg &optional top) "\306\203\306\f\2029\307\310
\203\"\n@\nA@\311\n8\306F\202#\n\"\211\203.\312\2029\313\314\315\3118@\"\"\210	\205C	b\210\316\317!*\207" [idlwave-help-args pos args idlwave-help-in-header idlwave-help-def-pos top nil apply idlwave-help-find-in-doc-header 2 t error "Cannot find doclib header for routine %s" idlwave-make-full-name recenter 0] 7 nil "P"])
#@139 Fontify the Help buffer as source code.
Useful when source code is displayed as help.  See the option
`idlwave-help-fontify-source-code'.
(defalias 'idlwave-help-fontify #[nil "\306\307!\205!\310\311 \205
\301 \312\216\313!\210\314\305!\210\f\315 ,\207" [font-lock-verbose syntax-table major-mode idlwave-mode-syntax-table idlwave-font-lock-defaults font-lock-defaults featurep font-lock idlwave-mode interactive-p ((set-syntax-table syntax-table)) set-syntax-table make-local-variable font-lock-fontify-buffer] 3 (#$ . 31392) nil])
(defalias 'idlwave-help-error #[(name type class keyword) "\304\305\204\n	\203\306	\"\206\307\n\203\310\311\n\226\"\202\312\203'\312\202(\313$\207" [class name keyword idlwave-html-help-location error "Can't find help on %s%s %s" idlwave-make-full-name "<unknown>" format ", keyword %s" "" "(help location unknown)"] 6])
#@48 Show the help frame, creating it if necessary.
(defalias 'idlwave-help-show-help-frame #[nil "\304!\204\"\305	!\306\307!\203\310B\307\n\"\210)\202\"\311\312\"\210\313!\207" [idlwave-help-frame idlwave-help-frame-parameters sval default-toolbar-visible-p frame-live-p make-frame fboundp set-specifier nil modify-frame-parameters ((tool-bar-lines . 0)) select-frame] 3 (#$ . 32274)])
#@62 Return the IDLWAVE Help buffer.  Make it first if necessary.
(defalias 'idlwave-help-get-help-buffer #[nil "\301\302!\211\204\303\302!rq\210\304 \210))\207" [buf get-buffer "*IDLWAVE Help*" get-buffer-create idlwave-help-mode] 3 (#$ . 32673)])
(defalias 'idlwave-grep #[(regexp list) "\303	\203\304\n	@\"\203	@B	A\211\204\237)\207" [rtn list regexp nil string-match] 4])
(defalias 'idlwave-entry-has-help #[(entry) "\205\3018@\207" [entry 5] 2])
#@41 Does this have help associated with it?
(defalias 'idlwave-has-help #[(name type class) "\304	\n\305 $\306!)\207" [name type class entry idlwave-best-rinfo-assoc idlwave-routines idlwave-entry-has-help] 5 (#$ . 33146)])
(defvar idlwave-help-assistant-process nil)
(defvar idlwave-help-assistant-socket nil)
#@85 The command, rooted at `idlwave-system-directory', which invokes the
IDL assistant.
(defvar idlwave-help-assistant-command (byte-code "\301>\203\302\207\303\207" [system-type (ms-dos windows-nt) "bin/bin.x86/idl_assistant.exe" "bin/idl_assistant"] 2) (#$ . 33462))
(defalias 'idlwave-help-assistant-available #[nil "\203\301=\207\302\303 !\203\301\202\304\211\207" [idlwave-help-assistant-available t file-executable-p idlwave-help-assistant-command not-available] 2])
(defalias 'idlwave-help-assistant-command #[nil "\301\302 \"\207" [idlwave-help-assistant-command expand-file-name idlwave-sys-dir] 3])
#@61 Start the IDL Assistant, loading link FULL-LINK, if passed.
(defalias 'idlwave-help-assistant-start #[(&optional full-link) "\203
\306!\307=?\205\204\310 \311 \312>\205\313\314\315	\"D\f\205&\316\fD\244\317%\2033\320!\210\321\322\323\317\n\324
&&\325&\326\"\210\327&\330\"\204P\331\332!\210%\204[\331\333!\202\203\325&\317\"\210\334\335\317\336%$\306!\307=\203}\337\340	\341Q\"\210\342\202\203\343 \210\331\344!,\207" [idlwave-help-assistant-socket help-loc command system-type full-link extra-args process-status open idlwave-html-help-location idlwave-help-assistant-command (ms-dos windows-nt) "-profile" expand-file-name "idl.adp" "-file" nil delete-process apply start-process "IDL_ASSISTANT_PROC" "-server" set-process-filter #[(proc string) "\302!\211\207" [string port string-to-number] 2] accept-process-output 15 error "Failed binding IDL_ASSISTANT socket" "Unable to open IDL_ASSISTANT" open-network-stream "IDL_ASSISTANT_SOCK" "localhost" process-send-string "setHelpPath " "\n" t idlwave-help-assistant-close "Cannot communicate with IDL_ASSISTANT" port idlwave-help-assistant-process] 7 (#$ . 34086)])
(defalias 'idlwave-help-assistant-raise #[nil "\301 \210\302\303\"\207" [idlwave-help-assistant-socket idlwave-help-assistant-start process-send-string "raise\n"] 3])
(defalias 'idlwave-help-assistant-open-link #[(&optional link) "\306 \307\211\211\211\211\211\310\311\"\203)\312\211\224O\312\225\307O\202-\313\314!\210\315
\311P\"\316!\203@\317\202M\315
\226\311P\"\316!\fP\320	\205W!	\203v\n\204j\321\322\323Q\"\210\321\324
\323Q\"\210\202\321\325
\323Q\"\210.\326 \207" [full-link exists just-started file anchor topic idlwave-html-help-location nil string-match ".html" 0 error "Malformed help link" expand-file-name file-exists-p t idlwave-help-assistant-start process-send-string "openLink " "\n" "searchIndexNoOpen " "searchIndexAndOpen " idlwave-help-assistant-raise help-loc link idlwave-help-assistant-socket] 7])
#@58 The history of help topics selected with the minibuffer.
(defvar idlwave-help-assistant-help-with-topic-history nil (#$ . 36112))
#@41 Prompt for and provide help with TOPIC.
(defalias 'idlwave-help-assistant-help-with-topic #[(&optional topic) "\305	\204\306 \210\307\310\311\n\"\310\312\"\f#\313\314\305\211\211\315&	\205/	\316\230?\205/\317	\320P!)\207" [list topic idlwave-system-routines idlwave-executive-commands-alist idlwave-system-class-info nil idlwave-routines append mapcar #[(x) "\3018@P\207" [x 2] 2] #[(x) "\301@P\207" [x "."] 2] idlwave-completing-read "Help Topic: " idlwave-help-assistant-help-with-topic-history "" idlwave-help-assistant-open-link ".html"] 7 (#$ . 36248) nil])
(defalias 'idlwave-help-assistant-close #[nil "\205&\302!\303=\205&	\203\304	\305\"\210\306	!\210\307!\210\306!\210\310\211\211\207" [idlwave-help-assistant-process idlwave-help-assistant-socket process-status run process-send-string "quit\n" delete-process stop-process nil] 4])
(byte-code "\300\301!\210\300\302!\207" [provide idlw-help idlwave-help] 2)

MMCT - 2023