diff options
| author | J.D. Smith | 2005-07-04 01:51:24 +0000 |
|---|---|---|
| committer | J.D. Smith | 2005-07-04 01:51:24 +0000 |
| commit | 3938cb82d0fdfcf083c7b08fc9c3ce0f06778529 (patch) | |
| tree | be229a018c89cbe5b3f15afc7db74bbccf5e557b | |
| parent | 9049a096e09bdd5da196aa9ddca5fec63df54f3b (diff) | |
| download | emacs-3938cb82d0fdfcf083c7b08fc9c3ce0f06778529.tar.gz emacs-3938cb82d0fdfcf083c7b08fc9c3ce0f06778529.zip | |
Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
| -rw-r--r-- | lisp/progmodes/idlw-complete-structtag.el | 242 | ||||
| -rw-r--r-- | lisp/progmodes/idlw-help.el | 177 | ||||
| -rw-r--r-- | lisp/progmodes/idlw-rinfo.el | 224 | ||||
| -rw-r--r-- | lisp/progmodes/idlw-shell.el | 1101 | ||||
| -rw-r--r-- | lisp/progmodes/idlw-toolbar.el | 4 | ||||
| -rw-r--r-- | lisp/progmodes/idlwave.el | 917 |
6 files changed, 1523 insertions, 1142 deletions
diff --git a/lisp/progmodes/idlw-complete-structtag.el b/lisp/progmodes/idlw-complete-structtag.el new file mode 100644 index 00000000000..53094f6ebeb --- /dev/null +++ b/lisp/progmodes/idlw-complete-structtag.el | |||
| @@ -0,0 +1,242 @@ | |||
| 1 | ;;; idlw-complete-structtag.el --- Completion of structure tags. | ||
| 2 | ;; Copyright (c) 2001,2002 Free Software Foundation | ||
| 3 | |||
| 4 | ;; Author: Carsten Dominik <dominik@science.uva.nl> | ||
| 5 | ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> | ||
| 6 | ;; Version: 1.2 | ||
| 7 | ;; Keywords: languages | ||
| 8 | |||
| 9 | ;; This file is part of GNU Emacs. | ||
| 10 | |||
| 11 | ;; GNU Emacs is free software; you can redistribute it and/or modify | ||
| 12 | ;; it under the terms of the GNU General Public License as published by | ||
| 13 | ;; the Free Software Foundation; either version 2, or (at your option) | ||
| 14 | ;; any later version. | ||
| 15 | |||
| 16 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 17 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 18 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 19 | ;; GNU General Public License for more details. | ||
| 20 | |||
| 21 | ;; You should have received a copy of the GNU General Public License | ||
| 22 | ;; along with GNU Emacs; see the file COPYING. If not, write to the | ||
| 23 | ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
| 24 | ;; Boston, MA 02111-1307, USA. | ||
| 25 | |||
| 26 | ;;; Commentary: | ||
| 27 | |||
| 28 | ;; Completion of structure tags can be done automatically in the | ||
| 29 | ;; shell, since the list of tags can be determined dynamically through | ||
| 30 | ;; interaction with IDL. | ||
| 31 | |||
| 32 | ;; Completion of structure tags in a source buffer is highly ambiguous | ||
| 33 | ;; since you never know what kind of structure a variable will hold at | ||
| 34 | ;; runtime. To make this feature useful in source buffers, we need a | ||
| 35 | ;; special assumption/convention. We will assume that the structure is | ||
| 36 | ;; defined in the same buffer and directly assigned to the correct | ||
| 37 | ;; variable. This is mainly useful for applications in which there is one | ||
| 38 | ;; main structure which contains a large amount of information (and many | ||
| 39 | ;; tags). For example, many widget applications define a "state" structure | ||
| 40 | ;; that contains all important data about the application. The different | ||
| 41 | ;; routines called by the event handler then use this structure. If you | ||
| 42 | ;; use the same variable name for this structure throughout your | ||
| 43 | ;; application (a good idea for many reasons), IDLWAVE can support | ||
| 44 | ;; completion for its tags. | ||
| 45 | ;; | ||
| 46 | ;; This file is a completion plugin which implements this kind of | ||
| 47 | ;; completion. It is also an example which shows how completion plugins | ||
| 48 | ;; should be programmed. | ||
| 49 | ;; | ||
| 50 | ;; New versions of IDLWAVE, documentation, and more information available | ||
| 51 | ;; from: | ||
| 52 | ;; http://idlwave.org | ||
| 53 | ;; | ||
| 54 | ;; INSTALLATION | ||
| 55 | ;; ============ | ||
| 56 | ;; Put this file on the emacs load path and load it with the following | ||
| 57 | ;; line in your .emacs file: | ||
| 58 | ;; | ||
| 59 | ;; (add-hook 'idlwave-load-hook | ||
| 60 | ;; (lambda () (require 'idlw-complete-structtag))) | ||
| 61 | ;; | ||
| 62 | ;; DESCRIPTION | ||
| 63 | ;; =========== | ||
| 64 | ;; Suppose your IDL program contains something like | ||
| 65 | ;; | ||
| 66 | ;; myvar = state.a* | ||
| 67 | ;; | ||
| 68 | ;; where the star marks the cursor position. If you now press the | ||
| 69 | ;; completion key M-TAB, IDLWAVE searches the current file for a | ||
| 70 | ;; structure definition | ||
| 71 | ;; | ||
| 72 | ;; state = {tag1:val1, tag2:val2, ...} | ||
| 73 | ;; | ||
| 74 | ;; and offers the tags for completion. | ||
| 75 | ;; | ||
| 76 | ;; In the idlwave shell, idlwave sends a "print,tag_names()" for the | ||
| 77 | ;; variable to idl and determines the current tag list dynamically. | ||
| 78 | ;; | ||
| 79 | ;; Notes | ||
| 80 | ;; ----- | ||
| 81 | ;; - The structure definition assignment "state = {...}" must use the | ||
| 82 | ;; same variable name as the the completion location "state.*". | ||
| 83 | ;; - The structure definition must be in the same file. | ||
| 84 | ;; - The structure definition is searched backwards and then forward | ||
| 85 | ;; from the current position, until a definition with tags is found. | ||
| 86 | ;; - The file is parsed again for each new completion variable and location. | ||
| 87 | ;; - You can force an update of the tag list with the usual command | ||
| 88 | ;; to update routine info in IDLWAVE: C-c C-i | ||
| 89 | |||
| 90 | |||
| 91 | ;; Some variables to identify the previously used structure | ||
| 92 | (defvar idlwave-current-tags-var nil) | ||
| 93 | (defvar idlwave-current-tags-buffer nil) | ||
| 94 | (defvar idlwave-current-tags-completion-pos nil) | ||
| 95 | |||
| 96 | ;; The tag list used for completion will be stored in the following vars | ||
| 97 | (defvar idlwave-current-struct-tags nil) | ||
| 98 | (defvar idlwave-sint-structtags nil) | ||
| 99 | |||
| 100 | ;; Create the sintern type for structure talks | ||
| 101 | (idlwave-new-sintern-type 'structtag) | ||
| 102 | |||
| 103 | ;; Hook the plugin into idlwave | ||
| 104 | (add-to-list 'idlwave-complete-special 'idlwave-complete-structure-tag) | ||
| 105 | (add-hook 'idlwave-update-rinfo-hook 'idlwave-structtag-reset) | ||
| 106 | |||
| 107 | ;;; The main code follows below | ||
| 108 | |||
| 109 | (defun idlwave-complete-structure-tag () | ||
| 110 | "Complete a structure tag. | ||
| 111 | This works by looking in the current file for a structure assignment to a | ||
| 112 | variable with the same name and takes the tags from there. Quite useful | ||
| 113 | for big structures like the state variables of a widget application. | ||
| 114 | |||
| 115 | In the idlwave shell, the current content of the variable is used to get | ||
| 116 | an up-to-date completion list." | ||
| 117 | (interactive) | ||
| 118 | (let ((pos (point)) | ||
| 119 | start | ||
| 120 | (case-fold-search t)) | ||
| 121 | (if (save-excursion | ||
| 122 | ;; Check if the context is right. | ||
| 123 | ;; In the shell, this could be extended to expressions like | ||
| 124 | ;; x[i+4].name.g*. But it is complicated because we would have | ||
| 125 | ;; to really parse this expression. For now, we allow only | ||
| 126 | ;; substructures, like "aaa.bbb.ccc.ddd" | ||
| 127 | (skip-chars-backward "[a-zA-Z0-9._$]") | ||
| 128 | (setq start (point)) ;; remember the start of the completion pos. | ||
| 129 | (and (< (point) pos) | ||
| 130 | (not (equal (char-before) ?!)) ; no sysvars | ||
| 131 | (looking-at "\\([a-zA-Z][.a-zA-Z0-9_]*\\)\\.") | ||
| 132 | (>= pos (match-end 0)) | ||
| 133 | (not (string= (downcase (match-string 1)) "self")))) | ||
| 134 | (let* ((var (downcase (match-string 1)))) | ||
| 135 | ;; Check if we need to update the "current" structure. Basically we | ||
| 136 | ;; do it always, except for subsequent completions at the same | ||
| 137 | ;; spot, to save a bit of time. Implementation: We require | ||
| 138 | ;; an update if | ||
| 139 | ;; - the variable is different or | ||
| 140 | ;; - the buffer is different or | ||
| 141 | ;; - we are completing at a different position | ||
| 142 | (if (or (not (string= var (or idlwave-current-tags-var "@"))) | ||
| 143 | (not (eq (current-buffer) idlwave-current-tags-buffer)) | ||
| 144 | (not (equal start idlwave-current-tags-completion-pos))) | ||
| 145 | (idlwave-prepare-structure-tag-completion var)) | ||
| 146 | (setq idlwave-current-tags-completion-pos start) | ||
| 147 | (setq idlwave-completion-help-info | ||
| 148 | (list 'idlwave-complete-structure-tag-help)) | ||
| 149 | (idlwave-complete-in-buffer 'structtag 'structtag | ||
| 150 | idlwave-current-struct-tags nil | ||
| 151 | "Select a structure tag" "structure tag") | ||
| 152 | t) ; we did the completion: return t to skip other completions | ||
| 153 | nil))) ; return nil to allow looking for other ways to complete | ||
| 154 | |||
| 155 | (defun idlwave-structtag-reset () | ||
| 156 | "Force an update of the current structure tag list upon next use." | ||
| 157 | (setq idlwave-current-tags-buffer nil)) | ||
| 158 | |||
| 159 | (defvar idlwave-structtag-struct-location nil | ||
| 160 | "The location of the structure definition, for help display.") | ||
| 161 | |||
| 162 | (defun idlwave-prepare-structure-tag-completion (var) | ||
| 163 | "Find and parse the tag list for structure tag completion." | ||
| 164 | ;; This works differently in source buffers and in the shell | ||
| 165 | (if (eq major-mode 'idlwave-shell-mode) | ||
| 166 | ;; OK, we are in the shell, do it dynamically | ||
| 167 | (progn | ||
| 168 | (message "preparing shell tags") | ||
| 169 | ;; The following call puts the tags into `idlwave-current-struct-tags' | ||
| 170 | (idlwave-complete-structure-tag-query-shell var) | ||
| 171 | ;; initialize | ||
| 172 | (setq idlwave-sint-structtags nil | ||
| 173 | idlwave-current-tags-buffer (current-buffer) | ||
| 174 | idlwave-current-tags-var var | ||
| 175 | idlwave-structtag-struct-location (point) | ||
| 176 | idlwave-current-struct-tags | ||
| 177 | (mapcar (lambda (x) | ||
| 178 | (list (idlwave-sintern-structtag x 'set))) | ||
| 179 | idlwave-current-struct-tags)) | ||
| 180 | (if (not idlwave-current-struct-tags) | ||
| 181 | (error "Cannot complete structure tags of variable %s" var))) | ||
| 182 | ;; Not the shell, so probably a source buffer. | ||
| 183 | (unless | ||
| 184 | (catch 'exit | ||
| 185 | (save-excursion | ||
| 186 | (goto-char (point-max)) | ||
| 187 | ;; Find possible definitions of the structure. | ||
| 188 | (while (idlwave-find-structure-definition var nil 'all) | ||
| 189 | (let ((tags (idlwave-struct-tags))) | ||
| 190 | (when tags | ||
| 191 | ;; initialize | ||
| 192 | (setq idlwave-sint-structtags nil | ||
| 193 | idlwave-current-tags-buffer (current-buffer) | ||
| 194 | idlwave-current-tags-var var | ||
| 195 | idlwave-structtag-struct-location (point) | ||
| 196 | idlwave-current-struct-tags | ||
| 197 | (mapcar (lambda (x) | ||
| 198 | (list (idlwave-sintern-structtag x 'set))) | ||
| 199 | tags)) | ||
| 200 | (throw 'exit t)))))) | ||
| 201 | (error "Cannot complete structure tags of variable %s" var)))) | ||
| 202 | |||
| 203 | (defun idlwave-complete-structure-tag-query-shell (var) | ||
| 204 | "Ask the shell for the tags of the structure in variable or expression VAR." | ||
| 205 | (idlwave-shell-send-command | ||
| 206 | (format "if size(%s,/TYPE) eq 8 then print,tag_names(%s)" var var) | ||
| 207 | 'idlwave-complete-structure-tag-get-tags-from-help | ||
| 208 | 'hide 'wait)) | ||
| 209 | |||
| 210 | (defvar idlwave-shell-prompt-pattern) | ||
| 211 | (defvar idlwave-shell-command-output) | ||
| 212 | (defun idlwave-complete-structure-tag-get-tags-from-help () | ||
| 213 | "Filter structure tag name output, result to `idlwave-current-struct-tags'." | ||
| 214 | (setq idlwave-current-struct-tags | ||
| 215 | (if (string-match (concat "tag_names(.*) *\n" | ||
| 216 | "\\(\\(.*[\r\n]?\\)*\\)" | ||
| 217 | "\\(" idlwave-shell-prompt-pattern "\\)") | ||
| 218 | idlwave-shell-command-output) | ||
| 219 | (split-string (match-string 1 idlwave-shell-command-output))))) | ||
| 220 | |||
| 221 | |||
| 222 | ;; Fake help in the source buffer for structure tags. | ||
| 223 | ;; kwd and name are global-variables here. | ||
| 224 | (defvar name) | ||
| 225 | (defvar kwd) | ||
| 226 | (defvar idlwave-help-do-struct-tag) | ||
| 227 | (defun idlwave-complete-structure-tag-help (mode word) | ||
| 228 | (cond | ||
| 229 | ((eq mode 'test) | ||
| 230 | ;; fontify only in source buffers, not in the shell. | ||
| 231 | (not (equal idlwave-current-tags-buffer | ||
| 232 | (get-buffer (idlwave-shell-buffer))))) | ||
| 233 | ((eq mode 'set) | ||
| 234 | (setq kwd word | ||
| 235 | idlwave-help-do-struct-tag idlwave-structtag-struct-location)) | ||
| 236 | (t (error "This should not happen")))) | ||
| 237 | |||
| 238 | (provide 'idlw-complete-structtag) | ||
| 239 | |||
| 240 | ;;; idlw-complete-structtag.el ends here | ||
| 241 | |||
| 242 | |||
diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el index ba31e6e0ef8..5ed4c23d592 100644 --- a/lisp/progmodes/idlw-help.el +++ b/lisp/progmodes/idlw-help.el | |||
| @@ -4,9 +4,9 @@ | |||
| 4 | ;; Copyright (c) 2003,2004,2005 Free Software Foundation | 4 | ;; Copyright (c) 2003,2004,2005 Free Software Foundation |
| 5 | ;; | 5 | ;; |
| 6 | ;; Authors: J.D. Smith <jdsmith@as.arizona.edu> | 6 | ;; Authors: J.D. Smith <jdsmith@as.arizona.edu> |
| 7 | ;; Carsten Dominik <dominik@astro.uva.nl> | 7 | ;; Carsten Dominik <dominik@science.uva.nl> |
| 8 | ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> | 8 | ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> |
| 9 | ;; Version: 5.5 | 9 | ;; Version: 5.7_22 |
| 10 | 10 | ||
| 11 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| 12 | 12 | ||
| @@ -36,12 +36,18 @@ | |||
| 36 | ;; information, at: | 36 | ;; information, at: |
| 37 | ;; | 37 | ;; |
| 38 | ;; http://idlwave.org | 38 | ;; http://idlwave.org |
| 39 | ;; | 39 | ;; |
| 40 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 40 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 41 | 41 | ||
| 42 | 42 | ||
| 43 | ;;; Code: | 43 | ;;; Code: |
| 44 | (require 'browse-url) | 44 | (defvar idlwave-help-browse-url-available nil |
| 45 | "Whether browse-url is available") | ||
| 46 | |||
| 47 | (setq idlwave-help-browse-url-available | ||
| 48 | (condition-case nil | ||
| 49 | (require 'browse-url) | ||
| 50 | (error nil))) | ||
| 45 | 51 | ||
| 46 | (defgroup idlwave-online-help nil | 52 | (defgroup idlwave-online-help nil |
| 47 | "Online Help options for IDLWAVE mode." | 53 | "Online Help options for IDLWAVE mode." |
| @@ -52,10 +58,10 @@ | |||
| 52 | :group 'idlwave-online-help | 58 | :group 'idlwave-online-help |
| 53 | :type 'boolean) | 59 | :type 'boolean) |
| 54 | 60 | ||
| 55 | (defvar idlwave-html-link-sep | 61 | (defvar idlwave-html-link-sep |
| 56 | (if idlwave-html-help-pre-v6 "#" "#wp")) | 62 | (if idlwave-html-help-pre-v6 "#" "#wp")) |
| 57 | 63 | ||
| 58 | (defcustom idlwave-html-help-location | 64 | (defcustom idlwave-html-help-location |
| 59 | (if (memq system-type '(ms-dos windows-nt)) | 65 | (if (memq system-type '(ms-dos windows-nt)) |
| 60 | nil | 66 | nil |
| 61 | "/usr/local/etc/") | 67 | "/usr/local/etc/") |
| @@ -83,7 +89,7 @@ Defaults to `browse-url-browser-function', which see." | |||
| 83 | :group 'idlwave-online-help | 89 | :group 'idlwave-online-help |
| 84 | :type 'string) | 90 | :type 'string) |
| 85 | 91 | ||
| 86 | (defcustom idlwave-help-browser-generic-args | 92 | (defcustom idlwave-help-browser-generic-args |
| 87 | (if (boundp 'browse-url-generic-args) | 93 | (if (boundp 'browse-url-generic-args) |
| 88 | browse-url-generic-args "") | 94 | browse-url-generic-args "") |
| 89 | "Program args to use if using browse-url-generic-program." | 95 | "Program args to use if using browse-url-generic-program." |
| @@ -183,8 +189,7 @@ support." | |||
| 183 | :type 'string) | 189 | :type 'string) |
| 184 | 190 | ||
| 185 | (defface idlwave-help-link | 191 | (defface idlwave-help-link |
| 186 | '((((min-colors 88) (class color)) (:foreground "Blue1")) | 192 | '((((class color)) (:foreground "Blue")) |
| 187 | (((class color)) (:foreground "Blue")) | ||
| 188 | (t (:weight bold))) | 193 | (t (:weight bold))) |
| 189 | "Face for highlighting links into IDLWAVE online help." | 194 | "Face for highlighting links into IDLWAVE online help." |
| 190 | :group 'idlwave-online-help) | 195 | :group 'idlwave-online-help) |
| @@ -193,7 +198,7 @@ support." | |||
| 193 | 198 | ||
| 194 | (defvar idlwave-help-activate-links-aggressively nil | 199 | (defvar idlwave-help-activate-links-aggressively nil |
| 195 | "Obsolete variable.") | 200 | "Obsolete variable.") |
| 196 | 201 | ||
| 197 | (defvar idlwave-completion-help-info) | 202 | (defvar idlwave-completion-help-info) |
| 198 | 203 | ||
| 199 | (defvar idlwave-help-frame nil | 204 | (defvar idlwave-help-frame nil |
| @@ -242,6 +247,10 @@ support." | |||
| 242 | "--" | 247 | "--" |
| 243 | ["Quit" idlwave-help-quit t])) | 248 | ["Quit" idlwave-help-quit t])) |
| 244 | 249 | ||
| 250 | (defvar idlwave-help-def-pos) | ||
| 251 | (defvar idlwave-help-args) | ||
| 252 | (defvar idlwave-help-in-header) | ||
| 253 | |||
| 245 | (defun idlwave-help-mode () | 254 | (defun idlwave-help-mode () |
| 246 | "Major mode for displaying IDL Help. | 255 | "Major mode for displaying IDL Help. |
| 247 | 256 | ||
| @@ -282,6 +291,7 @@ Here are all keybindings. | |||
| 282 | (set (make-local-variable 'idlwave-help-in-header) nil) | 291 | (set (make-local-variable 'idlwave-help-in-header) nil) |
| 283 | (run-mode-hooks 'idlwave-help-mode-hook)) | 292 | (run-mode-hooks 'idlwave-help-mode-hook)) |
| 284 | 293 | ||
| 294 | (defvar idlwave-system-directory) | ||
| 285 | (defun idlwave-html-help-location () | 295 | (defun idlwave-html-help-location () |
| 286 | "Return the help directory where HTML files are, or nil if that is unknown." | 296 | "Return the help directory where HTML files are, or nil if that is unknown." |
| 287 | (or (and (stringp idlwave-html-help-location) | 297 | (or (and (stringp idlwave-html-help-location) |
| @@ -316,16 +326,20 @@ It collects and prints the diagnostics messages." | |||
| 316 | (setq idlwave-last-context-help-pos marker) | 326 | (setq idlwave-last-context-help-pos marker) |
| 317 | (idlwave-do-context-help1 arg) | 327 | (idlwave-do-context-help1 arg) |
| 318 | (if idlwave-help-diagnostics | 328 | (if idlwave-help-diagnostics |
| 319 | (message "%s" (mapconcat 'identity | 329 | (message "%s" (mapconcat 'identity |
| 320 | (nreverse idlwave-help-diagnostics) | 330 | (nreverse idlwave-help-diagnostics) |
| 321 | "; ")))))) | 331 | "; ")))))) |
| 322 | 332 | ||
| 323 | (defvar idlwave-help-do-class-struct-tag nil) | 333 | (defvar idlwave-help-do-class-struct-tag nil) |
| 334 | (defvar idlwave-structtag-struct-location) | ||
| 324 | (defvar idlwave-help-do-struct-tag nil) | 335 | (defvar idlwave-help-do-struct-tag nil) |
| 336 | (defvar idlwave-system-variables-alist) | ||
| 337 | (defvar idlwave-executive-commands-alist) | ||
| 338 | (defvar idlwave-system-class-info) | ||
| 325 | (defun idlwave-do-context-help1 (&optional arg) | 339 | (defun idlwave-do-context-help1 (&optional arg) |
| 326 | "The work-horse version of `idlwave-context-help', which see." | 340 | "The work-horse version of `idlwave-context-help', which see." |
| 327 | (save-excursion | 341 | (save-excursion |
| 328 | (if (equal (char-after) ?/) | 342 | (if (equal (char-after) ?/) |
| 329 | (forward-char 1) | 343 | (forward-char 1) |
| 330 | (if (equal (char-before) ?=) | 344 | (if (equal (char-before) ?=) |
| 331 | (backward-char 1))) | 345 | (backward-char 1))) |
| @@ -335,7 +349,7 @@ It collects and prints the diagnostics messages." | |||
| 335 | (beg (save-excursion (skip-chars-backward chars) (point))) | 349 | (beg (save-excursion (skip-chars-backward chars) (point))) |
| 336 | (end (save-excursion (skip-chars-forward chars) (point))) | 350 | (end (save-excursion (skip-chars-forward chars) (point))) |
| 337 | (this-word (buffer-substring-no-properties beg end)) | 351 | (this-word (buffer-substring-no-properties beg end)) |
| 338 | (st-ass (assoc (downcase this-word) | 352 | (st-ass (assoc (downcase this-word) |
| 339 | idlwave-help-special-topic-words)) | 353 | idlwave-help-special-topic-words)) |
| 340 | (classtag (and (string-match "self\\." this-word) | 354 | (classtag (and (string-match "self\\." this-word) |
| 341 | (< beg (- end 4)))) | 355 | (< beg (- end 4)))) |
| @@ -343,7 +357,7 @@ It collects and prints the diagnostics messages." | |||
| 343 | (string-match "\\`\\([^.]+\\)\\." this-word) | 357 | (string-match "\\`\\([^.]+\\)\\." this-word) |
| 344 | (< beg (- end 4)))) | 358 | (< beg (- end 4)))) |
| 345 | module keyword cw mod1 mod2 mod3) | 359 | module keyword cw mod1 mod2 mod3) |
| 346 | (if (or arg | 360 | (if (or arg |
| 347 | (and (not st-ass) | 361 | (and (not st-ass) |
| 348 | (not classtag) | 362 | (not classtag) |
| 349 | (not structtag) | 363 | (not structtag) |
| @@ -362,15 +376,15 @@ It collects and prints the diagnostics messages." | |||
| 362 | (setq module (list "init" 'fun (match-string 1 str)) | 376 | (setq module (list "init" 'fun (match-string 1 str)) |
| 363 | idlwave-current-obj_new-class (match-string 1 str)) | 377 | idlwave-current-obj_new-class (match-string 1 str)) |
| 364 | ))))) | 378 | ))))) |
| 365 | (cond | 379 | (cond |
| 366 | (arg (setq mod1 module)) | 380 | (arg (setq mod1 module)) |
| 367 | 381 | ||
| 368 | ;; A special topic -- only system help | 382 | ;; A special topic -- only system help |
| 369 | (st-ass (setq mod1 (list (cdr st-ass)))) | 383 | (st-ass (setq mod1 (list (cdr st-ass)))) |
| 370 | 384 | ||
| 371 | ;; A system variable -- only system help | 385 | ;; A system variable -- only system help |
| 372 | ((string-match | 386 | ((string-match |
| 373 | "\\`!\\([a-zA-Z0-9_]+\\)\\(\.\\([A-Za-z0-9_]+\\)\\)?" | 387 | "\\`!\\([a-zA-Z0-9_]+\\)\\(\.\\([A-Za-z0-9_]+\\)\\)?" |
| 374 | this-word) | 388 | this-word) |
| 375 | (let* ((word (match-string-no-properties 1 this-word)) | 389 | (let* ((word (match-string-no-properties 1 this-word)) |
| 376 | (entry (assq (idlwave-sintern-sysvar word) | 390 | (entry (assq (idlwave-sintern-sysvar word) |
| @@ -382,19 +396,18 @@ It collects and prints the diagnostics messages." | |||
| 382 | (cdr (assq 'tags entry)))))) | 396 | (cdr (assq 'tags entry)))))) |
| 383 | (link (nth 1 (assq 'link entry)))) | 397 | (link (nth 1 (assq 'link entry)))) |
| 384 | (if tag-target | 398 | (if tag-target |
| 385 | (setq link (idlwave-substitute-link-target link | 399 | (setq link (idlwave-substitute-link-target link |
| 386 | tag-target))) | 400 | tag-target))) |
| 387 | (setq mod1 (list link)))) | 401 | (setq mod1 (list link)))) |
| 388 | 402 | ||
| 389 | ;; An executive command -- only system help | 403 | ;; An executive command -- only system help |
| 390 | ((string-match "^\\.\\([A-Z_]+\\)" this-word) | 404 | ((string-match "^\\.\\([A-Z_]+\\)" this-word) |
| 391 | (let* ((word (match-string 1 this-word)) | 405 | (let* ((word (match-string 1 this-word)) |
| 392 | (link (cdr (assoc-string | 406 | (link (cdr (assoc-string |
| 393 | word | 407 | word |
| 394 | idlwave-executive-commands-alist | 408 | idlwave-executive-commands-alist t)))) |
| 395 | t)))) | ||
| 396 | (setq mod1 (list link)))) | 409 | (setq mod1 (list link)))) |
| 397 | 410 | ||
| 398 | ;; A class -- system OR in-text help (via class__define). | 411 | ;; A class -- system OR in-text help (via class__define). |
| 399 | ((and (eq cw 'class) | 412 | ((and (eq cw 'class) |
| 400 | (or (idlwave-in-quote) ; e.g. obj_new | 413 | (or (idlwave-in-quote) ; e.g. obj_new |
| @@ -408,28 +421,28 @@ It collects and prints the diagnostics messages." | |||
| 408 | (name (concat (downcase this-word) "__define")) | 421 | (name (concat (downcase this-word) "__define")) |
| 409 | (link (nth 1 (assq 'link entry)))) | 422 | (link (nth 1 (assq 'link entry)))) |
| 410 | (setq mod1 (list link name 'pro)))) | 423 | (setq mod1 (list link name 'pro)))) |
| 411 | 424 | ||
| 412 | ;; A class structure tag (self.BLAH) -- only in-text help available | 425 | ;; A class structure tag (self.BLAH) -- only in-text help available |
| 413 | (classtag | 426 | (classtag |
| 414 | (let ((tag (substring this-word (match-end 0))) | 427 | (let ((tag (substring this-word (match-end 0))) |
| 415 | class-with found-in) | 428 | class-with found-in) |
| 416 | (when (setq class-with | 429 | (when (setq class-with |
| 417 | (idlwave-class-or-superclass-with-tag | 430 | (idlwave-class-or-superclass-with-tag |
| 418 | (nth 2 (idlwave-current-routine)) | 431 | (nth 2 (idlwave-current-routine)) |
| 419 | tag)) | 432 | tag)) |
| 420 | (setq found-in (idlwave-class-found-in class-with)) | 433 | (setq found-in (idlwave-class-found-in class-with)) |
| 421 | (if (assq (idlwave-sintern-class class-with) | 434 | (if (assq (idlwave-sintern-class class-with) |
| 422 | idlwave-system-class-info) | 435 | idlwave-system-class-info) |
| 423 | (error "No help available for system class tags")) | 436 | (error "No help available for system class tags")) |
| 424 | (setq idlwave-help-do-class-struct-tag t) | 437 | (setq idlwave-help-do-class-struct-tag t) |
| 425 | (setq mod1 (list nil | 438 | (setq mod1 (list nil |
| 426 | (if found-in | 439 | (if found-in |
| 427 | (cons (concat found-in "__define") class-with) | 440 | (cons (concat found-in "__define") class-with) |
| 428 | (concat class-with "__define")) | 441 | (concat class-with "__define")) |
| 429 | 'pro | 442 | 'pro |
| 430 | nil ; no class.... it's a procedure! | 443 | nil ; no class.... it's a procedure! |
| 431 | tag))))) | 444 | tag))))) |
| 432 | 445 | ||
| 433 | ;; A regular structure tag -- only in text, and if | 446 | ;; A regular structure tag -- only in text, and if |
| 434 | ;; optional `complete-structtag' loaded. | 447 | ;; optional `complete-structtag' loaded. |
| 435 | (structtag | 448 | (structtag |
| @@ -440,7 +453,7 @@ It collects and prints the diagnostics messages." | |||
| 440 | (setq idlwave-help-do-struct-tag | 453 | (setq idlwave-help-do-struct-tag |
| 441 | idlwave-structtag-struct-location | 454 | idlwave-structtag-struct-location |
| 442 | mod1 (list nil nil nil nil tag)))) | 455 | mod1 (list nil nil nil nil tag)))) |
| 443 | 456 | ||
| 444 | ;; A routine keyword -- in text or system help | 457 | ;; A routine keyword -- in text or system help |
| 445 | ((and (memq cw '(function-keyword procedure-keyword)) | 458 | ((and (memq cw '(function-keyword procedure-keyword)) |
| 446 | (stringp this-word) | 459 | (stringp this-word) |
| @@ -482,7 +495,7 @@ It collects and prints the diagnostics messages." | |||
| 482 | (setq mod1 (append (list t) module (list keyword)) | 495 | (setq mod1 (append (list t) module (list keyword)) |
| 483 | mod2 (list t this-word 'fun nil) | 496 | mod2 (list t this-word 'fun nil) |
| 484 | mod3 (append (list t) module))))) | 497 | mod3 (append (list t) module))))) |
| 485 | 498 | ||
| 486 | ;; Everything else | 499 | ;; Everything else |
| 487 | (t | 500 | (t |
| 488 | (setq mod1 (append (list t) module)))) | 501 | (setq mod1 (append (list t) module)))) |
| @@ -515,14 +528,14 @@ Needs additional info stored in global `idlwave-completion-help-info'." | |||
| 515 | word link) | 528 | word link) |
| 516 | (mouse-set-point ev) | 529 | (mouse-set-point ev) |
| 517 | 530 | ||
| 518 | 531 | ||
| 519 | ;; See if we can also find help somewhere, e.g. for multiple classes | 532 | ;; See if we can also find help somewhere, e.g. for multiple classes |
| 520 | (setq word (idlwave-this-word)) | 533 | (setq word (idlwave-this-word)) |
| 521 | (if (string= word "") | 534 | (if (string= word "") |
| 522 | (error "No help item selected")) | 535 | (error "No help item selected")) |
| 523 | (setq link (get-text-property 0 'link word)) | 536 | (setq link (get-text-property 0 'link word)) |
| 524 | (select-window cw) | 537 | (select-window cw) |
| 525 | (cond | 538 | (cond |
| 526 | ;; Routine name | 539 | ;; Routine name |
| 527 | ((memq what '(procedure function routine)) | 540 | ((memq what '(procedure function routine)) |
| 528 | (setq name word) | 541 | (setq name word) |
| @@ -533,9 +546,9 @@ Needs additional info stored in global `idlwave-completion-help-info'." | |||
| 533 | type))) | 546 | type))) |
| 534 | (setq link t) ; No specific link valid yet | 547 | (setq link t) ; No specific link valid yet |
| 535 | (if sclasses | 548 | (if sclasses |
| 536 | (setq classes (idlwave-members-only | 549 | (setq classes (idlwave-members-only |
| 537 | classes (cons class sclasses)))) | 550 | classes (cons class sclasses)))) |
| 538 | (setq class (idlwave-popup-select ev classes | 551 | (setq class (idlwave-popup-select ev classes |
| 539 | "Select Class" 'sort)))) | 552 | "Select Class" 'sort)))) |
| 540 | 553 | ||
| 541 | ;; XXX is this necessary, given all-method-classes? | 554 | ;; XXX is this necessary, given all-method-classes? |
| @@ -555,7 +568,7 @@ Needs additional info stored in global `idlwave-completion-help-info'." | |||
| 555 | type))) | 568 | type))) |
| 556 | (setq link t) ; Link can't be correct yet | 569 | (setq link t) ; Link can't be correct yet |
| 557 | (if sclasses | 570 | (if sclasses |
| 558 | (setq classes (idlwave-members-only | 571 | (setq classes (idlwave-members-only |
| 559 | classes (cons class sclasses)))) | 572 | classes (cons class sclasses)))) |
| 560 | (setq class (idlwave-popup-select ev classes | 573 | (setq class (idlwave-popup-select ev classes |
| 561 | "Select Class" 'sort)) | 574 | "Select Class" 'sort)) |
| @@ -567,14 +580,14 @@ Needs additional info stored in global `idlwave-completion-help-info'." | |||
| 567 | (if (string= (downcase name) "obj_new") | 580 | (if (string= (downcase name) "obj_new") |
| 568 | (setq class idlwave-current-obj_new-class | 581 | (setq class idlwave-current-obj_new-class |
| 569 | name "Init")))) | 582 | name "Init")))) |
| 570 | 583 | ||
| 571 | ;; Class name | 584 | ;; Class name |
| 572 | ((eq what 'class) | 585 | ((eq what 'class) |
| 573 | (setq class word | 586 | (setq class word |
| 574 | word nil)) | 587 | word nil)) |
| 575 | 588 | ||
| 576 | ;; A special named function to call which sets some of our variables | 589 | ;; A special named function to call which sets some of our variables |
| 577 | ((and (symbolp what) | 590 | ((and (symbolp what) |
| 578 | (fboundp what)) | 591 | (fboundp what)) |
| 579 | (funcall what 'set word)) | 592 | (funcall what 'set word)) |
| 580 | 593 | ||
| @@ -589,7 +602,7 @@ Needs additional info stored in global `idlwave-completion-help-info'." | |||
| 589 | "Highlight all completions for which help is available and attach link. | 602 | "Highlight all completions for which help is available and attach link. |
| 590 | Those words in `idlwave-completion-help-links' have links. The | 603 | Those words in `idlwave-completion-help-links' have links. The |
| 591 | `idlwave-help-link' face is used for this." | 604 | `idlwave-help-link' face is used for this." |
| 592 | (if idlwave-highlight-help-links-in-completion | 605 | (if idlwave-highlight-help-links-in-completion |
| 593 | (with-current-buffer (get-buffer "*Completions*") | 606 | (with-current-buffer (get-buffer "*Completions*") |
| 594 | (save-excursion | 607 | (save-excursion |
| 595 | (let* ((case-fold-search t) | 608 | (let* ((case-fold-search t) |
| @@ -605,7 +618,7 @@ Those words in `idlwave-completion-help-links' have links. The | |||
| 605 | (setq beg (match-beginning 1) end (match-end 1) | 618 | (setq beg (match-beginning 1) end (match-end 1) |
| 606 | word (match-string 1) doit nil) | 619 | word (match-string 1) doit nil) |
| 607 | ;; Call special completion function test | 620 | ;; Call special completion function test |
| 608 | (if (and (symbolp what) | 621 | (if (and (symbolp what) |
| 609 | (fboundp what)) | 622 | (fboundp what)) |
| 610 | (setq doit (funcall what 'test word)) | 623 | (setq doit (funcall what 'test word)) |
| 611 | ;; Look for special link property passed in help-links | 624 | ;; Look for special link property passed in help-links |
| @@ -636,13 +649,13 @@ Those words in `idlwave-completion-help-links' have links. The | |||
| 636 | ;; Try to select the return frame. | 649 | ;; Try to select the return frame. |
| 637 | ;; This can crash on slow network connections, obviously when | 650 | ;; This can crash on slow network connections, obviously when |
| 638 | ;; we kill the help frame before the return-frame is selected. | 651 | ;; we kill the help frame before the return-frame is selected. |
| 639 | ;; To protect the workings, we wait for up to one second | 652 | ;; To protect the workings, we wait for up to one second |
| 640 | ;; and check if the return-frame *is* now selected. | 653 | ;; and check if the return-frame *is* now selected. |
| 641 | ;; This is marked "eperimental" since we are not sure when its OK. | 654 | ;; This is marked "eperimental" since we are not sure when its OK. |
| 642 | (let ((maxtime 1.0) (time 0.) (step 0.1)) | 655 | (let ((maxtime 1.0) (time 0.) (step 0.1)) |
| 643 | (select-frame idlwave-help-return-frame) | 656 | (select-frame idlwave-help-return-frame) |
| 644 | (while (and (sit-for step) | 657 | (while (and (sit-for step) |
| 645 | (not (eq (selected-frame) | 658 | (not (eq (selected-frame) |
| 646 | idlwave-help-return-frame)) | 659 | idlwave-help-return-frame)) |
| 647 | (< (setq time (+ time step)) maxtime))))) | 660 | (< (setq time (+ time step)) maxtime))))) |
| 648 | (delete-frame idlwave-help-frame)) | 661 | (delete-frame idlwave-help-frame)) |
| @@ -655,7 +668,7 @@ Those words in `idlwave-completion-help-links' have links. The | |||
| 655 | (defvar default-toolbar-visible-p) | 668 | (defvar default-toolbar-visible-p) |
| 656 | 669 | ||
| 657 | (defun idlwave-help-display-help-window (&optional pos-or-func) | 670 | (defun idlwave-help-display-help-window (&optional pos-or-func) |
| 658 | "Display the help window. | 671 | "Display the help window. |
| 659 | Move window start to POS-OR-FUNC, if passed as a position, or call it | 672 | Move window start to POS-OR-FUNC, if passed as a position, or call it |
| 660 | if passed as a function. See `idlwave-help-use-dedicated-frame'." | 673 | if passed as a function. See `idlwave-help-use-dedicated-frame'." |
| 661 | (let ((cw (selected-window)) | 674 | (let ((cw (selected-window)) |
| @@ -666,13 +679,13 @@ if passed as a function. See `idlwave-help-use-dedicated-frame'." | |||
| 666 | (switch-to-buffer buf)) | 679 | (switch-to-buffer buf)) |
| 667 | ;; Do it in this frame and save the window configuration | 680 | ;; Do it in this frame and save the window configuration |
| 668 | (if (not (get-buffer-window buf nil)) | 681 | (if (not (get-buffer-window buf nil)) |
| 669 | (setq idlwave-help-window-configuration | 682 | (setq idlwave-help-window-configuration |
| 670 | (current-window-configuration))) | 683 | (current-window-configuration))) |
| 671 | (display-buffer buf nil (selected-frame)) | 684 | (display-buffer buf nil (selected-frame)) |
| 672 | (select-window (get-buffer-window buf))) | 685 | (select-window (get-buffer-window buf))) |
| 673 | (raise-frame) | 686 | (raise-frame) |
| 674 | (if pos-or-func | 687 | (if pos-or-func |
| 675 | (if (functionp pos-or-func) | 688 | (if (functionp pos-or-func) |
| 676 | (funcall pos-or-func) | 689 | (funcall pos-or-func) |
| 677 | (goto-char pos-or-func) | 690 | (goto-char pos-or-func) |
| 678 | (recenter 0))) | 691 | (recenter 0))) |
| @@ -694,31 +707,31 @@ if passed as a function. See `idlwave-help-use-dedicated-frame'." | |||
| 694 | (select-frame idlwave-help-return-frame))) | 707 | (select-frame idlwave-help-return-frame))) |
| 695 | 708 | ||
| 696 | (defun idlwave-online-help (link &optional name type class keyword) | 709 | (defun idlwave-online-help (link &optional name type class keyword) |
| 697 | "Display HTML or other special help on a certain topic. | 710 | "Display HTML or other special help on a certain topic. |
| 698 | Either loads an HTML link, if LINK is non-nil, or gets special-help on | 711 | Either loads an HTML link, if LINK is non-nil, or gets special-help on |
| 699 | the optional arguments, if any special help is defined. If LINK is | 712 | the optional arguments, if any special help is defined. If LINK is |
| 700 | `t', first look up the optional arguments in the routine info list to | 713 | `t', first look up the optional arguments in the routine info list to |
| 701 | see if a link is set for it. Try extra help functions if necessary." | 714 | see if a link is set for it. Try extra help functions if necessary." |
| 702 | ;; Lookup link | 715 | ;; Lookup link |
| 703 | (if (eq link t) | 716 | (if (eq link t) |
| 704 | (let ((entry (idlwave-best-rinfo-assoc name type class | 717 | (let ((entry (idlwave-best-rinfo-assoc name type class |
| 705 | (idlwave-routines) nil t))) | 718 | (idlwave-routines) nil t))) |
| 706 | (cond | 719 | (cond |
| 707 | ;; Try keyword link | 720 | ;; Try keyword link |
| 708 | ((and keyword | 721 | ((and keyword |
| 709 | (setq link (cdr (idlwave-entry-find-keyword entry keyword))))) | 722 | (setq link (cdr (idlwave-entry-find-keyword entry keyword))))) |
| 710 | ;; Default, regular entry link | 723 | ;; Default, regular entry link |
| 711 | (t (setq link (idlwave-entry-has-help entry)))))) | 724 | (t (setq link (idlwave-entry-has-help entry)))))) |
| 712 | 725 | ||
| 713 | (cond | 726 | (cond |
| 714 | ;; An explicit link | 727 | ;; An explicit link |
| 715 | ((stringp link) | 728 | ((stringp link) |
| 716 | (idlwave-help-html-link link)) | 729 | (idlwave-help-html-link link)) |
| 717 | 730 | ||
| 718 | ;; Any extra help | 731 | ;; Any extra help |
| 719 | (idlwave-extra-help-function | 732 | (idlwave-extra-help-function |
| 720 | (idlwave-help-get-special-help name type class keyword)) | 733 | (idlwave-help-get-special-help name type class keyword)) |
| 721 | 734 | ||
| 722 | ;; Nothing worked | 735 | ;; Nothing worked |
| 723 | (t (idlwave-help-error name type class keyword)))) | 736 | (t (idlwave-help-error name type class keyword)))) |
| 724 | 737 | ||
| @@ -729,7 +742,7 @@ see if a link is set for it. Try extra help functions if necessary." | |||
| 729 | (help-pos (save-excursion | 742 | (help-pos (save-excursion |
| 730 | (set-buffer (idlwave-help-get-help-buffer)) | 743 | (set-buffer (idlwave-help-get-help-buffer)) |
| 731 | (let ((buffer-read-only nil)) | 744 | (let ((buffer-read-only nil)) |
| 732 | (funcall idlwave-extra-help-function | 745 | (funcall idlwave-extra-help-function |
| 733 | name type class keyword))))) | 746 | name type class keyword))))) |
| 734 | (if help-pos | 747 | (if help-pos |
| 735 | (idlwave-help-display-help-window help-pos) | 748 | (idlwave-help-display-help-window help-pos) |
| @@ -743,6 +756,9 @@ see if a link is set for it. Try extra help functions if necessary." | |||
| 743 | (browse-url-generic-program idlwave-help-browser-generic-program) | 756 | (browse-url-generic-program idlwave-help-browser-generic-program) |
| 744 | ;(browse-url-generic-args idlwave-help-browser-generic-args) | 757 | ;(browse-url-generic-args idlwave-help-browser-generic-args) |
| 745 | full-link) | 758 | full-link) |
| 759 | |||
| 760 | (unless idlwave-help-browse-url-available | ||
| 761 | (error "browse-url is not available -- install it to use HTML help.")) | ||
| 746 | 762 | ||
| 747 | (if (and (memq system-type '(ms-dos windows-nt)) | 763 | (if (and (memq system-type '(ms-dos windows-nt)) |
| 748 | idlwave-help-use-hh) | 764 | idlwave-help-use-hh) |
| @@ -758,12 +774,12 @@ see if a link is set for it. Try extra help functions if necessary." | |||
| 758 | ;; Just a regular file name (+ anchor name) | 774 | ;; Just a regular file name (+ anchor name) |
| 759 | (unless (and (stringp help-loc) | 775 | (unless (and (stringp help-loc) |
| 760 | (file-directory-p help-loc)) | 776 | (file-directory-p help-loc)) |
| 761 | (error | 777 | (error |
| 762 | "Invalid help location; customize `idlwave-html-help-location'.")) | 778 | "Invalid help location; customize `idlwave-html-help-location'.")) |
| 763 | (setq full-link (concat | 779 | (setq full-link (concat |
| 764 | "file://" | 780 | "file://" |
| 765 | (expand-file-name | 781 | (expand-file-name |
| 766 | link | 782 | link |
| 767 | (expand-file-name "idl_html_help" help-loc))))) | 783 | (expand-file-name "idl_html_help" help-loc))))) |
| 768 | 784 | ||
| 769 | ;; Check for a local browser | 785 | ;; Check for a local browser |
| @@ -773,11 +789,10 @@ see if a link is set for it. Try extra help functions if necessary." | |||
| 773 | (browse-url full-link)))) | 789 | (browse-url full-link)))) |
| 774 | 790 | ||
| 775 | ;; A special help routine for source-level syntax help in files. | 791 | ;; A special help routine for source-level syntax help in files. |
| 776 | (defvar idlwave-help-def-pos) | ||
| 777 | (defvar idlwave-help-args) | ||
| 778 | (defvar idlwave-help-in-header) | ||
| 779 | (defvar idlwave-help-fontify-source-code) | 792 | (defvar idlwave-help-fontify-source-code) |
| 780 | (defvar idlwave-help-source-try-header) | 793 | (defvar idlwave-help-source-try-header) |
| 794 | (defvar idlwave-current-tags-buffer) | ||
| 795 | (defvar idlwave-current-tags-class) | ||
| 781 | (defun idlwave-help-with-source (name type class keyword) | 796 | (defun idlwave-help-with-source (name type class keyword) |
| 782 | "Provide help for routines not documented in the IDL manuals. Works | 797 | "Provide help for routines not documented in the IDL manuals. Works |
| 783 | by loading the routine source file into the help buffer. Depending on | 798 | by loading the routine source file into the help buffer. Depending on |
| @@ -799,7 +814,7 @@ This function can be used as `idlwave-extra-help-function'." | |||
| 799 | (if class-only ;Help with class? Using "Init" as source. | 814 | (if class-only ;Help with class? Using "Init" as source. |
| 800 | (setq name "Init" | 815 | (setq name "Init" |
| 801 | type 'fun)) | 816 | type 'fun)) |
| 802 | (if (not struct-tag) | 817 | (if (not struct-tag) |
| 803 | (setq file | 818 | (setq file |
| 804 | (idlwave-routine-source-file | 819 | (idlwave-routine-source-file |
| 805 | (nth 3 (idlwave-best-rinfo-assoc | 820 | (nth 3 (idlwave-best-rinfo-assoc |
| @@ -812,7 +827,7 @@ This function can be used as `idlwave-extra-help-function'." | |||
| 812 | (if (or struct-tag (stringp file)) | 827 | (if (or struct-tag (stringp file)) |
| 813 | (progn | 828 | (progn |
| 814 | (setq in-buf ; structure-tag completion is always in current buffer | 829 | (setq in-buf ; structure-tag completion is always in current buffer |
| 815 | (if struct-tag | 830 | (if struct-tag |
| 816 | idlwave-current-tags-buffer | 831 | idlwave-current-tags-buffer |
| 817 | (idlwave-get-buffer-visiting file))) | 832 | (idlwave-get-buffer-visiting file))) |
| 818 | ;; see if file is in a visited buffer, insert those contents | 833 | ;; see if file is in a visited buffer, insert those contents |
| @@ -834,19 +849,19 @@ This function can be used as `idlwave-extra-help-function'." | |||
| 834 | ;; Try to find a good place to display | 849 | ;; Try to find a good place to display |
| 835 | (setq def-pos | 850 | (setq def-pos |
| 836 | ;; Find the class structure tag if that's what we're after | 851 | ;; Find the class structure tag if that's what we're after |
| 837 | (cond | 852 | (cond |
| 838 | ;; Class structure tags: find the class or named structure | 853 | ;; Class structure tags: find the class or named structure |
| 839 | ;; definition | 854 | ;; definition |
| 840 | (class-struct-tag | 855 | (class-struct-tag |
| 841 | (save-excursion | 856 | (save-excursion |
| 842 | (setq class | 857 | (setq class |
| 843 | (if (string-match "[a-zA-Z0-9]\\(__\\)" name) | 858 | (if (string-match "[a-zA-Z0-9]\\(__\\)" name) |
| 844 | (substring name 0 (match-beginning 1)) | 859 | (substring name 0 (match-beginning 1)) |
| 845 | idlwave-current-tags-class)) | 860 | idlwave-current-tags-class)) |
| 846 | (and | 861 | (and |
| 847 | (idlwave-find-class-definition class nil real-class) | 862 | (idlwave-find-class-definition class nil real-class) |
| 848 | (idlwave-find-struct-tag keyword)))) | 863 | (idlwave-find-struct-tag keyword)))) |
| 849 | 864 | ||
| 850 | ;; Generic structure tags: the structure definition | 865 | ;; Generic structure tags: the structure definition |
| 851 | ;; location within the file has been recorded in | 866 | ;; location within the file has been recorded in |
| 852 | ;; `struct-tag' | 867 | ;; `struct-tag' |
| @@ -856,14 +871,14 @@ This function can be used as `idlwave-extra-help-function'." | |||
| 856 | (integerp struct-tag) | 871 | (integerp struct-tag) |
| 857 | (goto-char struct-tag) | 872 | (goto-char struct-tag) |
| 858 | (idlwave-find-struct-tag keyword)))) | 873 | (idlwave-find-struct-tag keyword)))) |
| 859 | 874 | ||
| 860 | ;; Just find the routine definition | 875 | ;; Just find the routine definition |
| 861 | (t | 876 | (t |
| 862 | (if class-only (point-min) | 877 | (if class-only (point-min) |
| 863 | (idlwave-help-find-routine-definition name type class keyword)))) | 878 | (idlwave-help-find-routine-definition name type class keyword)))) |
| 864 | idlwave-help-def-pos def-pos) | 879 | idlwave-help-def-pos def-pos) |
| 865 | 880 | ||
| 866 | (if (and idlwave-help-source-try-header | 881 | (if (and idlwave-help-source-try-header |
| 867 | (not (or struct-tag class-struct-tag))) | 882 | (not (or struct-tag class-struct-tag))) |
| 868 | ;; Check if we can find the header | 883 | ;; Check if we can find the header |
| 869 | (save-excursion | 884 | (save-excursion |
| @@ -873,7 +888,7 @@ This function can be used as `idlwave-extra-help-function'." | |||
| 873 | idlwave-help-in-header header-pos))) | 888 | idlwave-help-in-header header-pos))) |
| 874 | 889 | ||
| 875 | (if (or header-pos def-pos) | 890 | (if (or header-pos def-pos) |
| 876 | (progn | 891 | (progn |
| 877 | (if (boundp 'idlwave-help-min-frame-width) | 892 | (if (boundp 'idlwave-help-min-frame-width) |
| 878 | (setq idlwave-help-min-frame-width 80)) | 893 | (setq idlwave-help-min-frame-width 80)) |
| 879 | (goto-char (or header-pos def-pos))) | 894 | (goto-char (or header-pos def-pos))) |
| @@ -887,7 +902,7 @@ This function can be used as `idlwave-extra-help-function'." | |||
| 887 | KEYWORD is ignored. Returns the point of match if successful, nil otherwise." | 902 | KEYWORD is ignored. Returns the point of match if successful, nil otherwise." |
| 888 | (save-excursion | 903 | (save-excursion |
| 889 | (goto-char (point-max)) | 904 | (goto-char (point-max)) |
| 890 | (if (re-search-backward | 905 | (if (re-search-backward |
| 891 | (concat "^[ \t]*" | 906 | (concat "^[ \t]*" |
| 892 | (if (eq type 'pro) "pro" | 907 | (if (eq type 'pro) "pro" |
| 893 | (if (eq type 'fun) "function" | 908 | (if (eq type 'fun) "function" |
| @@ -933,22 +948,22 @@ with spaces allowed between the keyword and the following dash or equal sign. | |||
| 933 | If there is a match, we assume it is the keyword description." | 948 | If there is a match, we assume it is the keyword description." |
| 934 | (let* ((case-fold-search t) | 949 | (let* ((case-fold-search t) |
| 935 | (rname (if (stringp class) | 950 | (rname (if (stringp class) |
| 936 | (concat | 951 | (concat |
| 937 | "\\(" | 952 | "\\(" |
| 938 | ;; Traditional name or class::name | 953 | ;; Traditional name or class::name |
| 939 | "\\(" | 954 | "\\(" |
| 940 | "\\(" (regexp-quote (downcase class)) "::\\)?" | 955 | "\\(" (regexp-quote (downcase class)) "::\\)?" |
| 941 | (regexp-quote (downcase name)) | 956 | (regexp-quote (downcase name)) |
| 942 | "\\>\\)" | 957 | "\\>\\)" |
| 943 | (concat | 958 | (concat |
| 944 | "\\|" | 959 | "\\|" |
| 945 | ;; class__define or just class | 960 | ;; class__define or just class |
| 946 | (regexp-quote (downcase class)) "\\(__define\\)?") | 961 | (regexp-quote (downcase class)) "\\(__define\\)?") |
| 947 | "\\)") | 962 | "\\)") |
| 948 | (regexp-quote (downcase name)))) | 963 | (regexp-quote (downcase name)))) |
| 949 | 964 | ||
| 950 | ;; NAME tag plus the routine name. The new version is from JD. | 965 | ;; NAME tag plus the routine name. The new version is from JD. |
| 951 | (name-re (concat | 966 | (name-re (concat |
| 952 | "\\(^;+\\*?[ \t]*" | 967 | "\\(^;+\\*?[ \t]*" |
| 953 | idlwave-help-doclib-name | 968 | idlwave-help-doclib-name |
| 954 | "\\([ \t]*:\\|[ \t]*$\\)[ \t]*\\(\n;+[ \t]*\\)*" | 969 | "\\([ \t]*:\\|[ \t]*$\\)[ \t]*\\(\n;+[ \t]*\\)*" |
| @@ -983,7 +998,7 @@ If there is a match, we assume it is the keyword description." | |||
| 983 | (regexp-quote (upcase keyword)) | 998 | (regexp-quote (upcase keyword)) |
| 984 | "\\>"))) | 999 | "\\>"))) |
| 985 | dstart dend name-pos kwds-pos kwd-pos) | 1000 | dstart dend name-pos kwds-pos kwd-pos) |
| 986 | (catch 'exit | 1001 | (catch 'exit |
| 987 | (save-excursion | 1002 | (save-excursion |
| 988 | (goto-char (point-min)) | 1003 | (goto-char (point-min)) |
| 989 | (while (and (setq dstart (re-search-forward idlwave-doclib-start nil t)) | 1004 | (while (and (setq dstart (re-search-forward idlwave-doclib-start nil t)) |
| @@ -991,7 +1006,7 @@ If there is a match, we assume it is the keyword description." | |||
| 991 | ;; found a routine header | 1006 | ;; found a routine header |
| 992 | (goto-char dstart) | 1007 | (goto-char dstart) |
| 993 | (if (setq name-pos (re-search-forward name-re dend t)) | 1008 | (if (setq name-pos (re-search-forward name-re dend t)) |
| 994 | (progn | 1009 | (progn |
| 995 | (if keyword | 1010 | (if keyword |
| 996 | ;; We do need a keyword | 1011 | ;; We do need a keyword |
| 997 | (progn | 1012 | (progn |
| @@ -1073,7 +1088,7 @@ When DING is non-nil, ring the bell as well." | |||
| 1073 | (idlwave-help-find-first-header nil) | 1088 | (idlwave-help-find-first-header nil) |
| 1074 | (setq idlwave-help-in-header nil) | 1089 | (setq idlwave-help-in-header nil) |
| 1075 | (idlwave-help-toggle-header-match-and-def arg 'top))) | 1090 | (idlwave-help-toggle-header-match-and-def arg 'top))) |
| 1076 | 1091 | ||
| 1077 | (defun idlwave-help-toggle-header-match-and-def (arg &optional top) | 1092 | (defun idlwave-help-toggle-header-match-and-def (arg &optional top) |
| 1078 | (interactive "P") | 1093 | (interactive "P") |
| 1079 | (let ((args idlwave-help-args) | 1094 | (let ((args idlwave-help-args) |
| @@ -1085,7 +1100,7 @@ When DING is non-nil, ring the bell as well." | |||
| 1085 | (setq pos idlwave-help-def-pos)) | 1100 | (setq pos idlwave-help-def-pos)) |
| 1086 | ;; Try to display header | 1101 | ;; Try to display header |
| 1087 | (setq pos (apply 'idlwave-help-find-in-doc-header | 1102 | (setq pos (apply 'idlwave-help-find-in-doc-header |
| 1088 | (if top | 1103 | (if top |
| 1089 | (list (car args) (nth 1 args) (nth 2 args) nil) | 1104 | (list (car args) (nth 1 args) (nth 2 args) nil) |
| 1090 | args))) | 1105 | args))) |
| 1091 | (if pos | 1106 | (if pos |
| @@ -1119,7 +1134,7 @@ Useful when source code is displayed as help. See the option | |||
| 1119 | (font-lock-fontify-buffer)) | 1134 | (font-lock-fontify-buffer)) |
| 1120 | (set-syntax-table syntax-table))))) | 1135 | (set-syntax-table syntax-table))))) |
| 1121 | 1136 | ||
| 1122 | 1137 | ||
| 1123 | (defun idlwave-help-error (name type class keyword) | 1138 | (defun idlwave-help-error (name type class keyword) |
| 1124 | (error "Can't find help on %s%s %s" | 1139 | (error "Can't find help on %s%s %s" |
| 1125 | (or (and (or class name) (idlwave-make-full-name class name)) | 1140 | (or (and (or class name) (idlwave-make-full-name class name)) |
diff --git a/lisp/progmodes/idlw-rinfo.el b/lisp/progmodes/idlw-rinfo.el index 9f95f8e6a5b..01888922cfe 100644 --- a/lisp/progmodes/idlw-rinfo.el +++ b/lisp/progmodes/idlw-rinfo.el | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | ;;; idlw-rinfo.el --- Routine Information for IDLWAVE | 1 | ;;; idlw-rinfo.el --- Routine Information for IDLWAVE |
| 2 | ;; Copyright (c) 1999 Carsten Dominik | 2 | ;; Copyright (c) 1999 Carsten Dominik |
| 3 | ;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation | 3 | ;; Copyright (c) 1999, 2000, 2001,2002,2003,2004,2005 Free Software Foundation |
| 4 | 4 | ||
| 5 | ;; Author: J.D. Smith <jdsmith@as.arizona.edu> | 5 | ;; Author: J.D. Smith <jdsmith@as.arizona.edu> |
| 6 | ;; Version: 5.5 | 6 | ;; Version: 5.7_22 |
| 7 | ;; Keywords: languages | 7 | ;; Keywords: languages |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| @@ -30,7 +30,7 @@ | |||
| 30 | ;; information is extracted automatically from the IDL documentation | 30 | ;; information is extracted automatically from the IDL documentation |
| 31 | ;; and by talking to IDL. | 31 | ;; and by talking to IDL. |
| 32 | ;; | 32 | ;; |
| 33 | ;; Created by get_html_rinfo on Sun Oct 10 16:06:07 2004 | 33 | ;; Created by get_html_rinfo on Wed May 11 14:52:40 2005 |
| 34 | ;; IDL version: 6.1 | 34 | ;; IDL version: 6.1 |
| 35 | ;; Number of files scanned: 3393 | 35 | ;; Number of files scanned: 3393 |
| 36 | ;; Number of routines found: 1850 | 36 | ;; Number of routines found: 1850 |
| @@ -1242,7 +1242,7 @@ | |||
| 1242 | ("Init" fun "IDLanROI" (system) "Result = Obj->[%s::]%s([, X [, Y [, Z]]])" ("objects_an11.html" ) ("objects_an4.html" ("BLOCK_SIZE" . 1011320) ("DATA" . 1011322) ("DOUBLE" . 1011324) ("INTERIOR" . 1011326) ("TYPE" . 1011328))) | 1242 | ("Init" fun "IDLanROI" (system) "Result = Obj->[%s::]%s([, X [, Y [, Z]]])" ("objects_an11.html" ) ("objects_an4.html" ("BLOCK_SIZE" . 1011320) ("DATA" . 1011322) ("DOUBLE" . 1011324) ("INTERIOR" . 1011326) ("TYPE" . 1011328))) |
| 1243 | ("Add" pro "IDLanROIGroup" (system) "Obj->[%s::]%s, ROI" ("objects_an20.html")) | 1243 | ("Add" pro "IDLanROIGroup" (system) "Obj->[%s::]%s, ROI" ("objects_an20.html")) |
| 1244 | ("Cleanup" pro "IDLanROIGroup" (system) "Obj->[%s::]%s" ("objects_an21.html")) | 1244 | ("Cleanup" pro "IDLanROIGroup" (system) "Obj->[%s::]%s" ("objects_an21.html")) |
| 1245 | ("GetProperty" pro "IDLanROIGroup" (system) "Obj->[%s::]%s" ("objects_an25.html" ) ("objects_an19.html" ("ALL" . 1011995) ("ROIGROUP_XRANGE " . 1011998) ("ROIGROUP_YRANGE " . 1012000) ("ROIGROUP_ZRANGE " . 1012002))) | 1245 | ("GetProperty" pro "IDLanROIGroup" (system) "Obj->[%s::]%s" ("objects_an25.html" ) ("objects_an19.html" ("ALL" . 1011995) ("ROIGROUP_XRANGE" . 1011998) ("ROIGROUP_YRANGE" . 1012000) ("ROIGROUP_ZRANGE" . 1012002))) |
| 1246 | ("Rotate" pro "IDLanROIGroup" (system) "Obj->[%s::]%s, Axis, Angle" ("objects_an27.html" ("CENTER" . 1004731))) | 1246 | ("Rotate" pro "IDLanROIGroup" (system) "Obj->[%s::]%s, Axis, Angle" ("objects_an27.html" ("CENTER" . 1004731))) |
| 1247 | ("Scale" pro "IDLanROIGroup" (system) "Obj->[%s::]%s, Sx[, Sy[, Sz]]" ("objects_an28.html")) | 1247 | ("Scale" pro "IDLanROIGroup" (system) "Obj->[%s::]%s, Sx[, Sy[, Sz]]" ("objects_an28.html")) |
| 1248 | ("Translate" pro "IDLanROIGroup" (system) "Obj->[%s::]%s, Tx[, Ty[, Tz]]" ("objects_an29.html")) | 1248 | ("Translate" pro "IDLanROIGroup" (system) "Obj->[%s::]%s, Tx[, Ty[, Tz]]" ("objects_an29.html")) |
| @@ -1433,120 +1433,120 @@ | |||
| 1433 | ("Draw" pro "IDLgrBuffer" (system) "Obj->[%s::]%s [, Picture]" ("objects_gr13.html" ("CREATE_INSTANCE" . 1007844) ("DRAW_INSTANCE" . 1007846))) | 1433 | ("Draw" pro "IDLgrBuffer" (system) "Obj->[%s::]%s [, Picture]" ("objects_gr13.html" ("CREATE_INSTANCE" . 1007844) ("DRAW_INSTANCE" . 1007846))) |
| 1434 | ("Erase" pro "IDLgrBuffer" (system) "Obj->[%s::]%s" ("objects_gr14.html" ("COLOR" . 1007879))) | 1434 | ("Erase" pro "IDLgrBuffer" (system) "Obj->[%s::]%s" ("objects_gr14.html" ("COLOR" . 1007879))) |
| 1435 | ("GetDeviceInfo" pro "IDLgrBuffer" (system) "Obj->[%s::]%s" ("objects_gr16.html" ("ALL" . 1007957) ("MAX_NUM_CLIP_PLANES" . 1007959) ("MAX_TEXTURE_DIMENSIONS" . 1007961) ("MAX_VIEWPORT_DIMENSIONS" . 1007963) ("NAME" . 1007965) ("NUM_CPUS" . 1007967) ("VENDOR" . 1007970) ("VERSION" . 1007972))) | 1435 | ("GetDeviceInfo" pro "IDLgrBuffer" (system) "Obj->[%s::]%s" ("objects_gr16.html" ("ALL" . 1007957) ("MAX_NUM_CLIP_PLANES" . 1007959) ("MAX_TEXTURE_DIMENSIONS" . 1007961) ("MAX_VIEWPORT_DIMENSIONS" . 1007963) ("NAME" . 1007965) ("NUM_CPUS" . 1007967) ("VENDOR" . 1007970) ("VERSION" . 1007972))) |
| 1436 | ("GetProperty" pro "IDLgrBuffer" (system) "Obj->[%s::]%s" ("objects_gr18.html" ) ("objects_gr11.html" ("ALL" . 1050118) ("COLOR_MODEL" . 1050137) ("DIMENSIONS" . 1050141) ("GRAPHICS_TREE" . 1050143) ("IMAGE_DATA" . 1050202) ("N_COLORS" . 1092707) ("PALETTE" . 1050147) ("QUALITY" . 1050149) ("RESOLUTION " . 1093499) ("SCREEN_DIMENSIONS" . 1050191) ("UNITS " . 1050189) ("ZBUFFER_DATA" . 1050181))) | 1436 | ("GetProperty" pro "IDLgrBuffer" (system) "Obj->[%s::]%s" ("objects_gr18.html" ) ("objects_gr11.html" ("ALL" . 1050118) ("COLOR_MODEL" . 1050137) ("DIMENSIONS" . 1050141) ("GRAPHICS_TREE" . 1050143) ("IMAGE_DATA" . 1050202) ("N_COLORS" . 1092707) ("PALETTE" . 1050147) ("QUALITY" . 1050149) ("RESOLUTION" . 1093499) ("SCREEN_DIMENSIONS" . 1050191) ("UNITS" . 1050189) ("ZBUFFER_DATA" . 1050181))) |
| 1437 | ("SetProperty" pro "IDLgrBuffer" (system) "Obj->[%s::]%s" ("objects_gr24.html" ) ("objects_gr11.html" ("COLOR_MODEL" . 1050137) ("DIMENSIONS" . 1050141) ("GRAPHICS_TREE" . 1050143) ("PALETTE" . 1050147) ("QUALITY" . 1050149) ("RESOLUTION " . 1093499) ("UNITS " . 1050189))) | 1437 | ("SetProperty" pro "IDLgrBuffer" (system) "Obj->[%s::]%s" ("objects_gr24.html" ) ("objects_gr11.html" ("COLOR_MODEL" . 1050137) ("DIMENSIONS" . 1050141) ("GRAPHICS_TREE" . 1050143) ("PALETTE" . 1050147) ("QUALITY" . 1050149) ("RESOLUTION" . 1093499) ("UNITS" . 1050189))) |
| 1438 | ("GetContiguousPixels" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s()" ("objects_gr15.html")) | 1438 | ("GetContiguousPixels" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s()" ("objects_gr15.html")) |
| 1439 | ("GetFontnames" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s( FamilyName)" ("objects_gr17.html" ("IDL_FONTS" . 1008013) ("STYLES" . 1008015))) | 1439 | ("GetFontnames" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s( FamilyName)" ("objects_gr17.html" ("IDL_FONTS" . 1008013) ("STYLES" . 1008015))) |
| 1440 | ("GetTextDimensions" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s( TextObj)" ("objects_gr19.html" ("DESCENT" . 1008088) ("PATH" . 1008090))) | 1440 | ("GetTextDimensions" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s( TextObj)" ("objects_gr19.html" ("DESCENT" . 1008088) ("PATH" . 1008090))) |
| 1441 | ("Init" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s()" ("objects_gr20.html" ) ("objects_gr11.html" ("COLOR_MODEL" . 1050137) ("DIMENSIONS" . 1050141) ("GRAPHICS_TREE" . 1050143) ("N_COLORS" . 1092707) ("PALETTE" . 1050147) ("QUALITY" . 1050149) ("REGISTER_PROPERTIES" . 1050154) ("RESOLUTION " . 1093499) ("UNITS " . 1050189))) | 1441 | ("Init" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s()" ("objects_gr20.html" ) ("objects_gr11.html" ("COLOR_MODEL" . 1050137) ("DIMENSIONS" . 1050141) ("GRAPHICS_TREE" . 1050143) ("N_COLORS" . 1092707) ("PALETTE" . 1050147) ("QUALITY" . 1050149) ("REGISTER_PROPERTIES" . 1050154) ("RESOLUTION" . 1093499) ("UNITS" . 1050189))) |
| 1442 | ("PickData" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s( View, Object, Location, XYZLocation)" ("objects_gr21.html" ("DIMENSIONS" . 1008204) ("PATH" . 1008208) ("PICK_STATUS" . 1008214))) | 1442 | ("PickData" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s( View, Object, Location, XYZLocation)" ("objects_gr21.html" ("DIMENSIONS" . 1008204) ("PATH" . 1008208) ("PICK_STATUS" . 1008214))) |
| 1443 | ("Read" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s()" ("objects_gr22.html")) | 1443 | ("Read" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s()" ("objects_gr22.html")) |
| 1444 | ("Select" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s(Picture, XY)" ("objects_gr23.html" ("DIMENSIONS" . 1008316) ("ORDER" . 1008320) ("SUB_SELECTION" . 1343723) ("UNITS" . 1008323))) | 1444 | ("Select" fun "IDLgrBuffer" (system) "Result = Obj->[%s::]%s(Picture, XY)" ("objects_gr23.html" ("DIMENSIONS" . 1008316) ("ORDER" . 1008320) ("SUB_SELECTION" . 1343723) ("UNITS" . 1008323))) |
| 1445 | ("Cleanup" pro "IDLgrClipboard" (system) "Obj->[%s::]%s" ("objects_gr27.html")) | 1445 | ("Cleanup" pro "IDLgrClipboard" (system) "Obj->[%s::]%s" ("objects_gr27.html")) |
| 1446 | ("Draw" pro "IDLgrClipboard" (system) "Obj->[%s::]%s [, Picture]" ("objects_gr28.html" ("CMYK" . 1345463) ("FILENAME" . 1008514) ("POSTSCRIPT" . 1008516) ("VECT_SHADING" . 1340124) ("VECT_SORTING" . 1340189) ("VECT_TEXT_RENDER_METHOD" . 1340235) ("VECTOR" . 1008518))) | 1446 | ("Draw" pro "IDLgrClipboard" (system) "Obj->[%s::]%s [, Picture]" ("objects_gr28.html" ("CMYK" . 1345463) ("FILENAME" . 1008514) ("POSTSCRIPT" . 1008516) ("VECT_SHADING" . 1340124) ("VECT_SORTING" . 1340189) ("VECT_TEXT_RENDER_METHOD" . 1340235) ("VECTOR" . 1008518))) |
| 1447 | ("GetDeviceInfo" pro "IDLgrClipboard" (system) "Obj->[%s::]%s" ("objects_gr30.html" ("ALL" . 1008688) ("MAX_NUM_CLIP_PLANES" . 1008690) ("MAX_TEXTURE_DIMENSIONS" . 1008692) ("MAX_VIEWPORT_DIMENSIONS" . 1008694) ("NAME" . 1008696) ("NUM_CPUS" . 1008698) ("VENDOR" . 1008701) ("VERSION" . 1008703))) | 1447 | ("GetDeviceInfo" pro "IDLgrClipboard" (system) "Obj->[%s::]%s" ("objects_gr30.html" ("ALL" . 1008688) ("MAX_NUM_CLIP_PLANES" . 1008690) ("MAX_TEXTURE_DIMENSIONS" . 1008692) ("MAX_VIEWPORT_DIMENSIONS" . 1008694) ("NAME" . 1008696) ("NUM_CPUS" . 1008698) ("VENDOR" . 1008701) ("VERSION" . 1008703))) |
| 1448 | ("GetProperty" pro "IDLgrClipboard" (system) "Obj->[%s::]%s" ("objects_gr32.html" ) ("objects_gr26.html" ("ALL" . 1050377) ("COLOR_MODEL" . 1050391) ("DIMENSIONS" . 1050395) ("GRAPHICS_TREE" . 1050397) ("N_COLORS" . 1050399) ("PALETTE" . 1050401) ("QUALITY" . 1050403) ("RESOLUTION " . 1093541) ("SCREEN_DIMENSIONS" . 1050442) ("UNITS" . 1050439))) | 1448 | ("GetProperty" pro "IDLgrClipboard" (system) "Obj->[%s::]%s" ("objects_gr32.html" ) ("objects_gr26.html" ("ALL" . 1050377) ("COLOR_MODEL" . 1050391) ("DIMENSIONS" . 1050395) ("GRAPHICS_TREE" . 1050397) ("N_COLORS" . 1050399) ("PALETTE" . 1050401) ("QUALITY" . 1050403) ("RESOLUTION" . 1093541) ("SCREEN_DIMENSIONS" . 1050442) ("UNITS" . 1050439))) |
| 1449 | ("SetProperty" pro "IDLgrClipboard" (system) "Obj->[%s::]%s" ("objects_gr35.html" ) ("objects_gr26.html" ("DIMENSIONS" . 1050395) ("GRAPHICS_TREE" . 1050397) ("PALETTE" . 1050401) ("QUALITY" . 1050403) ("RESOLUTION " . 1093541) ("UNITS" . 1050439))) | 1449 | ("SetProperty" pro "IDLgrClipboard" (system) "Obj->[%s::]%s" ("objects_gr35.html" ) ("objects_gr26.html" ("DIMENSIONS" . 1050395) ("GRAPHICS_TREE" . 1050397) ("PALETTE" . 1050401) ("QUALITY" . 1050403) ("RESOLUTION" . 1093541) ("UNITS" . 1050439))) |
| 1450 | ("GetContiguousPixels" fun "IDLgrClipboard" (system) "Result = Obj->[%s::]%s()" ("objects_gr29.html")) | 1450 | ("GetContiguousPixels" fun "IDLgrClipboard" (system) "Result = Obj->[%s::]%s()" ("objects_gr29.html")) |
| 1451 | ("GetFontnames" fun "IDLgrClipboard" (system) "Result = Obj->[%s::]%s( FamilyName)" ("objects_gr31.html" ("IDL_FONTS" . 1008744) ("STYLES" . 1008746))) | 1451 | ("GetFontnames" fun "IDLgrClipboard" (system) "Result = Obj->[%s::]%s( FamilyName)" ("objects_gr31.html" ("IDL_FONTS" . 1008744) ("STYLES" . 1008746))) |
| 1452 | ("GetTextDimensions" fun "IDLgrClipboard" (system) "Result = Obj->[%s::]%s( TextObj)" ("objects_gr33.html" ("DESCENT" . 1008820) ("PATH" . 1008822))) | 1452 | ("GetTextDimensions" fun "IDLgrClipboard" (system) "Result = Obj->[%s::]%s( TextObj)" ("objects_gr33.html" ("DESCENT" . 1008820) ("PATH" . 1008822))) |
| 1453 | ("Init" fun "IDLgrClipboard" (system) "Result = Obj->[%s::]%s()" ("objects_gr34.html" ) ("objects_gr26.html" ("COLOR_MODEL" . 1050391) ("DIMENSIONS" . 1050395) ("GRAPHICS_TREE" . 1050397) ("N_COLORS" . 1050399) ("PALETTE" . 1050401) ("QUALITY" . 1050403) ("REGISTER_PROPERTIES" . 1050408) ("RESOLUTION " . 1093541) ("UNITS" . 1050439))) | 1453 | ("Init" fun "IDLgrClipboard" (system) "Result = Obj->[%s::]%s()" ("objects_gr34.html" ) ("objects_gr26.html" ("COLOR_MODEL" . 1050391) ("DIMENSIONS" . 1050395) ("GRAPHICS_TREE" . 1050397) ("N_COLORS" . 1050399) ("PALETTE" . 1050401) ("QUALITY" . 1050403) ("REGISTER_PROPERTIES" . 1050408) ("RESOLUTION" . 1093541) ("UNITS" . 1050439))) |
| 1454 | ("Cleanup" pro "IDLgrColorbar" (system) "Obj->[%s::]%s" ("objects_gr38.html")) | 1454 | ("Cleanup" pro "IDLgrColorbar" (system) "Obj->[%s::]%s" ("objects_gr38.html")) |
| 1455 | ("GetProperty" pro "IDLgrColorbar" (system) "Obj->[%s::]%s" ("objects_gr40.html" ) ("objects_gr37.html" ("ALL" . 1050584) ("BLUE_VALUES " . 1050601) ("COLOR " . 1050603) ("DIMENSIONS" . 1050605) ("GREEN_VALUES" . 1050607) ("HIDE" . 1050609) ("MAJOR" . 1050613) ("MINOR" . 1050615) ("PALETTE" . 1050619) ("PARENT" . 1050728) ("RED_VALUES" . 1050726) ("SHOW_AXIS" . 1050623) ("SHOW_OUTLINE" . 1050628) ("SUBTICKLEN" . 1050632) ("THICK" . 1050634) ("THREED " . 1050636) ("TICKFORMAT" . 1050638) ("TICKFRMTDATA" . 1050643) ("TICKLEN" . 1050645) ("TICKTEXT" . 1050647) ("TICKVALUES" . 1050649) ("TITLE " . 1050651) ("XCOORD_CONV" . 1050655) ("XRANGE" . 1050718) ("YCOORD_CONV" . 1050716) ("YRANGE" . 1050708) ("ZCOORD_CONV " . 1050706) ("ZRANGE" . 1050697))) | 1455 | ("GetProperty" pro "IDLgrColorbar" (system) "Obj->[%s::]%s" ("objects_gr40.html" ) ("objects_gr37.html" ("ALL" . 1050584) ("BLUE_VALUES" . 1050601) ("COLOR" . 1050603) ("DIMENSIONS" . 1050605) ("GREEN_VALUES" . 1050607) ("HIDE" . 1050609) ("MAJOR" . 1050613) ("MINOR" . 1050615) ("PALETTE" . 1050619) ("PARENT" . 1050728) ("RED_VALUES" . 1050726) ("SHOW_AXIS" . 1050623) ("SHOW_OUTLINE" . 1050628) ("SUBTICKLEN" . 1050632) ("THICK" . 1050634) ("THREED" . 1050636) ("TICKFORMAT" . 1050638) ("TICKFRMTDATA" . 1050643) ("TICKLEN" . 1050645) ("TICKTEXT" . 1050647) ("TICKVALUES" . 1050649) ("TITLE" . 1050651) ("XCOORD_CONV" . 1050655) ("XRANGE" . 1050718) ("YCOORD_CONV" . 1050716) ("YRANGE" . 1050708) ("ZCOORD_CONV" . 1050706) ("ZRANGE" . 1050697))) |
| 1456 | ("SetProperty" pro "IDLgrColorbar" (system) "Obj->[%s::]%s" ("objects_gr42.html" ) ("objects_gr37.html" ("BLUE_VALUES " . 1050601) ("COLOR " . 1050603) ("DIMENSIONS" . 1050605) ("GREEN_VALUES" . 1050607) ("HIDE" . 1050609) ("MAJOR" . 1050613) ("MINOR" . 1050615) ("PALETTE" . 1050619) ("RED_VALUES" . 1050726) ("SHOW_AXIS" . 1050623) ("SHOW_OUTLINE" . 1050628) ("SUBTICKLEN" . 1050632) ("THICK" . 1050634) ("THREED " . 1050636) ("TICKFORMAT" . 1050638) ("TICKFRMTDATA" . 1050643) ("TICKLEN" . 1050645) ("TICKTEXT" . 1050647) ("TICKVALUES" . 1050649) ("TITLE " . 1050651) ("XCOORD_CONV" . 1050655) ("YCOORD_CONV" . 1050716) ("ZCOORD_CONV " . 1050706))) | 1456 | ("SetProperty" pro "IDLgrColorbar" (system) "Obj->[%s::]%s" ("objects_gr42.html" ) ("objects_gr37.html" ("BLUE_VALUES" . 1050601) ("COLOR" . 1050603) ("DIMENSIONS" . 1050605) ("GREEN_VALUES" . 1050607) ("HIDE" . 1050609) ("MAJOR" . 1050613) ("MINOR" . 1050615) ("PALETTE" . 1050619) ("RED_VALUES" . 1050726) ("SHOW_AXIS" . 1050623) ("SHOW_OUTLINE" . 1050628) ("SUBTICKLEN" . 1050632) ("THICK" . 1050634) ("THREED" . 1050636) ("TICKFORMAT" . 1050638) ("TICKFRMTDATA" . 1050643) ("TICKLEN" . 1050645) ("TICKTEXT" . 1050647) ("TICKVALUES" . 1050649) ("TITLE" . 1050651) ("XCOORD_CONV" . 1050655) ("YCOORD_CONV" . 1050716) ("ZCOORD_CONV" . 1050706))) |
| 1457 | ("ComputeDimensions" fun "IDLgrColorbar" (system) "Result = Obj->[%s::]%s( DestinationObj)" ("objects_gr39.html" ("PATH" . 1009084))) | 1457 | ("ComputeDimensions" fun "IDLgrColorbar" (system) "Result = Obj->[%s::]%s( DestinationObj)" ("objects_gr39.html" ("PATH" . 1009084))) |
| 1458 | ("Init" fun "IDLgrColorbar" (system) "Result = Obj->[%s::]%s([, aRed, aGreen, aBlue])" ("objects_gr41.html" ) ("objects_gr37.html" ("BLUE_VALUES " . 1050601) ("COLOR " . 1050603) ("DIMENSIONS" . 1050605) ("GREEN_VALUES" . 1050607) ("HIDE" . 1050609) ("MAJOR" . 1050613) ("MINOR" . 1050615) ("PALETTE" . 1050619) ("RED_VALUES" . 1050726) ("SHOW_AXIS" . 1050623) ("SHOW_OUTLINE" . 1050628) ("SUBTICKLEN" . 1050632) ("THICK" . 1050634) ("THREED " . 1050636) ("TICKFORMAT" . 1050638) ("TICKFRMTDATA" . 1050643) ("TICKLEN" . 1050645) ("TICKTEXT" . 1050647) ("TICKVALUES" . 1050649) ("TITLE " . 1050651) ("XCOORD_CONV" . 1050655) ("YCOORD_CONV" . 1050716) ("ZCOORD_CONV " . 1050706))) | 1458 | ("Init" fun "IDLgrColorbar" (system) "Result = Obj->[%s::]%s([, aRed, aGreen, aBlue])" ("objects_gr41.html" ) ("objects_gr37.html" ("BLUE_VALUES" . 1050601) ("COLOR" . 1050603) ("DIMENSIONS" . 1050605) ("GREEN_VALUES" . 1050607) ("HIDE" . 1050609) ("MAJOR" . 1050613) ("MINOR" . 1050615) ("PALETTE" . 1050619) ("RED_VALUES" . 1050726) ("SHOW_AXIS" . 1050623) ("SHOW_OUTLINE" . 1050628) ("SUBTICKLEN" . 1050632) ("THICK" . 1050634) ("THREED" . 1050636) ("TICKFORMAT" . 1050638) ("TICKFRMTDATA" . 1050643) ("TICKLEN" . 1050645) ("TICKTEXT" . 1050647) ("TICKVALUES" . 1050649) ("TITLE" . 1050651) ("XCOORD_CONV" . 1050655) ("YCOORD_CONV" . 1050716) ("ZCOORD_CONV" . 1050706))) |
| 1459 | ("AdjustLabelOffsets" pro "IDLgrContour" (system) "Obj->[%s::]%s, LevelIndex, LabelOffsets" ("objects_gr45.html")) | 1459 | ("AdjustLabelOffsets" pro "IDLgrContour" (system) "Obj->[%s::]%s, LevelIndex, LabelOffsets" ("objects_gr45.html")) |
| 1460 | ("Cleanup" pro "IDLgrContour" (system) "Obj->[%s::]%s" ("objects_gr46.html")) | 1460 | ("Cleanup" pro "IDLgrContour" (system) "Obj->[%s::]%s" ("objects_gr46.html")) |
| 1461 | ("GetLabelInfo" pro "IDLgrContour" (system) "Obj->[%s::]%s, Destination, LevelIndex" ("objects_gr48.html" ("LABEL_OBJECTS" . 1009508) ("LABEL_OFFSETS" . 1009503) ("LABEL_POLYLINES" . 1009505))) | 1461 | ("GetLabelInfo" pro "IDLgrContour" (system) "Obj->[%s::]%s, Destination, LevelIndex" ("objects_gr48.html" ("LABEL_OBJECTS" . 1009508) ("LABEL_OFFSETS" . 1009503) ("LABEL_POLYLINES" . 1009505))) |
| 1462 | ("GetProperty" pro "IDLgrContour" (system) "Obj->[%s::]%s" ("objects_gr49.html" ) ("objects_gr44.html" ("ALL" . 1050990) ("ALPHA_CHANNEL" . 1312243) ("AM_PM" . 1051012) ("ANISOTROPY" . 1051014) ("C_COLOR" . 1051029) ("C_FILL_PATTERN" . 1051031) ("C_LABEL_INTERVAL" . 1051033) ("C_LABEL_NOGAPS" . 1051035) ("C_LABEL_OBJECTS" . 1051037) ("C_LABEL_SHOW" . 1051044) ("C_LINESTYLE" . 1051046) ("C_THICK" . 1051056) ("C_USE_LABEL_COLOR" . 1066031) ("C_USE_LABEL_ORIENTATION" . 1051060) ("C_VALUE" . 1051062) ("CLIP_PLANES" . 1051064) ("COLOR" . 1051069) ("DATA_VALUES" . 1051071) ("DAYS_OF_WEEK" . 1051073) ("DEPTH_OFFSET " . 1051075) ("DEPTH_TEST_DISABLE" . 1051081) ("DEPTH_TEST_FUNCTION" . 1093566) ("DEPTH_WRITE_DISABLE" . 1093567) ("DOUBLE_DATA" . 1093568) ("DOUBLE_GEOM" . 1051083) ("DOWNHILL " . 1051085) ("FILL" . 1051087) ("GEOM" . 1051284) ("HIDE" . 1051101) ("LABEL_FONT" . 1051105) ("LABEL_FORMAT" . 1051107) ("LABEL_UNITS" . 1051116) ("MAX_VALUE" . 1051130) ("MIN_VALUE" . 1051134) ("MONTHS " . 1051132) ("N_LEVELS" . 1051138) ("PARENT" . 1051274) ("PLANAR" . 1051272) ("POLYGONS" . 1051144) ("SHADE_RANGE " . 1094439) ("SHADING" . 1051149) ("TICKINTERVAL " . 1051154) ("TICKLEN" . 1051156) ("USE_TEXT_ALIGNMENTS" . 1051158) ("XCOORD_CONV" . 1051162) ("XRANGE" . 1051264) ("YCOORD_CONV" . 1051168) ("YRANGE " . 1051250) ("ZCOORD_CONV " . 1051174) ("ZRANGE" . 1051240))) | 1462 | ("GetProperty" pro "IDLgrContour" (system) "Obj->[%s::]%s" ("objects_gr49.html" ) ("objects_gr44.html" ("ALL" . 1050990) ("ALPHA_CHANNEL" . 1312243) ("AM_PM" . 1051012) ("ANISOTROPY" . 1051014) ("C_COLOR" . 1051029) ("C_FILL_PATTERN" . 1051031) ("C_LABEL_INTERVAL" . 1051033) ("C_LABEL_NOGAPS" . 1051035) ("C_LABEL_OBJECTS" . 1051037) ("C_LABEL_SHOW" . 1051044) ("C_LINESTYLE" . 1051046) ("C_THICK" . 1051056) ("C_USE_LABEL_COLOR" . 1066031) ("C_USE_LABEL_ORIENTATION" . 1051060) ("C_VALUE" . 1051062) ("CLIP_PLANES" . 1051064) ("COLOR" . 1051069) ("DATA_VALUES" . 1051071) ("DAYS_OF_WEEK" . 1051073) ("DEPTH_OFFSET" . 1051075) ("DEPTH_TEST_DISABLE" . 1051081) ("DEPTH_TEST_FUNCTION" . 1093566) ("DEPTH_WRITE_DISABLE" . 1093567) ("DOUBLE_DATA" . 1093568) ("DOUBLE_GEOM" . 1051083) ("DOWNHILL" . 1051085) ("FILL" . 1051087) ("GEOM" . 1051284) ("HIDE" . 1051101) ("LABEL_FONT" . 1051105) ("LABEL_FORMAT" . 1051107) ("LABEL_UNITS" . 1051116) ("MAX_VALUE" . 1051130) ("MIN_VALUE" . 1051134) ("MONTHS" . 1051132) ("N_LEVELS" . 1051138) ("PARENT" . 1051274) ("PLANAR" . 1051272) ("POLYGONS" . 1051144) ("SHADE_RANGE" . 1094439) ("SHADING" . 1051149) ("TICKINTERVAL" . 1051154) ("TICKLEN" . 1051156) ("USE_TEXT_ALIGNMENTS" . 1051158) ("XCOORD_CONV" . 1051162) ("XRANGE" . 1051264) ("YCOORD_CONV" . 1051168) ("YRANGE" . 1051250) ("ZCOORD_CONV" . 1051174) ("ZRANGE" . 1051240))) |
| 1463 | ("SetProperty" pro "IDLgrContour" (system) "Obj->[%s::]%s" ("objects_gr51.html" ) ("objects_gr44.html" ("ALPHA_CHANNEL" . 1312243) ("AM_PM" . 1051012) ("ANISOTROPY" . 1051014) ("C_COLOR" . 1051029) ("C_FILL_PATTERN" . 1051031) ("C_LABEL_INTERVAL" . 1051033) ("C_LABEL_NOGAPS" . 1051035) ("C_LABEL_OBJECTS" . 1051037) ("C_LABEL_SHOW" . 1051044) ("C_LINESTYLE" . 1051046) ("C_THICK" . 1051056) ("C_USE_LABEL_COLOR" . 1066031) ("C_USE_LABEL_ORIENTATION" . 1051060) ("C_VALUE" . 1051062) ("CLIP_PLANES" . 1051064) ("COLOR" . 1051069) ("DATA_VALUES" . 1051071) ("DAYS_OF_WEEK" . 1051073) ("DEPTH_OFFSET " . 1051075) ("DEPTH_TEST_DISABLE" . 1051081) ("DEPTH_TEST_FUNCTION" . 1093566) ("DEPTH_WRITE_DISABLE" . 1093567) ("DOUBLE_DATA" . 1093568) ("DOUBLE_GEOM" . 1051083) ("DOWNHILL " . 1051085) ("FILL" . 1051087) ("GEOMX" . 1051282) ("GEOMY" . 1051091) ("GEOMZ" . 1051093) ("HIDE" . 1051101) ("LABEL_FONT" . 1051105) ("LABEL_FORMAT" . 1051107) ("LABEL_UNITS" . 1051116) ("MAX_VALUE" . 1051130) ("MIN_VALUE" . 1051134) ("MONTHS " . 1051132) ("N_LEVELS" . 1051138) ("PLANAR" . 1051272) ("POLYGONS" . 1051144) ("SHADE_RANGE " . 1094439) ("SHADING" . 1051149) ("TICKINTERVAL " . 1051154) ("TICKLEN" . 1051156) ("USE_TEXT_ALIGNMENTS" . 1051158) ("XCOORD_CONV" . 1051162) ("YCOORD_CONV" . 1051168) ("ZCOORD_CONV " . 1051174))) | 1463 | ("SetProperty" pro "IDLgrContour" (system) "Obj->[%s::]%s" ("objects_gr51.html" ) ("objects_gr44.html" ("ALPHA_CHANNEL" . 1312243) ("AM_PM" . 1051012) ("ANISOTROPY" . 1051014) ("C_COLOR" . 1051029) ("C_FILL_PATTERN" . 1051031) ("C_LABEL_INTERVAL" . 1051033) ("C_LABEL_NOGAPS" . 1051035) ("C_LABEL_OBJECTS" . 1051037) ("C_LABEL_SHOW" . 1051044) ("C_LINESTYLE" . 1051046) ("C_THICK" . 1051056) ("C_USE_LABEL_COLOR" . 1066031) ("C_USE_LABEL_ORIENTATION" . 1051060) ("C_VALUE" . 1051062) ("CLIP_PLANES" . 1051064) ("COLOR" . 1051069) ("DATA_VALUES" . 1051071) ("DAYS_OF_WEEK" . 1051073) ("DEPTH_OFFSET" . 1051075) ("DEPTH_TEST_DISABLE" . 1051081) ("DEPTH_TEST_FUNCTION" . 1093566) ("DEPTH_WRITE_DISABLE" . 1093567) ("DOUBLE_DATA" . 1093568) ("DOUBLE_GEOM" . 1051083) ("DOWNHILL" . 1051085) ("FILL" . 1051087) ("GEOMX" . 1051282) ("GEOMY" . 1051091) ("GEOMZ" . 1051093) ("HIDE" . 1051101) ("LABEL_FONT" . 1051105) ("LABEL_FORMAT" . 1051107) ("LABEL_UNITS" . 1051116) ("MAX_VALUE" . 1051130) ("MIN_VALUE" . 1051134) ("MONTHS" . 1051132) ("N_LEVELS" . 1051138) ("PLANAR" . 1051272) ("POLYGONS" . 1051144) ("SHADE_RANGE" . 1094439) ("SHADING" . 1051149) ("TICKINTERVAL" . 1051154) ("TICKLEN" . 1051156) ("USE_TEXT_ALIGNMENTS" . 1051158) ("XCOORD_CONV" . 1051162) ("YCOORD_CONV" . 1051168) ("ZCOORD_CONV" . 1051174))) |
| 1464 | ("GetCTM" fun "IDLgrContour" (system) "Result = Obj->[%s::]%s()" ("objects_gr47.html" ("DESTINATION" . 1009456) ("PATH" . 1009458) ("TOP" . 1009464))) | 1464 | ("GetCTM" fun "IDLgrContour" (system) "Result = Obj->[%s::]%s()" ("objects_gr47.html" ("DESTINATION" . 1009456) ("PATH" . 1009458) ("TOP" . 1009464))) |
| 1465 | ("Init" fun "IDLgrContour" (system) "Result = Obj->[%s::]%s([, Values])" ("objects_gr50.html" ) ("objects_gr44.html" ("ALPHA_CHANNEL" . 1312243) ("AM_PM" . 1051012) ("ANISOTROPY" . 1051014) ("C_COLOR" . 1051029) ("C_FILL_PATTERN" . 1051031) ("C_LABEL_INTERVAL" . 1051033) ("C_LABEL_NOGAPS" . 1051035) ("C_LABEL_OBJECTS" . 1051037) ("C_LABEL_SHOW" . 1051044) ("C_LINESTYLE" . 1051046) ("C_THICK" . 1051056) ("C_USE_LABEL_COLOR" . 1066031) ("C_USE_LABEL_ORIENTATION" . 1051060) ("C_VALUE" . 1051062) ("CLIP_PLANES" . 1051064) ("COLOR" . 1051069) ("DATA_VALUES" . 1051071) ("DAYS_OF_WEEK" . 1051073) ("DEPTH_OFFSET " . 1051075) ("DEPTH_TEST_DISABLE" . 1051081) ("DEPTH_TEST_FUNCTION" . 1093566) ("DEPTH_WRITE_DISABLE" . 1093567) ("DOUBLE_DATA" . 1093568) ("DOUBLE_GEOM" . 1051083) ("DOWNHILL " . 1051085) ("FILL" . 1051087) ("GEOMX" . 1051282) ("GEOMY" . 1051091) ("GEOMZ" . 1051093) ("HIDE" . 1051101) ("LABEL_FONT" . 1051105) ("LABEL_FORMAT" . 1051107) ("LABEL_FRMTDATA " . 1051113) ("LABEL_UNITS" . 1051116) ("MAX_VALUE" . 1051130) ("MIN_VALUE" . 1051134) ("MONTHS " . 1051132) ("N_LEVELS" . 1051138) ("PALETTE " . 1051140) ("PLANAR" . 1051272) ("POLYGONS" . 1051144) ("REGISTER_PROPERTIES" . 1051147) ("SHADE_RANGE " . 1094439) ("SHADING" . 1051149) ("TICKINTERVAL " . 1051154) ("TICKLEN" . 1051156) ("USE_TEXT_ALIGNMENTS" . 1051158) ("XCOORD_CONV" . 1051162) ("YCOORD_CONV" . 1051168) ("ZCOORD_CONV " . 1051174))) | 1465 | ("Init" fun "IDLgrContour" (system) "Result = Obj->[%s::]%s([, Values])" ("objects_gr50.html" ) ("objects_gr44.html" ("ALPHA_CHANNEL" . 1312243) ("AM_PM" . 1051012) ("ANISOTROPY" . 1051014) ("C_COLOR" . 1051029) ("C_FILL_PATTERN" . 1051031) ("C_LABEL_INTERVAL" . 1051033) ("C_LABEL_NOGAPS" . 1051035) ("C_LABEL_OBJECTS" . 1051037) ("C_LABEL_SHOW" . 1051044) ("C_LINESTYLE" . 1051046) ("C_THICK" . 1051056) ("C_USE_LABEL_COLOR" . 1066031) ("C_USE_LABEL_ORIENTATION" . 1051060) ("C_VALUE" . 1051062) ("CLIP_PLANES" . 1051064) ("COLOR" . 1051069) ("DATA_VALUES" . 1051071) ("DAYS_OF_WEEK" . 1051073) ("DEPTH_OFFSET" . 1051075) ("DEPTH_TEST_DISABLE" . 1051081) ("DEPTH_TEST_FUNCTION" . 1093566) ("DEPTH_WRITE_DISABLE" . 1093567) ("DOUBLE_DATA" . 1093568) ("DOUBLE_GEOM" . 1051083) ("DOWNHILL" . 1051085) ("FILL" . 1051087) ("GEOMX" . 1051282) ("GEOMY" . 1051091) ("GEOMZ" . 1051093) ("HIDE" . 1051101) ("LABEL_FONT" . 1051105) ("LABEL_FORMAT" . 1051107) ("LABEL_FRMTDATA" . 1051113) ("LABEL_UNITS" . 1051116) ("MAX_VALUE" . 1051130) ("MIN_VALUE" . 1051134) ("MONTHS" . 1051132) ("N_LEVELS" . 1051138) ("PALETTE" . 1051140) ("PLANAR" . 1051272) ("POLYGONS" . 1051144) ("REGISTER_PROPERTIES" . 1051147) ("SHADE_RANGE" . 1094439) ("SHADING" . 1051149) ("TICKINTERVAL" . 1051154) ("TICKLEN" . 1051156) ("USE_TEXT_ALIGNMENTS" . 1051158) ("XCOORD_CONV" . 1051162) ("YCOORD_CONV" . 1051168) ("ZCOORD_CONV" . 1051174))) |
| 1466 | ("Cleanup" pro "IDLgrFont" (system) "Obj->[%s::]%s" ("objects_gr54.html")) | 1466 | ("Cleanup" pro "IDLgrFont" (system) "Obj->[%s::]%s" ("objects_gr54.html")) |
| 1467 | ("GetProperty" pro "IDLgrFont" (system) "Obj->[%s::]%s" ("objects_gr55.html" ) ("objects_gr53.html" ("ALL" . 1051913) ("SIZE" . 1051936) ("SUBSTITUTE" . 1051938) ("THICK" . 1051940))) | 1467 | ("GetProperty" pro "IDLgrFont" (system) "Obj->[%s::]%s" ("objects_gr55.html" ) ("objects_gr53.html" ("ALL" . 1051913) ("SIZE" . 1051936) ("SUBSTITUTE" . 1051938) ("THICK" . 1051940))) |
| 1468 | ("SetProperty" pro "IDLgrFont" (system) "Obj->[%s::]%s" ("objects_gr57.html" ) ("objects_gr53.html" ("SIZE" . 1051936) ("SUBSTITUTE" . 1051938) ("THICK" . 1051940))) | 1468 | ("SetProperty" pro "IDLgrFont" (system) "Obj->[%s::]%s" ("objects_gr57.html" ) ("objects_gr53.html" ("SIZE" . 1051936) ("SUBSTITUTE" . 1051938) ("THICK" . 1051940))) |
| 1469 | ("Init" fun "IDLgrFont" (system) "Result = Obj->[%s::]%s([, Fontname])" ("objects_gr56.html" ) ("objects_gr53.html" ("SIZE" . 1051936) ("SUBSTITUTE" . 1051938) ("THICK" . 1051940))) | 1469 | ("Init" fun "IDLgrFont" (system) "Result = Obj->[%s::]%s([, Fontname])" ("objects_gr56.html" ) ("objects_gr53.html" ("SIZE" . 1051936) ("SUBSTITUTE" . 1051938) ("THICK" . 1051940))) |
| 1470 | ("Cleanup" pro "IDLgrImage" (system) "Obj->[%s::]%s" ("objects_gr60.html")) | 1470 | ("Cleanup" pro "IDLgrImage" (system) "Obj->[%s::]%s" ("objects_gr60.html")) |
| 1471 | ("GetProperty" pro "IDLgrImage" (system) "Obj->[%s::]%s" ("objects_gr62.html" ) ("objects_gr59.html" ("ALL " . 1052050) ("BLEND_FUNCTION" . 1052068) ("CHANNEL" . 1052124) ("CLIP_PLANES" . 1287882) ("DATA" . 1052132) ("DEPTH_TEST_DISABLE" . 1095165) ("DEPTH_TEST_FUNCTION" . 1095212) ("DEPTH_WRITE_DISABLE" . 1095251) ("DIMENSIONS" . 1095169) ("GREYSCALE" . 1052136) ("HIDE" . 1052140) ("INTERLEAVE" . 1052144) ("INTERPOLATE" . 1052150) ("LOCATION" . 1052152) ("NO_COPY" . 1052156) ("ORDER" . 1052158) ("PALETTE " . 1052160) ("PARENT" . 1052253) ("SUB_RECT" . 1052171) ("XCOORD_CONV" . 1052175) ("XRANGE" . 1052243) ("YCOORD_CONV" . 1052181) ("YRANGE" . 1052233) ("ZCOORD_CONV" . 1052187) ("ZRANGE" . 1052223))) | 1471 | ("GetProperty" pro "IDLgrImage" (system) "Obj->[%s::]%s" ("objects_gr62.html" ) ("objects_gr59.html" ("ALL" . 1052050) ("BLEND_FUNCTION" . 1052068) ("CHANNEL" . 1052124) ("CLIP_PLANES" . 1287882) ("DATA" . 1052132) ("DEPTH_TEST_DISABLE" . 1095165) ("DEPTH_TEST_FUNCTION" . 1095212) ("DEPTH_WRITE_DISABLE" . 1095251) ("DIMENSIONS" . 1095169) ("GREYSCALE" . 1052136) ("HIDE" . 1052140) ("INTERLEAVE" . 1052144) ("INTERPOLATE" . 1052150) ("LOCATION" . 1052152) ("NO_COPY" . 1052156) ("ORDER" . 1052158) ("PALETTE" . 1052160) ("PARENT" . 1052253) ("SUB_RECT" . 1052171) ("XCOORD_CONV" . 1052175) ("XRANGE" . 1052243) ("YCOORD_CONV" . 1052181) ("YRANGE" . 1052233) ("ZCOORD_CONV" . 1052187) ("ZRANGE" . 1052223))) |
| 1472 | ("SetProperty" pro "IDLgrImage" (system) "Obj->[%s::]%s" ("objects_gr64.html" ) ("objects_gr59.html" ("BLEND_FUNCTION" . 1052068) ("CHANNEL" . 1052124) ("CLIP_PLANES" . 1287882) ("DATA" . 1052132) ("DEPTH_TEST_DISABLE" . 1095165) ("DEPTH_TEST_FUNCTION" . 1095212) ("DEPTH_WRITE_DISABLE" . 1095251) ("DIMENSIONS" . 1095169) ("GREYSCALE" . 1052136) ("HIDE" . 1052140) ("INTERLEAVE" . 1052144) ("INTERPOLATE" . 1052150) ("LOCATION" . 1052152) ("NO_COPY" . 1052156) ("ORDER" . 1052158) ("PALETTE " . 1052160) ("RESET_DATA " . 1093772) ("SHARE_DATA" . 1052169) ("SUB_RECT" . 1052171) ("XCOORD_CONV" . 1052175) ("YCOORD_CONV" . 1052181) ("ZCOORD_CONV" . 1052187))) | 1472 | ("SetProperty" pro "IDLgrImage" (system) "Obj->[%s::]%s" ("objects_gr64.html" ) ("objects_gr59.html" ("BLEND_FUNCTION" . 1052068) ("CHANNEL" . 1052124) ("CLIP_PLANES" . 1287882) ("DATA" . 1052132) ("DEPTH_TEST_DISABLE" . 1095165) ("DEPTH_TEST_FUNCTION" . 1095212) ("DEPTH_WRITE_DISABLE" . 1095251) ("DIMENSIONS" . 1095169) ("GREYSCALE" . 1052136) ("HIDE" . 1052140) ("INTERLEAVE" . 1052144) ("INTERPOLATE" . 1052150) ("LOCATION" . 1052152) ("NO_COPY" . 1052156) ("ORDER" . 1052158) ("PALETTE" . 1052160) ("RESET_DATA" . 1093772) ("SHARE_DATA" . 1052169) ("SUB_RECT" . 1052171) ("XCOORD_CONV" . 1052175) ("YCOORD_CONV" . 1052181) ("ZCOORD_CONV" . 1052187))) |
| 1473 | ("GetCTM" fun "IDLgrImage" (system) "Result = Obj->[%s::]%s()" ("objects_gr61.html" ("DESTINATION" . 1010164) ("PATH" . 1010166) ("TOP" . 1010172))) | 1473 | ("GetCTM" fun "IDLgrImage" (system) "Result = Obj->[%s::]%s()" ("objects_gr61.html" ("DESTINATION" . 1010164) ("PATH" . 1010166) ("TOP" . 1010172))) |
| 1474 | ("Init" fun "IDLgrImage" (system) "Result = Obj->[%s::]%s([, ImageData])" ("objects_gr63.html" ) ("objects_gr59.html" ("BLEND_FUNCTION" . 1052068) ("CHANNEL" . 1052124) ("CLIP_PLANES" . 1287882) ("DATA" . 1052132) ("DEPTH_TEST_DISABLE" . 1095165) ("DEPTH_TEST_FUNCTION" . 1095212) ("DEPTH_WRITE_DISABLE" . 1095251) ("DIMENSIONS" . 1095169) ("GREYSCALE" . 1052136) ("HIDE" . 1052140) ("INTERLEAVE" . 1052144) ("INTERPOLATE" . 1052150) ("LOCATION" . 1052152) ("NO_COPY" . 1052156) ("ORDER" . 1052158) ("PALETTE " . 1052160) ("REGISTER_PROPERTIES" . 1052251) ("RESET_DATA " . 1093772) ("SHARE_DATA" . 1052169) ("SUB_RECT" . 1052171) ("XCOORD_CONV" . 1052175) ("YCOORD_CONV" . 1052181) ("ZCOORD_CONV" . 1052187))) | 1474 | ("Init" fun "IDLgrImage" (system) "Result = Obj->[%s::]%s([, ImageData])" ("objects_gr63.html" ) ("objects_gr59.html" ("BLEND_FUNCTION" . 1052068) ("CHANNEL" . 1052124) ("CLIP_PLANES" . 1287882) ("DATA" . 1052132) ("DEPTH_TEST_DISABLE" . 1095165) ("DEPTH_TEST_FUNCTION" . 1095212) ("DEPTH_WRITE_DISABLE" . 1095251) ("DIMENSIONS" . 1095169) ("GREYSCALE" . 1052136) ("HIDE" . 1052140) ("INTERLEAVE" . 1052144) ("INTERPOLATE" . 1052150) ("LOCATION" . 1052152) ("NO_COPY" . 1052156) ("ORDER" . 1052158) ("PALETTE" . 1052160) ("REGISTER_PROPERTIES" . 1052251) ("RESET_DATA" . 1093772) ("SHARE_DATA" . 1052169) ("SUB_RECT" . 1052171) ("XCOORD_CONV" . 1052175) ("YCOORD_CONV" . 1052181) ("ZCOORD_CONV" . 1052187))) |
| 1475 | ("Cleanup" pro "IDLgrLegend" (system) "Obj->[%s::]%s" ("objects_gr67.html")) | 1475 | ("Cleanup" pro "IDLgrLegend" (system) "Obj->[%s::]%s" ("objects_gr67.html")) |
| 1476 | ("GetProperty" pro "IDLgrLegend" (system) "Obj->[%s::]%s" ("objects_gr69.html" ) ("objects_gr66.html" ("ALL " . 1053896) ("BORDER_GAP" . 1053903) ("COLUMNS" . 1053905) ("FILL_COLOR" . 1053907) ("FONT" . 1053909) ("GAP" . 1053912) ("GLYPH_WIDTH" . 1053914) ("HIDE" . 1053916) ("ITEM_COLOR" . 1069308) ("ITEM_LINESTYLE " . 1053922) ("ITEM_NAME" . 1053935) ("ITEM_OBJECT " . 1053937) ("ITEM_THICK" . 1053940) ("ITEM_TYPE" . 1053942) ("OUTLINE_COLOR " . 1053948) ("OUTLINE_THICK" . 1053950) ("PARENT" . 1055362) ("SHOW_FILL" . 1053952) ("SHOW_OUTLINE " . 1053956) ("TEXT_COLOR " . 1053960) ("TITLE" . 1053962) ("XCOORD_CONV " . 1053966) ("XRANGE " . 1055399) ("YCOORD_CONV " . 1053972) ("YRANGE " . 1055389) ("ZCOORD_CONV" . 1053978) ("ZRANGE" . 1070059))) | 1476 | ("GetProperty" pro "IDLgrLegend" (system) "Obj->[%s::]%s" ("objects_gr69.html" ) ("objects_gr66.html" ("ALL" . 1053896) ("BORDER_GAP" . 1053903) ("COLUMNS" . 1053905) ("FILL_COLOR" . 1053907) ("FONT" . 1053909) ("GAP" . 1053912) ("GLYPH_WIDTH" . 1053914) ("HIDE" . 1053916) ("ITEM_COLOR" . 1069308) ("ITEM_LINESTYLE" . 1053922) ("ITEM_NAME" . 1053935) ("ITEM_OBJECT" . 1053937) ("ITEM_THICK" . 1053940) ("ITEM_TYPE" . 1053942) ("OUTLINE_COLOR" . 1053948) ("OUTLINE_THICK" . 1053950) ("PARENT" . 1055362) ("SHOW_FILL" . 1053952) ("SHOW_OUTLINE" . 1053956) ("TEXT_COLOR" . 1053960) ("TITLE" . 1053962) ("XCOORD_CONV" . 1053966) ("XRANGE" . 1055399) ("YCOORD_CONV" . 1053972) ("YRANGE" . 1055389) ("ZCOORD_CONV" . 1053978) ("ZRANGE" . 1070059))) |
| 1477 | ("SetProperty" pro "IDLgrLegend" (system) "Obj->[%s::]%s" ("objects_gr71.html" ) ("objects_gr66.html" ("BORDER_GAP" . 1053903) ("COLUMNS" . 1053905) ("FILL_COLOR" . 1053907) ("FONT" . 1053909) ("GAP" . 1053912) ("GLYPH_WIDTH" . 1053914) ("HIDE" . 1053916) ("ITEM_COLOR" . 1069308) ("ITEM_LINESTYLE " . 1053922) ("ITEM_NAME" . 1053935) ("ITEM_OBJECT " . 1053937) ("ITEM_THICK" . 1053940) ("ITEM_TYPE" . 1053942) ("OUTLINE_COLOR " . 1053948) ("OUTLINE_THICK" . 1053950) ("RECOMPUTE " . 1055360) ("SHOW_FILL" . 1053952) ("SHOW_OUTLINE " . 1053956) ("TEXT_COLOR " . 1053960) ("TITLE" . 1053962) ("XCOORD_CONV " . 1053966) ("YCOORD_CONV " . 1053972) ("ZCOORD_CONV" . 1053978))) | 1477 | ("SetProperty" pro "IDLgrLegend" (system) "Obj->[%s::]%s" ("objects_gr71.html" ) ("objects_gr66.html" ("BORDER_GAP" . 1053903) ("COLUMNS" . 1053905) ("FILL_COLOR" . 1053907) ("FONT" . 1053909) ("GAP" . 1053912) ("GLYPH_WIDTH" . 1053914) ("HIDE" . 1053916) ("ITEM_COLOR" . 1069308) ("ITEM_LINESTYLE" . 1053922) ("ITEM_NAME" . 1053935) ("ITEM_OBJECT" . 1053937) ("ITEM_THICK" . 1053940) ("ITEM_TYPE" . 1053942) ("OUTLINE_COLOR" . 1053948) ("OUTLINE_THICK" . 1053950) ("RECOMPUTE" . 1055360) ("SHOW_FILL" . 1053952) ("SHOW_OUTLINE" . 1053956) ("TEXT_COLOR" . 1053960) ("TITLE" . 1053962) ("XCOORD_CONV" . 1053966) ("YCOORD_CONV" . 1053972) ("ZCOORD_CONV" . 1053978))) |
| 1478 | ("ComputeDimensions" fun "IDLgrLegend" (system) "Result = Obj->[%s::]%s( DestinationObject)" ("objects_gr68.html" ("PATH" . 1010563))) | 1478 | ("ComputeDimensions" fun "IDLgrLegend" (system) "Result = Obj->[%s::]%s( DestinationObject)" ("objects_gr68.html" ("PATH" . 1010563))) |
| 1479 | ("Init" fun "IDLgrLegend" (system) "Result = Obj->[%s::]%s([, aItemNames])" ("objects_gr70.html" ) ("objects_gr66.html" ("BORDER_GAP" . 1053903) ("COLUMNS" . 1053905) ("FILL_COLOR" . 1053907) ("FONT" . 1053909) ("GAP" . 1053912) ("GLYPH_WIDTH" . 1053914) ("HIDE" . 1053916) ("ITEM_COLOR" . 1069308) ("ITEM_LINESTYLE " . 1053922) ("ITEM_NAME" . 1053935) ("ITEM_OBJECT " . 1053937) ("ITEM_THICK" . 1053940) ("ITEM_TYPE" . 1053942) ("OUTLINE_COLOR " . 1053948) ("OUTLINE_THICK" . 1053950) ("SHOW_FILL" . 1053952) ("SHOW_OUTLINE " . 1053956) ("TEXT_COLOR " . 1053960) ("TITLE" . 1053962) ("XCOORD_CONV " . 1053966) ("YCOORD_CONV " . 1053972) ("ZCOORD_CONV" . 1053978))) | 1479 | ("Init" fun "IDLgrLegend" (system) "Result = Obj->[%s::]%s([, aItemNames])" ("objects_gr70.html" ) ("objects_gr66.html" ("BORDER_GAP" . 1053903) ("COLUMNS" . 1053905) ("FILL_COLOR" . 1053907) ("FONT" . 1053909) ("GAP" . 1053912) ("GLYPH_WIDTH" . 1053914) ("HIDE" . 1053916) ("ITEM_COLOR" . 1069308) ("ITEM_LINESTYLE" . 1053922) ("ITEM_NAME" . 1053935) ("ITEM_OBJECT" . 1053937) ("ITEM_THICK" . 1053940) ("ITEM_TYPE" . 1053942) ("OUTLINE_COLOR" . 1053948) ("OUTLINE_THICK" . 1053950) ("SHOW_FILL" . 1053952) ("SHOW_OUTLINE" . 1053956) ("TEXT_COLOR" . 1053960) ("TITLE" . 1053962) ("XCOORD_CONV" . 1053966) ("YCOORD_CONV" . 1053972) ("ZCOORD_CONV" . 1053978))) |
| 1480 | ("Cleanup" pro "IDLgrLight" (system) "Obj->[%s::]%s" ("objects_gr74.html")) | 1480 | ("Cleanup" pro "IDLgrLight" (system) "Obj->[%s::]%s" ("objects_gr74.html")) |
| 1481 | ("GetProperty" pro "IDLgrLight" (system) "Obj->[%s::]%s" ("objects_gr76.html" ) ("objects_gr73.html" ("ALL" . 1055555) ("ATTENUATION " . 1055572) ("COLOR" . 1055581) ("CONEANGLE" . 1055583) ("DIRECTION" . 1055585) ("FOCUS" . 1055588) ("HIDE" . 1055590) ("INTENSITY" . 1055595) ("LOCATION" . 1055597) ("PALETTE" . 1088211) ("PARENT" . 1055635) ("TYPE" . 1093801) ("XCOORD_CONV " . 1055609) ("YCOORD_CONV" . 1055615) ("ZCOORD_CONV " . 1055621))) | 1481 | ("GetProperty" pro "IDLgrLight" (system) "Obj->[%s::]%s" ("objects_gr76.html" ) ("objects_gr73.html" ("ALL" . 1055555) ("ATTENUATION" . 1055572) ("COLOR" . 1055581) ("CONEANGLE" . 1055583) ("DIRECTION" . 1055585) ("FOCUS" . 1055588) ("HIDE" . 1055590) ("INTENSITY" . 1055595) ("LOCATION" . 1055597) ("PALETTE" . 1088211) ("PARENT" . 1055635) ("TYPE" . 1093801) ("XCOORD_CONV" . 1055609) ("YCOORD_CONV" . 1055615) ("ZCOORD_CONV" . 1055621))) |
| 1482 | ("SetProperty" pro "IDLgrLight" (system) "Obj->[%s::]%s" ("objects_gr78.html" ) ("objects_gr73.html" ("ATTENUATION " . 1055572) ("COLOR" . 1055581) ("CONEANGLE" . 1055583) ("DIRECTION" . 1055585) ("FOCUS" . 1055588) ("HIDE" . 1055590) ("INTENSITY" . 1055595) ("LOCATION" . 1055597) ("PALETTE" . 1088211) ("TYPE" . 1093801) ("XCOORD_CONV " . 1055609) ("YCOORD_CONV" . 1055615) ("ZCOORD_CONV " . 1055621))) | 1482 | ("SetProperty" pro "IDLgrLight" (system) "Obj->[%s::]%s" ("objects_gr78.html" ) ("objects_gr73.html" ("ATTENUATION" . 1055572) ("COLOR" . 1055581) ("CONEANGLE" . 1055583) ("DIRECTION" . 1055585) ("FOCUS" . 1055588) ("HIDE" . 1055590) ("INTENSITY" . 1055595) ("LOCATION" . 1055597) ("PALETTE" . 1088211) ("TYPE" . 1093801) ("XCOORD_CONV" . 1055609) ("YCOORD_CONV" . 1055615) ("ZCOORD_CONV" . 1055621))) |
| 1483 | ("GetCTM" fun "IDLgrLight" (system) "Result = Obj->[%s::]%s()" ("objects_gr75.html" ("DESTINATION" . 1010900) ("PATH" . 1010902) ("TOP" . 1010908))) | 1483 | ("GetCTM" fun "IDLgrLight" (system) "Result = Obj->[%s::]%s()" ("objects_gr75.html" ("DESTINATION" . 1010900) ("PATH" . 1010902) ("TOP" . 1010908))) |
| 1484 | ("Init" fun "IDLgrLight" (system) "Result = Obj->[%s::]%s()" ("objects_gr77.html" ) ("objects_gr73.html" ("ATTENUATION " . 1055572) ("COLOR" . 1055581) ("CONEANGLE" . 1055583) ("DIRECTION" . 1055585) ("FOCUS" . 1055588) ("HIDE" . 1055590) ("INTENSITY" . 1055595) ("LOCATION" . 1055597) ("PALETTE" . 1088211) ("REGISTER_PROPERTIES" . 1088158) ("TYPE" . 1093801) ("XCOORD_CONV " . 1055609) ("YCOORD_CONV" . 1055615) ("ZCOORD_CONV " . 1055621))) | 1484 | ("Init" fun "IDLgrLight" (system) "Result = Obj->[%s::]%s()" ("objects_gr77.html" ) ("objects_gr73.html" ("ATTENUATION" . 1055572) ("COLOR" . 1055581) ("CONEANGLE" . 1055583) ("DIRECTION" . 1055585) ("FOCUS" . 1055588) ("HIDE" . 1055590) ("INTENSITY" . 1055595) ("LOCATION" . 1055597) ("PALETTE" . 1088211) ("REGISTER_PROPERTIES" . 1088158) ("TYPE" . 1093801) ("XCOORD_CONV" . 1055609) ("YCOORD_CONV" . 1055615) ("ZCOORD_CONV" . 1055621))) |
| 1485 | ("Add" pro "IDLgrModel" (system) "Obj->[%s::]%s, Object" ("objects_gr81.html" ("ALIAS" . 1011206) ("POSITION" . 1011208))) | 1485 | ("Add" pro "IDLgrModel" (system) "Obj->[%s::]%s, Object" ("objects_gr81.html" ("ALIAS" . 1011206) ("POSITION" . 1011208))) |
| 1486 | ("Cleanup" pro "IDLgrModel" (system) "Obj->[%s::]%s" ("objects_gr82.html")) | 1486 | ("Cleanup" pro "IDLgrModel" (system) "Obj->[%s::]%s" ("objects_gr82.html")) |
| 1487 | ("Draw" pro "IDLgrModel" (system) "Obj->[%s::]%s, Destination, Picture" ("objects_gr83.html")) | 1487 | ("Draw" pro "IDLgrModel" (system) "Obj->[%s::]%s, Destination, Picture" ("objects_gr83.html")) |
| 1488 | ("GetProperty" pro "IDLgrModel" (system) "Obj->[%s::]%s" ("objects_gr86.html" ) ("objects_gr80.html" ("ALL " . 1055726) ("CLIP_PLANES " . 1055740) ("DEPTH_TEST_DISABLE" . 1094976) ("DEPTH_TEST_FUNCTION" . 1095322) ("DEPTH_WRITE_DISABLE" . 1095361) ("HIDE " . 1088312) ("LIGHTING" . 1055751) ("PARENT " . 1055781) ("SELECT_TARGET " . 1093831) ("TRANSFORM " . 1055764))) | 1488 | ("GetProperty" pro "IDLgrModel" (system) "Obj->[%s::]%s" ("objects_gr86.html" ) ("objects_gr80.html" ("ALL" . 1055726) ("CLIP_PLANES" . 1055740) ("DEPTH_TEST_DISABLE" . 1094976) ("DEPTH_TEST_FUNCTION" . 1095322) ("DEPTH_WRITE_DISABLE" . 1095361) ("HIDE" . 1088312) ("LIGHTING" . 1055751) ("PARENT" . 1055781) ("SELECT_TARGET" . 1093831) ("TRANSFORM" . 1055764))) |
| 1489 | ("Reset" pro "IDLgrModel" (system) "Obj->[%s::]%s" ("objects_gr88.html")) | 1489 | ("Reset" pro "IDLgrModel" (system) "Obj->[%s::]%s" ("objects_gr88.html")) |
| 1490 | ("Rotate" pro "IDLgrModel" (system) "Obj->[%s::]%s, Axis, Angle" ("objects_gr89.html" ("PREMULTIPLY" . 1011584))) | 1490 | ("Rotate" pro "IDLgrModel" (system) "Obj->[%s::]%s, Axis, Angle" ("objects_gr89.html" ("PREMULTIPLY" . 1011584))) |
| 1491 | ("Scale" pro "IDLgrModel" (system) "Obj->[%s::]%s, Sx, Sy, Sz" ("objects_gr90.html" ("PREMULTIPLY" . 1011618))) | 1491 | ("Scale" pro "IDLgrModel" (system) "Obj->[%s::]%s, Sx, Sy, Sz" ("objects_gr90.html" ("PREMULTIPLY" . 1011618))) |
| 1492 | ("SetProperty" pro "IDLgrModel" (system) "Obj->[%s::]%s" ("objects_gr91.html" ) ("objects_gr80.html" ("CLIP_PLANES " . 1055740) ("DEPTH_TEST_DISABLE" . 1094976) ("DEPTH_TEST_FUNCTION" . 1095322) ("DEPTH_WRITE_DISABLE" . 1095361) ("HIDE " . 1088312) ("LIGHTING" . 1055751) ("SELECT_TARGET " . 1093831) ("TRANSFORM " . 1055764))) | 1492 | ("SetProperty" pro "IDLgrModel" (system) "Obj->[%s::]%s" ("objects_gr91.html" ) ("objects_gr80.html" ("CLIP_PLANES" . 1055740) ("DEPTH_TEST_DISABLE" . 1094976) ("DEPTH_TEST_FUNCTION" . 1095322) ("DEPTH_WRITE_DISABLE" . 1095361) ("HIDE" . 1088312) ("LIGHTING" . 1055751) ("SELECT_TARGET" . 1093831) ("TRANSFORM" . 1055764))) |
| 1493 | ("Translate" pro "IDLgrModel" (system) "Obj->[%s::]%s, Tx, Ty, Tz" ("objects_gr92.html" ("PREMULTIPLY" . 1011687))) | 1493 | ("Translate" pro "IDLgrModel" (system) "Obj->[%s::]%s, Tx, Ty, Tz" ("objects_gr92.html" ("PREMULTIPLY" . 1011687))) |
| 1494 | ("GetByName" fun "IDLgrModel" (system) "Result = Obj->[%s::]%s(Name)" ("objects_gr84.html")) | 1494 | ("GetByName" fun "IDLgrModel" (system) "Result = Obj->[%s::]%s(Name)" ("objects_gr84.html")) |
| 1495 | ("GetCTM" fun "IDLgrModel" (system) "Result = Obj->[%s::]%s()" ("objects_gr85.html" ("DESTINATION" . 1011369) ("PATH" . 1011371) ("TOP" . 1011377))) | 1495 | ("GetCTM" fun "IDLgrModel" (system) "Result = Obj->[%s::]%s()" ("objects_gr85.html" ("DESTINATION" . 1011369) ("PATH" . 1011371) ("TOP" . 1011377))) |
| 1496 | ("Init" fun "IDLgrModel" (system) "Result = Obj->[%s::]%s()" ("objects_gr87.html" ) ("objects_gr80.html" ("CLIP_PLANES " . 1055740) ("DEPTH_TEST_DISABLE" . 1094976) ("DEPTH_TEST_FUNCTION" . 1095322) ("DEPTH_WRITE_DISABLE" . 1095361) ("HIDE " . 1088312) ("LIGHTING" . 1055751) ("REGISTER_PROPERTIES" . 1055779) ("SELECT_TARGET " . 1093831) ("TRANSFORM " . 1055764))) | 1496 | ("Init" fun "IDLgrModel" (system) "Result = Obj->[%s::]%s()" ("objects_gr87.html" ) ("objects_gr80.html" ("CLIP_PLANES" . 1055740) ("DEPTH_TEST_DISABLE" . 1094976) ("DEPTH_TEST_FUNCTION" . 1095322) ("DEPTH_WRITE_DISABLE" . 1095361) ("HIDE" . 1088312) ("LIGHTING" . 1055751) ("REGISTER_PROPERTIES" . 1055779) ("SELECT_TARGET" . 1093831) ("TRANSFORM" . 1055764))) |
| 1497 | ("Cleanup" pro "IDLgrMPEG" (system) "Obj->[%s::]%s" ("objects_gr95.html")) | 1497 | ("Cleanup" pro "IDLgrMPEG" (system) "Obj->[%s::]%s" ("objects_gr95.html")) |
| 1498 | ("GetProperty" pro "IDLgrMPEG" (system) "Obj->[%s::]%s" ("objects_gr96.html" ) ("objects_gr94.html" ("ALL " . 1055838) ("BITRATE " . 1055845) ("FILENAME" . 1055875) ("FORMAT " . 1055877) ("FRAME_RATE " . 1055881) ("IFRAME_GAP" . 1055927) ("INTERLACED" . 1055934) ("MOTION_VEC_LENGTH" . 1055936) ("QUALITY" . 1055964) ("SCALE" . 1055967) ("STATISTICS" . 1055969))) | 1498 | ("GetProperty" pro "IDLgrMPEG" (system) "Obj->[%s::]%s" ("objects_gr96.html" ) ("objects_gr94.html" ("ALL" . 1055838) ("BITRATE" . 1055845) ("FILENAME" . 1055875) ("FORMAT" . 1055877) ("FRAME_RATE" . 1055881) ("IFRAME_GAP" . 1055927) ("INTERLACED" . 1055934) ("MOTION_VEC_LENGTH" . 1055936) ("QUALITY" . 1055964) ("SCALE" . 1055967) ("STATISTICS" . 1055969))) |
| 1499 | ("Put" pro "IDLgrMPEG" (system) "Obj->[%s::]%s, Image[, Frame]" ("objects_gr98.html")) | 1499 | ("Put" pro "IDLgrMPEG" (system) "Obj->[%s::]%s, Image[, Frame]" ("objects_gr98.html")) |
| 1500 | ("Save" pro "IDLgrMPEG" (system) "Obj->[%s::]%s" ("objects_gr99.html" ("FILENAME" . 1012062))) | 1500 | ("Save" pro "IDLgrMPEG" (system) "Obj->[%s::]%s" ("objects_gr99.html" ("FILENAME" . 1012062))) |
| 1501 | ("SetProperty" pro "IDLgrMPEG" (system) "Obj->[%s::]%s" ("objects_gr100.html" ) ("objects_gr94.html" ("BITRATE " . 1055845) ("FILENAME" . 1055875) ("FORMAT " . 1055877) ("FRAME_RATE " . 1055881) ("IFRAME_GAP" . 1055927) ("INTERLACED" . 1055934) ("MOTION_VEC_LENGTH" . 1055936) ("QUALITY" . 1055964) ("SCALE" . 1055967) ("STATISTICS" . 1055969))) | 1501 | ("SetProperty" pro "IDLgrMPEG" (system) "Obj->[%s::]%s" ("objects_gr100.html" ) ("objects_gr94.html" ("BITRATE" . 1055845) ("FILENAME" . 1055875) ("FORMAT" . 1055877) ("FRAME_RATE" . 1055881) ("IFRAME_GAP" . 1055927) ("INTERLACED" . 1055934) ("MOTION_VEC_LENGTH" . 1055936) ("QUALITY" . 1055964) ("SCALE" . 1055967) ("STATISTICS" . 1055969))) |
| 1502 | ("Init" fun "IDLgrMPEG" (system) "Result = Obj->[%s::]%s()" ("objects_gr97.html" ) ("objects_gr94.html" ("BITRATE " . 1055845) ("FILENAME" . 1055875) ("FORMAT " . 1055877) ("FRAME_RATE " . 1055881) ("IFRAME_GAP" . 1055927) ("INTERLACED" . 1055934) ("MOTION_VEC_LENGTH" . 1055936) ("QUALITY" . 1055964) ("SCALE" . 1055967) ("STATISTICS" . 1055969) ("TEMP_DIRECTORY " . 1055971))) | 1502 | ("Init" fun "IDLgrMPEG" (system) "Result = Obj->[%s::]%s()" ("objects_gr97.html" ) ("objects_gr94.html" ("BITRATE" . 1055845) ("FILENAME" . 1055875) ("FORMAT" . 1055877) ("FRAME_RATE" . 1055881) ("IFRAME_GAP" . 1055927) ("INTERLACED" . 1055934) ("MOTION_VEC_LENGTH" . 1055936) ("QUALITY" . 1055964) ("SCALE" . 1055967) ("STATISTICS" . 1055969) ("TEMP_DIRECTORY" . 1055971))) |
| 1503 | ("Cleanup" pro "IDLgrPalette" (system) "Obj->[%s::]%s" ("objects_gr103.html")) | 1503 | ("Cleanup" pro "IDLgrPalette" (system) "Obj->[%s::]%s" ("objects_gr103.html")) |
| 1504 | ("GetProperty" pro "IDLgrPalette" (system) "Obj->[%s::]%s" ("objects_gr105.html" ) ("objects_gr102.html" ("ALL" . 1056048) ("BLUE_VALUES " . 1056069) ("BOTTOM_STRETCH " . 1056071) ("GAMMA" . 1056073) ("GREEN_VALUES" . 1056075) ("N_COLORS" . 1056093) ("RED_VALUES" . 1056079) ("TOP_STRETCH " . 1056081))) | 1504 | ("GetProperty" pro "IDLgrPalette" (system) "Obj->[%s::]%s" ("objects_gr105.html" ) ("objects_gr102.html" ("ALL" . 1056048) ("BLUE_VALUES" . 1056069) ("BOTTOM_STRETCH" . 1056071) ("GAMMA" . 1056073) ("GREEN_VALUES" . 1056075) ("N_COLORS" . 1056093) ("RED_VALUES" . 1056079) ("TOP_STRETCH" . 1056081))) |
| 1505 | ("LoadCT" pro "IDLgrPalette" (system) "Obj->[%s::]%s, TableNum" ("objects_gr107.html" ("FILE" . 1012379))) | 1505 | ("LoadCT" pro "IDLgrPalette" (system) "Obj->[%s::]%s, TableNum" ("objects_gr107.html" ("FILE" . 1012379))) |
| 1506 | ("SetProperty" pro "IDLgrPalette" (system) "Obj->[%s::]%s" ("objects_gr110.html" ) ("objects_gr102.html" ("BLUE_VALUES " . 1056069) ("BOTTOM_STRETCH " . 1056071) ("GAMMA" . 1056073) ("GREEN_VALUES" . 1056075) ("RED_VALUES" . 1056079) ("TOP_STRETCH " . 1056081))) | 1506 | ("SetProperty" pro "IDLgrPalette" (system) "Obj->[%s::]%s" ("objects_gr110.html" ) ("objects_gr102.html" ("BLUE_VALUES" . 1056069) ("BOTTOM_STRETCH" . 1056071) ("GAMMA" . 1056073) ("GREEN_VALUES" . 1056075) ("RED_VALUES" . 1056079) ("TOP_STRETCH" . 1056081))) |
| 1507 | ("SetRGB" pro "IDLgrPalette" (system) "Obj->[%s::]%s, Index, Red, Green, Blue" ("objects_gr109.html")) | 1507 | ("SetRGB" pro "IDLgrPalette" (system) "Obj->[%s::]%s, Index, Red, Green, Blue" ("objects_gr109.html")) |
| 1508 | ("GetRGB" fun "IDLgrPalette" (system) "Result = Obj->[%s::]%s(Index)" ("objects_gr104.html")) | 1508 | ("GetRGB" fun "IDLgrPalette" (system) "Result = Obj->[%s::]%s(Index)" ("objects_gr104.html")) |
| 1509 | ("Init" fun "IDLgrPalette" (system) "Result = Obj->[%s::]%s(, aRed, aGreen, aBlue)" ("objects_gr106.html" ) ("objects_gr102.html" ("BLUE_VALUES " . 1056069) ("BOTTOM_STRETCH " . 1056071) ("GAMMA" . 1056073) ("GREEN_VALUES" . 1056075) ("RED_VALUES" . 1056079) ("TOP_STRETCH " . 1056081))) | 1509 | ("Init" fun "IDLgrPalette" (system) "Result = Obj->[%s::]%s(, aRed, aGreen, aBlue)" ("objects_gr106.html" ) ("objects_gr102.html" ("BLUE_VALUES" . 1056069) ("BOTTOM_STRETCH" . 1056071) ("GAMMA" . 1056073) ("GREEN_VALUES" . 1056075) ("RED_VALUES" . 1056079) ("TOP_STRETCH" . 1056081))) |
| 1510 | ("NearestColor" fun "IDLgrPalette" (system) "Result = Obj->[%s::]%s(Red, Green, Blue)" ("objects_gr108.html")) | 1510 | ("NearestColor" fun "IDLgrPalette" (system) "Result = Obj->[%s::]%s(Red, Green, Blue)" ("objects_gr108.html")) |
| 1511 | ("Cleanup" pro "IDLgrPattern" (system) "Obj->[%s::]%s" ("objects_gr113.html")) | 1511 | ("Cleanup" pro "IDLgrPattern" (system) "Obj->[%s::]%s" ("objects_gr113.html")) |
| 1512 | ("GetProperty" pro "IDLgrPattern" (system) "Obj->[%s::]%s" ("objects_gr114.html" ) ("objects_gr112.html" ("ALL" . 1056154) ("ORIENTATION " . 1056165) ("PATTERN" . 1056169) ("SPACING " . 1056171) ("STYLE" . 1056173))) | 1512 | ("GetProperty" pro "IDLgrPattern" (system) "Obj->[%s::]%s" ("objects_gr114.html" ) ("objects_gr112.html" ("ALL" . 1056154) ("ORIENTATION" . 1056165) ("PATTERN" . 1056169) ("SPACING" . 1056171) ("STYLE" . 1056173))) |
| 1513 | ("SetProperty" pro "IDLgrPattern" (system) "Obj->[%s::]%s" ("objects_gr116.html" ) ("objects_gr112.html" ("ORIENTATION " . 1056165) ("PATTERN" . 1056169) ("SPACING " . 1056171) ("STYLE" . 1056173))) | 1513 | ("SetProperty" pro "IDLgrPattern" (system) "Obj->[%s::]%s" ("objects_gr116.html" ) ("objects_gr112.html" ("ORIENTATION" . 1056165) ("PATTERN" . 1056169) ("SPACING" . 1056171) ("STYLE" . 1056173))) |
| 1514 | ("Init" fun "IDLgrPattern" (system) "Result = Obj->[%s::]%s([, Style])" ("objects_gr115.html" ) ("objects_gr112.html" ("ORIENTATION " . 1056165) ("PATTERN" . 1056169) ("SPACING " . 1056171) ("STYLE" . 1056173) ("THICK " . 1056179))) | 1514 | ("Init" fun "IDLgrPattern" (system) "Result = Obj->[%s::]%s([, Style])" ("objects_gr115.html" ) ("objects_gr112.html" ("ORIENTATION" . 1056165) ("PATTERN" . 1056169) ("SPACING" . 1056171) ("STYLE" . 1056173) ("THICK" . 1056179))) |
| 1515 | ("Cleanup" pro "IDLgrPlot" (system) "Obj->[%s::]%s" ("objects_gr119.html")) | 1515 | ("Cleanup" pro "IDLgrPlot" (system) "Obj->[%s::]%s" ("objects_gr119.html")) |
| 1516 | ("GetProperty" pro "IDLgrPlot" (system) "Obj->[%s::]%s" ("objects_gr121.html" ) ("objects_gr118.html" ("ALL" . 1056243) ("ALPHA_CHANNEL" . 1056258) ("CLIP_PLANES " . 1314217) ("COLOR " . 1056263) ("DATA" . 1056381) ("DEPTH_TEST_DISABLE" . 1094982) ("DEPTH_TEST_FUNCTION" . 1095444) ("DEPTH_WRITE_DISABLE" . 1095483) ("DOUBLE " . 1056269) ("HIDE " . 1056271) ("HISTOGRAM" . 1092755) ("LINESTYLE" . 1056277) ("MAX_VALUE " . 1056290) ("MIN_VALUE " . 1056292) ("NSUM" . 1056296) ("PALETTE" . 1056298) ("PARENT " . 1056392) ("POLAR " . 1056389) ("SYMBOL " . 1056306) ("THICK" . 1056311) ("VERT_COLORS" . 1056317) ("XCOORD_CONV" . 1056319) ("XRANGE " . 1056325) ("YCOORD_CONV " . 1056327) ("YRANGE" . 1056333) ("ZCOORD_CONV" . 1056335) ("ZRANGE" . 1074286) ("ZVALUE" . 1056400))) | 1516 | ("GetProperty" pro "IDLgrPlot" (system) "Obj->[%s::]%s" ("objects_gr121.html" ) ("objects_gr118.html" ("ALL" . 1056243) ("ALPHA_CHANNEL" . 1056258) ("CLIP_PLANES" . 1314217) ("COLOR" . 1056263) ("DATA" . 1056381) ("DEPTH_TEST_DISABLE" . 1094982) ("DEPTH_TEST_FUNCTION" . 1095444) ("DEPTH_WRITE_DISABLE" . 1095483) ("DOUBLE" . 1056269) ("HIDE" . 1056271) ("HISTOGRAM" . 1092755) ("LINESTYLE" . 1056277) ("MAX_VALUE" . 1056290) ("MIN_VALUE" . 1056292) ("NSUM" . 1056296) ("PALETTE" . 1056298) ("PARENT" . 1056392) ("POLAR" . 1056389) ("SYMBOL" . 1056306) ("THICK" . 1056311) ("VERT_COLORS" . 1056317) ("XCOORD_CONV" . 1056319) ("XRANGE" . 1056325) ("YCOORD_CONV" . 1056327) ("YRANGE" . 1056333) ("ZCOORD_CONV" . 1056335) ("ZRANGE" . 1074286) ("ZVALUE" . 1056400))) |
| 1517 | ("SetProperty" pro "IDLgrPlot" (system) "Obj->[%s::]%s" ("objects_gr123.html" ) ("objects_gr118.html" ("ALPHA_CHANNEL" . 1056258) ("CLIP_PLANES " . 1314217) ("COLOR " . 1056263) ("DATAX" . 1056378) ("DATAY" . 1056267) ("DEPTH_TEST_DISABLE" . 1094982) ("DEPTH_TEST_FUNCTION" . 1095444) ("DEPTH_WRITE_DISABLE" . 1095483) ("DOUBLE " . 1056269) ("HIDE " . 1056271) ("HISTOGRAM" . 1092755) ("LINESTYLE" . 1056277) ("MAX_VALUE " . 1056290) ("MIN_VALUE " . 1056292) ("NSUM" . 1056296) ("PALETTE" . 1056298) ("POLAR " . 1056389) ("RESET_DATA " . 1093845) ("SHARE_DATA " . 1056304) ("SYMBOL " . 1056306) ("THICK" . 1056311) ("VERT_COLORS" . 1056317) ("XCOORD_CONV" . 1056319) ("XRANGE " . 1056325) ("YCOORD_CONV " . 1056327) ("YRANGE" . 1056333) ("ZCOORD_CONV" . 1056335) ("ZVALUE" . 1056400))) | 1517 | ("SetProperty" pro "IDLgrPlot" (system) "Obj->[%s::]%s" ("objects_gr123.html" ) ("objects_gr118.html" ("ALPHA_CHANNEL" . 1056258) ("CLIP_PLANES" . 1314217) ("COLOR" . 1056263) ("DATAX" . 1056378) ("DATAY" . 1056267) ("DEPTH_TEST_DISABLE" . 1094982) ("DEPTH_TEST_FUNCTION" . 1095444) ("DEPTH_WRITE_DISABLE" . 1095483) ("DOUBLE" . 1056269) ("HIDE" . 1056271) ("HISTOGRAM" . 1092755) ("LINESTYLE" . 1056277) ("MAX_VALUE" . 1056290) ("MIN_VALUE" . 1056292) ("NSUM" . 1056296) ("PALETTE" . 1056298) ("POLAR" . 1056389) ("RESET_DATA" . 1093845) ("SHARE_DATA" . 1056304) ("SYMBOL" . 1056306) ("THICK" . 1056311) ("VERT_COLORS" . 1056317) ("XCOORD_CONV" . 1056319) ("XRANGE" . 1056325) ("YCOORD_CONV" . 1056327) ("YRANGE" . 1056333) ("ZCOORD_CONV" . 1056335) ("ZVALUE" . 1056400))) |
| 1518 | ("GetCTM" fun "IDLgrPlot" (system) "Result = Obj->[%s::]%s()" ("objects_gr120.html" ("DESTINATION" . 1012838) ("PATH" . 1012840) ("TOP" . 1012846))) | 1518 | ("GetCTM" fun "IDLgrPlot" (system) "Result = Obj->[%s::]%s()" ("objects_gr120.html" ("DESTINATION" . 1012838) ("PATH" . 1012840) ("TOP" . 1012846))) |
| 1519 | ("Init" fun "IDLgrPlot" (system) "Result = Obj->[%s::]%s([, [X,] Y])" ("objects_gr122.html" ) ("objects_gr118.html" ("ALPHA_CHANNEL" . 1056258) ("CLIP_PLANES " . 1314217) ("COLOR " . 1056263) ("DATAX" . 1056378) ("DATAY" . 1056267) ("DEPTH_TEST_DISABLE" . 1094982) ("DEPTH_TEST_FUNCTION" . 1095444) ("DEPTH_WRITE_DISABLE" . 1095483) ("DOUBLE " . 1056269) ("HIDE " . 1056271) ("HISTOGRAM" . 1092755) ("LINESTYLE" . 1056277) ("MAX_VALUE " . 1056290) ("MIN_VALUE " . 1056292) ("NSUM" . 1056296) ("PALETTE" . 1056298) ("POLAR " . 1056389) ("REGISTER_PROPERTIES" . 1056302) ("RESET_DATA " . 1093845) ("SHARE_DATA " . 1056304) ("SYMBOL " . 1056306) ("THICK" . 1056311) ("USE_ZVALUE" . 1056313) ("VERT_COLORS" . 1056317) ("XCOORD_CONV" . 1056319) ("XRANGE " . 1056325) ("YCOORD_CONV " . 1056327) ("YRANGE" . 1056333) ("ZCOORD_CONV" . 1056335) ("ZVALUE" . 1056400))) | 1519 | ("Init" fun "IDLgrPlot" (system) "Result = Obj->[%s::]%s([, [X,] Y])" ("objects_gr122.html" ) ("objects_gr118.html" ("ALPHA_CHANNEL" . 1056258) ("CLIP_PLANES" . 1314217) ("COLOR" . 1056263) ("DATAX" . 1056378) ("DATAY" . 1056267) ("DEPTH_TEST_DISABLE" . 1094982) ("DEPTH_TEST_FUNCTION" . 1095444) ("DEPTH_WRITE_DISABLE" . 1095483) ("DOUBLE" . 1056269) ("HIDE" . 1056271) ("HISTOGRAM" . 1092755) ("LINESTYLE" . 1056277) ("MAX_VALUE" . 1056290) ("MIN_VALUE" . 1056292) ("NSUM" . 1056296) ("PALETTE" . 1056298) ("POLAR" . 1056389) ("REGISTER_PROPERTIES" . 1056302) ("RESET_DATA" . 1093845) ("SHARE_DATA" . 1056304) ("SYMBOL" . 1056306) ("THICK" . 1056311) ("USE_ZVALUE" . 1056313) ("VERT_COLORS" . 1056317) ("XCOORD_CONV" . 1056319) ("XRANGE" . 1056325) ("YCOORD_CONV" . 1056327) ("YRANGE" . 1056333) ("ZCOORD_CONV" . 1056335) ("ZVALUE" . 1056400))) |
| 1520 | ("Cleanup" pro "IDLgrPolygon" (system) "Obj->[%s::]%s" ("objects_gr126.html")) | 1520 | ("Cleanup" pro "IDLgrPolygon" (system) "Obj->[%s::]%s" ("objects_gr126.html")) |
| 1521 | ("GetProperty" pro "IDLgrPolygon" (system) "Obj->[%s::]%s" ("objects_gr128.html" ) ("objects_gr125.html" ("ALL" . 1056563) ("ALPHA_CHANNEL" . 1316054) ("AMBIENT" . 1309898) ("BOTTOM" . 1074388) ("CLIP_PLANES" . 1056581) ("COLOR " . 1056586) ("DATA" . 1309971) ("DEPTH_OFFSET " . 1056590) ("DEPTH_TEST_DISABLE" . 1094995) ("DEPTH_TEST_FUNCTION" . 1095559) ("DEPTH_WRITE_DISABLE" . 1095598) ("DIFFUSE" . 1310292) ("DOUBLE " . 1310286) ("EMISSION" . 1310032) ("FILL_PATTERN " . 1056598) ("HIDE " . 1056602) ("LINESTYLE " . 1056606) ("NORMALS" . 1056621) ("PARENT " . 1056792) ("POLYGONS" . 1056790) ("REJECT " . 1093870) ("SHADE_RANGE " . 1056643) ("SHADING " . 1056645) ("SHININESS" . 1310128) ("SPECULAR" . 1310225) ("STYLE " . 1310253) ("TEXTURE_COORD" . 1214343) ("TEXTURE_INTERP " . 1056664) ("TEXTURE_MAP " . 1056666) ("THICK " . 1056674) ("VERT_COLORS " . 1056679) ("XCOORD_CONV " . 1088401) ("XRANGE" . 1056808) ("YCOORD_CONV " . 1075980) ("YRANGE" . 1056822) ("ZCOORD_CONV" . 1056694) ("ZERO_OPACITY_SKIP " . 1056700) ("ZRANGE" . 1056834))) | 1521 | ("GetProperty" pro "IDLgrPolygon" (system) "Obj->[%s::]%s" ("objects_gr128.html" ) ("objects_gr125.html" ("ALL" . 1056563) ("ALPHA_CHANNEL" . 1316054) ("AMBIENT" . 1309898) ("BOTTOM" . 1074388) ("CLIP_PLANES" . 1056581) ("COLOR" . 1056586) ("DATA" . 1309971) ("DEPTH_OFFSET" . 1056590) ("DEPTH_TEST_DISABLE" . 1094995) ("DEPTH_TEST_FUNCTION" . 1095559) ("DEPTH_WRITE_DISABLE" . 1095598) ("DIFFUSE" . 1310292) ("DOUBLE" . 1310286) ("EMISSION" . 1310032) ("FILL_PATTERN" . 1056598) ("HIDE" . 1056602) ("LINESTYLE" . 1056606) ("NORMALS" . 1056621) ("PARENT" . 1056792) ("POLYGONS" . 1056790) ("REJECT" . 1093870) ("SHADE_RANGE" . 1056643) ("SHADING" . 1056645) ("SHININESS" . 1310128) ("SPECULAR" . 1310225) ("STYLE" . 1310253) ("TEXTURE_COORD" . 1214343) ("TEXTURE_INTERP" . 1056664) ("TEXTURE_MAP" . 1056666) ("THICK" . 1056674) ("VERT_COLORS" . 1056679) ("XCOORD_CONV" . 1088401) ("XRANGE" . 1056808) ("YCOORD_CONV" . 1075980) ("YRANGE" . 1056822) ("ZCOORD_CONV" . 1056694) ("ZERO_OPACITY_SKIP" . 1056700) ("ZRANGE" . 1056834))) |
| 1522 | ("SetProperty" pro "IDLgrPolygon" (system) "Obj->[%s::]%s" ("objects_gr130.html" ) ("objects_gr125.html" ("ALPHA_CHANNEL" . 1316054) ("AMBIENT" . 1309898) ("BOTTOM" . 1074388) ("CLIP_PLANES" . 1056581) ("COLOR " . 1056586) ("DATA" . 1309971) ("DEPTH_OFFSET " . 1056590) ("DEPTH_TEST_DISABLE" . 1094995) ("DEPTH_TEST_FUNCTION" . 1095559) ("DEPTH_WRITE_DISABLE" . 1095598) ("DIFFUSE" . 1310292) ("DOUBLE " . 1310286) ("EMISSION" . 1310032) ("FILL_PATTERN " . 1056598) ("HIDE " . 1056602) ("LINESTYLE " . 1056606) ("NORMALS" . 1056621) ("POLYGONS" . 1056790) ("REJECT " . 1093870) ("RESET_DATA " . 1056641) ("SHADE_RANGE " . 1056643) ("SHADING " . 1056645) ("SHARE_DATA " . 1056650) ("SHININESS" . 1310128) ("SPECULAR" . 1310225) ("STYLE " . 1310253) ("TEXTURE_COORD" . 1214343) ("TEXTURE_INTERP " . 1056664) ("TEXTURE_MAP " . 1056666) ("THICK " . 1056674) ("VERT_COLORS " . 1056679) ("XCOORD_CONV " . 1088401) ("YCOORD_CONV " . 1075980) ("ZCOORD_CONV" . 1056694) ("ZERO_OPACITY_SKIP " . 1056700))) | 1522 | ("SetProperty" pro "IDLgrPolygon" (system) "Obj->[%s::]%s" ("objects_gr130.html" ) ("objects_gr125.html" ("ALPHA_CHANNEL" . 1316054) ("AMBIENT" . 1309898) ("BOTTOM" . 1074388) ("CLIP_PLANES" . 1056581) ("COLOR" . 1056586) ("DATA" . 1309971) ("DEPTH_OFFSET" . 1056590) ("DEPTH_TEST_DISABLE" . 1094995) ("DEPTH_TEST_FUNCTION" . 1095559) ("DEPTH_WRITE_DISABLE" . 1095598) ("DIFFUSE" . 1310292) ("DOUBLE" . 1310286) ("EMISSION" . 1310032) ("FILL_PATTERN" . 1056598) ("HIDE" . 1056602) ("LINESTYLE" . 1056606) ("NORMALS" . 1056621) ("POLYGONS" . 1056790) ("REJECT" . 1093870) ("RESET_DATA" . 1056641) ("SHADE_RANGE" . 1056643) ("SHADING" . 1056645) ("SHARE_DATA" . 1056650) ("SHININESS" . 1310128) ("SPECULAR" . 1310225) ("STYLE" . 1310253) ("TEXTURE_COORD" . 1214343) ("TEXTURE_INTERP" . 1056664) ("TEXTURE_MAP" . 1056666) ("THICK" . 1056674) ("VERT_COLORS" . 1056679) ("XCOORD_CONV" . 1088401) ("YCOORD_CONV" . 1075980) ("ZCOORD_CONV" . 1056694) ("ZERO_OPACITY_SKIP" . 1056700))) |
| 1523 | ("GetCTM" fun "IDLgrPolygon" (system) "Result = Obj->[%s::]%s()" ("objects_gr127.html" ("DESTINATION" . 1013188) ("PATH" . 1013190) ("TOP" . 1013196))) | 1523 | ("GetCTM" fun "IDLgrPolygon" (system) "Result = Obj->[%s::]%s()" ("objects_gr127.html" ("DESTINATION" . 1013188) ("PATH" . 1013190) ("TOP" . 1013196))) |
| 1524 | ("Init" fun "IDLgrPolygon" (system) "Result = Obj->[%s::]%s([, X [, Y[, Z]]])" ("objects_gr129.html" ) ("objects_gr125.html" ("ALPHA_CHANNEL" . 1316054) ("AMBIENT" . 1309898) ("BOTTOM" . 1074388) ("CLIP_PLANES" . 1056581) ("COLOR " . 1056586) ("DATA" . 1309971) ("DEPTH_OFFSET " . 1056590) ("DEPTH_TEST_DISABLE" . 1094995) ("DEPTH_TEST_FUNCTION" . 1095559) ("DEPTH_WRITE_DISABLE" . 1095598) ("DIFFUSE" . 1310292) ("DOUBLE " . 1310286) ("EMISSION" . 1310032) ("FILL_PATTERN " . 1056598) ("HIDDEN_LINES" . 1056600) ("HIDE " . 1056602) ("LINESTYLE " . 1056606) ("NORMALS" . 1056621) ("PALETTE" . 1056629) ("POLYGONS" . 1056790) ("REGISTER_PROPERTIES" . 1327262) ("REJECT " . 1093870) ("RESET_DATA " . 1056641) ("SHADE_RANGE " . 1056643) ("SHADING " . 1056645) ("SHARE_DATA " . 1056650) ("SHININESS" . 1310128) ("SPECULAR" . 1310225) ("STYLE " . 1310253) ("TEXTURE_COORD" . 1214343) ("TEXTURE_INTERP " . 1056664) ("TEXTURE_MAP " . 1056666) ("THICK " . 1056674) ("VERT_COLORS " . 1056679) ("XCOORD_CONV " . 1088401) ("YCOORD_CONV " . 1075980) ("ZCOORD_CONV" . 1056694) ("ZERO_OPACITY_SKIP " . 1056700))) | 1524 | ("Init" fun "IDLgrPolygon" (system) "Result = Obj->[%s::]%s([, X [, Y[, Z]]])" ("objects_gr129.html" ) ("objects_gr125.html" ("ALPHA_CHANNEL" . 1316054) ("AMBIENT" . 1309898) ("BOTTOM" . 1074388) ("CLIP_PLANES" . 1056581) ("COLOR" . 1056586) ("DATA" . 1309971) ("DEPTH_OFFSET" . 1056590) ("DEPTH_TEST_DISABLE" . 1094995) ("DEPTH_TEST_FUNCTION" . 1095559) ("DEPTH_WRITE_DISABLE" . 1095598) ("DIFFUSE" . 1310292) ("DOUBLE" . 1310286) ("EMISSION" . 1310032) ("FILL_PATTERN" . 1056598) ("HIDDEN_LINES" . 1056600) ("HIDE" . 1056602) ("LINESTYLE" . 1056606) ("NORMALS" . 1056621) ("PALETTE" . 1056629) ("POLYGONS" . 1056790) ("REGISTER_PROPERTIES" . 1327262) ("REJECT" . 1093870) ("RESET_DATA" . 1056641) ("SHADE_RANGE" . 1056643) ("SHADING" . 1056645) ("SHARE_DATA" . 1056650) ("SHININESS" . 1310128) ("SPECULAR" . 1310225) ("STYLE" . 1310253) ("TEXTURE_COORD" . 1214343) ("TEXTURE_INTERP" . 1056664) ("TEXTURE_MAP" . 1056666) ("THICK" . 1056674) ("VERT_COLORS" . 1056679) ("XCOORD_CONV" . 1088401) ("YCOORD_CONV" . 1075980) ("ZCOORD_CONV" . 1056694) ("ZERO_OPACITY_SKIP" . 1056700))) |
| 1525 | ("Cleanup" pro "IDLgrPolyline" (system) "Obj->[%s::]%s" ("objects_gr133.html")) | 1525 | ("Cleanup" pro "IDLgrPolyline" (system) "Obj->[%s::]%s" ("objects_gr133.html")) |
| 1526 | ("GetProperty" pro "IDLgrPolyline" (system) "Obj->[%s::]%s" ("objects_gr135.html" ) ("objects_gr132.html" ("ALL" . 1056980) ("ALPHA_CHANNEL" . 1329463) ("CLIP_PLANES " . 1056996) ("COLOR" . 1057001) ("DATA" . 1057003) ("DEPTH_TEST_DISABLE" . 1095001) ("DEPTH_TEST_FUNCTION" . 1095681) ("DEPTH_WRITE_DISABLE" . 1095720) ("DOUBLE" . 1057005) ("HIDE" . 1057007) ("LABEL_NOGAPS" . 1057011) ("LABEL_OBJECTS" . 1057019) ("LABEL_OFFSETS " . 1057017) ("LABEL_POLYLINES" . 1057330) ("LABEL_USE_VERTEX_COLOR" . 1077987) ("LINESTYLE" . 1057029) ("PALETTE " . 1057044) ("PARENT" . 1057101) ("POLYLINES" . 1057099) ("SHADING" . 1057051) ("SYMBOL" . 1057058) ("THICK" . 1057063) ("USE_LABEL_COLOR" . 1057065) ("USE_LABEL_ORIENTATION" . 1057067) ("USE_TEXT_ALIGNMENTS" . 1057069) ("VERT_COLORS " . 1057073) ("XCOORD_CONV " . 1057075) ("XRANGE" . 1057143) ("YCOORD_CONV" . 1057081) ("YRANGE " . 1057133) ("ZCOORD_CONV" . 1077892) ("ZRANGE" . 1057121))) | 1526 | ("GetProperty" pro "IDLgrPolyline" (system) "Obj->[%s::]%s" ("objects_gr135.html" ) ("objects_gr132.html" ("ALL" . 1056980) ("ALPHA_CHANNEL" . 1329463) ("CLIP_PLANES" . 1056996) ("COLOR" . 1057001) ("DATA" . 1057003) ("DEPTH_TEST_DISABLE" . 1095001) ("DEPTH_TEST_FUNCTION" . 1095681) ("DEPTH_WRITE_DISABLE" . 1095720) ("DOUBLE" . 1057005) ("HIDE" . 1057007) ("LABEL_NOGAPS" . 1057011) ("LABEL_OBJECTS" . 1057019) ("LABEL_OFFSETS" . 1057017) ("LABEL_POLYLINES" . 1057330) ("LABEL_USE_VERTEX_COLOR" . 1077987) ("LINESTYLE" . 1057029) ("PALETTE" . 1057044) ("PARENT" . 1057101) ("POLYLINES" . 1057099) ("SHADING" . 1057051) ("SYMBOL" . 1057058) ("THICK" . 1057063) ("USE_LABEL_COLOR" . 1057065) ("USE_LABEL_ORIENTATION" . 1057067) ("USE_TEXT_ALIGNMENTS" . 1057069) ("VERT_COLORS" . 1057073) ("XCOORD_CONV" . 1057075) ("XRANGE" . 1057143) ("YCOORD_CONV" . 1057081) ("YRANGE" . 1057133) ("ZCOORD_CONV" . 1077892) ("ZRANGE" . 1057121))) |
| 1527 | ("SetProperty" pro "IDLgrPolyline" (system) "Obj->[%s::]%s" ("objects_gr137.html" ) ("objects_gr132.html" ("ALPHA_CHANNEL" . 1329463) ("CLIP_PLANES " . 1056996) ("COLOR" . 1057001) ("DATA" . 1057003) ("DEPTH_TEST_DISABLE" . 1095001) ("DEPTH_TEST_FUNCTION" . 1095681) ("DEPTH_WRITE_DISABLE" . 1095720) ("DOUBLE" . 1057005) ("HIDE" . 1057007) ("LABEL_NOGAPS" . 1057011) ("LABEL_OBJECTS" . 1057019) ("LABEL_OFFSETS " . 1057017) ("LABEL_POLYLINES" . 1057330) ("LABEL_USE_VERTEX_COLOR" . 1077987) ("LINESTYLE" . 1057029) ("PALETTE " . 1057044) ("POLYLINES" . 1057099) ("RESET_DATA" . 1093906) ("SHADING" . 1057051) ("SHARE_DATA " . 1057056) ("SYMBOL" . 1057058) ("THICK" . 1057063) ("USE_LABEL_COLOR" . 1057065) ("USE_LABEL_ORIENTATION" . 1057067) ("USE_TEXT_ALIGNMENTS" . 1057069) ("VERT_COLORS " . 1057073) ("XCOORD_CONV " . 1057075) ("YCOORD_CONV" . 1057081) ("ZCOORD_CONV" . 1077892))) | 1527 | ("SetProperty" pro "IDLgrPolyline" (system) "Obj->[%s::]%s" ("objects_gr137.html" ) ("objects_gr132.html" ("ALPHA_CHANNEL" . 1329463) ("CLIP_PLANES" . 1056996) ("COLOR" . 1057001) ("DATA" . 1057003) ("DEPTH_TEST_DISABLE" . 1095001) ("DEPTH_TEST_FUNCTION" . 1095681) ("DEPTH_WRITE_DISABLE" . 1095720) ("DOUBLE" . 1057005) ("HIDE" . 1057007) ("LABEL_NOGAPS" . 1057011) ("LABEL_OBJECTS" . 1057019) ("LABEL_OFFSETS" . 1057017) ("LABEL_POLYLINES" . 1057330) ("LABEL_USE_VERTEX_COLOR" . 1077987) ("LINESTYLE" . 1057029) ("PALETTE" . 1057044) ("POLYLINES" . 1057099) ("RESET_DATA" . 1093906) ("SHADING" . 1057051) ("SHARE_DATA" . 1057056) ("SYMBOL" . 1057058) ("THICK" . 1057063) ("USE_LABEL_COLOR" . 1057065) ("USE_LABEL_ORIENTATION" . 1057067) ("USE_TEXT_ALIGNMENTS" . 1057069) ("VERT_COLORS" . 1057073) ("XCOORD_CONV" . 1057075) ("YCOORD_CONV" . 1057081) ("ZCOORD_CONV" . 1077892))) |
| 1528 | ("GetCTM" fun "IDLgrPolyline" (system) "Result = Obj->[%s::]%s()" ("objects_gr134.html" ("DESTINATION" . 1013579) ("PATH" . 1013581) ("TOP" . 1013587))) | 1528 | ("GetCTM" fun "IDLgrPolyline" (system) "Result = Obj->[%s::]%s()" ("objects_gr134.html" ("DESTINATION" . 1013579) ("PATH" . 1013581) ("TOP" . 1013587))) |
| 1529 | ("Init" fun "IDLgrPolyline" (system) "Result = Obj->[%s::]%s([, X [, Y[, Z]]])" ("objects_gr136.html" ) ("objects_gr132.html" ("ALPHA_CHANNEL" . 1329463) ("CLIP_PLANES " . 1056996) ("COLOR" . 1057001) ("DATA" . 1057003) ("DEPTH_TEST_DISABLE" . 1095001) ("DEPTH_TEST_FUNCTION" . 1095681) ("DEPTH_WRITE_DISABLE" . 1095720) ("DOUBLE" . 1057005) ("HIDE" . 1057007) ("LABEL_NOGAPS" . 1057011) ("LABEL_OBJECTS" . 1057019) ("LABEL_OFFSETS " . 1057017) ("LABEL_POLYLINES" . 1057330) ("LABEL_USE_VERTEX_COLOR" . 1077987) ("LINESTYLE" . 1057029) ("PALETTE " . 1057044) ("POLYLINES" . 1057099) ("REGISTER_PROPERTIES" . 1057049) ("RESET_DATA" . 1093906) ("SHADING" . 1057051) ("SHARE_DATA " . 1057056) ("SYMBOL" . 1057058) ("THICK" . 1057063) ("USE_LABEL_COLOR" . 1057065) ("USE_LABEL_ORIENTATION" . 1057067) ("USE_TEXT_ALIGNMENTS" . 1057069) ("VERT_COLORS " . 1057073) ("XCOORD_CONV " . 1057075) ("YCOORD_CONV" . 1057081) ("ZCOORD_CONV" . 1077892))) | 1529 | ("Init" fun "IDLgrPolyline" (system) "Result = Obj->[%s::]%s([, X [, Y[, Z]]])" ("objects_gr136.html" ) ("objects_gr132.html" ("ALPHA_CHANNEL" . 1329463) ("CLIP_PLANES" . 1056996) ("COLOR" . 1057001) ("DATA" . 1057003) ("DEPTH_TEST_DISABLE" . 1095001) ("DEPTH_TEST_FUNCTION" . 1095681) ("DEPTH_WRITE_DISABLE" . 1095720) ("DOUBLE" . 1057005) ("HIDE" . 1057007) ("LABEL_NOGAPS" . 1057011) ("LABEL_OBJECTS" . 1057019) ("LABEL_OFFSETS" . 1057017) ("LABEL_POLYLINES" . 1057330) ("LABEL_USE_VERTEX_COLOR" . 1077987) ("LINESTYLE" . 1057029) ("PALETTE" . 1057044) ("POLYLINES" . 1057099) ("REGISTER_PROPERTIES" . 1057049) ("RESET_DATA" . 1093906) ("SHADING" . 1057051) ("SHARE_DATA" . 1057056) ("SYMBOL" . 1057058) ("THICK" . 1057063) ("USE_LABEL_COLOR" . 1057065) ("USE_LABEL_ORIENTATION" . 1057067) ("USE_TEXT_ALIGNMENTS" . 1057069) ("VERT_COLORS" . 1057073) ("XCOORD_CONV" . 1057075) ("YCOORD_CONV" . 1057081) ("ZCOORD_CONV" . 1077892))) |
| 1530 | ("Cleanup" pro "IDLgrPrinter" (system) "Obj->[%s::]%s" ("objects_gr140.html")) | 1530 | ("Cleanup" pro "IDLgrPrinter" (system) "Obj->[%s::]%s" ("objects_gr140.html")) |
| 1531 | ("Draw" pro "IDLgrPrinter" (system) "Obj->[%s::]%s [, Picture]" ("objects_gr141.html" ("VECT_SORTING" . 1340440) ("VECT_TEXT_RENDER_METHOD" . 1340452) ("VECTOR" . 1013979))) | 1531 | ("Draw" pro "IDLgrPrinter" (system) "Obj->[%s::]%s [, Picture]" ("objects_gr141.html" ("VECT_SORTING" . 1340440) ("VECT_TEXT_RENDER_METHOD" . 1340452) ("VECTOR" . 1013979))) |
| 1532 | ("GetProperty" pro "IDLgrPrinter" (system) "Obj->[%s::]%s" ("objects_gr144.html" ) ("objects_gr139.html" ("ALL " . 1057354) ("COLOR_MODEL" . 1057403) ("DIMENSIONS" . 1057476) ("GAMMA" . 1057474) ("GRAPHICS_TREE " . 1057413) ("LANDSCAPE" . 1057415) ("N_COLORS " . 1057418) ("N_COPIES" . 1057420) ("NAME " . 1344875) ("PALETTE" . 1057464) ("PRINT_QUALITY" . 1057428) ("QUALITY" . 1057435) ("RESOLUTION " . 1093938) ("UNITS" . 1057441))) | 1532 | ("GetProperty" pro "IDLgrPrinter" (system) "Obj->[%s::]%s" ("objects_gr144.html" ) ("objects_gr139.html" ("ALL" . 1057354) ("COLOR_MODEL" . 1057403) ("DIMENSIONS" . 1057476) ("GAMMA" . 1057474) ("GRAPHICS_TREE" . 1057413) ("LANDSCAPE" . 1057415) ("N_COLORS" . 1057418) ("N_COPIES" . 1057420) ("NAME" . 1344875) ("PALETTE" . 1057464) ("PRINT_QUALITY" . 1057428) ("QUALITY" . 1057435) ("RESOLUTION" . 1093938) ("UNITS" . 1057441))) |
| 1533 | ("NewDocument" pro "IDLgrPrinter" (system) "Obj->[%s::]%s" ("objects_gr147.html")) | 1533 | ("NewDocument" pro "IDLgrPrinter" (system) "Obj->[%s::]%s" ("objects_gr147.html")) |
| 1534 | ("NewPage" pro "IDLgrPrinter" (system) "Obj->[%s::]%s" ("objects_gr148.html")) | 1534 | ("NewPage" pro "IDLgrPrinter" (system) "Obj->[%s::]%s" ("objects_gr148.html")) |
| 1535 | ("SetProperty" pro "IDLgrPrinter" (system) "Obj->[%s::]%s" ("objects_gr149.html" ) ("objects_gr139.html" ("GAMMA" . 1057474) ("GRAPHICS_TREE " . 1057413) ("LANDSCAPE" . 1057415) ("N_COPIES" . 1057420) ("PALETTE" . 1057464) ("PRINT_QUALITY" . 1057428) ("QUALITY" . 1057435) ("UNITS" . 1057441))) | 1535 | ("SetProperty" pro "IDLgrPrinter" (system) "Obj->[%s::]%s" ("objects_gr149.html" ) ("objects_gr139.html" ("GAMMA" . 1057474) ("GRAPHICS_TREE" . 1057413) ("LANDSCAPE" . 1057415) ("N_COPIES" . 1057420) ("PALETTE" . 1057464) ("PRINT_QUALITY" . 1057428) ("QUALITY" . 1057435) ("UNITS" . 1057441))) |
| 1536 | ("GetContiguousPixels" fun "IDLgrPrinter" (system) "Result = Obj->[%s::]%s()" ("objects_gr142.html")) | 1536 | ("GetContiguousPixels" fun "IDLgrPrinter" (system) "Result = Obj->[%s::]%s()" ("objects_gr142.html")) |
| 1537 | ("GetFontnames" fun "IDLgrPrinter" (system) "Result = Obj->[%s::]%s( FamilyName)" ("objects_gr143.html" ("IDL_FONTS" . 1014147) ("STYLES" . 1014149))) | 1537 | ("GetFontnames" fun "IDLgrPrinter" (system) "Result = Obj->[%s::]%s( FamilyName)" ("objects_gr143.html" ("IDL_FONTS" . 1014147) ("STYLES" . 1014149))) |
| 1538 | ("GetTextDimensions" fun "IDLgrPrinter" (system) "Result = Obj->[%s::]%s( TextObj)" ("objects_gr145.html" ("DESCENT" . 1014231) ("PATH" . 1014233))) | 1538 | ("GetTextDimensions" fun "IDLgrPrinter" (system) "Result = Obj->[%s::]%s( TextObj)" ("objects_gr145.html" ("DESCENT" . 1014231) ("PATH" . 1014233))) |
| 1539 | ("Init" fun "IDLgrPrinter" (system) "Result = Obj->[%s::]%s()" ("objects_gr146.html" ) ("objects_gr139.html" ("COLOR_MODEL" . 1057403) ("GAMMA" . 1057474) ("GRAPHICS_TREE " . 1057413) ("LANDSCAPE" . 1057415) ("N_COLORS " . 1057418) ("N_COPIES" . 1057420) ("PALETTE" . 1057464) ("PRINT_QUALITY" . 1057428) ("QUALITY" . 1057435) ("REGISTER_PROPERTIES" . 1057456) ("UNITS" . 1057441))) | 1539 | ("Init" fun "IDLgrPrinter" (system) "Result = Obj->[%s::]%s()" ("objects_gr146.html" ) ("objects_gr139.html" ("COLOR_MODEL" . 1057403) ("GAMMA" . 1057474) ("GRAPHICS_TREE" . 1057413) ("LANDSCAPE" . 1057415) ("N_COLORS" . 1057418) ("N_COPIES" . 1057420) ("PALETTE" . 1057464) ("PRINT_QUALITY" . 1057428) ("QUALITY" . 1057435) ("REGISTER_PROPERTIES" . 1057456) ("UNITS" . 1057441))) |
| 1540 | ("Cleanup" pro "IDLgrROI" (system) "Obj->[%s::]%s" ("objects_gr152.html")) | 1540 | ("Cleanup" pro "IDLgrROI" (system) "Obj->[%s::]%s" ("objects_gr152.html")) |
| 1541 | ("GetProperty" pro "IDLgrROI" (system) "Obj->[%s::]%s" ("objects_gr153.html" ) ("objects_gr151.html" ("ALL" . 1057567) ("ALPHA_CHANNEL" . 1315614) ("CLIP_PLANES" . 1057587) ("COLOR " . 1057592) ("DEPTH_TEST_DISABLE" . 1095007) ("DEPTH_TEST_FUNCTION" . 1095803) ("DEPTH_WRITE_DISABLE" . 1095842) ("DOUBLE" . 1078228) ("HIDE" . 1078231) ("LINESTYLE " . 1057600) ("PALETTE " . 1057611) ("PARENT " . 1345141) ("STYLE" . 1093956) ("SYMBOL" . 1057621) ("THICK" . 1057626) ("XCOORD_CONV" . 1057630) ("XRANGE" . 1057656) ("YCOORD_CONV" . 1057636) ("YRANGE" . 1057668) ("ZCOORD_CONV" . 1057666) ("ZRANGE" . 1057574))) | 1541 | ("GetProperty" pro "IDLgrROI" (system) "Obj->[%s::]%s" ("objects_gr153.html" ) ("objects_gr151.html" ("ALL" . 1057567) ("ALPHA_CHANNEL" . 1315614) ("CLIP_PLANES" . 1057587) ("COLOR" . 1057592) ("DEPTH_TEST_DISABLE" . 1095007) ("DEPTH_TEST_FUNCTION" . 1095803) ("DEPTH_WRITE_DISABLE" . 1095842) ("DOUBLE" . 1078228) ("HIDE" . 1078231) ("LINESTYLE" . 1057600) ("PALETTE" . 1057611) ("PARENT" . 1345141) ("STYLE" . 1093956) ("SYMBOL" . 1057621) ("THICK" . 1057626) ("XCOORD_CONV" . 1057630) ("XRANGE" . 1057656) ("YCOORD_CONV" . 1057636) ("YRANGE" . 1057668) ("ZCOORD_CONV" . 1057666) ("ZRANGE" . 1057574))) |
| 1542 | ("SetProperty" pro "IDLgrROI" (system) "Obj->[%s::]%s" ("objects_gr156.html" ) ("objects_gr151.html" ("ALPHA_CHANNEL" . 1315614) ("CLIP_PLANES" . 1057587) ("COLOR " . 1057592) ("DEPTH_TEST_DISABLE" . 1095007) ("DEPTH_TEST_FUNCTION" . 1095803) ("DEPTH_WRITE_DISABLE" . 1095842) ("DOUBLE" . 1078228) ("HIDE" . 1078231) ("LINESTYLE " . 1057600) ("PALETTE " . 1057611) ("STYLE" . 1093956) ("SYMBOL" . 1057621) ("THICK" . 1057626) ("XCOORD_CONV" . 1057630) ("YCOORD_CONV" . 1057636) ("ZCOORD_CONV" . 1057666))) | 1542 | ("SetProperty" pro "IDLgrROI" (system) "Obj->[%s::]%s" ("objects_gr156.html" ) ("objects_gr151.html" ("ALPHA_CHANNEL" . 1315614) ("CLIP_PLANES" . 1057587) ("COLOR" . 1057592) ("DEPTH_TEST_DISABLE" . 1095007) ("DEPTH_TEST_FUNCTION" . 1095803) ("DEPTH_WRITE_DISABLE" . 1095842) ("DOUBLE" . 1078228) ("HIDE" . 1078231) ("LINESTYLE" . 1057600) ("PALETTE" . 1057611) ("STYLE" . 1093956) ("SYMBOL" . 1057621) ("THICK" . 1057626) ("XCOORD_CONV" . 1057630) ("YCOORD_CONV" . 1057636) ("ZCOORD_CONV" . 1057666))) |
| 1543 | ("Init" fun "IDLgrROI" (system) "Result = Obj->[%s::]%s([, X[, Y[, Z]]])" ("objects_gr154.html" ) ("objects_gr151.html" ("ALPHA_CHANNEL" . 1315614) ("CLIP_PLANES" . 1057587) ("COLOR " . 1057592) ("DEPTH_TEST_DISABLE" . 1095007) ("DEPTH_TEST_FUNCTION" . 1095803) ("DEPTH_WRITE_DISABLE" . 1095842) ("DOUBLE" . 1078228) ("HIDE" . 1078231) ("LINESTYLE " . 1057600) ("PALETTE " . 1057611) ("REGISTER_PROPERTIES" . 1057616) ("STYLE" . 1093956) ("SYMBOL" . 1057621) ("THICK" . 1057626) ("XCOORD_CONV" . 1057630) ("YCOORD_CONV" . 1057636) ("ZCOORD_CONV" . 1057666))) | 1543 | ("Init" fun "IDLgrROI" (system) "Result = Obj->[%s::]%s([, X[, Y[, Z]]])" ("objects_gr154.html" ) ("objects_gr151.html" ("ALPHA_CHANNEL" . 1315614) ("CLIP_PLANES" . 1057587) ("COLOR" . 1057592) ("DEPTH_TEST_DISABLE" . 1095007) ("DEPTH_TEST_FUNCTION" . 1095803) ("DEPTH_WRITE_DISABLE" . 1095842) ("DOUBLE" . 1078228) ("HIDE" . 1078231) ("LINESTYLE" . 1057600) ("PALETTE" . 1057611) ("REGISTER_PROPERTIES" . 1057616) ("STYLE" . 1093956) ("SYMBOL" . 1057621) ("THICK" . 1057626) ("XCOORD_CONV" . 1057630) ("YCOORD_CONV" . 1057636) ("ZCOORD_CONV" . 1057666))) |
| 1544 | ("PickVertex" fun "IDLgrROI" (system) "Result = Obj->[%s::]%s( Dest, View, Point)" ("objects_gr155.html" ("PATH" . 1014753))) | 1544 | ("PickVertex" fun "IDLgrROI" (system) "Result = Obj->[%s::]%s( Dest, View, Point)" ("objects_gr155.html" ("PATH" . 1014753))) |
| 1545 | ("Add" pro "IDLgrROIGroup" (system) "Obj->[%s::]%s, ROI" ("objects_gr159.html")) | 1545 | ("Add" pro "IDLgrROIGroup" (system) "Obj->[%s::]%s, ROI" ("objects_gr159.html")) |
| 1546 | ("Cleanup" pro "IDLgrROIGroup" (system) "Obj->[%s::]%s" ("objects_gr160.html")) | 1546 | ("Cleanup" pro "IDLgrROIGroup" (system) "Obj->[%s::]%s" ("objects_gr160.html")) |
| 1547 | ("GetProperty" pro "IDLgrROIGroup" (system) "Obj->[%s::]%s" ("objects_gr161.html" ) ("objects_gr158.html" ("ALL" . 1057772) ("CLIP_PLANES" . 1057798) ("COLOR " . 1057803) ("DEPTH_TEST_DISABLE" . 1095013) ("DEPTH_TEST_FUNCTION" . 1095918) ("DEPTH_WRITE_DISABLE" . 1095957) ("HIDE" . 1057805) ("PARENT " . 1057863) ("XCOORD_CONV" . 1057861) ("XRANGE " . 1057853) ("YCOORD_CONV" . 1057851) ("YRANGE" . 1080305) ("ZCOORD_CONV" . 1057839) ("ZRANGE" . 1057781))) | 1547 | ("GetProperty" pro "IDLgrROIGroup" (system) "Obj->[%s::]%s" ("objects_gr161.html" ) ("objects_gr158.html" ("ALL" . 1057772) ("CLIP_PLANES" . 1057798) ("COLOR" . 1057803) ("DEPTH_TEST_DISABLE" . 1095013) ("DEPTH_TEST_FUNCTION" . 1095918) ("DEPTH_WRITE_DISABLE" . 1095957) ("HIDE" . 1057805) ("PARENT" . 1057863) ("XCOORD_CONV" . 1057861) ("XRANGE" . 1057853) ("YCOORD_CONV" . 1057851) ("YRANGE" . 1080305) ("ZCOORD_CONV" . 1057839) ("ZRANGE" . 1057781))) |
| 1548 | ("SetProperty" pro "IDLgrROIGroup" (system) "Obj->[%s::]%s" ("objects_gr164.html" ) ("objects_gr158.html" ("CLIP_PLANES" . 1057798) ("COLOR " . 1057803) ("DEPTH_TEST_DISABLE" . 1095013) ("DEPTH_TEST_FUNCTION" . 1095918) ("DEPTH_WRITE_DISABLE" . 1095957) ("HIDE" . 1057805) ("XCOORD_CONV" . 1057861) ("YCOORD_CONV" . 1057851) ("ZCOORD_CONV" . 1057839))) | 1548 | ("SetProperty" pro "IDLgrROIGroup" (system) "Obj->[%s::]%s" ("objects_gr164.html" ) ("objects_gr158.html" ("CLIP_PLANES" . 1057798) ("COLOR" . 1057803) ("DEPTH_TEST_DISABLE" . 1095013) ("DEPTH_TEST_FUNCTION" . 1095918) ("DEPTH_WRITE_DISABLE" . 1095957) ("HIDE" . 1057805) ("XCOORD_CONV" . 1057861) ("YCOORD_CONV" . 1057851) ("ZCOORD_CONV" . 1057839))) |
| 1549 | ("Init" fun "IDLgrROIGroup" (system) "Result = Obj->[%s::]%s()" ("objects_gr162.html" ) ("objects_gr158.html" ("CLIP_PLANES" . 1057798) ("COLOR " . 1057803) ("DEPTH_TEST_DISABLE" . 1095013) ("DEPTH_TEST_FUNCTION" . 1095918) ("DEPTH_WRITE_DISABLE" . 1095957) ("HIDE" . 1057805) ("XCOORD_CONV" . 1057861) ("YCOORD_CONV" . 1057851) ("ZCOORD_CONV" . 1057839))) | 1549 | ("Init" fun "IDLgrROIGroup" (system) "Result = Obj->[%s::]%s()" ("objects_gr162.html" ) ("objects_gr158.html" ("CLIP_PLANES" . 1057798) ("COLOR" . 1057803) ("DEPTH_TEST_DISABLE" . 1095013) ("DEPTH_TEST_FUNCTION" . 1095918) ("DEPTH_WRITE_DISABLE" . 1095957) ("HIDE" . 1057805) ("XCOORD_CONV" . 1057861) ("YCOORD_CONV" . 1057851) ("ZCOORD_CONV" . 1057839))) |
| 1550 | ("PickRegion" fun "IDLgrROIGroup" (system) "Result = Obj->[%s::]%s( Dest, View, Point)" ("objects_gr163.html" ("PATH" . 1015096))) | 1550 | ("PickRegion" fun "IDLgrROIGroup" (system) "Result = Obj->[%s::]%s( Dest, View, Point)" ("objects_gr163.html" ("PATH" . 1015096))) |
| 1551 | ("Add" pro "IDLgrScene" (system) "Obj->[%s::]%s, View" ("objects_gr167.html" ("POSITION" . 1015243))) | 1551 | ("Add" pro "IDLgrScene" (system) "Obj->[%s::]%s, View" ("objects_gr167.html" ("POSITION" . 1015243))) |
| 1552 | ("Cleanup" pro "IDLgrScene" (system) "Obj->[%s::]%s" ("objects_gr168.html")) | 1552 | ("Cleanup" pro "IDLgrScene" (system) "Obj->[%s::]%s" ("objects_gr168.html")) |
| @@ -1555,10 +1555,10 @@ | |||
| 1555 | ("GetByName" fun "IDLgrScene" (system) "Result = Obj->[%s::]%s(Name)" ("objects_gr169.html")) | 1555 | ("GetByName" fun "IDLgrScene" (system) "Result = Obj->[%s::]%s(Name)" ("objects_gr169.html")) |
| 1556 | ("Init" fun "IDLgrScene" (system) "Result = Obj->[%s::]%s()" ("objects_gr171.html" ) ("objects_gr166.html" ("COLOR" . 1080480) ("HIDE" . 1057961) ("REGISTER_PROPERTIES" . 1057969))) | 1556 | ("Init" fun "IDLgrScene" (system) "Result = Obj->[%s::]%s()" ("objects_gr171.html" ) ("objects_gr166.html" ("COLOR" . 1080480) ("HIDE" . 1057961) ("REGISTER_PROPERTIES" . 1057969))) |
| 1557 | ("Cleanup" pro "IDLgrSurface" (system) "Obj->[%s::]%s" ("objects_gr175.html")) | 1557 | ("Cleanup" pro "IDLgrSurface" (system) "Obj->[%s::]%s" ("objects_gr175.html")) |
| 1558 | ("GetProperty" pro "IDLgrSurface" (system) "Obj->[%s::]%s" ("objects_gr177.html" ) ("objects_gr174.html" ("ALL" . 1058014) ("ALPHA_CHANNEL" . 1314657) ("AMBIENT" . 1310692) ("BOTTOM" . 1058035) ("CLIP_PLANES" . 1058037) ("COLOR" . 1058042) ("DATA" . 1339889) ("DEPTH_OFFSET " . 1058050) ("DEPTH_TEST_DISABLE" . 1095019) ("DEPTH_TEST_FUNCTION" . 1096040) ("DEPTH_WRITE_DISABLE" . 1096079) ("DIFFUSE" . 1310743) ("DOUBLE" . 1058056) ("EMISSION" . 1310780) ("EXTENDED_LEGO" . 1058059) ("HIDDEN_LINES" . 1058061) ("HIDE" . 1058063) ("LINESTYLE " . 1058067) ("MAX_VALUE " . 1058080) ("MIN_VALUE" . 1058082) ("PALETTE " . 1058086) ("PARENT " . 1058283) ("SHADE_RANGE" . 1058090) ("SHADING" . 1058092) ("SHININESS" . 1310817) ("SHOW_SKIRT" . 1058099) ("SKIRT" . 1058101) ("SPECULAR" . 1310884) ("STYLE" . 1058103) ("TEXTURE_COORD" . 1604848) ("TEXTURE_HIGHRES" . 1058120) ("TEXTURE_INTERP" . 1058123) ("TEXTURE_MAP" . 1058125) ("THICK " . 1058136) ("USE_TRIANGLES" . 1058140) ("VERT_COLORS" . 1058142) ("XCOORD_CONV" . 1058145) ("XRANGE " . 1058297) ("YCOORD_CONV" . 1058295) ("YRANGE" . 1058309) ("ZCOORD_CONV" . 1058307) ("ZERO_OPACITY_SKIP" . 1058163) ("ZRANGE" . 1082521))) | 1558 | ("GetProperty" pro "IDLgrSurface" (system) "Obj->[%s::]%s" ("objects_gr177.html" ) ("objects_gr174.html" ("ALL" . 1058014) ("ALPHA_CHANNEL" . 1314657) ("AMBIENT" . 1310692) ("BOTTOM" . 1058035) ("CLIP_PLANES" . 1058037) ("COLOR" . 1058042) ("DATA" . 1339889) ("DEPTH_OFFSET" . 1058050) ("DEPTH_TEST_DISABLE" . 1095019) ("DEPTH_TEST_FUNCTION" . 1096040) ("DEPTH_WRITE_DISABLE" . 1096079) ("DIFFUSE" . 1310743) ("DOUBLE" . 1058056) ("EMISSION" . 1310780) ("EXTENDED_LEGO" . 1058059) ("HIDDEN_LINES" . 1058061) ("HIDE" . 1058063) ("LINESTYLE" . 1058067) ("MAX_VALUE" . 1058080) ("MIN_VALUE" . 1058082) ("PALETTE" . 1058086) ("PARENT" . 1058283) ("SHADE_RANGE" . 1058090) ("SHADING" . 1058092) ("SHININESS" . 1310817) ("SHOW_SKIRT" . 1058099) ("SKIRT" . 1058101) ("SPECULAR" . 1310884) ("STYLE" . 1058103) ("TEXTURE_COORD" . 1604848) ("TEXTURE_HIGHRES" . 1058120) ("TEXTURE_INTERP" . 1058123) ("TEXTURE_MAP" . 1058125) ("THICK" . 1058136) ("USE_TRIANGLES" . 1058140) ("VERT_COLORS" . 1058142) ("XCOORD_CONV" . 1058145) ("XRANGE" . 1058297) ("YCOORD_CONV" . 1058295) ("YRANGE" . 1058309) ("ZCOORD_CONV" . 1058307) ("ZERO_OPACITY_SKIP" . 1058163) ("ZRANGE" . 1082521))) |
| 1559 | ("SetProperty" pro "IDLgrSurface" (system) "Obj->[%s::]%s" ("objects_gr179.html" ) ("objects_gr174.html" ("ALPHA_CHANNEL" . 1314657) ("AMBIENT" . 1310692) ("BOTTOM" . 1058035) ("CLIP_PLANES" . 1058037) ("COLOR" . 1058042) ("DATAX" . 1339826) ("DATAY" . 1058046) ("DATAZ" . 1058048) ("DEPTH_OFFSET " . 1058050) ("DEPTH_TEST_DISABLE" . 1095019) ("DEPTH_TEST_FUNCTION" . 1096040) ("DEPTH_WRITE_DISABLE" . 1096079) ("DIFFUSE" . 1310743) ("DOUBLE" . 1058056) ("EMISSION" . 1310780) ("EXTENDED_LEGO" . 1058059) ("HIDDEN_LINES" . 1058061) ("HIDE" . 1058063) ("LINESTYLE " . 1058067) ("MAX_VALUE " . 1058080) ("MIN_VALUE" . 1058082) ("PALETTE " . 1058086) ("RESET_DATA" . 1094044) ("SHADE_RANGE" . 1058090) ("SHADING" . 1058092) ("SHARE_DATA" . 1082385) ("SHININESS" . 1310817) ("SHOW_SKIRT" . 1058099) ("SKIRT" . 1058101) ("SPECULAR" . 1310884) ("STYLE" . 1058103) ("TEXTURE_COORD" . 1604848) ("TEXTURE_HIGHRES" . 1058120) ("TEXTURE_INTERP" . 1058123) ("TEXTURE_MAP" . 1058125) ("THICK " . 1058136) ("USE_TRIANGLES" . 1058140) ("VERT_COLORS" . 1058142) ("XCOORD_CONV" . 1058145) ("YCOORD_CONV" . 1058295) ("ZCOORD_CONV" . 1058307) ("ZERO_OPACITY_SKIP" . 1058163))) | 1559 | ("SetProperty" pro "IDLgrSurface" (system) "Obj->[%s::]%s" ("objects_gr179.html" ) ("objects_gr174.html" ("ALPHA_CHANNEL" . 1314657) ("AMBIENT" . 1310692) ("BOTTOM" . 1058035) ("CLIP_PLANES" . 1058037) ("COLOR" . 1058042) ("DATAX" . 1339826) ("DATAY" . 1058046) ("DATAZ" . 1058048) ("DEPTH_OFFSET" . 1058050) ("DEPTH_TEST_DISABLE" . 1095019) ("DEPTH_TEST_FUNCTION" . 1096040) ("DEPTH_WRITE_DISABLE" . 1096079) ("DIFFUSE" . 1310743) ("DOUBLE" . 1058056) ("EMISSION" . 1310780) ("EXTENDED_LEGO" . 1058059) ("HIDDEN_LINES" . 1058061) ("HIDE" . 1058063) ("LINESTYLE" . 1058067) ("MAX_VALUE" . 1058080) ("MIN_VALUE" . 1058082) ("PALETTE" . 1058086) ("RESET_DATA" . 1094044) ("SHADE_RANGE" . 1058090) ("SHADING" . 1058092) ("SHARE_DATA" . 1082385) ("SHININESS" . 1310817) ("SHOW_SKIRT" . 1058099) ("SKIRT" . 1058101) ("SPECULAR" . 1310884) ("STYLE" . 1058103) ("TEXTURE_COORD" . 1604848) ("TEXTURE_HIGHRES" . 1058120) ("TEXTURE_INTERP" . 1058123) ("TEXTURE_MAP" . 1058125) ("THICK" . 1058136) ("USE_TRIANGLES" . 1058140) ("VERT_COLORS" . 1058142) ("XCOORD_CONV" . 1058145) ("YCOORD_CONV" . 1058295) ("ZCOORD_CONV" . 1058307) ("ZERO_OPACITY_SKIP" . 1058163))) |
| 1560 | ("GetCTM" fun "IDLgrSurface" (system) "Result = Obj->[%s::]%s()" ("objects_gr176.html" ("DESTINATION" . 1015591) ("PATH" . 1015593) ("TOP" . 1015599))) | 1560 | ("GetCTM" fun "IDLgrSurface" (system) "Result = Obj->[%s::]%s()" ("objects_gr176.html" ("DESTINATION" . 1015591) ("PATH" . 1015593) ("TOP" . 1015599))) |
| 1561 | ("Init" fun "IDLgrSurface" (system) "Result = Obj->[%s::]%s([, Z [, X, Y]])" ("objects_gr178.html" ) ("objects_gr174.html" ("ALPHA_CHANNEL" . 1314657) ("AMBIENT" . 1310692) ("BOTTOM" . 1058035) ("CLIP_PLANES" . 1058037) ("COLOR" . 1058042) ("DATAX" . 1339826) ("DATAY" . 1058046) ("DATAZ" . 1058048) ("DEPTH_OFFSET " . 1058050) ("DEPTH_TEST_DISABLE" . 1095019) ("DEPTH_TEST_FUNCTION" . 1096040) ("DEPTH_WRITE_DISABLE" . 1096079) ("DIFFUSE" . 1310743) ("DOUBLE" . 1058056) ("EMISSION" . 1310780) ("EXTENDED_LEGO" . 1058059) ("HIDDEN_LINES" . 1058061) ("HIDE" . 1058063) ("LINESTYLE " . 1058067) ("MAX_VALUE " . 1058080) ("MIN_VALUE" . 1058082) ("PALETTE " . 1058086) ("REGISTER_PROPERTIES" . 1094041) ("RESET_DATA" . 1094044) ("SHADE_RANGE" . 1058090) ("SHADING" . 1058092) ("SHARE_DATA" . 1082385) ("SHININESS" . 1310817) ("SHOW_SKIRT" . 1058099) ("SKIRT" . 1058101) ("SPECULAR" . 1310884) ("STYLE" . 1058103) ("TEXTURE_COORD" . 1604848) ("TEXTURE_HIGHRES" . 1058120) ("TEXTURE_INTERP" . 1058123) ("TEXTURE_MAP" . 1058125) ("THICK " . 1058136) ("USE_TRIANGLES" . 1058140) ("VERT_COLORS" . 1058142) ("XCOORD_CONV" . 1058145) ("YCOORD_CONV" . 1058295) ("ZCOORD_CONV" . 1058307) ("ZERO_OPACITY_SKIP" . 1058163))) | 1561 | ("Init" fun "IDLgrSurface" (system) "Result = Obj->[%s::]%s([, Z [, X, Y]])" ("objects_gr178.html" ) ("objects_gr174.html" ("ALPHA_CHANNEL" . 1314657) ("AMBIENT" . 1310692) ("BOTTOM" . 1058035) ("CLIP_PLANES" . 1058037) ("COLOR" . 1058042) ("DATAX" . 1339826) ("DATAY" . 1058046) ("DATAZ" . 1058048) ("DEPTH_OFFSET" . 1058050) ("DEPTH_TEST_DISABLE" . 1095019) ("DEPTH_TEST_FUNCTION" . 1096040) ("DEPTH_WRITE_DISABLE" . 1096079) ("DIFFUSE" . 1310743) ("DOUBLE" . 1058056) ("EMISSION" . 1310780) ("EXTENDED_LEGO" . 1058059) ("HIDDEN_LINES" . 1058061) ("HIDE" . 1058063) ("LINESTYLE" . 1058067) ("MAX_VALUE" . 1058080) ("MIN_VALUE" . 1058082) ("PALETTE" . 1058086) ("REGISTER_PROPERTIES" . 1094041) ("RESET_DATA" . 1094044) ("SHADE_RANGE" . 1058090) ("SHADING" . 1058092) ("SHARE_DATA" . 1082385) ("SHININESS" . 1310817) ("SHOW_SKIRT" . 1058099) ("SKIRT" . 1058101) ("SPECULAR" . 1310884) ("STYLE" . 1058103) ("TEXTURE_COORD" . 1604848) ("TEXTURE_HIGHRES" . 1058120) ("TEXTURE_INTERP" . 1058123) ("TEXTURE_MAP" . 1058125) ("THICK" . 1058136) ("USE_TRIANGLES" . 1058140) ("VERT_COLORS" . 1058142) ("XCOORD_CONV" . 1058145) ("YCOORD_CONV" . 1058295) ("ZCOORD_CONV" . 1058307) ("ZERO_OPACITY_SKIP" . 1058163))) |
| 1562 | ("Cleanup" pro "IDLgrSymbol" (system) "Obj->[%s::]%s" ("objects_gr182.html")) | 1562 | ("Cleanup" pro "IDLgrSymbol" (system) "Obj->[%s::]%s" ("objects_gr182.html")) |
| 1563 | ("GetProperty" pro "IDLgrSymbol" (system) "Obj->[%s::]%s" ("objects_gr183.html" ) ("objects_gr181.html" ("ALL" . 1058799) ("ALPHA_CHANNEL" . 1315142) ("COLOR" . 1058811) ("DATA" . 1058813) ("SIZE" . 1058817) ("THICK" . 1058823))) | 1563 | ("GetProperty" pro "IDLgrSymbol" (system) "Obj->[%s::]%s" ("objects_gr183.html" ) ("objects_gr181.html" ("ALL" . 1058799) ("ALPHA_CHANNEL" . 1315142) ("COLOR" . 1058811) ("DATA" . 1058813) ("SIZE" . 1058817) ("THICK" . 1058823))) |
| 1564 | ("SetProperty" pro "IDLgrSymbol" (system) "Obj->[%s::]%s" ("objects_gr185.html" ) ("objects_gr181.html" ("ALPHA_CHANNEL" . 1315142) ("COLOR" . 1058811) ("DATA" . 1058813) ("SIZE" . 1058817) ("THICK" . 1058823))) | 1564 | ("SetProperty" pro "IDLgrSymbol" (system) "Obj->[%s::]%s" ("objects_gr185.html" ) ("objects_gr181.html" ("ALPHA_CHANNEL" . 1315142) ("COLOR" . 1058811) ("DATA" . 1058813) ("SIZE" . 1058817) ("THICK" . 1058823))) |
| @@ -1569,16 +1569,16 @@ | |||
| 1569 | ("Init" fun "IDLgrTessellator" (system) "Result = Obj->[%s::]%s()" ("objects_gr190.html" )) | 1569 | ("Init" fun "IDLgrTessellator" (system) "Result = Obj->[%s::]%s()" ("objects_gr190.html" )) |
| 1570 | ("Tessellate" fun "IDLgrTessellator" (system) "Result = Obj->[%s::]%s( Vertices, Poly)" ("objects_gr192.html" ("AUXDATA" . 1016374) ("QUIET" . 1016376))) | 1570 | ("Tessellate" fun "IDLgrTessellator" (system) "Result = Obj->[%s::]%s( Vertices, Poly)" ("objects_gr192.html" ("AUXDATA" . 1016374) ("QUIET" . 1016376))) |
| 1571 | ("Cleanup" pro "IDLgrText" (system) "Obj->[%s::]%s" ("objects_gr195.html")) | 1571 | ("Cleanup" pro "IDLgrText" (system) "Obj->[%s::]%s" ("objects_gr195.html")) |
| 1572 | ("GetProperty" pro "IDLgrText" (system) "Obj->[%s::]%s" ("objects_gr197.html" ) ("objects_gr194.html" ("ALIGNMENT" . 1058986) ("ALL" . 1058984) ("ALPHA_CHANNEL" . 1096721) ("BASELINE" . 1096723) ("CHAR_DIMENSIONS" . 1058905) ("CLIP_PLANES " . 1058910) ("COLOR " . 1058915) ("DEPTH_TEST_DISABLE" . 1095025) ("DEPTH_TEST_FUNCTION" . 1096162) ("DEPTH_WRITE_DISABLE" . 1096201) ("ENABLE_FORMATTING" . 1058917) ("FILL_BACKGROUND" . 1058922) ("FILL_COLOR" . 1090549) ("FONT" . 1090557) ("HIDE" . 1058929) ("KERNING" . 1058933) ("LOCATIONS" . 1090561) ("ONGLASS" . 1058937) ("PALETTE" . 1058939) ("PARENT" . 1058996) ("RECOMPUTE_DIMENSIONS " . 1058994) ("RENDER_METHOD" . 1096891) ("STRINGS " . 1096894) ("UPDIR " . 1058950) ("VERTICAL_ALIGNMENT" . 1058954) ("XCOORD_CONV" . 1058956) ("XRANGE" . 1059010) ("YCOORD_CONV" . 1059008) ("YRANGE" . 1059022) ("ZCOORD_CONV" . 1058968) ("ZRANGE" . 1058890))) | 1572 | ("GetProperty" pro "IDLgrText" (system) "Obj->[%s::]%s" ("objects_gr197.html" ) ("objects_gr194.html" ("ALIGNMENT" . 1058986) ("ALL" . 1058984) ("ALPHA_CHANNEL" . 1096721) ("BASELINE" . 1096723) ("CHAR_DIMENSIONS" . 1058905) ("CLIP_PLANES" . 1058910) ("COLOR" . 1058915) ("DEPTH_TEST_DISABLE" . 1095025) ("DEPTH_TEST_FUNCTION" . 1096162) ("DEPTH_WRITE_DISABLE" . 1096201) ("ENABLE_FORMATTING" . 1058917) ("FILL_BACKGROUND" . 1058922) ("FILL_COLOR" . 1090549) ("FONT" . 1090557) ("HIDE" . 1058929) ("KERNING" . 1058933) ("LOCATIONS" . 1090561) ("ONGLASS" . 1058937) ("PALETTE" . 1058939) ("PARENT" . 1058996) ("RECOMPUTE_DIMENSIONS" . 1058994) ("RENDER_METHOD" . 1096891) ("STRINGS" . 1096894) ("UPDIR" . 1058950) ("VERTICAL_ALIGNMENT" . 1058954) ("XCOORD_CONV" . 1058956) ("XRANGE" . 1059010) ("YCOORD_CONV" . 1059008) ("YRANGE" . 1059022) ("ZCOORD_CONV" . 1058968) ("ZRANGE" . 1058890))) |
| 1573 | ("SetProperty" pro "IDLgrText" (system) "Obj->[%s::]%s" ("objects_gr199.html" ) ("objects_gr194.html" ("ALIGNMENT" . 1058986) ("ALPHA_CHANNEL" . 1096721) ("BASELINE" . 1096723) ("CHAR_DIMENSIONS" . 1058905) ("CLIP_PLANES " . 1058910) ("COLOR " . 1058915) ("DEPTH_TEST_DISABLE" . 1095025) ("DEPTH_TEST_FUNCTION" . 1096162) ("DEPTH_WRITE_DISABLE" . 1096201) ("ENABLE_FORMATTING" . 1058917) ("FILL_BACKGROUND" . 1058922) ("FILL_COLOR" . 1090549) ("FONT" . 1090557) ("HIDE" . 1058929) ("KERNING" . 1058933) ("LOCATIONS" . 1090561) ("ONGLASS" . 1058937) ("PALETTE" . 1058939) ("RECOMPUTE_DIMENSIONS " . 1058994) ("RENDER_METHOD" . 1096891) ("STRINGS " . 1096894) ("UPDIR " . 1058950) ("VERTICAL_ALIGNMENT" . 1058954) ("XCOORD_CONV" . 1058956) ("YCOORD_CONV" . 1059008) ("ZCOORD_CONV" . 1058968))) | 1573 | ("SetProperty" pro "IDLgrText" (system) "Obj->[%s::]%s" ("objects_gr199.html" ) ("objects_gr194.html" ("ALIGNMENT" . 1058986) ("ALPHA_CHANNEL" . 1096721) ("BASELINE" . 1096723) ("CHAR_DIMENSIONS" . 1058905) ("CLIP_PLANES" . 1058910) ("COLOR" . 1058915) ("DEPTH_TEST_DISABLE" . 1095025) ("DEPTH_TEST_FUNCTION" . 1096162) ("DEPTH_WRITE_DISABLE" . 1096201) ("ENABLE_FORMATTING" . 1058917) ("FILL_BACKGROUND" . 1058922) ("FILL_COLOR" . 1090549) ("FONT" . 1090557) ("HIDE" . 1058929) ("KERNING" . 1058933) ("LOCATIONS" . 1090561) ("ONGLASS" . 1058937) ("PALETTE" . 1058939) ("RECOMPUTE_DIMENSIONS" . 1058994) ("RENDER_METHOD" . 1096891) ("STRINGS" . 1096894) ("UPDIR" . 1058950) ("VERTICAL_ALIGNMENT" . 1058954) ("XCOORD_CONV" . 1058956) ("YCOORD_CONV" . 1059008) ("ZCOORD_CONV" . 1058968))) |
| 1574 | ("GetCTM" fun "IDLgrText" (system) "Result = Obj->[%s::]%s()" ("objects_gr196.html" ("DESTINATION" . 1016508) ("PATH" . 1016510) ("TOP" . 1016516))) | 1574 | ("GetCTM" fun "IDLgrText" (system) "Result = Obj->[%s::]%s()" ("objects_gr196.html" ("DESTINATION" . 1016508) ("PATH" . 1016510) ("TOP" . 1016516))) |
| 1575 | ("Init" fun "IDLgrText" (system) "Result = Obj->[%s::]%s([, String or vector of strings])" ("objects_gr198.html" ) ("objects_gr194.html" ("ALIGNMENT" . 1058986) ("ALPHA_CHANNEL" . 1096721) ("BASELINE" . 1096723) ("CHAR_DIMENSIONS" . 1058905) ("CLIP_PLANES " . 1058910) ("COLOR " . 1058915) ("DEPTH_TEST_DISABLE" . 1095025) ("DEPTH_TEST_FUNCTION" . 1096162) ("DEPTH_WRITE_DISABLE" . 1096201) ("ENABLE_FORMATTING" . 1058917) ("FILL_BACKGROUND" . 1058922) ("FILL_COLOR" . 1090549) ("FONT" . 1090557) ("HIDE" . 1058929) ("KERNING" . 1058933) ("LOCATIONS" . 1090561) ("ONGLASS" . 1058937) ("PALETTE" . 1058939) ("RECOMPUTE_DIMENSIONS " . 1058994) ("REGISTER_PROPERTIES" . 1058946) ("RENDER_METHOD" . 1096891) ("STRINGS " . 1096894) ("UPDIR " . 1058950) ("VERTICAL_ALIGNMENT" . 1058954) ("XCOORD_CONV" . 1058956) ("YCOORD_CONV" . 1059008) ("ZCOORD_CONV" . 1058968))) | 1575 | ("Init" fun "IDLgrText" (system) "Result = Obj->[%s::]%s([, String or vector of strings])" ("objects_gr198.html" ) ("objects_gr194.html" ("ALIGNMENT" . 1058986) ("ALPHA_CHANNEL" . 1096721) ("BASELINE" . 1096723) ("CHAR_DIMENSIONS" . 1058905) ("CLIP_PLANES" . 1058910) ("COLOR" . 1058915) ("DEPTH_TEST_DISABLE" . 1095025) ("DEPTH_TEST_FUNCTION" . 1096162) ("DEPTH_WRITE_DISABLE" . 1096201) ("ENABLE_FORMATTING" . 1058917) ("FILL_BACKGROUND" . 1058922) ("FILL_COLOR" . 1090549) ("FONT" . 1090557) ("HIDE" . 1058929) ("KERNING" . 1058933) ("LOCATIONS" . 1090561) ("ONGLASS" . 1058937) ("PALETTE" . 1058939) ("RECOMPUTE_DIMENSIONS" . 1058994) ("REGISTER_PROPERTIES" . 1058946) ("RENDER_METHOD" . 1096891) ("STRINGS" . 1096894) ("UPDIR" . 1058950) ("VERTICAL_ALIGNMENT" . 1058954) ("XCOORD_CONV" . 1058956) ("YCOORD_CONV" . 1059008) ("ZCOORD_CONV" . 1058968))) |
| 1576 | ("Add" pro "IDLgrView" (system) "Obj->[%s::]%s, Model" ("objects_gr202.html" ("POSITION" . 1016823))) | 1576 | ("Add" pro "IDLgrView" (system) "Obj->[%s::]%s, Model" ("objects_gr202.html" ("POSITION" . 1016823))) |
| 1577 | ("Cleanup" pro "IDLgrView" (system) "Obj->[%s::]%s" ("objects_gr203.html")) | 1577 | ("Cleanup" pro "IDLgrView" (system) "Obj->[%s::]%s" ("objects_gr203.html")) |
| 1578 | ("GetProperty" pro "IDLgrView" (system) "Obj->[%s::]%s" ("objects_gr205.html" ) ("objects_gr201.html" ("ALL " . 1059162) ("COLOR" . 1059182) ("DEPTH_CUE" . 1059184) ("DIMENSIONS" . 1059192) ("DOUBLE" . 1059194) ("EYE" . 1059197) ("HIDE" . 1059199) ("LOCATION" . 1090641) ("PARENT " . 1092817) ("PROJECTION" . 1059231) ("TRANSPARENT" . 1094108) ("UNITS " . 1059207) ("VIEWPLANE_RECT " . 1059216) ("ZCLIP " . 1059219))) | 1578 | ("GetProperty" pro "IDLgrView" (system) "Obj->[%s::]%s" ("objects_gr205.html" ) ("objects_gr201.html" ("ALL" . 1059162) ("COLOR" . 1059182) ("DEPTH_CUE" . 1059184) ("DIMENSIONS" . 1059192) ("DOUBLE" . 1059194) ("EYE" . 1059197) ("HIDE" . 1059199) ("LOCATION" . 1090641) ("PARENT" . 1092817) ("PROJECTION" . 1059231) ("TRANSPARENT" . 1094108) ("UNITS" . 1059207) ("VIEWPLANE_RECT" . 1059216) ("ZCLIP" . 1059219))) |
| 1579 | ("SetProperty" pro "IDLgrView" (system) "Obj->[%s::]%s" ("objects_gr207.html" ) ("objects_gr201.html" ("COLOR" . 1059182) ("DEPTH_CUE" . 1059184) ("DIMENSIONS" . 1059192) ("DOUBLE" . 1059194) ("EYE" . 1059197) ("HIDE" . 1059199) ("LOCATION" . 1090641) ("PROJECTION" . 1059231) ("TRANSPARENT" . 1094108) ("UNITS " . 1059207) ("VIEWPLANE_RECT " . 1059216) ("ZCLIP " . 1059219))) | 1579 | ("SetProperty" pro "IDLgrView" (system) "Obj->[%s::]%s" ("objects_gr207.html" ) ("objects_gr201.html" ("COLOR" . 1059182) ("DEPTH_CUE" . 1059184) ("DIMENSIONS" . 1059192) ("DOUBLE" . 1059194) ("EYE" . 1059197) ("HIDE" . 1059199) ("LOCATION" . 1090641) ("PROJECTION" . 1059231) ("TRANSPARENT" . 1094108) ("UNITS" . 1059207) ("VIEWPLANE_RECT" . 1059216) ("ZCLIP" . 1059219))) |
| 1580 | ("GetByName" fun "IDLgrView" (system) "Result = Obj->[%s::]%s(Name)" ("objects_gr204.html")) | 1580 | ("GetByName" fun "IDLgrView" (system) "Result = Obj->[%s::]%s(Name)" ("objects_gr204.html")) |
| 1581 | ("Init" fun "IDLgrView" (system) "Result = Obj->[%s::]%s()" ("objects_gr206.html" ) ("objects_gr201.html" ("COLOR" . 1059182) ("DEPTH_CUE" . 1059184) ("DIMENSIONS" . 1059192) ("DOUBLE" . 1059194) ("EYE" . 1059197) ("HIDE" . 1059199) ("LOCATION" . 1090641) ("PROJECTION" . 1059231) ("REGISTER_PROPERTIES" . 1059205) ("TRANSPARENT" . 1094108) ("UNITS " . 1059207) ("VIEWPLANE_RECT " . 1059216) ("ZCLIP " . 1059219))) | 1581 | ("Init" fun "IDLgrView" (system) "Result = Obj->[%s::]%s()" ("objects_gr206.html" ) ("objects_gr201.html" ("COLOR" . 1059182) ("DEPTH_CUE" . 1059184) ("DIMENSIONS" . 1059192) ("DOUBLE" . 1059194) ("EYE" . 1059197) ("HIDE" . 1059199) ("LOCATION" . 1090641) ("PROJECTION" . 1059231) ("REGISTER_PROPERTIES" . 1059205) ("TRANSPARENT" . 1094108) ("UNITS" . 1059207) ("VIEWPLANE_RECT" . 1059216) ("ZCLIP" . 1059219))) |
| 1582 | ("Add" pro "IDLgrViewgroup" (system) "Obj->[%s::]%s, Object" ("objects_gr210.html" ("POSITION" . 1017170))) | 1582 | ("Add" pro "IDLgrViewgroup" (system) "Obj->[%s::]%s, Object" ("objects_gr210.html" ("POSITION" . 1017170))) |
| 1583 | ("Cleanup" pro "IDLgrViewgroup" (system) "Obj->[%s::]%s" ("objects_gr211.html")) | 1583 | ("Cleanup" pro "IDLgrViewgroup" (system) "Obj->[%s::]%s" ("objects_gr211.html")) |
| 1584 | ("GetProperty" pro "IDLgrViewgroup" (system) "Obj->[%s::]%s" ("objects_gr213.html" ) ("objects_gr209.html" ("ALL" . 1077311) ("HIDE" . 1059327) ("PARENT" . 1084394))) | 1584 | ("GetProperty" pro "IDLgrViewgroup" (system) "Obj->[%s::]%s" ("objects_gr213.html" ) ("objects_gr209.html" ("ALL" . 1077311) ("HIDE" . 1059327) ("PARENT" . 1084394))) |
| @@ -1587,28 +1587,28 @@ | |||
| 1587 | ("Init" fun "IDLgrViewgroup" (system) "Result = Obj->[%s::]%s()" ("objects_gr214.html" ) ("objects_gr209.html" ("HIDE" . 1059327) ("REGISTER_PROPERTIES" . 1059341))) | 1587 | ("Init" fun "IDLgrViewgroup" (system) "Result = Obj->[%s::]%s()" ("objects_gr214.html" ) ("objects_gr209.html" ("HIDE" . 1059327) ("REGISTER_PROPERTIES" . 1059341))) |
| 1588 | ("Cleanup" pro "IDLgrVolume" (system) "Obj->[%s::]%s" ("objects_gr218.html")) | 1588 | ("Cleanup" pro "IDLgrVolume" (system) "Obj->[%s::]%s" ("objects_gr218.html")) |
| 1589 | ("ComputeBounds" pro "IDLgrVolume" (system) "Obj->[%s::]%s" ("objects_gr219.html" ("OPACITY" . 1017518) ("RESET" . 1017520) ("VOLUMES" . 1017522))) | 1589 | ("ComputeBounds" pro "IDLgrVolume" (system) "Obj->[%s::]%s" ("objects_gr219.html" ("OPACITY" . 1017518) ("RESET" . 1017520) ("VOLUMES" . 1017522))) |
| 1590 | ("GetProperty" pro "IDLgrVolume" (system) "Obj->[%s::]%s" ("objects_gr221.html" ) ("objects_gr217.html" ("ALL" . 1059382) ("ALPHA_CHANNEL" . 1315212) ("AMBIENT" . 1059403) ("BOUNDS" . 1059406) ("CLIP_PLANES" . 1059408) ("COMPOSITE_FUNCTION" . 1092822) ("DATA0" . 1059427) ("DATA1 " . 1059429) ("DATA2" . 1059431) ("DATA3" . 1059433) ("DEPTH_CUE" . 1059436) ("DEPTH_TEST_DISABLE" . 1095038) ("DEPTH_TEST_FUNCTION" . 1096277) ("DEPTH_WRITE_DISABLE" . 1096316) ("HIDE" . 1059445) ("HINTS" . 1059449) ("INTERPOLATE" . 1059455) ("LIGHTING_MODEL" . 1059457) ("NO_COPY" . 1059462) ("OPACITY_TABLE0" . 1086135) ("OPACITY_TABLE1" . 1059466) ("PARENT" . 1088485) ("RENDER_STEP" . 1096662) ("RGB_TABLE0" . 1088582) ("RGB_TABLE1" . 1059472) ("TWO_SIDED " . 1059474) ("VALID_DATA" . 1059634) ("VOLUME_SELECT " . 1059632) ("XCOORD_CONV" . 1059489) ("XRANGE" . 1059648) ("YCOORD_CONV" . 1059495) ("YRANGE" . 1059660) ("ZBUFFER" . 1059501) ("ZCOORD_CONV" . 1059503) ("ZERO_OPACITY_SKIP" . 1059509) ("ZRANGE" . 1059393))) | 1590 | ("GetProperty" pro "IDLgrVolume" (system) "Obj->[%s::]%s" ("objects_gr221.html" ) ("objects_gr217.html" ("ALL" . 1059382) ("ALPHA_CHANNEL" . 1315212) ("AMBIENT" . 1059403) ("BOUNDS" . 1059406) ("CLIP_PLANES" . 1059408) ("COMPOSITE_FUNCTION" . 1092822) ("DATA0" . 1059427) ("DATA1" . 1059429) ("DATA2" . 1059431) ("DATA3" . 1059433) ("DEPTH_CUE" . 1059436) ("DEPTH_TEST_DISABLE" . 1095038) ("DEPTH_TEST_FUNCTION" . 1096277) ("DEPTH_WRITE_DISABLE" . 1096316) ("HIDE" . 1059445) ("HINTS" . 1059449) ("INTERPOLATE" . 1059455) ("LIGHTING_MODEL" . 1059457) ("NO_COPY" . 1059462) ("OPACITY_TABLE0" . 1086135) ("OPACITY_TABLE1" . 1059466) ("PARENT" . 1088485) ("RENDER_STEP" . 1096662) ("RGB_TABLE0" . 1088582) ("RGB_TABLE1" . 1059472) ("TWO_SIDED" . 1059474) ("VALID_DATA" . 1059634) ("VOLUME_SELECT" . 1059632) ("XCOORD_CONV" . 1059489) ("XRANGE" . 1059648) ("YCOORD_CONV" . 1059495) ("YRANGE" . 1059660) ("ZBUFFER" . 1059501) ("ZCOORD_CONV" . 1059503) ("ZERO_OPACITY_SKIP" . 1059509) ("ZRANGE" . 1059393))) |
| 1591 | ("SetProperty" pro "IDLgrVolume" (system) "Obj->[%s::]%s" ("objects_gr224.html" ) ("objects_gr217.html" ("ALPHA_CHANNEL" . 1315212) ("AMBIENT" . 1059403) ("BOUNDS" . 1059406) ("CLIP_PLANES" . 1059408) ("COMPOSITE_FUNCTION" . 1092822) ("DATA0" . 1059427) ("DATA1 " . 1059429) ("DATA2" . 1059431) ("DATA3" . 1059433) ("DEPTH_CUE" . 1059436) ("DEPTH_TEST_DISABLE" . 1095038) ("DEPTH_TEST_FUNCTION" . 1096277) ("DEPTH_WRITE_DISABLE" . 1096316) ("HIDE" . 1059445) ("HINTS" . 1059449) ("INTERPOLATE" . 1059455) ("LIGHTING_MODEL" . 1059457) ("NO_COPY" . 1059462) ("OPACITY_TABLE0" . 1086135) ("OPACITY_TABLE1" . 1059466) ("RENDER_STEP" . 1096662) ("RGB_TABLE0" . 1088582) ("RGB_TABLE1" . 1059472) ("TWO_SIDED " . 1059474) ("VOLUME_SELECT " . 1059632) ("XCOORD_CONV" . 1059489) ("YCOORD_CONV" . 1059495) ("ZBUFFER" . 1059501) ("ZCOORD_CONV" . 1059503) ("ZERO_OPACITY_SKIP" . 1059509))) | 1591 | ("SetProperty" pro "IDLgrVolume" (system) "Obj->[%s::]%s" ("objects_gr224.html" ) ("objects_gr217.html" ("ALPHA_CHANNEL" . 1315212) ("AMBIENT" . 1059403) ("BOUNDS" . 1059406) ("CLIP_PLANES" . 1059408) ("COMPOSITE_FUNCTION" . 1092822) ("DATA0" . 1059427) ("DATA1" . 1059429) ("DATA2" . 1059431) ("DATA3" . 1059433) ("DEPTH_CUE" . 1059436) ("DEPTH_TEST_DISABLE" . 1095038) ("DEPTH_TEST_FUNCTION" . 1096277) ("DEPTH_WRITE_DISABLE" . 1096316) ("HIDE" . 1059445) ("HINTS" . 1059449) ("INTERPOLATE" . 1059455) ("LIGHTING_MODEL" . 1059457) ("NO_COPY" . 1059462) ("OPACITY_TABLE0" . 1086135) ("OPACITY_TABLE1" . 1059466) ("RENDER_STEP" . 1096662) ("RGB_TABLE0" . 1088582) ("RGB_TABLE1" . 1059472) ("TWO_SIDED" . 1059474) ("VOLUME_SELECT" . 1059632) ("XCOORD_CONV" . 1059489) ("YCOORD_CONV" . 1059495) ("ZBUFFER" . 1059501) ("ZCOORD_CONV" . 1059503) ("ZERO_OPACITY_SKIP" . 1059509))) |
| 1592 | ("GetCTM" fun "IDLgrVolume" (system) "Result = Obj->[%s::]%s()" ("objects_gr220.html" ("DESTINATION" . 1017555) ("PATH" . 1017557) ("TOP" . 1017563))) | 1592 | ("GetCTM" fun "IDLgrVolume" (system) "Result = Obj->[%s::]%s()" ("objects_gr220.html" ("DESTINATION" . 1017555) ("PATH" . 1017557) ("TOP" . 1017563))) |
| 1593 | ("Init" fun "IDLgrVolume" (system) "Result = Obj->[%s::]%s([, vol0 [, vol1 [, vol2 [, vol3]]]])" ("objects_gr222.html" ) ("objects_gr217.html" ("ALPHA_CHANNEL" . 1315212) ("AMBIENT" . 1059403) ("BOUNDS" . 1059406) ("CLIP_PLANES" . 1059408) ("COMPOSITE_FUNCTION" . 1092822) ("DATA0" . 1059427) ("DATA1 " . 1059429) ("DATA2" . 1059431) ("DATA3" . 1059433) ("DEPTH_CUE" . 1059436) ("DEPTH_TEST_DISABLE" . 1095038) ("DEPTH_TEST_FUNCTION" . 1096277) ("DEPTH_WRITE_DISABLE" . 1096316) ("HIDE" . 1059445) ("HINTS" . 1059449) ("INTERPOLATE" . 1059455) ("LIGHTING_MODEL" . 1059457) ("NO_COPY" . 1059462) ("OPACITY_TABLE0" . 1086135) ("OPACITY_TABLE1" . 1059466) ("REGISTER_PROPERTIES" . 1059616) ("RENDER_STEP" . 1096662) ("RGB_TABLE0" . 1088582) ("RGB_TABLE1" . 1059472) ("TWO_SIDED " . 1059474) ("VOLUME_SELECT " . 1059632) ("XCOORD_CONV" . 1059489) ("YCOORD_CONV" . 1059495) ("ZBUFFER" . 1059501) ("ZCOORD_CONV" . 1059503) ("ZERO_OPACITY_SKIP" . 1059509))) | 1593 | ("Init" fun "IDLgrVolume" (system) "Result = Obj->[%s::]%s([, vol0 [, vol1 [, vol2 [, vol3]]]])" ("objects_gr222.html" ) ("objects_gr217.html" ("ALPHA_CHANNEL" . 1315212) ("AMBIENT" . 1059403) ("BOUNDS" . 1059406) ("CLIP_PLANES" . 1059408) ("COMPOSITE_FUNCTION" . 1092822) ("DATA0" . 1059427) ("DATA1" . 1059429) ("DATA2" . 1059431) ("DATA3" . 1059433) ("DEPTH_CUE" . 1059436) ("DEPTH_TEST_DISABLE" . 1095038) ("DEPTH_TEST_FUNCTION" . 1096277) ("DEPTH_WRITE_DISABLE" . 1096316) ("HIDE" . 1059445) ("HINTS" . 1059449) ("INTERPOLATE" . 1059455) ("LIGHTING_MODEL" . 1059457) ("NO_COPY" . 1059462) ("OPACITY_TABLE0" . 1086135) ("OPACITY_TABLE1" . 1059466) ("REGISTER_PROPERTIES" . 1059616) ("RENDER_STEP" . 1096662) ("RGB_TABLE0" . 1088582) ("RGB_TABLE1" . 1059472) ("TWO_SIDED" . 1059474) ("VOLUME_SELECT" . 1059632) ("XCOORD_CONV" . 1059489) ("YCOORD_CONV" . 1059495) ("ZBUFFER" . 1059501) ("ZCOORD_CONV" . 1059503) ("ZERO_OPACITY_SKIP" . 1059509))) |
| 1594 | ("PickVoxel" fun "IDLgrVolume" (system) "Result = Obj->[%s::]%s ( Win, View, Point)" ("objects_gr223.html" ("PATH" . 1017818))) | 1594 | ("PickVoxel" fun "IDLgrVolume" (system) "Result = Obj->[%s::]%s ( Win, View, Point)" ("objects_gr223.html" ("PATH" . 1017818))) |
| 1595 | ("Cleanup" pro "IDLgrVRML" (system) "Obj->[%s::]%s" ("objects_gr227.html")) | 1595 | ("Cleanup" pro "IDLgrVRML" (system) "Obj->[%s::]%s" ("objects_gr227.html")) |
| 1596 | ("Draw" pro "IDLgrVRML" (system) "Obj->[%s::]%s [, Picture]" ("objects_gr228.html")) | 1596 | ("Draw" pro "IDLgrVRML" (system) "Obj->[%s::]%s [, Picture]" ("objects_gr228.html")) |
| 1597 | ("GetDeviceInfo" pro "IDLgrVRML" (system) "Obj->[%s::]%s" ("objects_gr229.html" ("ALL" . 1018053) ("MAX_NUM_CLIP_PLANES" . 1018055) ("MAX_TEXTURE_DIMENSIONS" . 1018057) ("MAX_VIEWPORT_DIMENSIONS" . 1018059) ("NAME" . 1018061) ("NUM_CPUS" . 1018063) ("VENDOR" . 1018066) ("VERSION" . 1018068))) | 1597 | ("GetDeviceInfo" pro "IDLgrVRML" (system) "Obj->[%s::]%s" ("objects_gr229.html" ("ALL" . 1018053) ("MAX_NUM_CLIP_PLANES" . 1018055) ("MAX_TEXTURE_DIMENSIONS" . 1018057) ("MAX_VIEWPORT_DIMENSIONS" . 1018059) ("NAME" . 1018061) ("NUM_CPUS" . 1018063) ("VENDOR" . 1018066) ("VERSION" . 1018068))) |
| 1598 | ("GetProperty" pro "IDLgrVRML" (system) "Obj->[%s::]%s" ("objects_gr231.html" ) ("objects_gr226.html" ("ALL" . 1059804) ("COLOR_MODEL" . 1059817) ("DIMENSIONS" . 1059821) ("FILENAME" . 1059824) ("GRAPHICS_TREE " . 1059826) ("N_COLORS" . 1059828) ("PALETTE" . 1059830) ("QUALITY " . 1059832) ("RESOLUTION" . 1094159) ("SCREEN_DIMENSIONS" . 1059862) ("UNITS" . 1059860))) | 1598 | ("GetProperty" pro "IDLgrVRML" (system) "Obj->[%s::]%s" ("objects_gr231.html" ) ("objects_gr226.html" ("ALL" . 1059804) ("COLOR_MODEL" . 1059817) ("DIMENSIONS" . 1059821) ("FILENAME" . 1059824) ("GRAPHICS_TREE" . 1059826) ("N_COLORS" . 1059828) ("PALETTE" . 1059830) ("QUALITY" . 1059832) ("RESOLUTION" . 1094159) ("SCREEN_DIMENSIONS" . 1059862) ("UNITS" . 1059860))) |
| 1599 | ("SetProperty" pro "IDLgrVRML" (system) "Obj->[%s::]%s" ("objects_gr234.html" ) ("objects_gr226.html" ("DIMENSIONS" . 1059821) ("FILENAME" . 1059824) ("GRAPHICS_TREE " . 1059826) ("PALETTE" . 1059830) ("QUALITY " . 1059832) ("RESOLUTION" . 1094159) ("UNITS" . 1059860))) | 1599 | ("SetProperty" pro "IDLgrVRML" (system) "Obj->[%s::]%s" ("objects_gr234.html" ) ("objects_gr226.html" ("DIMENSIONS" . 1059821) ("FILENAME" . 1059824) ("GRAPHICS_TREE" . 1059826) ("PALETTE" . 1059830) ("QUALITY" . 1059832) ("RESOLUTION" . 1094159) ("UNITS" . 1059860))) |
| 1600 | ("GetFontnames" fun "IDLgrVRML" (system) "Result = Obj->[%s::]%s( FamilyName)" ("objects_gr230.html" ("IDL_FONTS" . 1018109) ("STYLES" . 1018111))) | 1600 | ("GetFontnames" fun "IDLgrVRML" (system) "Result = Obj->[%s::]%s( FamilyName)" ("objects_gr230.html" ("IDL_FONTS" . 1018109) ("STYLES" . 1018111))) |
| 1601 | ("GetTextDimensions" fun "IDLgrVRML" (system) "Result = Obj->[%s::]%s( TextObj)" ("objects_gr232.html" ("DESCENT" . 1018185) ("PATH" . 1018187))) | 1601 | ("GetTextDimensions" fun "IDLgrVRML" (system) "Result = Obj->[%s::]%s( TextObj)" ("objects_gr232.html" ("DESCENT" . 1018185) ("PATH" . 1018187))) |
| 1602 | ("Init" fun "IDLgrVRML" (system) "Result = Obj->[%s::]%s()" ("objects_gr233.html" ) ("objects_gr226.html" ("COLOR_MODEL" . 1059817) ("DIMENSIONS" . 1059821) ("FILENAME" . 1059824) ("GRAPHICS_TREE " . 1059826) ("N_COLORS" . 1059828) ("PALETTE" . 1059830) ("QUALITY " . 1059832) ("REGISTER_PROPERTIES" . 1059837) ("RESOLUTION" . 1094159) ("UNITS" . 1059860) ("WORLDINFO " . 1059848) ("WORLDTITLE" . 1059850))) | 1602 | ("Init" fun "IDLgrVRML" (system) "Result = Obj->[%s::]%s()" ("objects_gr233.html" ) ("objects_gr226.html" ("COLOR_MODEL" . 1059817) ("DIMENSIONS" . 1059821) ("FILENAME" . 1059824) ("GRAPHICS_TREE" . 1059826) ("N_COLORS" . 1059828) ("PALETTE" . 1059830) ("QUALITY" . 1059832) ("REGISTER_PROPERTIES" . 1059837) ("RESOLUTION" . 1094159) ("UNITS" . 1059860) ("WORLDINFO" . 1059848) ("WORLDTITLE" . 1059850))) |
| 1603 | ("Cleanup" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr237.html")) | 1603 | ("Cleanup" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr237.html")) |
| 1604 | ("Draw" pro "IDLgrWindow" (system) "Obj->[%s::]%s [, Picture]" ("objects_gr238.html" ("CREATE_INSTANCE" . 1018509) ("DRAW_INSTANCE" . 1018511))) | 1604 | ("Draw" pro "IDLgrWindow" (system) "Obj->[%s::]%s [, Picture]" ("objects_gr238.html" ("CREATE_INSTANCE" . 1018509) ("DRAW_INSTANCE" . 1018511))) |
| 1605 | ("Erase" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr239.html" ("COLOR" . 1018544))) | 1605 | ("Erase" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr239.html" ("COLOR" . 1018544))) |
| 1606 | ("GetDeviceInfo" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr241.html" ("ALL" . 1018622) ("MAX_NUM_CLIP_PLANES" . 1018624) ("MAX_TEXTURE_DIMENSIONS" . 1018626) ("MAX_VIEWPORT_DIMENSIONS" . 1018628) ("NAME" . 1018630) ("NUM_CPUS" . 1018632) ("VENDOR" . 1018635) ("VERSION" . 1018637))) | 1606 | ("GetDeviceInfo" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr241.html" ("ALL" . 1018622) ("MAX_NUM_CLIP_PLANES" . 1018624) ("MAX_TEXTURE_DIMENSIONS" . 1018626) ("MAX_VIEWPORT_DIMENSIONS" . 1018628) ("NAME" . 1018630) ("NUM_CPUS" . 1018632) ("VENDOR" . 1018635) ("VERSION" . 1018637))) |
| 1607 | ("GetProperty" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr244.html" ) ("objects_gr236.html" ("ALL" . 1059951) ("COLOR_MODEL" . 1059974) ("CURRENT_ZOOM" . 1249228) ("DIMENSIONS " . 1249231) ("DISPLAY_NAME (X Only)" . 1059985) ("GRAPHICS_TREE" . 1059987) ("IMAGE_DATA " . 1060084) ("LOCATION " . 1060082) ("MINIMUM_VIRTUAL_DIMENSIONS" . 1343479) ("N_COLORS" . 1059992) ("PALETTE" . 1059998) ("QUALITY" . 1060003) ("RENDERER" . 1094184) ("RESOLUTION" . 1060060) ("RETAIN" . 1060058) ("SCREEN_DIMENSIONS " . 1060073) ("TITLE" . 1060071) ("UNITS" . 1060033) ("VIRTUAL_DIMENSIONS" . 1060050) ("VISIBLE_LOCATION" . 1097046) ("ZBUFFER_DATA" . 1091007) ("ZOOM_BASE" . 1342797) ("ZOOM_NSTEP" . 1342953))) | 1607 | ("GetProperty" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr244.html" ) ("objects_gr236.html" ("ALL" . 1059951) ("COLOR_MODEL" . 1059974) ("CURRENT_ZOOM" . 1249228) ("DIMENSIONS" . 1249231) ("DISPLAY_NAME (X Only)" . 1059985) ("GRAPHICS_TREE" . 1059987) ("IMAGE_DATA" . 1060084) ("LOCATION" . 1060082) ("MINIMUM_VIRTUAL_DIMENSIONS" . 1343479) ("N_COLORS" . 1059992) ("PALETTE" . 1059998) ("QUALITY" . 1060003) ("RENDERER" . 1094184) ("RESOLUTION" . 1060060) ("RETAIN" . 1060058) ("SCREEN_DIMENSIONS" . 1060073) ("TITLE" . 1060071) ("UNITS" . 1060033) ("VIRTUAL_DIMENSIONS" . 1060050) ("VISIBLE_LOCATION" . 1097046) ("ZBUFFER_DATA" . 1091007) ("ZOOM_BASE" . 1342797) ("ZOOM_NSTEP" . 1342953))) |
| 1608 | ("Iconify" pro "IDLgrWindow" (system) "Obj->[%s::]%s, IconFlag" ("objects_gr246.html")) | 1608 | ("Iconify" pro "IDLgrWindow" (system) "Obj->[%s::]%s, IconFlag" ("objects_gr246.html")) |
| 1609 | ("SetCurrentCursor" pro "IDLgrWindow" (system) "Obj->[%s::]%s [, CursorName]" ("objects_gr251.html" ("HOTSPOT" . 1019148) ("IMAGE" . 1019144) ("MASK" . 1019146) ("STANDARD" . 1019150))) | 1609 | ("SetCurrentCursor" pro "IDLgrWindow" (system) "Obj->[%s::]%s [, CursorName]" ("objects_gr251.html" ("HOTSPOT" . 1019148) ("IMAGE" . 1019144) ("MASK" . 1019146) ("STANDARD" . 1019150))) |
| 1610 | ("SetCurrentZoom" pro "IDLgrWindow" (system) "Obj-> [%s::]%s, ZoomFactor" ("objects_gr252.html" ("RESET" . 1360383))) | 1610 | ("SetCurrentZoom" pro "IDLgrWindow" (system) "Obj-> [%s::]%s, ZoomFactor" ("objects_gr252.html" ("RESET" . 1360383))) |
| 1611 | ("SetProperty" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr253.html" ) ("objects_gr236.html" ("DIMENSIONS " . 1249231) ("DISPLAY_NAME (X Only)" . 1059985) ("GRAPHICS_TREE" . 1059987) ("LOCATION " . 1060082) ("MINIMUM_VIRTUAL_DIMENSIONS" . 1343479) ("PALETTE" . 1059998) ("QUALITY" . 1060003) ("TITLE" . 1060071) ("UNITS" . 1060033) ("VIRTUAL_DIMENSIONS" . 1060050) ("VISIBLE_LOCATION" . 1097046) ("ZOOM_BASE" . 1342797))) | 1611 | ("SetProperty" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr253.html" ) ("objects_gr236.html" ("DIMENSIONS" . 1249231) ("DISPLAY_NAME (X Only)" . 1059985) ("GRAPHICS_TREE" . 1059987) ("LOCATION" . 1060082) ("MINIMUM_VIRTUAL_DIMENSIONS" . 1343479) ("PALETTE" . 1059998) ("QUALITY" . 1060003) ("TITLE" . 1060071) ("UNITS" . 1060033) ("VIRTUAL_DIMENSIONS" . 1060050) ("VISIBLE_LOCATION" . 1097046) ("ZOOM_BASE" . 1342797))) |
| 1612 | ("Show" pro "IDLgrWindow" (system) "Obj->[%s::]%s, Position" ("objects_gr254.html")) | 1612 | ("Show" pro "IDLgrWindow" (system) "Obj->[%s::]%s, Position" ("objects_gr254.html")) |
| 1613 | ("ZoomIn" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr255.html")) | 1613 | ("ZoomIn" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr255.html")) |
| 1614 | ("ZoomOut" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr256.html")) | 1614 | ("ZoomOut" pro "IDLgrWindow" (system) "Obj->[%s::]%s" ("objects_gr256.html")) |
| @@ -1616,7 +1616,7 @@ | |||
| 1616 | ("GetDimensions" fun "IDLgrWindow" (system) "Result = Obj -> [%s::]%s ()" ("objects_gr242.html" ("MINIMUM_VIRTUAL_DIMENSIONS" . 1360348) ("ORIGINAL_VIRTUAL_DIMENSIONS" . 1360355) ("VIRTUAL_DIMENSIONS" . 1360358) ("VISIBLE_LOCATION" . 1360361))) | 1616 | ("GetDimensions" fun "IDLgrWindow" (system) "Result = Obj -> [%s::]%s ()" ("objects_gr242.html" ("MINIMUM_VIRTUAL_DIMENSIONS" . 1360348) ("ORIGINAL_VIRTUAL_DIMENSIONS" . 1360355) ("VIRTUAL_DIMENSIONS" . 1360358) ("VISIBLE_LOCATION" . 1360361))) |
| 1617 | ("GetFontnames" fun "IDLgrWindow" (system) "Result = Obj->[%s::]%s(FamilyName)" ("objects_gr243.html" ("IDL_FONTS" . 1018678) ("STYLES" . 1018680))) | 1617 | ("GetFontnames" fun "IDLgrWindow" (system) "Result = Obj->[%s::]%s(FamilyName)" ("objects_gr243.html" ("IDL_FONTS" . 1018678) ("STYLES" . 1018680))) |
| 1618 | ("GetTextDimensions" fun "IDLgrWindow" (system) "Result = Obj->[%s::]%s( TextObj)" ("objects_gr245.html" ("DESCENT" . 1018765) ("PATH" . 1018767))) | 1618 | ("GetTextDimensions" fun "IDLgrWindow" (system) "Result = Obj->[%s::]%s( TextObj)" ("objects_gr245.html" ("DESCENT" . 1018765) ("PATH" . 1018767))) |
| 1619 | ("Init" fun "IDLgrWindow" (system) "Result = Obj->[%s::]%s()" ("objects_gr247.html" ) ("objects_gr236.html" ("COLOR_MODEL" . 1059974) ("DIMENSIONS " . 1249231) ("GRAPHICS_TREE" . 1059987) ("LOCATION " . 1060082) ("MINIMUM_VIRTUAL_DIMENSIONS" . 1343479) ("N_COLORS" . 1059992) ("PALETTE" . 1059998) ("QUALITY" . 1060003) ("REGISTER_PROPERTIES" . 1060008) ("RENDERER" . 1094184) ("RETAIN" . 1060058) ("TITLE" . 1060071) ("UNITS" . 1060033) ("VIRTUAL_DIMENSIONS" . 1060050) ("VISIBLE_LOCATION" . 1097046) ("ZOOM_BASE" . 1342797))) | 1619 | ("Init" fun "IDLgrWindow" (system) "Result = Obj->[%s::]%s()" ("objects_gr247.html" ) ("objects_gr236.html" ("COLOR_MODEL" . 1059974) ("DIMENSIONS" . 1249231) ("GRAPHICS_TREE" . 1059987) ("LOCATION" . 1060082) ("MINIMUM_VIRTUAL_DIMENSIONS" . 1343479) ("N_COLORS" . 1059992) ("PALETTE" . 1059998) ("QUALITY" . 1060003) ("REGISTER_PROPERTIES" . 1060008) ("RENDERER" . 1094184) ("RETAIN" . 1060058) ("TITLE" . 1060071) ("UNITS" . 1060033) ("VIRTUAL_DIMENSIONS" . 1060050) ("VISIBLE_LOCATION" . 1097046) ("ZOOM_BASE" . 1342797))) |
| 1620 | ("PickData" fun "IDLgrWindow" (system) "Result = Obj->[%s::]%s( View, Object, Location, XYZLocation)" ("objects_gr248.html" ("DIMENSIONS" . 1018957) ("PATH" . 1018961) ("PICK_STATUS" . 1018967))) | 1620 | ("PickData" fun "IDLgrWindow" (system) "Result = Obj->[%s::]%s( View, Object, Location, XYZLocation)" ("objects_gr248.html" ("DIMENSIONS" . 1018957) ("PATH" . 1018961) ("PICK_STATUS" . 1018967))) |
| 1621 | ("Read" fun "IDLgrWindow" (system) "Result = Obj->[%s::]%s()" ("objects_gr249.html")) | 1621 | ("Read" fun "IDLgrWindow" (system) "Result = Obj->[%s::]%s()" ("objects_gr249.html")) |
| 1622 | ("Select" fun "IDLgrWindow" (system) "Result = Obj->[%s::]%s( Picture, XY)" ("objects_gr250.html" ("DIMENSIONS" . 1019069) ("ORDER" . 1019073) ("SUB_SELECTION" . 1343670) ("UNITS" . 1019076))) | 1622 | ("Select" fun "IDLgrWindow" (system) "Result = Obj->[%s::]%s( Picture, XY)" ("objects_gr250.html" ("DIMENSIONS" . 1019069) ("ORDER" . 1019073) ("SUB_SELECTION" . 1343670) ("UNITS" . 1019076))) |
| @@ -1691,7 +1691,7 @@ | |||
| 1691 | ("PromptUserText" fun "IDLitIMessaging" (system) "Result = Obj->[%s::]%s(StrPrompt, Answer)" ("objects_it86.html" ("TITLE" . 1080016))) | 1691 | ("PromptUserText" fun "IDLitIMessaging" (system) "Result = Obj->[%s::]%s(StrPrompt, Answer)" ("objects_it86.html" ("TITLE" . 1080016))) |
| 1692 | ("PromptUserYesNo" fun "IDLitIMessaging" (system) "Result = Obj->[%s::]%s(StrPrompt, Answer)" ("objects_it87.html" ("TITLE" . 1080036))) | 1692 | ("PromptUserYesNo" fun "IDLitIMessaging" (system) "Result = Obj->[%s::]%s(StrPrompt, Answer)" ("objects_it87.html" ("TITLE" . 1080036))) |
| 1693 | ("Cleanup" pro "IDLitManipulator" (system) "Obj->[%s::]%s" ("objects_it93.html")) | 1693 | ("Cleanup" pro "IDLitManipulator" (system) "Obj->[%s::]%s" ("objects_it93.html")) |
| 1694 | ("GetProperty" pro "IDLitManipulator" (system) "Obj->[%s::]%s" ("objects_it96.html" ) ("objects_it92.html" ("BUTTON_EVENTS" . 1080361) ("DESCRIPTION" . 1080417) ("KEYBOARD_EVENTS" . 1080504) ("MOTION_EVENTS" . 1080532) ("OPERATION_IDENTIFIER" . 1080560) ("PARAMETER_IDENTIFIER" . 1080588) ("TRANSIENT_DEFAULT " . 1080617) ("TRANSIENT_MOTION" . 1080650) ("TYPES" . 1080678) ("VISUAL_TYPE" . 1080735))) | 1694 | ("GetProperty" pro "IDLitManipulator" (system) "Obj->[%s::]%s" ("objects_it96.html" ) ("objects_it92.html" ("BUTTON_EVENTS" . 1080361) ("DESCRIPTION" . 1080417) ("KEYBOARD_EVENTS" . 1080504) ("MOTION_EVENTS" . 1080532) ("OPERATION_IDENTIFIER" . 1080560) ("PARAMETER_IDENTIFIER" . 1080588) ("TRANSIENT_DEFAULT" . 1080617) ("TRANSIENT_MOTION" . 1080650) ("TYPES" . 1080678) ("VISUAL_TYPE" . 1080735))) |
| 1695 | ("OnKeyboard" pro "IDLitManipulator" (system) "Obj->[%s::]%s, Win, IsASCII, Character, KeyValue, X, Y, Press, Release, KeyMods" ("objects_it98.html")) | 1695 | ("OnKeyboard" pro "IDLitManipulator" (system) "Obj->[%s::]%s, Win, IsASCII, Character, KeyValue, X, Y, Press, Release, KeyMods" ("objects_it98.html")) |
| 1696 | ("OnLoseCurrentManipulator" pro "IDLitManipulator" (system) "Obj->[%s::]%s" ("objects_it99.html")) | 1696 | ("OnLoseCurrentManipulator" pro "IDLitManipulator" (system) "Obj->[%s::]%s" ("objects_it99.html")) |
| 1697 | ("OnMouseDown" pro "IDLitManipulator" (system) "Obj->[%s::]%s, Win, X, Y, IButton, KeyMods, NClicks" ("objects_it100.html")) | 1697 | ("OnMouseDown" pro "IDLitManipulator" (system) "Obj->[%s::]%s, Win, X, Y, IButton, KeyMods, NClicks" ("objects_it100.html")) |
| @@ -1699,10 +1699,10 @@ | |||
| 1699 | ("OnMouseUp" pro "IDLitManipulator" (system) "Obj->[%s::]%s, Win, X, Y, IButton" ("objects_it102.html")) | 1699 | ("OnMouseUp" pro "IDLitManipulator" (system) "Obj->[%s::]%s, Win, X, Y, IButton" ("objects_it102.html")) |
| 1700 | ("RegisterCursor" pro "IDLitManipulator" (system) "Obj->[%s::]%s, ArrCursor, Name" ("objects_it104.html" ("DEFAULT" . 1281810))) | 1700 | ("RegisterCursor" pro "IDLitManipulator" (system) "Obj->[%s::]%s, ArrCursor, Name" ("objects_it104.html" ("DEFAULT" . 1281810))) |
| 1701 | ("SetCurrentManipulator" pro "IDLitManipulator" (system) "Obj->[%s::]%s [, Item]" ("objects_it105.html")) | 1701 | ("SetCurrentManipulator" pro "IDLitManipulator" (system) "Obj->[%s::]%s [, Item]" ("objects_it105.html")) |
| 1702 | ("SetProperty" pro "IDLitManipulator" (system) "Obj->[%s::]%s" ("objects_it120.html" ) ("objects_it92.html" ("BUTTON_EVENTS" . 1080361) ("DESCRIPTION" . 1080417) ("DISABLE" . 1080445) ("KEYBOARD_EVENTS" . 1080504) ("MOTION_EVENTS" . 1080532) ("OPERATION_IDENTIFIER" . 1080560) ("PARAMETER_IDENTIFIER" . 1080588) ("TRANSIENT_DEFAULT " . 1080617) ("TRANSIENT_MOTION" . 1080650) ("VISUAL_TYPE" . 1080735))) | 1702 | ("SetProperty" pro "IDLitManipulator" (system) "Obj->[%s::]%s" ("objects_it120.html" ) ("objects_it92.html" ("BUTTON_EVENTS" . 1080361) ("DESCRIPTION" . 1080417) ("DISABLE" . 1080445) ("KEYBOARD_EVENTS" . 1080504) ("MOTION_EVENTS" . 1080532) ("OPERATION_IDENTIFIER" . 1080560) ("PARAMETER_IDENTIFIER" . 1080588) ("TRANSIENT_DEFAULT" . 1080617) ("TRANSIENT_MOTION" . 1080650) ("VISUAL_TYPE" . 1080735))) |
| 1703 | ("CommitUndoValues" fun "IDLitManipulator" (system) "Result = Obj->[%s::]%s()" ("objects_it94.html" ("UNCOMMIT" . 1080828))) | 1703 | ("CommitUndoValues" fun "IDLitManipulator" (system) "Result = Obj->[%s::]%s()" ("objects_it94.html" ("UNCOMMIT" . 1080828))) |
| 1704 | ("GetCursorType" fun "IDLitManipulator" (system) "Result = Obj->[%s::]%s(TypeIn, KeyMods)" ("objects_it95.html")) | 1704 | ("GetCursorType" fun "IDLitManipulator" (system) "Result = Obj->[%s::]%s(TypeIn, KeyMods)" ("objects_it95.html")) |
| 1705 | ("Init" fun "IDLitManipulator" (system) "Result = Obj->[%s::]%s()" ("objects_it97.html" ) ("objects_it92.html" ("BUTTON_EVENTS" . 1080361) ("DEFAULT_CURSOR" . 1080389) ("DESCRIPTION" . 1080417) ("DISABLE" . 1080445) ("KEYBOARD_EVENTS" . 1080504) ("MOTION_EVENTS" . 1080532) ("OPERATION_IDENTIFIER" . 1080560) ("PARAMETER_IDENTIFIER" . 1080588) ("TRANSIENT_DEFAULT " . 1080617) ("TRANSIENT_MOTION" . 1080650) ("TYPES" . 1080678) ("VIEWS_ONLY" . 1080706) ("VISUAL_TYPE" . 1080735))) | 1705 | ("Init" fun "IDLitManipulator" (system) "Result = Obj->[%s::]%s()" ("objects_it97.html" ) ("objects_it92.html" ("BUTTON_EVENTS" . 1080361) ("DEFAULT_CURSOR" . 1080389) ("DESCRIPTION" . 1080417) ("DISABLE" . 1080445) ("KEYBOARD_EVENTS" . 1080504) ("MOTION_EVENTS" . 1080532) ("OPERATION_IDENTIFIER" . 1080560) ("PARAMETER_IDENTIFIER" . 1080588) ("TRANSIENT_DEFAULT" . 1080617) ("TRANSIENT_MOTION" . 1080650) ("TYPES" . 1080678) ("VIEWS_ONLY" . 1080706) ("VISUAL_TYPE" . 1080735))) |
| 1706 | ("RecordUndoValues" fun "IDLitManipulator" (system) "Result = Obj->[%s::]%s()" ("objects_it103.html")) | 1706 | ("RecordUndoValues" fun "IDLitManipulator" (system) "Result = Obj->[%s::]%s()" ("objects_it103.html")) |
| 1707 | ("Add" pro "IDLitManipulatorContainer" (system) "Obj->[%s::]%s, Manipulator" ("objects_it109.html")) | 1707 | ("Add" pro "IDLitManipulatorContainer" (system) "Obj->[%s::]%s, Manipulator" ("objects_it109.html")) |
| 1708 | ("GetProperty" pro "IDLitManipulatorContainer" (system) "Obj->[%s::]%s" ("objects_it112.html" )) | 1708 | ("GetProperty" pro "IDLitManipulatorContainer" (system) "Obj->[%s::]%s" ("objects_it112.html" )) |
| @@ -1816,7 +1816,7 @@ | |||
| 1816 | ("BeginManipulation" pro "IDLitVisualization" (system) "Obj->[%s::]%s, Manipulator" ("objects_it241.html")) | 1816 | ("BeginManipulation" pro "IDLitVisualization" (system) "Obj->[%s::]%s, Manipulator" ("objects_it241.html")) |
| 1817 | ("Cleanup" pro "IDLitVisualization" (system) "Obj->[%s::]%s" ("objects_it242.html")) | 1817 | ("Cleanup" pro "IDLitVisualization" (system) "Obj->[%s::]%s" ("objects_it242.html")) |
| 1818 | ("EndManipulation" pro "IDLitVisualization" (system) "Obj->[%s::]%s, Manipulator" ("objects_it243.html")) | 1818 | ("EndManipulation" pro "IDLitVisualization" (system) "Obj->[%s::]%s, Manipulator" ("objects_it243.html")) |
| 1819 | ("GetProperty" pro "IDLitVisualization" (system) "Obj->[%s::]%s" ("objects_it251.html" ) ("objects_it238.html" ("CENTER_OF_ROTATION" . 1086295) ("IMPACTS_RANGE " . 1255230) ("ISOTROPIC" . 1086379) ("MANIPULATOR_TARGET " . 1086407) ("PROPERTY_INTERSECTION" . 1153078))) | 1819 | ("GetProperty" pro "IDLitVisualization" (system) "Obj->[%s::]%s" ("objects_it251.html" ) ("objects_it238.html" ("CENTER_OF_ROTATION" . 1086295) ("IMPACTS_RANGE" . 1255230) ("ISOTROPIC" . 1086379) ("MANIPULATOR_TARGET" . 1086407) ("PROPERTY_INTERSECTION" . 1153078))) |
| 1820 | ("Move" pro "IDLitVisualization" (system) "Obj->[%s::]%s, Source, Destination" ("objects_it261.html")) | 1820 | ("Move" pro "IDLitVisualization" (system) "Obj->[%s::]%s, Source, Destination" ("objects_it261.html")) |
| 1821 | ("On2DRotate" pro "IDLitVisualization" (system) "Obj->[%s::]%s, Notifier, IsRotated" ("objects_it262.html")) | 1821 | ("On2DRotate" pro "IDLitVisualization" (system) "Obj->[%s::]%s, Notifier, IsRotated" ("objects_it262.html")) |
| 1822 | ("OnAxesRequestChange" pro "IDLitVisualization" (system) "Obj->[%s::]%s, Notifier, AxesRequest" ("objects_it263.html")) | 1822 | ("OnAxesRequestChange" pro "IDLitVisualization" (system) "Obj->[%s::]%s, Notifier, AxesRequest" ("objects_it263.html")) |
| @@ -1836,7 +1836,7 @@ | |||
| 1836 | ("SetAxesStyleRequest" pro "IDLitVisualization" (system) "Obj->[%s::]%s, StyleRequest" ("objects_it278.html" ("NO_NOTIFY" . 1264441))) | 1836 | ("SetAxesStyleRequest" pro "IDLitVisualization" (system) "Obj->[%s::]%s, StyleRequest" ("objects_it278.html" ("NO_NOTIFY" . 1264441))) |
| 1837 | ("SetCurrentSelectionVisual" pro "IDLitVisualization" (system) "Obj->[%s::]%s, Manipulator" ("objects_it279.html")) | 1837 | ("SetCurrentSelectionVisual" pro "IDLitVisualization" (system) "Obj->[%s::]%s, Manipulator" ("objects_it279.html")) |
| 1838 | ("SetDefaultSelectionVisual" pro "IDLitVisualization" (system) "Obj->[%s::]%s, SelectionVisual" ("objects_it281.html" ("POSITION" . 1087891))) | 1838 | ("SetDefaultSelectionVisual" pro "IDLitVisualization" (system) "Obj->[%s::]%s, SelectionVisual" ("objects_it281.html" ("POSITION" . 1087891))) |
| 1839 | ("SetProperty" pro "IDLitVisualization" (system) "Obj->[%s::]%s" ("objects_it283.html" ) ("objects_it238.html" ("CENTER_OF_ROTATION" . 1086295) ("IMPACTS_RANGE " . 1255230) ("ISOTROPIC" . 1086379) ("MANIPULATOR_TARGET " . 1086407) ("TYPE" . 1086465))) | 1839 | ("SetProperty" pro "IDLitVisualization" (system) "Obj->[%s::]%s" ("objects_it283.html" ) ("objects_it238.html" ("CENTER_OF_ROTATION" . 1086295) ("IMPACTS_RANGE" . 1255230) ("ISOTROPIC" . 1086379) ("MANIPULATOR_TARGET" . 1086407) ("TYPE" . 1086465))) |
| 1840 | ("UpdateSelectionVisual" pro "IDLitVisualization" (system) "Obj->[%s::]%s" ("objects_it284.html")) | 1840 | ("UpdateSelectionVisual" pro "IDLitVisualization" (system) "Obj->[%s::]%s" ("objects_it284.html")) |
| 1841 | ("VisToWindow" pro "IDLitVisualization" (system) "Obj->[%s::]%s, InX, InY, InZ, OutX, OutY, OutZ" ("objects_it285.html" ("NO_TRANSFORM" . 1157092))) | 1841 | ("VisToWindow" pro "IDLitVisualization" (system) "Obj->[%s::]%s, InX, InY, InZ, OutX, OutY, OutZ" ("objects_it285.html" ("NO_TRANSFORM" . 1157092))) |
| 1842 | ("WindowToVis" pro "IDLitVisualization" (system) "Obj->[%s::]%s, InX, InY, InZ, OutX, OutY, OutZ or Obj->[%s::]%s, InX, InY, OutX, OutY or Obj->[%s::]%s, InVerts, OutVerts" ("objects_it286.html")) | 1842 | ("WindowToVis" pro "IDLitVisualization" (system) "Obj->[%s::]%s, InX, InY, InZ, OutX, OutY, OutZ or Obj->[%s::]%s, InX, InY, OutX, OutY or Obj->[%s::]%s, InVerts, OutVerts" ("objects_it286.html")) |
| @@ -1851,7 +1851,7 @@ | |||
| 1851 | ("GetSelectionVisual" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s(Manipulator)" ("objects_it253.html")) | 1851 | ("GetSelectionVisual" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s(Manipulator)" ("objects_it253.html")) |
| 1852 | ("GetTypes" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s()" ("objects_it254.html")) | 1852 | ("GetTypes" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s()" ("objects_it254.html")) |
| 1853 | ("GetXYZRange" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s(XRange,YRange, ZRange)" ("objects_it255.html" ("DATA" . 1087296) ("NO_TRANSFORM" . 1087298))) | 1853 | ("GetXYZRange" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s(XRange,YRange, ZRange)" ("objects_it255.html" ("DATA" . 1087296) ("NO_TRANSFORM" . 1087298))) |
| 1854 | ("Init" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s()" ("objects_it256.html" ) ("objects_it238.html" ("CENTER_OF_ROTATION" . 1086295) ("IMPACTS_RANGE " . 1255230) ("ISOTROPIC" . 1086379) ("MANIPULATOR_TARGET " . 1086407) ("PROPERTY_INTERSECTION" . 1153078) ("TYPE" . 1086465))) | 1854 | ("Init" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s()" ("objects_it256.html" ) ("objects_it238.html" ("CENTER_OF_ROTATION" . 1086295) ("IMPACTS_RANGE" . 1255230) ("ISOTROPIC" . 1086379) ("MANIPULATOR_TARGET" . 1086407) ("PROPERTY_INTERSECTION" . 1153078) ("TYPE" . 1086465))) |
| 1855 | ("Is3D" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s()" ("objects_it257.html")) | 1855 | ("Is3D" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s()" ("objects_it257.html")) |
| 1856 | ("IsIsotropic" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s()" ("objects_it258.html")) | 1856 | ("IsIsotropic" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s()" ("objects_it258.html")) |
| 1857 | ("IsManipulatorTarget" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s()" ("objects_it259.html")) | 1857 | ("IsManipulatorTarget" fun "IDLitVisualization" (system) "Result = Obj->[%s::]%s()" ("objects_it259.html")) |
| @@ -1942,11 +1942,11 @@ | |||
| 1942 | ("IDLgrLegend" (tags "OSCALENODE" "BORDER_GAP" "COLUMNS" "OOUTLINE" "OFILL" "OFONT" "GAP" "GLYPHWIDTH" "PITEM_COLOR" "PITEM_LINESTYLE" "PITEM_NAME" "PITEM_OBJECT" "PITEM_THICK" "PITEM_TYPE" "OTITLE" "PTEXT_COLOR" "BRECOMPUTE" "PGLYPHS" "PTEXTS" "HGLYPHWIDTH" "VGLYPHWIDTH" "COLORMODE" "CLEANLEAVE" "CLEANGLYPHS" "IDLGRLEGENDVERSION") (inherits "IDLgrModel") (link "objects_gr65.html")) | 1942 | ("IDLgrLegend" (tags "OSCALENODE" "BORDER_GAP" "COLUMNS" "OOUTLINE" "OFILL" "OFONT" "GAP" "GLYPHWIDTH" "PITEM_COLOR" "PITEM_LINESTYLE" "PITEM_NAME" "PITEM_OBJECT" "PITEM_THICK" "PITEM_TYPE" "OTITLE" "PTEXT_COLOR" "BRECOMPUTE" "PGLYPHS" "PTEXTS" "HGLYPHWIDTH" "VGLYPHWIDTH" "COLORMODE" "CLEANLEAVE" "CLEANGLYPHS" "IDLGRLEGENDVERSION") (inherits "IDLgrModel") (link "objects_gr65.html")) |
| 1943 | ("IDLgrPolygon" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRPOLYGON_TOP" "IDLGRPOLYGONVERSION" "DATA" "PRECISION" "FILLPATTERN" "POLYGONS" "NORMALS" "POLYGONFLAGS" "SHADING" "SHADERANGE" "STYLE" "TXTRCOORD" "TXTRMAP" "VERTCOLORS" "BTMCOLOR" "AMBIENT" "DIFFUSE" "SPECULAR" "EMISSION" "SHININESS" "LINESTYLE" "THICK" "DEPTHOFFSET" "IDLGRPOLYGON_BOTTOM") (inherits "IDLitComponent") (link "objects_gr124.html")) | 1943 | ("IDLgrPolygon" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRPOLYGON_TOP" "IDLGRPOLYGONVERSION" "DATA" "PRECISION" "FILLPATTERN" "POLYGONS" "NORMALS" "POLYGONFLAGS" "SHADING" "SHADERANGE" "STYLE" "TXTRCOORD" "TXTRMAP" "VERTCOLORS" "BTMCOLOR" "AMBIENT" "DIFFUSE" "SPECULAR" "EMISSION" "SHININESS" "LINESTYLE" "THICK" "DEPTHOFFSET" "IDLGRPOLYGON_BOTTOM") (inherits "IDLitComponent") (link "objects_gr124.html")) |
| 1944 | ("IDLgrWindow" (tags "IDLGRSRCDEST_TOP" "IDLGRSRCDESTVERSION" "CLIENTDIMENSIONS" "COLORMODEL" "SRCDESTFLAGS" "GRAPHICS_TREE" "NCOLORS" "PALETTE" "QUALITY" "RESOLUTION" "DIST" "FILL1" "DEV" "FILL2" "ATTRS" "FILL3" "CACHES" "FILL4" "IDLGRSRCDEST_BOTTOM" "IDLGRWINDOW_TOP" "IDLGRWINDOWVERSION" "WINDOWFLAGS" "CURRENT_ZOOM" "DIMENSIONS" "DISPLAYNAME" "INDEX" "LOCATION" "MINIMUM_VIRTUAL_DIMENSIONS" "ORIGINAL_VIRTUAL_DIMENSIONS" "RENDERER" "RETAIN" "SCREENDIMENSIONS" "SELF" "TITLE" "UNITS" "VIRTUAL_DIMENSIONS" "VISIBLE_LOCATION" "ZOOM_BASE" "ZOOM_NSTEP" "EXTERNAL_WINDOW" "NEXT" "WFILL1" "PARENT" "WFILL2" "IDLGRWINDOW_BOTTOM") (inherits "IDLitComponent") (link "objects_gr235.html")) | 1944 | ("IDLgrWindow" (tags "IDLGRSRCDEST_TOP" "IDLGRSRCDESTVERSION" "CLIENTDIMENSIONS" "COLORMODEL" "SRCDESTFLAGS" "GRAPHICS_TREE" "NCOLORS" "PALETTE" "QUALITY" "RESOLUTION" "DIST" "FILL1" "DEV" "FILL2" "ATTRS" "FILL3" "CACHES" "FILL4" "IDLGRSRCDEST_BOTTOM" "IDLGRWINDOW_TOP" "IDLGRWINDOWVERSION" "WINDOWFLAGS" "CURRENT_ZOOM" "DIMENSIONS" "DISPLAYNAME" "INDEX" "LOCATION" "MINIMUM_VIRTUAL_DIMENSIONS" "ORIGINAL_VIRTUAL_DIMENSIONS" "RENDERER" "RETAIN" "SCREENDIMENSIONS" "SELF" "TITLE" "UNITS" "VIRTUAL_DIMENSIONS" "VISIBLE_LOCATION" "ZOOM_BASE" "ZOOM_NSTEP" "EXTERNAL_WINDOW" "NEXT" "WFILL1" "PARENT" "WFILL2" "IDLGRWINDOW_BOTTOM") (inherits "IDLitComponent") (link "objects_gr235.html")) |
| 1945 | ("IDLgrROI" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRROI_TOP" "IDLGRROIVERSION" "LINESTYLE" "STYLE" "SYMBOL" "THICK" "IDLGRROI_BOTTOM") (inherits "IDLanROI" "IDLitComponent") (link "objects_gr150.html")) | ||
| 1946 | ("IDLgrPolyline" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRPOLYLINE_TOP" "IDLGRPOLYLINEVERSION" "POLYLINEFLAGS" "DATA" "PRECISION" "LABEL_NOGAPS" "LABEL_OBJECTS" "LABEL_OFFSETS" "LABEL_POLYLINES" "LINESTYLE" "POLYLINES" "SYMBOL" "PSYMBOL" "THICK" "SHADING" "USE_LABEL_COLOR" "USE_LABEL_ORIENTATION" "VERTCOLORS" "LABEL_INFO" "FILL1" "IDLGRPOLYLINE_BOTTOM") (inherits "IDLitComponent") (link "objects_gr131.html")) | 1945 | ("IDLgrPolyline" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRPOLYLINE_TOP" "IDLGRPOLYLINEVERSION" "POLYLINEFLAGS" "DATA" "PRECISION" "LABEL_NOGAPS" "LABEL_OBJECTS" "LABEL_OFFSETS" "LABEL_POLYLINES" "LINESTYLE" "POLYLINES" "SYMBOL" "PSYMBOL" "THICK" "SHADING" "USE_LABEL_COLOR" "USE_LABEL_ORIENTATION" "VERTCOLORS" "LABEL_INFO" "FILL1" "IDLGRPOLYLINE_BOTTOM") (inherits "IDLitComponent") (link "objects_gr131.html")) |
| 1946 | ("IDLgrROI" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRROI_TOP" "IDLGRROIVERSION" "LINESTYLE" "STYLE" "SYMBOL" "THICK" "IDLGRROI_BOTTOM") (inherits "IDLanROI" "IDLitComponent") (link "objects_gr150.html")) | ||
| 1947 | ("IDLitManipulatorManager" (tags "_OOLDCURR" "_ODEFAULT" "_OWINCURR" "_CURROBS") (inherits "IDLitManipulatorContainer") (link "objects_it121.html")) | 1947 | ("IDLitManipulatorManager" (tags "_OOLDCURR" "_ODEFAULT" "_OWINCURR" "_CURROBS") (inherits "IDLitManipulatorContainer") (link "objects_it121.html")) |
| 1948 | ("IDLgrPlot" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRPLOT_TOP" "IDLGRPLOTVERSION" "DATA" "PLOTFLAGS" "LINESTYLE" "PRECISION" "MAXVAL" "MINVAL" "NSUM" "SYMBOL" "PSYMBOL" "THICK" "VERTCOLORS" "ZVALUE" "LINEDATA" "PFILL1" "IDLGRPLOT_BOTTOM") (inherits "IDLitComponent") (link "objects_gr117.html")) | ||
| 1949 | ("IDLgrVolume" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRVOLUME_TOP" "IDLGRVOLUMEVERSION" "AMBIENT" "BOUNDS" "LIMITS" "DIMENSIONS" "COLORTABLE" "COMPOSITEFUNC" "CUTPLANES" "NUMCUTPLANES" "DEPTH_CUE" "OPACITYTABLE" "RENDERSTEP" "DATA" "EDM_VOLUME" "VOLUMEFLAGS" "IDLGRVOLUME_BOTTOM") (inherits "IDLitComponent") (link "objects_gr216.html")) | 1948 | ("IDLgrVolume" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRVOLUME_TOP" "IDLGRVOLUMEVERSION" "AMBIENT" "BOUNDS" "LIMITS" "DIMENSIONS" "COLORTABLE" "COMPOSITEFUNC" "CUTPLANES" "NUMCUTPLANES" "DEPTH_CUE" "OPACITYTABLE" "RENDERSTEP" "DATA" "EDM_VOLUME" "VOLUMEFLAGS" "IDLGRVOLUME_BOTTOM") (inherits "IDLitComponent") (link "objects_gr216.html")) |
| 1949 | ("IDLgrPlot" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRPLOT_TOP" "IDLGRPLOTVERSION" "DATA" "PLOTFLAGS" "LINESTYLE" "PRECISION" "MAXVAL" "MINVAL" "NSUM" "SYMBOL" "PSYMBOL" "THICK" "VERTCOLORS" "ZVALUE" "LINEDATA" "PFILL1" "IDLGRPLOT_BOTTOM") (inherits "IDLitComponent") (link "objects_gr117.html")) | ||
| 1950 | ("IDLgrROIGroup" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRROIGROUP_TOP" "IDLGRROIGROUPVERSION" "IDLGRROIGROUP_BOTTOM") (inherits "IDLanROIGroup" "IDLitComponent") (link "objects_gr157.html")) | 1950 | ("IDLgrROIGroup" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRROIGROUP_TOP" "IDLGRROIGROUPVERSION" "IDLGRROIGROUP_BOTTOM") (inherits "IDLanROIGroup" "IDLitComponent") (link "objects_gr157.html")) |
| 1951 | ("IDLgrText" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRTEXT_TOP" "IDLGRTEXTVERSION" "TEXTFLAGS" "ALIGNMENT" "BASELINE" "CHAR_DIMENSIONS" "RECOMP_CTM" "FONT" "LOCATIONS" "STRINGS" "SUBPARENT" "UPDIR" "VERTICAL_ALIGNMENT" "FILL_COLOR" "RENDER_MODE" "IDLGRTEXT_BOTTOM") (inherits "IDLitComponent") (link "objects_gr193.html")) | 1951 | ("IDLgrText" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRTEXT_TOP" "IDLGRTEXTVERSION" "TEXTFLAGS" "ALIGNMENT" "BASELINE" "CHAR_DIMENSIONS" "RECOMP_CTM" "FONT" "LOCATIONS" "STRINGS" "SUBPARENT" "UPDIR" "VERTICAL_ALIGNMENT" "FILL_COLOR" "RENDER_MODE" "IDLGRTEXT_BOTTOM") (inherits "IDLitComponent") (link "objects_gr193.html")) |
| 1952 | ("IDLitManipulatorContainer" (tags "_BISMESSAGER" "_CLASSNAME" "_OCHILDREN" "M_BAUTOSWITCH" "M_CURRMANIP") (inherits "IDLitManipulator" "IDL_Container") (link "objects_it107.html")) | 1952 | ("IDLitManipulatorContainer" (tags "_BISMESSAGER" "_CLASSNAME" "_OCHILDREN" "M_BAUTOSWITCH" "M_CURRMANIP") (inherits "IDLitManipulator" "IDL_Container") (link "objects_it107.html")) |
| @@ -1955,33 +1955,33 @@ | |||
| 1955 | ("IDLgrImage" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRIMAGE_TOP" "IDLGRIMAGEVERSION" "CHANNEL" "DATA" "DIMENSIONS" "SUB_RECT" "IMAGEFLAGS" "LOCATION" "INTERLEAVE" "INTERPOLATE" "BLEND_FUNCTIONS" "IDLGRIMAGE_BOTTOM") (inherits "IDLitComponent") (link "objects_gr58.html")) | 1955 | ("IDLgrImage" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRIMAGE_TOP" "IDLGRIMAGEVERSION" "CHANNEL" "DATA" "DIMENSIONS" "SUB_RECT" "IMAGEFLAGS" "LOCATION" "INTERLEAVE" "INTERPOLATE" "BLEND_FUNCTIONS" "IDLGRIMAGE_BOTTOM") (inherits "IDLitComponent") (link "objects_gr58.html")) |
| 1956 | ("IDLgrLight" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRLIGHT_TOP" "IDLGRLIGHTVERSION" "ATTENUATION" "CONEANGLE" "DIRECTION" "FOCUS" "INTENSITY" "LOCATION" "TYPE" "IDLGRLIGHT_BOTTOM") (inherits "IDLitComponent") (link "objects_gr72.html")) | 1956 | ("IDLgrLight" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRLIGHT_TOP" "IDLGRLIGHTVERSION" "ATTENUATION" "CONEANGLE" "DIRECTION" "FOCUS" "INTENSITY" "LOCATION" "TYPE" "IDLGRLIGHT_BOTTOM") (inherits "IDLitComponent") (link "objects_gr72.html")) |
| 1957 | ("IDLgrView" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRCONTAINER_TOP" "IDLGRCONTAINERVERSION" "ISDYING" "IDLGRCONTAINER_BOTTOM" "IDLGRVIEW_TOP" "IDLGRVIEWVERSION" "VIEWFLAGS" "COLOR" "DEPTH_CUE" "DIMENSIONS" "PRECISION" "EYE" "LOCATION" "OBLIQUE" "PROJECTION" "TRANSPARENT" "UNITS" "VIEW" "ZCLIP" "IDLGRVIEW_BOTTOM") (inherits "IDLitComponent" "IDL_Container") (link "objects_gr200.html")) | 1957 | ("IDLgrView" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRCONTAINER_TOP" "IDLGRCONTAINERVERSION" "ISDYING" "IDLGRCONTAINER_BOTTOM" "IDLGRVIEW_TOP" "IDLGRVIEWVERSION" "VIEWFLAGS" "COLOR" "DEPTH_CUE" "DIMENSIONS" "PRECISION" "EYE" "LOCATION" "OBLIQUE" "PROJECTION" "TRANSPARENT" "UNITS" "VIEW" "ZCLIP" "IDLGRVIEW_BOTTOM") (inherits "IDLitComponent" "IDL_Container") (link "objects_gr200.html")) |
| 1958 | ("IDLgrClipboard" (tags "IDLGRSRCDEST_TOP" "IDLGRSRCDESTVERSION" "CLIENTDIMENSIONS" "COLORMODEL" "SRCDESTFLAGS" "GRAPHICS_TREE" "NCOLORS" "PALETTE" "QUALITY" "RESOLUTION" "DIST" "FILL1" "DEV" "FILL2" "ATTRS" "FILL3" "CACHES" "FILL4" "IDLGRSRCDEST_BOTTOM" "IDLGRCLIPBOARD_TOP" "IDLGRCLIPBOARDVERSION" "UNITS" "DIMENSIONS" "FILENAME" "VECTOR" "POSTSCRIPT" "IDLGRCLIPBOARD_BOTTOM") (inherits "IDLitComponent") (link "objects_gr25.html")) | ||
| 1959 | ("IDLgrVRML" (tags "IDLGRSRCDEST_TOP" "IDLGRSRCDESTVERSION" "CLIENTDIMENSIONS" "COLORMODEL" "SRCDESTFLAGS" "GRAPHICS_TREE" "NCOLORS" "PALETTE" "QUALITY" "RESOLUTION" "DIST" "FILL1" "DEV" "FILL2" "ATTRS" "FILL3" "CACHES" "FILL4" "IDLGRSRCDEST_BOTTOM" "IDLGRVRML_TOP" "IDLGRVRMLVERSION" "UNITS" "DIMENSIONS" "FILENAME" "WORLDINFO" "WORLDTITLE" "IDLGRVRML_BOTTOM") (inherits "IDLitComponent") (link "objects_gr225.html")) | 1958 | ("IDLgrVRML" (tags "IDLGRSRCDEST_TOP" "IDLGRSRCDESTVERSION" "CLIENTDIMENSIONS" "COLORMODEL" "SRCDESTFLAGS" "GRAPHICS_TREE" "NCOLORS" "PALETTE" "QUALITY" "RESOLUTION" "DIST" "FILL1" "DEV" "FILL2" "ATTRS" "FILL3" "CACHES" "FILL4" "IDLGRSRCDEST_BOTTOM" "IDLGRVRML_TOP" "IDLGRVRMLVERSION" "UNITS" "DIMENSIONS" "FILENAME" "WORLDINFO" "WORLDTITLE" "IDLGRVRML_BOTTOM") (inherits "IDLitComponent") (link "objects_gr225.html")) |
| 1960 | ("IDLitManipulator" (tags "PSELECTIONLIST" "NSELECTIONLIST" "BUTTONPRESS" "_OCMDSET" "_TYPES" "_OHITVIS" "_OHITVIEWGROUP" "_PSUBHITLIST" "_STRVISUALTYPE" "_IDOPERATION" "_IDPARAMETER" "_DEFAULTCURSOR" "_SUBTYPE" "_STRTMPMSG" "_SKIPMACROHISTORY" "_TRANSMOTION" "_INTRANSMOTION" "_TRANSIENT" "_KEYTRANSIENT" "_DISABLE" "_VIEWMODE" "_UIEVENTMASK" "_OLDQUALITY" "_DRAQQUAL" "_NORMALIZEDZ") (inherits "IDLitComponent" "IDLitIMessaging") (link "objects_it91.html")) | 1959 | ("IDLgrClipboard" (tags "IDLGRSRCDEST_TOP" "IDLGRSRCDESTVERSION" "CLIENTDIMENSIONS" "COLORMODEL" "SRCDESTFLAGS" "GRAPHICS_TREE" "NCOLORS" "PALETTE" "QUALITY" "RESOLUTION" "DIST" "FILL1" "DEV" "FILL2" "ATTRS" "FILL3" "CACHES" "FILL4" "IDLGRSRCDEST_BOTTOM" "IDLGRCLIPBOARD_TOP" "IDLGRCLIPBOARDVERSION" "UNITS" "DIMENSIONS" "FILENAME" "VECTOR" "POSTSCRIPT" "IDLGRCLIPBOARD_BOTTOM") (inherits "IDLitComponent") (link "objects_gr25.html")) |
| 1961 | ("IDLgrPrinter" (tags "IDLGRSRCDEST_TOP" "IDLGRSRCDESTVERSION" "CLIENTDIMENSIONS" "COLORMODEL" "SRCDESTFLAGS" "GRAPHICS_TREE" "NCOLORS" "PALETTE" "QUALITY" "RESOLUTION" "DIST" "FILL1" "DEV" "FILL2" "ATTRS" "FILL3" "CACHES" "FILL4" "IDLGRSRCDEST_BOTTOM" "IDLGRPRINTER_TOP" "IDLGRPRINTERVERSION" "PRINTERFLAGS" "NCOPIES" "UNITS" "GAMMA" "IDLGRPRINTER_BOTTOM") (inherits "IDLitComponent") (link "objects_gr138.html")) | 1960 | ("IDLgrPrinter" (tags "IDLGRSRCDEST_TOP" "IDLGRSRCDESTVERSION" "CLIENTDIMENSIONS" "COLORMODEL" "SRCDESTFLAGS" "GRAPHICS_TREE" "NCOLORS" "PALETTE" "QUALITY" "RESOLUTION" "DIST" "FILL1" "DEV" "FILL2" "ATTRS" "FILL3" "CACHES" "FILL4" "IDLGRSRCDEST_BOTTOM" "IDLGRPRINTER_TOP" "IDLGRPRINTERVERSION" "PRINTERFLAGS" "NCOPIES" "UNITS" "GAMMA" "IDLGRPRINTER_BOTTOM") (inherits "IDLitComponent") (link "objects_gr138.html")) |
| 1961 | ("IDLitManipulator" (tags "PSELECTIONLIST" "NSELECTIONLIST" "BUTTONPRESS" "_OCMDSET" "_TYPES" "_OHITVIS" "_OHITVIEWGROUP" "_PSUBHITLIST" "_STRVISUALTYPE" "_IDOPERATION" "_IDPARAMETER" "_DEFAULTCURSOR" "_SUBTYPE" "_STRTMPMSG" "_SKIPMACROHISTORY" "_TRANSMOTION" "_INTRANSMOTION" "_TRANSIENT" "_KEYTRANSIENT" "_DISABLE" "_VIEWMODE" "_UIEVENTMASK" "_OLDQUALITY" "_DRAQQUAL" "_NORMALIZEDZ") (inherits "IDLitComponent" "IDLitIMessaging") (link "objects_it91.html")) | ||
| 1962 | ("IDLgrModel" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRCONTAINER_TOP" "IDLGRCONTAINERVERSION" "ISDYING" "IDLGRCONTAINER_BOTTOM" "IDLGRMODEL_TOP" "IDLGRMODELVERSION" "MODELFLAGS" "CLIP_PLANES" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "TRANSFORM" "IDLGRMODEL_BOTTOM") (inherits "IDLitComponent" "IDL_Container") (link "objects_gr79.html")) | 1962 | ("IDLgrModel" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRCONTAINER_TOP" "IDLGRCONTAINERVERSION" "ISDYING" "IDLGRCONTAINER_BOTTOM" "IDLGRMODEL_TOP" "IDLGRMODELVERSION" "MODELFLAGS" "CLIP_PLANES" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "TRANSFORM" "IDLGRMODEL_BOTTOM") (inherits "IDLitComponent" "IDL_Container") (link "objects_gr79.html")) |
| 1963 | ("IDLgrBuffer" (tags "IDLGRSRCDEST_TOP" "IDLGRSRCDESTVERSION" "CLIENTDIMENSIONS" "COLORMODEL" "SRCDESTFLAGS" "GRAPHICS_TREE" "NCOLORS" "PALETTE" "QUALITY" "RESOLUTION" "DIST" "FILL1" "DEV" "FILL2" "ATTRS" "FILL3" "CACHES" "FILL4" "IDLGRSRCDEST_BOTTOM" "IDLGRBUFFER_TOP" "IDLGRBUFFERVERSION" "UNITS" "DIMENSIONS" "IDLGRBUFFER_BOTTOM") (inherits "IDLitComponent") (link "objects_gr10.html")) | 1963 | ("IDLgrBuffer" (tags "IDLGRSRCDEST_TOP" "IDLGRSRCDESTVERSION" "CLIENTDIMENSIONS" "COLORMODEL" "SRCDESTFLAGS" "GRAPHICS_TREE" "NCOLORS" "PALETTE" "QUALITY" "RESOLUTION" "DIST" "FILL1" "DEV" "FILL2" "ATTRS" "FILL3" "CACHES" "FILL4" "IDLGRSRCDEST_BOTTOM" "IDLGRBUFFER_TOP" "IDLGRBUFFERVERSION" "UNITS" "DIMENSIONS" "IDLGRBUFFER_BOTTOM") (inherits "IDLitComponent") (link "objects_gr10.html")) |
| 1964 | ("IDLitParameterSet" (tags "_PNAMES") (inherits "IDLitDataContainer") (link "objects_it159.html")) | 1964 | ("IDLitParameterSet" (tags "_PNAMES") (inherits "IDLitDataContainer") (link "objects_it159.html")) |
| 1965 | ("IDLitDataContainer" (tags "_BISMESSAGER" "_CLASSNAME" "_OCHILDREN" "_IDISABLE" "_IUPDATES" "_BINSEARCH") (inherits "IDLitData" "IDL_Container") (link "objects_it59.html")) | 1965 | ("IDLitDataContainer" (tags "_ONOTIFIER" "_PDATA" "_PMETADATA" "_TYPE" "_AUTODELETE" "_NREF" "_PDESTRUCT" "_HIDE" "_READ_ONLY" "_IDISABLE" "_IUPDATES" "_BINSEARCH") (inherits "IDLitContainer") (link "objects_it59.html")) |
| 1966 | ("IDLgrScene" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRCONTAINER_TOP" "IDLGRCONTAINERVERSION" "ISDYING" "IDLGRCONTAINER_BOTTOM" "IDLGRSCENE_TOP" "IDLGRSCENEVERSION" "COLOR" "TRANSPARENT" "IDLGRSCENE_BOTTOM") (inherits "IDLitComponent" "IDL_Container") (link "objects_gr165.html")) | 1966 | ("IDLgrScene" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRCONTAINER_TOP" "IDLGRCONTAINERVERSION" "ISDYING" "IDLGRCONTAINER_BOTTOM" "IDLGRSCENE_TOP" "IDLGRSCENEVERSION" "COLOR" "TRANSPARENT" "IDLGRSCENE_BOTTOM") (inherits "IDLitComponent" "IDL_Container") (link "objects_gr165.html")) |
| 1967 | ("IDLitUI" (tags "_MENUBARS" "_TOOLBARS" "_STATUSBAR" "_UISERVICES" "_PDISPATCHSUBJECT" "_PDISPATCHOBSERVER" "_OTOOL" "_IDISPATCH" "_WBASE") (inherits "IDLitContainer") (link "objects_it222.html")) | ||
| 1968 | ("IDLgrViewgroup" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRCONTAINER_TOP" "IDLGRCONTAINERVERSION" "ISDYING" "IDLGRCONTAINER_BOTTOM" "IDLGRVIEWGROUP_TOP" "IDLGRVIEWGROUPVERSION" "IDLGRVIEWGROUP_BOTTOM") (inherits "IDLitComponent" "IDL_Container") (link "objects_gr208.html")) | 1967 | ("IDLgrViewgroup" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRCONTAINER_TOP" "IDLGRCONTAINERVERSION" "ISDYING" "IDLGRCONTAINER_BOTTOM" "IDLGRVIEWGROUP_TOP" "IDLGRVIEWGROUPVERSION" "IDLGRVIEWGROUP_BOTTOM") (inherits "IDLitComponent" "IDL_Container") (link "objects_gr208.html")) |
| 1968 | ("IDLitUI" (tags "_MENUBARS" "_TOOLBARS" "_STATUSBAR" "_UISERVICES" "_PDISPATCHSUBJECT" "_PDISPATCHOBSERVER" "_OTOOL" "_IDISPATCH" "_WBASE") (inherits "IDLitContainer") (link "objects_it222.html")) | ||
| 1969 | ("IDLitDataOperation" (tags "_NAN" "_WITHINUI" "_RECORDPROPERTIES") (inherits "IDLitOperation") (link "objects_it69.html")) | 1969 | ("IDLitDataOperation" (tags "_NAN" "_WITHINUI" "_RECORDPROPERTIES") (inherits "IDLitOperation") (link "objects_it69.html")) |
| 1970 | ("IDLgrMPEG" (tags "IDLGRMPEG_TOP" "IDLGRMPEGVERSION" "DIMENSIONS" "FILENAME" "FORMAT" "FRAMERATE" "INTERLACED" "QUALITY" "SCALE" "STATISTICS" "DISPLAYDIMS" "FIRSTFRAME" "LASTFRAME" "MPEGID" "TEMPNODE" "TEMPNODEFILLER" "TEMP_DIRECTORY" "BITRATE" "IFRAME_GAP" "MOTION_LENGTH" "FLAGS" "IDLGRMPEG_BOTTOM") (link "objects_gr93.html")) | 1970 | ("IDLgrMPEG" (tags "IDLGRMPEG_TOP" "IDLGRMPEGVERSION" "DIMENSIONS" "FILENAME" "FORMAT" "FRAMERATE" "INTERLACED" "QUALITY" "SCALE" "STATISTICS" "DISPLAYDIMS" "FIRSTFRAME" "LASTFRAME" "MPEGID" "TEMPNODE" "TEMPNODEFILLER" "TEMP_DIRECTORY" "BITRATE" "IFRAME_GAP" "MOTION_LENGTH" "FLAGS" "IDLGRMPEG_BOTTOM") (link "objects_gr93.html")) |
| 1971 | ("IDLitCommandSet" (inherits "IDLitCommand" "IDL_Container") (link "objects_it12.html")) | 1971 | ("IDLitCommandSet" (inherits "IDLitCommand" "IDL_Container") (link "objects_it12.html")) |
| 1972 | ("IDLitData" (tags "_ONOTIFIER" "_PDATA" "_PMETADATA" "_TYPE" "_AUTODELETE" "_NREF" "_PDESTRUCT" "_HIDE" "_READ_ONLY") (inherits "IDLitComponent") (link "objects_it44.html")) | ||
| 1973 | ("IDLitOperation" (tags "_BEXPENSIVE" "_REVERSIBLE" "_BSHOWEXECUTIONUI" "_BSKIPHISTORY" "_BSKIPMACRO" "_BMACROSHOWUIIFNULLCMD" "_BMACROSUPPRESSREFRESH" "_TYPES") (inherits "IDLitComponent" "IDLitIMessaging") (link "objects_it134.html")) | ||
| 1974 | ("IDLitContainer" (tags "_BISMESSAGER" "_CLASSNAME" "_OCHILDREN") (inherits "IDLitComponent" "IDL_Container") (link "objects_it33.html")) | 1972 | ("IDLitContainer" (tags "_BISMESSAGER" "_CLASSNAME" "_OCHILDREN") (inherits "IDLitComponent" "IDL_Container") (link "objects_it33.html")) |
| 1973 | ("IDLitOperation" (tags "_BEXPENSIVE" "_REVERSIBLE" "_BSHOWEXECUTIONUI" "_BSKIPHISTORY" "_BSKIPMACRO" "_BMACROSHOWUIIFNULLCMD" "_BMACROSUPPRESSREFRESH" "_TYPES") (inherits "IDLitComponent" "IDLitIMessaging") (link "objects_it134.html")) | ||
| 1974 | ("IDLitData" (tags "_ONOTIFIER" "_PDATA" "_PMETADATA" "_TYPE" "_AUTODELETE" "_NREF" "_PDESTRUCT" "_HIDE" "_READ_ONLY") (inherits "IDLitComponent") (link "objects_it44.html")) | ||
| 1975 | ("IDLitWriter" (tags "_TYPES" "_BITDEPTH" "_GRAPHICSFORMAT" "_SCALEFACTOR") (inherits "IDLitReader") (link "objects_it311.html")) | 1975 | ("IDLitWriter" (tags "_TYPES" "_BITDEPTH" "_GRAPHICSFORMAT" "_SCALEFACTOR") (inherits "IDLitReader") (link "objects_it311.html")) |
| 1976 | ("IDLdbRecordset" (tags "IDLDBRECORDSET_TOP" "IDLDBRECORDSETVERSION" "ISTABLE" "PDBOBJ" "ISREADONLY" "NFIELDS" "CURROW" "SOURCE" "CURSORTYPE" "PFIELDS" "PSDEF" "ROWSTATUS" "ROWSET" "ROWPOS" "HSTMT" "HDBC" "IDLDBRECORDSET_BOTTOM") (link "api14.html")) | 1976 | ("IDLdbRecordset" (tags "IDLDBRECORDSET_TOP" "IDLDBRECORDSETVERSION" "ISTABLE" "PDBOBJ" "ISREADONLY" "NFIELDS" "CURROW" "SOURCE" "CURSORTYPE" "PFIELDS" "PSDEF" "ROWSTATUS" "ROWSET" "ROWPOS" "HSTMT" "HDBC" "IDLDBRECORDSET_BOTTOM") (link "api14.html")) |
| 1977 | ("IDLdbDatabase" (tags "IDLDBDATABASE_TOP" "IDLDBDATABASEVERSION" "READONLY" "ISCONNECTED" "FETCHDIR" "POSOPS" "POSSTATEMENTS" "SCROLLCONCUR" "SCROLLOPTIONS" "STATICSENSE" "GETDATAEXT" "USINGCURSOR" "NSTATEMENTS" "P_RECOBJS" "HDBC" "IDLDBDATABASE_BOTTOM") (link "api6.html")) | ||
| 1978 | ("IDLitCommand" (tags "_PDATADICTIONARY" "_SIZEITEMS" "_STRIDTARGET" "_STRIDOPERATION") (inherits "IDLitComponent") (link "objects_it3.html")) | ||
| 1979 | ("IDLffLangCat" (tags "FILENAMES" "_AVAILABLE_FILES" "LANGUAGE" "DEFAULT_LANGUAGE" "APPLICATIONS" "APPLICATION_PATH" "KEYS" "N_KEYS" "STRINGS" "DEF_KEYS" "N_DEF_KEYS" "DEF_STRINGS" "AVAILABLE_LANGUAGES" "VERBOSE" "STRICT" "IDLFFLANGCATVERSION") (link "objects_ff44.html")) | 1977 | ("IDLffLangCat" (tags "FILENAMES" "_AVAILABLE_FILES" "LANGUAGE" "DEFAULT_LANGUAGE" "APPLICATIONS" "APPLICATION_PATH" "KEYS" "N_KEYS" "STRINGS" "DEF_KEYS" "N_DEF_KEYS" "DEF_STRINGS" "AVAILABLE_LANGUAGES" "VERBOSE" "STRICT" "IDLFFLANGCATVERSION") (link "objects_ff44.html")) |
| 1978 | ("IDLitCommand" (tags "_PDATADICTIONARY" "_SIZEITEMS" "_STRIDTARGET" "_STRIDOPERATION") (inherits "IDLitComponent") (link "objects_it3.html")) | ||
| 1979 | ("IDLdbDatabase" (tags "IDLDBDATABASE_TOP" "IDLDBDATABASEVERSION" "READONLY" "ISCONNECTED" "FETCHDIR" "POSOPS" "POSSTATEMENTS" "SCROLLCONCUR" "SCROLLOPTIONS" "STATICSENSE" "GETDATAEXT" "USINGCURSOR" "NSTATEMENTS" "P_RECOBJS" "HDBC" "IDLDBDATABASE_BOTTOM") (link "api6.html")) | ||
| 1980 | ("IDLitReader" (tags "_STRFILENAME" "_PEXTENSIONS") (inherits "IDLitComponent" "IDLitIMessaging") (link "objects_it169.html")) | 1980 | ("IDLitReader" (tags "_STRFILENAME" "_PEXTENSIONS") (inherits "IDLitComponent" "IDLitIMessaging") (link "objects_it169.html")) |
| 1981 | ("IDLanROI" (tags "IDLANROI_TOP" "IDLANROIVERSION" "IDLANROIFLAGS" "NALLOCVERTS" "NUSEDVERTS" "BLOCKSIZE" "DATA" "TYPE" "PRECISION" "PLANE" "ROI_XRANGE" "ROI_YRANGE" "ROI_ZRANGE" "IDLANROI_BOTTOM") (link "objects_an3.html")) | 1981 | ("IDLanROI" (tags "IDLANROI_TOP" "IDLANROIVERSION" "IDLANROIFLAGS" "NALLOCVERTS" "NUSEDVERTS" "BLOCKSIZE" "DATA" "TYPE" "PRECISION" "PLANE" "ROI_XRANGE" "ROI_YRANGE" "ROI_ZRANGE" "IDLANROI_BOTTOM") (link "objects_an3.html")) |
| 1982 | ("IDLgrPalette" (tags "IDLGRPALETTE_TOP" "IDLGRPALETTE_SERIALNUM" "IDLGRPALETTEVERSION" "GAMMA" "BOTTOMSTRETCH" "TOPSTRETCH" "NENTRIES" "ORIGLUT" "CURRLUT" "INVTABLE" "UVALUE" "NAME" "IDLGRPALETTE_BOTTOM") (link "objects_gr101.html")) | ||
| 1983 | ("IDLanROIGroup" (tags "IDLANROIGROUP_TOP" "IDLANROIGROUPVERSION" "IDLANROIGROUPFLAGS" "ROIGROUP_XRANGE" "ROIGROUP_YRANGE" "ROIGROUP_ZRANGE" "IDLANROIGROUP_BOTTOM") (inherits "IDL_Container") (link "objects_an18.html")) | 1982 | ("IDLanROIGroup" (tags "IDLANROIGROUP_TOP" "IDLANROIGROUPVERSION" "IDLANROIGROUPFLAGS" "ROIGROUP_XRANGE" "ROIGROUP_YRANGE" "ROIGROUP_ZRANGE" "IDLANROIGROUP_BOTTOM") (inherits "IDL_Container") (link "objects_an18.html")) |
| 1984 | ("IDLffXMLDOMDocument" (tags "IDLFFXMLDOMDOCUMENT_TOP" "_DOM_IMPLEMENTATION" "_DOM_PARSER" "_DOM_ERROR_REPORTER" "_DOM_MEMORY_MANAGER" "IDLFFXMLDOMDOCUMENT_BOTTOM") (inherits "IDLffXMLDOMNode") (link "objects_ff102.html")) | 1983 | ("IDLffXMLDOMDocument" (tags "IDLFFXMLDOMDOCUMENT_TOP" "_DOM_IMPLEMENTATION" "_DOM_PARSER" "_DOM_ERROR_REPORTER" "_DOM_MEMORY_MANAGER" "IDLFFXMLDOMDOCUMENT_BOTTOM") (inherits "IDLffXMLDOMText") (link "objects_ff102.html")) |
| 1984 | ("IDLgrPalette" (tags "IDLGRPALETTE_TOP" "IDLGRPALETTE_SERIALNUM" "IDLGRPALETTEVERSION" "GAMMA" "BOTTOMSTRETCH" "TOPSTRETCH" "NENTRIES" "ORIGLUT" "CURRLUT" "INVTABLE" "UVALUE" "NAME" "IDLGRPALETTE_BOTTOM") (link "objects_gr101.html")) | ||
| 1985 | ("IDLitComponent" (tags "IDLITCOMPONENT_TOP" "IDLITCOMPONENTVERSION" "DESCRIPTION" "NAME" "ICON" "IDENTIFIER" "HELP" "UVALUE" "_PARENT" "PROPERTYDESCRIPTORS" "_FLAGS" "IDLITCOMPONENT_BOTTOM") (link "objects_it17.html")) | 1985 | ("IDLitComponent" (tags "IDLITCOMPONENT_TOP" "IDLITCOMPONENTVERSION" "DESCRIPTION" "NAME" "ICON" "IDENTIFIER" "HELP" "UVALUE" "_PARENT" "PROPERTYDESCRIPTORS" "_FLAGS" "IDLITCOMPONENT_BOTTOM") (link "objects_it17.html")) |
| 1986 | ("IDLgrSymbol" (tags "IDLGRSYMBOL_TOP" "IDLGRSYMBOLVERSION" "COLOR" "DATA" "SIZE" "THICK" "FLAGS" "UVALUE" "NAME" "ALPHA_CHANNEL" "IDLGRSYMBOL_BOTTOM") (link "objects_gr180.html")) | 1986 | ("IDLgrSymbol" (tags "IDLGRSYMBOL_TOP" "IDLGRSYMBOLVERSION" "COLOR" "DATA" "SIZE" "THICK" "FLAGS" "UVALUE" "NAME" "ALPHA_CHANNEL" "IDLGRSYMBOL_BOTTOM") (link "objects_gr180.html")) |
| 1987 | ("IDLgrFont" (tags "IDLGRFONT_TOP" "IDLGRFONTVERSION" "FONTFLAGS" "HERSHEY" "NAME" "SIZE" "SUBSTITUTE" "THICK" "ID" "UVALUE" "IDLGRFONT_BOTTOM") (link "objects_gr52.html")) | 1987 | ("IDLgrFont" (tags "IDLGRFONT_TOP" "IDLGRFONTVERSION" "FONTFLAGS" "HERSHEY" "NAME" "SIZE" "SUBSTITUTE" "THICK" "ID" "UVALUE" "IDLGRFONT_BOTTOM") (link "objects_gr52.html")) |
| @@ -1989,45 +1989,45 @@ | |||
| 1989 | ("IDLffDXF" (tags "IDLFFDXF_TOP" "IDLFFDXFVERSION" "DXFREADVALID" "DXFHANDLEVALID" "DXFLUT" "SERIAL" "DXFHANDLE" "DXFHANDLEFILLER" "IDLFFDXF_BOTTOM") (link "objects_ff21.html")) | 1989 | ("IDLffDXF" (tags "IDLFFDXF_TOP" "IDLFFDXFVERSION" "DXFREADVALID" "DXFHANDLEVALID" "DXFLUT" "SERIAL" "DXFHANDLE" "DXFHANDLEFILLER" "IDLFFDXF_BOTTOM") (link "objects_ff21.html")) |
| 1990 | ("IDLffShape" (tags "IDLFFSHAPE_TOP" "IDLFFSHAPEVERSION" "FILENAME" "ISOPEN" "SHPTYPE" "PATTRIBUTE" "SHAPEHANDLE" "DBFHANDLE" "IDLFFSHAPE_BOTTOM") (link "objects_ff59.html")) | 1990 | ("IDLffShape" (tags "IDLFFSHAPE_TOP" "IDLFFSHAPEVERSION" "FILENAME" "ISOPEN" "SHPTYPE" "PATTRIBUTE" "SHAPEHANDLE" "DBFHANDLE" "IDLFFSHAPE_BOTTOM") (link "objects_ff59.html")) |
| 1991 | ("IDLffXMLSAX" (tags "IDLFFXMLSAX_TOP" "IDLFFXMLSAXVERSION" "VALIDATION_MODE" "HALT_PROCESSING" "FILENAME" "_XML_PARSER" "_XML_LOCATOR" "IDLFFXMLSAX_BOTTOM") (link "objects_ff209.html")) | 1991 | ("IDLffXMLSAX" (tags "IDLFFXMLSAX_TOP" "IDLFFXMLSAXVERSION" "VALIDATION_MODE" "HALT_PROCESSING" "FILENAME" "_XML_PARSER" "_XML_LOCATOR" "IDLFFXMLSAX_BOTTOM") (link "objects_ff209.html")) |
| 1992 | ("IDLffDICOM" (tags "IDLFFDICOM_TOP" "IDLFFDICOMVERSION" "DICOMFLAGS" "DICOMELEMENTS" "DICOMPREAMBLE" "DICOMHANDLE" "DICOMHANDLEFILLER" "IDLFFDICOM_BOTTOM") (link "objects_ff3.html")) | ||
| 1993 | ("TrackBall" (tags "BTNDOWN" "AXIS" "CONSTRAIN" "MOUSE" "CENTER" "RADIUS" "PT0" "PT1") (link "objects_misc33.html")) | 1992 | ("TrackBall" (tags "BTNDOWN" "AXIS" "CONSTRAIN" "MOUSE" "CENTER" "RADIUS" "PT0" "PT1") (link "objects_misc33.html")) |
| 1994 | ("IDLgrTessellator" (tags "IDLGRTESSELLATOR_TOP" "IDLGRTESSELLATORVERSION" "ITESSFLAGS" "IVERTS" "HVIDLIST" "IAUXSIZE" "IAUXTYPE" "IDLGRTESSELLATOR_BOTTOM") (link "objects_gr186.html")) | 1993 | ("IDLgrTessellator" (tags "IDLGRTESSELLATOR_TOP" "IDLGRTESSELLATORVERSION" "ITESSFLAGS" "IVERTS" "HVIDLIST" "IAUXSIZE" "IAUXTYPE" "IDLGRTESSELLATOR_BOTTOM") (link "objects_gr186.html")) |
| 1995 | ("IDLffXMLDOMNode" (inherits "IDLffXMLDOMDocumentType") (link "objects_ff162.html")) | 1994 | ("IDLffDICOM" (tags "IDLFFDICOM_TOP" "IDLFFDICOMVERSION" "DICOMFLAGS" "DICOMELEMENTS" "DICOMPREAMBLE" "DICOMHANDLE" "DICOMHANDLEFILLER" "IDLFFDICOM_BOTTOM") (link "objects_ff3.html")) |
| 1996 | ("IDLffXMLDOMDocumentType" (inherits "IDLffXMLDOMElement") (link "objects_ff123.html")) | 1995 | ("IDLffXMLDOMText" (inherits "IDLffXMLDOMProcessingInstruction") (link "objects_ff203.html")) |
| 1996 | ("IDLffXMLDOMProcessingInstruction" (inherits "IDLffXMLDOMAttr") (link "objects_ff196.html")) | ||
| 1997 | ("IDLffXMLDOMAttr" (inherits "IDLffXMLDOMElement") (link "objects_ff74.html")) | ||
| 1998 | ("IDLffXMLDOMElement" (inherits "IDLffXMLDOMNode") (link "objects_ff130.html")) | ||
| 1997 | ("IDLffXMLDOMNamedNodeMap" (tags "IDLFFXMLDOMNAMEDNODEMAP_TOP" "IDLFFXMLDOMNAMEDNODEMAPVERSION" "_IDLFFXMLDOMNAMEDNODEMAPNODE" "_IDLFFXMLDOMNAMEDNODEMAPOWNEDNODES" "_IDLFFXMLDOMNAMEDNODEMAPOWNER" "_IDLFFXMLDOMNAMEDNODEMAPDOCUMENT" "IDLFFXMLDOMNAMEDNODEMAP_BOTTOM") (link "objects_ff153.html")) | 1999 | ("IDLffXMLDOMNamedNodeMap" (tags "IDLFFXMLDOMNAMEDNODEMAP_TOP" "IDLFFXMLDOMNAMEDNODEMAPVERSION" "_IDLFFXMLDOMNAMEDNODEMAPNODE" "_IDLFFXMLDOMNAMEDNODEMAPOWNEDNODES" "_IDLFFXMLDOMNAMEDNODEMAPOWNER" "_IDLFFXMLDOMNAMEDNODEMAPDOCUMENT" "IDLFFXMLDOMNAMEDNODEMAP_BOTTOM") (link "objects_ff153.html")) |
| 1998 | ("IDLffXMLDOMElement" (inherits "IDLffXMLDOMNotation") (link "objects_ff130.html")) | 2000 | ("IDLffXMLDOMNode" (inherits "IDLffXMLDOMNotation") (link "objects_ff162.html")) |
| 1999 | ("IDLffXMLDOMNotation" (inherits "IDLffXMLDOMEntity") (link "objects_ff190.html")) | 2001 | ("IDLffXMLDOMNotation" (inherits "IDLffXMLDOMCharacterData") (link "objects_ff190.html")) |
| 2000 | ("IDLffXMLDOMEntity" (inherits "IDLffXMLDOMCharacterData") (link "objects_ff142.html")) | ||
| 2001 | ("IDLffXMLDOMCharacterData" (inherits "IDLffXMLDOMProcessingInstruction") (link "objects_ff86.html")) | ||
| 2002 | ("IDLffXMLDOMProcessingInstruction" (inherits "IDLffXMLDOMText") (link "objects_ff196.html")) | ||
| 2003 | ("IDLffXMLDOMText" (inherits "IDLffXMLDOMAttr") (link "objects_ff203.html")) | ||
| 2004 | ("IDLffXMLDOMAttr" (tags "IDLFFXMLDOMNODE_TOP" "IDLFFXMLDOMNODEVERSION" "_IDLFFXMLDOMNODEDOMNODE" "_IDLFFXMLDOMNODEOWNEDNODES" "_IDLFFXMLDOMNODEOWNER" "_IDLFFXMLDOMNODEDOCUMENT" "IDLFFXMLDOMNODE_BOTTOM") (link "objects_ff74.html")) | ||
| 2005 | ("IDLffXMLDOMNodeList" (tags "IDLFFXMLDOMNODELIST_TOP" "IDLFFXMLDOMNODELISTVERSION" "_IDLFFXMLDOMNODELISTNODE" "_IDLFFXMLDOMNODELISTOWNEDNODES" "_IDLFFXMLDOMNODELISTOWNER" "_IDLFFXMLDOMNODELISTDOCUMENT" "IDLFFXMLDOMNODELIST_BOTTOM") (link "objects_ff184.html")) | 2002 | ("IDLffXMLDOMNodeList" (tags "IDLFFXMLDOMNODELIST_TOP" "IDLFFXMLDOMNODELISTVERSION" "_IDLFFXMLDOMNODELISTNODE" "_IDLFFXMLDOMNODELISTOWNEDNODES" "_IDLFFXMLDOMNODELISTOWNER" "_IDLFFXMLDOMNODELISTDOCUMENT" "IDLFFXMLDOMNODELIST_BOTTOM") (link "objects_ff184.html")) |
| 2003 | ("IDLffXMLDOMCharacterData" (inherits "IDLffXMLDOMEntity") (link "objects_ff86.html")) | ||
| 2004 | ("IDLffXMLDOMEntity" (inherits "IDLffXMLDOMDocumentType") (link "objects_ff142.html")) | ||
| 2005 | ("IDLffXMLDOMDocumentType" (tags "IDLFFXMLDOMNODE_TOP" "IDLFFXMLDOMNODEVERSION" "_IDLFFXMLDOMNODEDOMNODE" "_IDLFFXMLDOMNODEOWNEDNODES" "_IDLFFXMLDOMNODEOWNER" "_IDLFFXMLDOMNODEDOCUMENT" "IDLFFXMLDOMNODE_BOTTOM") (link "objects_ff123.html")) | ||
| 2006 | ("IDL_Container" (tags "IDL_CONTAINER_TOP" "IDLCONTAINERVERSION" "PHEAD" "PTAIL" "NLIST" "IDL_CONTAINER_BOTTOM") (link "objects_misc3.html")) | 2006 | ("IDL_Container" (tags "IDL_CONTAINER_TOP" "IDLCONTAINERVERSION" "PHEAD" "PTAIL" "NLIST" "IDL_CONTAINER_BOTTOM") (link "objects_misc3.html")) |
| 2007 | ("IDLffJPEG2000" (tags "IDLFFJPEG2000_TOP" "CJPEG2000PTR" "IDLFFJPEG2000_BOTTOM") (link "objects_ff34.html")) | 2007 | ("IDLffJPEG2000" (tags "IDLFFJPEG2000_TOP" "CJPEG2000PTR" "IDLFFJPEG2000_BOTTOM") (link "objects_ff34.html")) |
| 2008 | ("IDLitParameter" (tags "_OPARAMETERDESCRIPTORS" "_OPARAMETERSET" "_PPARAMNAMES") (link "objects_it145.html")) | 2008 | ("IDLitParameter" (tags "_OPARAMETERDESCRIPTORS" "_OPARAMETERSET" "_PPARAMNAMES") (link "objects_it145.html")) |
| 2009 | ("IDL_Savefile" (tags "IDL_SAVEFILE_FILENAME" "IDL_SAVEFILE_RELAXED_STRUCTURE_ASSIGNMENT") (link "objects_misc13.html")) | 2009 | ("IDL_Savefile" (tags "IDL_SAVEFILE_FILENAME" "IDL_SAVEFILE_RELAXED_STRUCTURE_ASSIGNMENT") (link "objects_misc13.html")) |
| 2010 | ("IDLitIMessaging" (tags "__OTOOL") (link "objects_it78.html")) | 2010 | ("IDLitIMessaging" (tags "__OTOOL") (link "objects_it78.html")) |
| 2011 | ("IDLjavaObject" (link "objects_misc28.html")) | ||
| 2012 | ("IDLcomIDispatch" (link "objects_misc23.html")) | 2011 | ("IDLcomIDispatch" (link "objects_misc23.html")) |
| 2013 | ("IDLffMrSID" (link "objects_ff52.html")))) | 2012 | ("IDLffMrSID" (link "objects_ff52.html")) |
| 2013 | ("IDLjavaObject" (link "objects_misc28.html")))) | ||
| 2014 | 2014 | ||
| 2015 | 2015 | ||
| 2016 | (setq idlwave-executive-commands-alist '( | 2016 | (setq idlwave-executive-commands-alist '( |
| 2017 | ("GO" . "symbols6.html") | 2017 | ("RESET_SESSION" . "symbols8.html") |
| 2018 | ("OUT" . "symbols7.html") | ||
| 2019 | ("RETURN" . "symbols9.html") | ||
| 2020 | ("TRACE" . "symbols15.html") | 2018 | ("TRACE" . "symbols15.html") |
| 2019 | ("RNEW" . "symbols10.html") | ||
| 2020 | ("EDIT" . "symbols4.html") | ||
| 2021 | ("STEPOVER" . "symbols14.html") | ||
| 2022 | ("OUT" . "symbols7.html") | ||
| 2021 | ("RUN" . "symbols11.html") | 2023 | ("RUN" . "symbols11.html") |
| 2022 | ("SKIP" . "symbols12.html") | ||
| 2023 | ("COMPILE" . "symbols2.html") | ||
| 2024 | ("CONTINUE" . "symbols3.html") | 2024 | ("CONTINUE" . "symbols3.html") |
| 2025 | ("RESET_SESSION" . "symbols8.html") | ||
| 2026 | ("STEP" . "symbols13.html") | 2025 | ("STEP" . "symbols13.html") |
| 2027 | ("RNEW" . "symbols10.html") | 2026 | ("RETURN" . "symbols9.html") |
| 2027 | ("GO" . "symbols6.html") | ||
| 2028 | ("SKIP" . "symbols12.html") | ||
| 2028 | ("FULL_RESET_SESSION" . "symbols5.html") | 2029 | ("FULL_RESET_SESSION" . "symbols5.html") |
| 2029 | ("EDIT" . "symbols4.html") | 2030 | ("COMPILE" . "symbols2.html") |
| 2030 | ("STEPOVER" . "symbols14.html") | ||
| 2031 | )) | 2031 | )) |
| 2032 | 2032 | ||
| 2033 | ;; Special words with associated help topic files | 2033 | ;; Special words with associated help topic files |
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el index 04e6a28ee40..be49e613b6c 100644 --- a/lisp/progmodes/idlw-shell.el +++ b/lisp/progmodes/idlw-shell.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Carsten Dominik <dominik@astro.uva.nl> | 5 | ;; Carsten Dominik <dominik@astro.uva.nl> |
| 6 | ;; Chris Chase <chase@att.com> | 6 | ;; Chris Chase <chase@att.com> |
| 7 | ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> | 7 | ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> |
| 8 | ;; Version: 5.5 | 8 | ;; Version: 5.7_22 |
| 9 | ;; Keywords: processes | 9 | ;; Keywords: processes |
| 10 | 10 | ||
| 11 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| @@ -45,7 +45,7 @@ | |||
| 45 | ;; | 45 | ;; |
| 46 | ;; INSTALLATION: | 46 | ;; INSTALLATION: |
| 47 | ;; ============= | 47 | ;; ============= |
| 48 | ;; | 48 | ;; |
| 49 | ;; Follow the instructions in the INSTALL file of the distribution. | 49 | ;; Follow the instructions in the INSTALL file of the distribution. |
| 50 | ;; In short, put this file on your load path and add the following | 50 | ;; In short, put this file on your load path and add the following |
| 51 | ;; lines to your .emacs file: | 51 | ;; lines to your .emacs file: |
| @@ -58,9 +58,9 @@ | |||
| 58 | ;; | 58 | ;; |
| 59 | ;; The newest version of this file can be found on the maintainers | 59 | ;; The newest version of this file can be found on the maintainers |
| 60 | ;; web site. | 60 | ;; web site. |
| 61 | ;; | 61 | ;; |
| 62 | ;; http://idlwave.org | 62 | ;; http://idlwave.org |
| 63 | ;; | 63 | ;; |
| 64 | ;; DOCUMENTATION | 64 | ;; DOCUMENTATION |
| 65 | ;; ============= | 65 | ;; ============= |
| 66 | ;; | 66 | ;; |
| @@ -77,7 +77,7 @@ | |||
| 77 | ;; it is a bug in XEmacs. | 77 | ;; it is a bug in XEmacs. |
| 78 | ;; The Debug menu in source buffers *does* display the bindings correctly. | 78 | ;; The Debug menu in source buffers *does* display the bindings correctly. |
| 79 | ;; | 79 | ;; |
| 80 | ;; | 80 | ;; |
| 81 | ;; CUSTOMIZATION VARIABLES | 81 | ;; CUSTOMIZATION VARIABLES |
| 82 | ;; ======================= | 82 | ;; ======================= |
| 83 | ;; | 83 | ;; |
| @@ -101,12 +101,12 @@ | |||
| 101 | (condition-case () (require 'custom) (error nil)) | 101 | (condition-case () (require 'custom) (error nil)) |
| 102 | (if (and (featurep 'custom) | 102 | (if (and (featurep 'custom) |
| 103 | (fboundp 'custom-declare-variable) | 103 | (fboundp 'custom-declare-variable) |
| 104 | (fboundp 'defface)) | 104 | (fboundp 'defface)) |
| 105 | ;; We've got what we needed | 105 | ;; We've got what we needed |
| 106 | (setq idlwave-shell-have-new-custom t) | 106 | (setq idlwave-shell-have-new-custom t) |
| 107 | ;; We have the old or no custom-library, hack around it! | 107 | ;; We have the old or no custom-library, hack around it! |
| 108 | (defmacro defgroup (&rest args) nil) | 108 | (defmacro defgroup (&rest args) nil) |
| 109 | (defmacro defcustom (var value doc &rest args) | 109 | (defmacro defcustom (var value doc &rest args) |
| 110 | `(defvar ,var ,value ,doc)))) | 110 | `(defvar ,var ,value ,doc)))) |
| 111 | 111 | ||
| 112 | ;;; Customizations: idlwave-shell group | 112 | ;;; Customizations: idlwave-shell group |
| @@ -117,11 +117,12 @@ | |||
| 117 | :prefix "idlwave-shell" | 117 | :prefix "idlwave-shell" |
| 118 | :group 'idlwave) | 118 | :group 'idlwave) |
| 119 | 119 | ||
| 120 | (defcustom idlwave-shell-prompt-pattern "^ ?IDL> " | 120 | (defcustom idlwave-shell-prompt-pattern "^\r? ?IDL> " |
| 121 | "*Regexp to match IDL prompt at beginning of a line. | 121 | "*Regexp to match IDL prompt at beginning of a line. |
| 122 | For example, \"^IDL> \" or \"^WAVE> \". | 122 | For example, \"^\r?IDL> \" or \"^\r?WAVE> \". |
| 123 | The \"^\" means beginning of line, and is required. | 123 | The \"^\r?\" is needed, to indicate the beginning of the line, with |
| 124 | This variable is used to initialize `comint-prompt-regexp' in the | 124 | optional return character (which IDL seems to output randomly). |
| 125 | This variable is used to initialize `comint-prompt-regexp' in the | ||
| 125 | process buffer. | 126 | process buffer. |
| 126 | 127 | ||
| 127 | This is a fine thing to set in your `.emacs' file." | 128 | This is a fine thing to set in your `.emacs' file." |
| @@ -210,7 +211,7 @@ So by default setting a breakpoint will be on C-c C-d C-b." | |||
| 210 | :type 'boolean) | 211 | :type 'boolean) |
| 211 | 212 | ||
| 212 | (defcustom idlwave-shell-automatic-electric-debug 'breakpoint | 213 | (defcustom idlwave-shell-automatic-electric-debug 'breakpoint |
| 213 | "Enter the electric-debug minor mode automatically. | 214 | "Enter the electric-debug minor mode automatically. |
| 214 | This occurs at a breakpoint or any other halt. The mode is exited | 215 | This occurs at a breakpoint or any other halt. The mode is exited |
| 215 | upon return to the main level. Can be set to 'breakpoint to enter | 216 | upon return to the main level. Can be set to 'breakpoint to enter |
| 216 | electric debug mode only when breakpoints are tripped." | 217 | electric debug mode only when breakpoints are tripped." |
| @@ -295,7 +296,7 @@ The history is only saved if the variable `idlwave-shell-save-command-history' | |||
| 295 | is non-nil." | 296 | is non-nil." |
| 296 | :group 'idlwave-shell-command-setup | 297 | :group 'idlwave-shell-command-setup |
| 297 | :type 'file) | 298 | :type 'file) |
| 298 | 299 | ||
| 299 | (defcustom idlwave-shell-show-commands | 300 | (defcustom idlwave-shell-show-commands |
| 300 | '(run misc breakpoint) | 301 | '(run misc breakpoint) |
| 301 | "*A list of command types to show output from in the shell. | 302 | "*A list of command types to show output from in the shell. |
| @@ -306,12 +307,12 @@ the copious shell traffic to be displayed." | |||
| 306 | :type '(choice | 307 | :type '(choice |
| 307 | (const everything) | 308 | (const everything) |
| 308 | (set :tag "Checklist" :greedy t | 309 | (set :tag "Checklist" :greedy t |
| 309 | (const :tag "All .run and .compile commands" run) | 310 | (const :tag "All .run and .compile commands" run) |
| 310 | (const :tag "All breakpoint commands" breakpoint) | 311 | (const :tag "All breakpoint commands" breakpoint) |
| 311 | (const :tag "All debug and stepping commands" debug) | 312 | (const :tag "All debug and stepping commands" debug) |
| 312 | (const :tag "Close, window, retall, etc. commands" misc)))) | 313 | (const :tag "Close, window, retall, etc. commands" misc)))) |
| 313 | 314 | ||
| 314 | (defcustom idlwave-shell-examine-alist | 315 | (defcustom idlwave-shell-examine-alist |
| 315 | '(("Print" . "print,___") | 316 | '(("Print" . "print,___") |
| 316 | ("Help" . "help,___") | 317 | ("Help" . "help,___") |
| 317 | ("Structure Help" . "help,___,/STRUCTURE") | 318 | ("Structure Help" . "help,___,/STRUCTURE") |
| @@ -322,14 +323,14 @@ the copious shell traffic to be displayed." | |||
| 322 | ("Ptr Valid" . "print,ptr_valid(___)") | 323 | ("Ptr Valid" . "print,ptr_valid(___)") |
| 323 | ("Widget Valid" . "print,widget_info(___,/VALID)") | 324 | ("Widget Valid" . "print,widget_info(___,/VALID)") |
| 324 | ("Widget Geometry" . "help,widget_info(___,/GEOMETRY)")) | 325 | ("Widget Geometry" . "help,widget_info(___,/GEOMETRY)")) |
| 325 | "Alist of special examine commands for popup selection. | 326 | "Alist of special examine commands for popup selection. |
| 326 | The keys are used in the selection popup created by | 327 | The keys are used in the selection popup created by |
| 327 | `idlwave-shell-examine-select', and the corresponding value is sent as | 328 | `idlwave-shell-examine-select', and the corresponding value is sent as |
| 328 | a command to the shell, with special sequence `___' replaced by the | 329 | a command to the shell, with special sequence `___' replaced by the |
| 329 | expression being examined." | 330 | expression being examined." |
| 330 | :group 'idlwave-shell-command-setup | 331 | :group 'idlwave-shell-command-setup |
| 331 | :type '(repeat | 332 | :type '(repeat |
| 332 | (cons | 333 | (cons |
| 333 | (string :tag "Label ") | 334 | (string :tag "Label ") |
| 334 | (string :tag "Command")))) | 335 | (string :tag "Command")))) |
| 335 | 336 | ||
| @@ -340,11 +341,12 @@ expression being examined." | |||
| 340 | "*Non-nil mean, put output of examine commands in their own buffer." | 341 | "*Non-nil mean, put output of examine commands in their own buffer." |
| 341 | :group 'idlwave-shell-command-setup | 342 | :group 'idlwave-shell-command-setup |
| 342 | :type 'boolean) | 343 | :type 'boolean) |
| 343 | 344 | ||
| 344 | (defcustom idlwave-shell-comint-settings | 345 | (defcustom idlwave-shell-comint-settings |
| 345 | '((comint-scroll-to-bottom-on-input . t) | 346 | '((comint-scroll-to-bottom-on-input . t) |
| 346 | (comint-scroll-to-bottom-on-output . t) | 347 | (comint-scroll-to-bottom-on-output . t) |
| 347 | (comint-scroll-show-maximum-output . nil)) | 348 | (comint-scroll-show-maximum-output . nil) |
| 349 | (comint-prompt-read-only . t)) | ||
| 348 | 350 | ||
| 349 | "Alist of special settings for the comint variables in the IDLWAVE Shell. | 351 | "Alist of special settings for the comint variables in the IDLWAVE Shell. |
| 350 | Each entry is a cons cell with the name of a variable and a value. | 352 | Each entry is a cons cell with the name of a variable and a value. |
| @@ -403,7 +405,7 @@ strings. Here is some example code which makes use of the default spells. | |||
| 403 | answer = GET_KBRD(1) | 405 | answer = GET_KBRD(1) |
| 404 | 406 | ||
| 405 | Since the IDLWAVE shell defines the system variable `!IDLWAVE_VERSION', | 407 | Since the IDLWAVE shell defines the system variable `!IDLWAVE_VERSION', |
| 406 | you could actually check if you are running under Emacs before printing | 408 | you could actually check if you are running under Emacs before printing |
| 407 | the magic strings. Here is a procedure which uses this. | 409 | the magic strings. Here is a procedure which uses this. |
| 408 | 410 | ||
| 409 | Usage: | 411 | Usage: |
| @@ -420,7 +422,7 @@ pro idlwave_char_input,on=on,off=off | |||
| 420 | if keyword_set(on) then print,'<chars>' $ | 422 | if keyword_set(on) then print,'<chars>' $ |
| 421 | else if keyword_set(off) then print,'</chars>' $ | 423 | else if keyword_set(off) then print,'</chars>' $ |
| 422 | else print,'<onechar>' | 424 | else print,'<onechar>' |
| 423 | endif | 425 | endif |
| 424 | end" | 426 | end" |
| 425 | :group 'idlwave-shell-command-setup | 427 | :group 'idlwave-shell-command-setup |
| 426 | :type '(list | 428 | :type '(list |
| @@ -428,6 +430,11 @@ end" | |||
| 428 | (regexp :tag "Char-mode regexp") | 430 | (regexp :tag "Char-mode regexp") |
| 429 | (regexp :tag "Line-mode regexp"))) | 431 | (regexp :tag "Line-mode regexp"))) |
| 430 | 432 | ||
| 433 | (defcustom idlwave-shell-breakpoint-popup-menu t | ||
| 434 | "*If non-nil, provide a menu on mouse-3 on breakpoint lines, and | ||
| 435 | popup help text on the line." | ||
| 436 | :group 'idlwave-shell-command-setup | ||
| 437 | :type 'boolean) | ||
| 431 | 438 | ||
| 432 | ;; Breakpoint Overlays etc | 439 | ;; Breakpoint Overlays etc |
| 433 | (defgroup idlwave-shell-highlighting-and-faces nil | 440 | (defgroup idlwave-shell-highlighting-and-faces nil |
| @@ -478,10 +485,10 @@ line where IDL is stopped. See also `idlwave-shell-mark-stop-line'." | |||
| 478 | :group 'idlwave-shell-highlighting-and-faces | 485 | :group 'idlwave-shell-highlighting-and-faces |
| 479 | :type 'string) | 486 | :type 'string) |
| 480 | 487 | ||
| 481 | (defcustom idlwave-shell-electric-stop-line-face | 488 | (defcustom idlwave-shell-electric-stop-line-face |
| 482 | (prog1 | 489 | (prog1 |
| 483 | (copy-face 'modeline 'idlwave-shell-electric-stop-line-face) | 490 | (copy-face 'modeline 'idlwave-shell-electric-stop-line-face) |
| 484 | (set-face-background 'idlwave-shell-electric-stop-line-face | 491 | (set-face-background 'idlwave-shell-electric-stop-line-face |
| 485 | idlwave-shell-electric-stop-color) | 492 | idlwave-shell-electric-stop-color) |
| 486 | (condition-case nil | 493 | (condition-case nil |
| 487 | (set-face-foreground 'idlwave-shell-electric-stop-line-face nil) | 494 | (set-face-foreground 'idlwave-shell-electric-stop-line-face nil) |
| @@ -529,7 +536,7 @@ lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'." | |||
| 529 | ;; backward-compatibility alias | 536 | ;; backward-compatibility alias |
| 530 | (put 'idlwave-shell-bp-face 'face-alias 'idlwave-shell-bp)) | 537 | (put 'idlwave-shell-bp-face 'face-alias 'idlwave-shell-bp)) |
| 531 | 538 | ||
| 532 | (defcustom idlwave-shell-disabled-breakpoint-face | 539 | (defcustom idlwave-shell-disabled-breakpoint-face |
| 533 | 'idlwave-shell-disabled-bp | 540 | 'idlwave-shell-disabled-bp |
| 534 | "*The face for disabled breakpoint lines in the source code. | 541 | "*The face for disabled breakpoint lines in the source code. |
| 535 | Allows you to choose the font, color and other properties for | 542 | Allows you to choose the font, color and other properties for |
| @@ -584,18 +591,18 @@ before use by the shell.") | |||
| 584 | 591 | ||
| 585 | TYPE is either 'pro' or 'rinfo', and `idlwave-shell-temp-pro-file' or | 592 | TYPE is either 'pro' or 'rinfo', and `idlwave-shell-temp-pro-file' or |
| 586 | `idlwave-shell-temp-rinfo-save-file' is set (respectively)." | 593 | `idlwave-shell-temp-rinfo-save-file' is set (respectively)." |
| 587 | (cond | 594 | (cond |
| 588 | ((eq type 'rinfo) | 595 | ((eq type 'rinfo) |
| 589 | (or idlwave-shell-temp-rinfo-save-file | 596 | (or idlwave-shell-temp-rinfo-save-file |
| 590 | (setq idlwave-shell-temp-rinfo-save-file | 597 | (setq idlwave-shell-temp-rinfo-save-file |
| 591 | (idlwave-shell-make-temp-file idlwave-shell-temp-pro-prefix)))) | 598 | (idlwave-shell-make-temp-file idlwave-shell-temp-pro-prefix)))) |
| 592 | ((eq type 'pro) | 599 | ((eq type 'pro) |
| 593 | (or idlwave-shell-temp-pro-file | 600 | (or idlwave-shell-temp-pro-file |
| 594 | (setq idlwave-shell-temp-pro-file | 601 | (setq idlwave-shell-temp-pro-file |
| 595 | (idlwave-shell-make-temp-file idlwave-shell-temp-pro-prefix)))) | 602 | (idlwave-shell-make-temp-file idlwave-shell-temp-pro-prefix)))) |
| 596 | (t (error "Wrong argument (idlwave-shell-temp-file): %s" | 603 | (t (error "Wrong argument (idlwave-shell-temp-file): %s" |
| 597 | (symbol-name type))))) | 604 | (symbol-name type))))) |
| 598 | 605 | ||
| 599 | 606 | ||
| 600 | (defun idlwave-shell-make-temp-file (prefix) | 607 | (defun idlwave-shell-make-temp-file (prefix) |
| 601 | "Create a temporary file." | 608 | "Create a temporary file." |
| @@ -623,7 +630,7 @@ TYPE is either 'pro' or 'rinfo', and `idlwave-shell-temp-pro-file' or | |||
| 623 | 630 | ||
| 624 | 631 | ||
| 625 | (defvar idlwave-shell-dirstack-query "cd,current=___cur & print,___cur" | 632 | (defvar idlwave-shell-dirstack-query "cd,current=___cur & print,___cur" |
| 626 | "Command used by `idlwave-shell-resync-dirs' to query IDL for | 633 | "Command used by `idlwave-shell-resync-dirs' to query IDL for |
| 627 | the directory stack.") | 634 | the directory stack.") |
| 628 | 635 | ||
| 629 | (defvar idlwave-shell-path-query "print,'PATH:<'+transpose(expand_path(!PATH,/ARRAY))+'>' & print,'SYSDIR:<'+!dir+'>'" | 636 | (defvar idlwave-shell-path-query "print,'PATH:<'+transpose(expand_path(!PATH,/ARRAY))+'>' & print,'SYSDIR:<'+!dir+'>'" |
| @@ -631,7 +638,7 @@ the directory stack.") | |||
| 631 | "The command which gets !PATH and !DIR info from the shell.") | 638 | "The command which gets !PATH and !DIR info from the shell.") |
| 632 | 639 | ||
| 633 | (defvar idlwave-shell-mode-line-info nil | 640 | (defvar idlwave-shell-mode-line-info nil |
| 634 | "Additional info displayed in the mode line") | 641 | "Additional info displayed in the mode line") |
| 635 | 642 | ||
| 636 | (defvar idlwave-shell-default-directory nil | 643 | (defvar idlwave-shell-default-directory nil |
| 637 | "The default directory in the idlwave-shell buffer, of outside use.") | 644 | "The default directory in the idlwave-shell buffer, of outside use.") |
| @@ -682,7 +689,7 @@ the directory stack.") | |||
| 682 | window-system) ; Window systems always | 689 | window-system) ; Window systems always |
| 683 | (progn | 690 | (progn |
| 684 | (setq idlwave-shell-stop-line-overlay (make-overlay 1 1)) | 691 | (setq idlwave-shell-stop-line-overlay (make-overlay 1 1)) |
| 685 | (overlay-put idlwave-shell-stop-line-overlay | 692 | (overlay-put idlwave-shell-stop-line-overlay |
| 686 | 'face idlwave-shell-stop-line-face)))) | 693 | 'face idlwave-shell-stop-line-face)))) |
| 687 | 694 | ||
| 688 | (t | 695 | (t |
| @@ -690,7 +697,7 @@ the directory stack.") | |||
| 690 | (if window-system | 697 | (if window-system |
| 691 | (progn | 698 | (progn |
| 692 | (setq idlwave-shell-stop-line-overlay (make-overlay 1 1)) | 699 | (setq idlwave-shell-stop-line-overlay (make-overlay 1 1)) |
| 693 | (overlay-put idlwave-shell-stop-line-overlay | 700 | (overlay-put idlwave-shell-stop-line-overlay |
| 694 | 'face idlwave-shell-stop-line-face))))) | 701 | 'face idlwave-shell-stop-line-face))))) |
| 695 | 702 | ||
| 696 | ;; Now the expression and output overlays | 703 | ;; Now the expression and output overlays |
| @@ -746,12 +753,9 @@ with `*'s." | |||
| 746 | (defvar idlwave-shell-ready nil | 753 | (defvar idlwave-shell-ready nil |
| 747 | "If non-nil can send next command to IDL process.") | 754 | "If non-nil can send next command to IDL process.") |
| 748 | 755 | ||
| 749 | (defvar idlwave-shell-wait-for-output nil | ||
| 750 | "Whether to wait for output to accumulate.") | ||
| 751 | |||
| 752 | ;;; The following are the types of messages we attempt to catch to | 756 | ;;; The following are the types of messages we attempt to catch to |
| 753 | ;;; resync our idea of where IDL execution currently is. | 757 | ;;; resync our idea of where IDL execution currently is. |
| 754 | ;;; | 758 | ;;; |
| 755 | 759 | ||
| 756 | (defvar idlwave-shell-halt-frame nil | 760 | (defvar idlwave-shell-halt-frame nil |
| 757 | "The frame associated with halt/breakpoint messages.") | 761 | "The frame associated with halt/breakpoint messages.") |
| @@ -795,7 +799,7 @@ IDL has currently stepped.") | |||
| 795 | 799 | ||
| 796 | (defconst idlwave-shell-electric-debug-help | 800 | (defconst idlwave-shell-electric-debug-help |
| 797 | " ==> IDLWAVE Electric Debug Mode Help <== | 801 | " ==> IDLWAVE Electric Debug Mode Help <== |
| 798 | 802 | ||
| 799 | Break Point Setting and Clearing: | 803 | Break Point Setting and Clearing: |
| 800 | b Set breakpoint ([C-u b] for conditional, [C-n b] nth hit, etc.). | 804 | b Set breakpoint ([C-u b] for conditional, [C-n b] nth hit, etc.). |
| 801 | d Clear nearby breakpoint. | 805 | d Clear nearby breakpoint. |
| @@ -821,7 +825,7 @@ IDL has currently stepped.") | |||
| 821 | Examining Expressions (with prefix for examining the region): | 825 | Examining Expressions (with prefix for examining the region): |
| 822 | p Print expression near point or in region ([C-u p]). | 826 | p Print expression near point or in region ([C-u p]). |
| 823 | ? Help on expression near point or in region ([C-u ?]). | 827 | ? Help on expression near point or in region ([C-u ?]). |
| 824 | x Examine expression near point or in region ([C-u x]) with | 828 | x Examine expression near point or in region ([C-u x]) with |
| 825 | letter completion of the examine type. | 829 | letter completion of the examine type. |
| 826 | 830 | ||
| 827 | Miscellaneous: | 831 | Miscellaneous: |
| @@ -875,18 +879,18 @@ IDL has currently stepped.") | |||
| 875 | `\\[idlwave-routine-info]' displays information about an IDL routine near point, | 879 | `\\[idlwave-routine-info]' displays information about an IDL routine near point, |
| 876 | just like in `idlwave-mode'. The module used is the one at point or | 880 | just like in `idlwave-mode'. The module used is the one at point or |
| 877 | the one whose argument list is being edited. | 881 | the one whose argument list is being edited. |
| 878 | To update IDLWAVE's knowledge about compiled or edited modules, use | 882 | To update IDLWAVE's knowledge about compiled or edited modules, use |
| 879 | \\[idlwave-update-routine-info]. | 883 | \\[idlwave-update-routine-info]. |
| 880 | \\[idlwave-find-module] find the source of a module. | 884 | \\[idlwave-find-module] find the source of a module. |
| 881 | \\[idlwave-resolve] tells IDL to compile an unresolved module. | 885 | \\[idlwave-resolve] tells IDL to compile an unresolved module. |
| 882 | \\[idlwave-context-help] shows the online help on the item at | 886 | \\[idlwave-context-help] shows the online help on the item at |
| 883 | point, if online help has been installed. | 887 | point, if online help has been installed. |
| 884 | 888 | ||
| 885 | 889 | ||
| 886 | 4. Debugging | 890 | 4. Debugging |
| 887 | --------- | 891 | --------- |
| 888 | A complete set of commands for compiling and debugging IDL programs | 892 | A complete set of commands for compiling and debugging IDL programs |
| 889 | is available from the menu. Also keybindings starting with a | 893 | is available from the menu. Also keybindings starting with a |
| 890 | `C-c C-d' prefix are available for most commands in the *idl* buffer | 894 | `C-c C-d' prefix are available for most commands in the *idl* buffer |
| 891 | and also in source buffers. The best place to learn about the | 895 | and also in source buffers. The best place to learn about the |
| 892 | keybindings is again the menu. | 896 | keybindings is again the menu. |
| @@ -978,8 +982,8 @@ IDL has currently stepped.") | |||
| 978 | (idlwave-shell-display-line nil) | 982 | (idlwave-shell-display-line nil) |
| 979 | (setq idlwave-shell-calling-stack-index 0) | 983 | (setq idlwave-shell-calling-stack-index 0) |
| 980 | (setq idlwave-shell-only-prompt-pattern | 984 | (setq idlwave-shell-only-prompt-pattern |
| 981 | (concat "\\`[ \t\n]*" | 985 | (concat "\\`[ \t\n]*" |
| 982 | (substring idlwave-shell-prompt-pattern 1) | 986 | (substring idlwave-shell-prompt-pattern 1) |
| 983 | "[ \t\n]*\\'")) | 987 | "[ \t\n]*\\'")) |
| 984 | 988 | ||
| 985 | (when idlwave-shell-query-for-class | 989 | (when idlwave-shell-query-for-class |
| @@ -992,15 +996,12 @@ IDL has currently stepped.") | |||
| 992 | (set-marker comint-last-input-end (point)) | 996 | (set-marker comint-last-input-end (point)) |
| 993 | (setq idlwave-idlwave_routine_info-compiled nil) | 997 | (setq idlwave-idlwave_routine_info-compiled nil) |
| 994 | (setq idlwave-shell-ready nil) | 998 | (setq idlwave-shell-ready nil) |
| 995 | (setq idlwave-shell-wait-for-output nil) | ||
| 996 | (setq idlwave-shell-bp-alist nil) | 999 | (setq idlwave-shell-bp-alist nil) |
| 997 | (idlwave-shell-update-bp-overlays) ; Throw away old overlays | 1000 | (idlwave-shell-update-bp-overlays) ; Throw away old overlays |
| 998 | (setq idlwave-shell-sources-alist nil) | 1001 | (setq idlwave-shell-sources-alist nil) |
| 999 | (setq idlwave-shell-default-directory default-directory) | 1002 | (setq idlwave-shell-default-directory default-directory) |
| 1000 | (setq idlwave-shell-hide-output nil) | 1003 | (setq idlwave-shell-hide-output nil) |
| 1001 | 1004 | ||
| 1002 | ;; NB: `make-local-hook' needed for older/alternative Emacs compatibility | ||
| 1003 | ;;(make-local-hook 'kill-buffer-hook) | ||
| 1004 | (add-hook 'kill-buffer-hook 'idlwave-shell-kill-shell-buffer-confirm | 1005 | (add-hook 'kill-buffer-hook 'idlwave-shell-kill-shell-buffer-confirm |
| 1005 | nil 'local) | 1006 | nil 'local) |
| 1006 | (add-hook 'kill-buffer-hook 'idlwave-shell-delete-temp-files nil 'local) | 1007 | (add-hook 'kill-buffer-hook 'idlwave-shell-delete-temp-files nil 'local) |
| @@ -1014,14 +1015,14 @@ IDL has currently stepped.") | |||
| 1014 | (while (setq entry (pop list)) | 1015 | (while (setq entry (pop list)) |
| 1015 | (set (make-local-variable (car entry)) (cdr entry))))) | 1016 | (set (make-local-variable (car entry)) (cdr entry))))) |
| 1016 | 1017 | ||
| 1017 | 1018 | ||
| 1018 | (unless (memq 'comint-carriage-motion | 1019 | (unless (memq 'comint-carriage-motion |
| 1019 | (default-value 'comint-output-filter-functions)) | 1020 | (default-value 'comint-output-filter-functions)) |
| 1020 | ;; Strip those pesky ctrl-m's. | 1021 | ;; Strip those pesky ctrl-m's. |
| 1021 | (add-hook 'comint-output-filter-functions | 1022 | (add-hook 'comint-output-filter-functions |
| 1022 | (lambda (string) | 1023 | (lambda (string) |
| 1023 | (when (string-match "\r" string) | 1024 | (when (string-match "\r" string) |
| 1024 | (let ((pmark (process-mark (get-buffer-process | 1025 | (let ((pmark (process-mark (get-buffer-process |
| 1025 | (current-buffer))))) | 1026 | (current-buffer))))) |
| 1026 | (save-excursion | 1027 | (save-excursion |
| 1027 | ;; bare CR -> delete preceding line | 1028 | ;; bare CR -> delete preceding line |
| @@ -1043,8 +1044,6 @@ IDL has currently stepped.") | |||
| 1043 | (set (make-local-variable 'comment-start) ";") | 1044 | (set (make-local-variable 'comment-start) ";") |
| 1044 | (setq abbrev-mode t) | 1045 | (setq abbrev-mode t) |
| 1045 | 1046 | ||
| 1046 | ;; NB: `make-local-hook' needed for older/alternative Emacs compatibility | ||
| 1047 | ;;(make-local-hook 'post-command-hook) | ||
| 1048 | (add-hook 'post-command-hook 'idlwave-command-hook nil t) | 1047 | (add-hook 'post-command-hook 'idlwave-command-hook nil t) |
| 1049 | 1048 | ||
| 1050 | ;; Read the command history? | 1049 | ;; Read the command history? |
| @@ -1063,9 +1062,8 @@ IDL has currently stepped.") | |||
| 1063 | (idlwave-shell-send-command idlwave-shell-initial-commands nil 'hide) | 1062 | (idlwave-shell-send-command idlwave-shell-initial-commands nil 'hide) |
| 1064 | ;; Turn off IDL's ^d interpreting, and define a system | 1063 | ;; Turn off IDL's ^d interpreting, and define a system |
| 1065 | ;; variable which knows the version of IDLWAVE | 1064 | ;; variable which knows the version of IDLWAVE |
| 1066 | (idlwave-shell-send-command | 1065 | (idlwave-shell-send-command |
| 1067 | (format "defsysv,'!idlwave_version','%s',1" | 1066 | (format "defsysv,'!idlwave_version','%s',1" idlwave-mode-version) |
| 1068 | idlwave-mode-version) | ||
| 1069 | nil 'hide) | 1067 | nil 'hide) |
| 1070 | ;; Get the paths if they weren't read in from file | 1068 | ;; Get the paths if they weren't read in from file |
| 1071 | (if (and (not idlwave-path-alist) | 1069 | (if (and (not idlwave-path-alist) |
| @@ -1085,7 +1083,7 @@ IDL has currently stepped.") | |||
| 1085 | (setq idlwave-system-directory sysdir) | 1083 | (setq idlwave-system-directory sysdir) |
| 1086 | (put 'idlwave-system-directory 'from-shell t)) | 1084 | (put 'idlwave-system-directory 'from-shell t)) |
| 1087 | ;; Preserve any existing flags | 1085 | ;; Preserve any existing flags |
| 1088 | (setq idlwave-path-alist | 1086 | (setq idlwave-path-alist |
| 1089 | (mapcar (lambda (x) | 1087 | (mapcar (lambda (x) |
| 1090 | (let ((old-entry (assoc x old-path-alist))) | 1088 | (let ((old-entry (assoc x old-path-alist))) |
| 1091 | (if old-entry | 1089 | (if old-entry |
| @@ -1093,7 +1091,7 @@ IDL has currently stepped.") | |||
| 1093 | (list x)))) | 1091 | (list x)))) |
| 1094 | dirs)) | 1092 | dirs)) |
| 1095 | (put 'idlwave-path-alist 'from-shell t) | 1093 | (put 'idlwave-path-alist 'from-shell t) |
| 1096 | (if idlwave-path-alist | 1094 | (if idlwave-path-alist |
| 1097 | (if (and idlwave-auto-write-paths | 1095 | (if (and idlwave-auto-write-paths |
| 1098 | (not idlwave-library-path) | 1096 | (not idlwave-library-path) |
| 1099 | (not no-write) ) | 1097 | (not no-write) ) |
| @@ -1129,8 +1127,8 @@ IDL has currently stepped.") | |||
| 1129 | (frame (selected-frame))) | 1127 | (frame (selected-frame))) |
| 1130 | (catch 'exit | 1128 | (catch 'exit |
| 1131 | (while flist | 1129 | (while flist |
| 1132 | (if (not (eq (car flist) | 1130 | (if (not (eq (car flist) |
| 1133 | idlwave-shell-idl-wframe)) | 1131 | idlwave-shell-idl-wframe)) |
| 1134 | (throw 'exit (car flist)) | 1132 | (throw 'exit (car flist)) |
| 1135 | (setq flist (cdr flist)))))) | 1133 | (setq flist (cdr flist)))))) |
| 1136 | (make-frame)) | 1134 | (make-frame)) |
| @@ -1148,9 +1146,9 @@ IDL has currently stepped.") | |||
| 1148 | ;; We do not have a source frame, so we use this one. | 1146 | ;; We do not have a source frame, so we use this one. |
| 1149 | (setq idlwave-shell-display-wframe (selected-frame))) | 1147 | (setq idlwave-shell-display-wframe (selected-frame))) |
| 1150 | ;; Return a new frame | 1148 | ;; Return a new frame |
| 1151 | (setq idlwave-shell-idl-wframe | 1149 | (setq idlwave-shell-idl-wframe |
| 1152 | (make-frame idlwave-shell-frame-parameters))))) | 1150 | (make-frame idlwave-shell-frame-parameters))))) |
| 1153 | 1151 | ||
| 1154 | ;;;###autoload | 1152 | ;;;###autoload |
| 1155 | (defun idlwave-shell (&optional arg quick) | 1153 | (defun idlwave-shell (&optional arg quick) |
| 1156 | "Run an inferior IDL, with I/O through buffer `(idlwave-shell-buffer)'. | 1154 | "Run an inferior IDL, with I/O through buffer `(idlwave-shell-buffer)'. |
| @@ -1177,14 +1175,14 @@ See also the variable `idlwave-shell-prompt-pattern'. | |||
| 1177 | (delete-other-windows)) | 1175 | (delete-other-windows)) |
| 1178 | (and idlwave-shell-use-dedicated-frame | 1176 | (and idlwave-shell-use-dedicated-frame |
| 1179 | (setq idlwave-shell-idl-wframe (selected-frame))) | 1177 | (setq idlwave-shell-idl-wframe (selected-frame))) |
| 1180 | (add-hook 'idlwave-shell-sentinel-hook | 1178 | (add-hook 'idlwave-shell-sentinel-hook |
| 1181 | 'save-buffers-kill-emacs t)) | 1179 | 'save-buffers-kill-emacs t)) |
| 1182 | 1180 | ||
| 1183 | ;; A non-nil arg means, we want a dedicated frame. This will last | 1181 | ;; A non-nil arg means, we want a dedicated frame. This will last |
| 1184 | ;; for the current editing session. | 1182 | ;; for the current editing session. |
| 1185 | (if arg (setq idlwave-shell-use-dedicated-frame t)) | 1183 | (if arg (setq idlwave-shell-use-dedicated-frame t)) |
| 1186 | (if (equal arg '(16)) (setq idlwave-shell-use-dedicated-frame nil)) | 1184 | (if (equal arg '(16)) (setq idlwave-shell-use-dedicated-frame nil)) |
| 1187 | 1185 | ||
| 1188 | ;; Check if the process still exists. If not, create it. | 1186 | ;; Check if the process still exists. If not, create it. |
| 1189 | (unless (comint-check-proc (idlwave-shell-buffer)) | 1187 | (unless (comint-check-proc (idlwave-shell-buffer)) |
| 1190 | (let* ((prg (or idlwave-shell-explicit-file-name "idl")) | 1188 | (let* ((prg (or idlwave-shell-explicit-file-name "idl")) |
| @@ -1211,9 +1209,9 @@ See also the variable `idlwave-shell-prompt-pattern'. | |||
| 1211 | (if (eq (selected-frame) (window-frame window)) | 1209 | (if (eq (selected-frame) (window-frame window)) |
| 1212 | (select-window window)))) | 1210 | (select-window window)))) |
| 1213 | ;; Save the paths at the end | 1211 | ;; Save the paths at the end |
| 1214 | (add-hook 'idlwave-shell-sentinel-hook | 1212 | (add-hook 'idlwave-shell-sentinel-hook |
| 1215 | (lambda () | 1213 | (lambda () |
| 1216 | (if (and | 1214 | (if (and |
| 1217 | idlwave-auto-write-paths | 1215 | idlwave-auto-write-paths |
| 1218 | idlwave-path-alist | 1216 | idlwave-path-alist |
| 1219 | (not idlwave-library-path) | 1217 | (not idlwave-library-path) |
| @@ -1244,7 +1242,7 @@ Return either nil or 'hide." | |||
| 1244 | (setq idlwave-shell-show-commands (list type)))) | 1242 | (setq idlwave-shell-show-commands (list type)))) |
| 1245 | 1243 | ||
| 1246 | 1244 | ||
| 1247 | (defun idlwave-shell-send-command (&optional cmd pcmd hide preempt | 1245 | (defun idlwave-shell-send-command (&optional cmd pcmd hide preempt |
| 1248 | show-if-error) | 1246 | show-if-error) |
| 1249 | "Send a command to IDL process. | 1247 | "Send a command to IDL process. |
| 1250 | 1248 | ||
| @@ -1265,18 +1263,18 @@ If optional fourth argument PREEMPT is non-nil CMD is put at front of | |||
| 1265 | `idlwave-shell-pending-commands'. If PREEMPT is 'wait, wait for all | 1263 | `idlwave-shell-pending-commands'. If PREEMPT is 'wait, wait for all |
| 1266 | output to complete and the next prompt to arrive before returning | 1264 | output to complete and the next prompt to arrive before returning |
| 1267 | \(useful if you need an answer now\). IDL is considered ready if the | 1265 | \(useful if you need an answer now\). IDL is considered ready if the |
| 1268 | prompt is present and if `idlwave-shell-ready' is non-nil. | 1266 | prompt is present and if `idlwave-shell-ready' is non-nil. |
| 1269 | 1267 | ||
| 1270 | If SHOW-IF-ERROR is non-nil, show the output it it contains an error | 1268 | If SHOW-IF-ERROR is non-nil, show the output it it contains an error |
| 1271 | message, independent of what HIDE is set to." | 1269 | message, independent of what HIDE is set to." |
| 1272 | 1270 | ||
| 1273 | ; (setq hide nil) ; FIXME: turn this on for debugging only | 1271 | ; (setq hide nil) ; FIXME: turn this on for debugging only |
| 1274 | ; (if (null cmd) | 1272 | ; (if (null cmd) |
| 1275 | ; (progn | 1273 | ; (progn |
| 1276 | ; (message "SENDING Pending commands: %s" | 1274 | ; (message "SENDING Pending commands: %s" |
| 1277 | ; (prin1-to-string idlwave-shell-pending-commands))) | 1275 | ; (prin1-to-string idlwave-shell-pending-commands))) |
| 1278 | ; (message "SENDING %s|||%s" cmd pcmd)) | 1276 | ; (message "SENDING %s|||%s" cmd pcmd)) |
| 1279 | (if (and (symbolp idlwave-shell-show-commands) | 1277 | (if (and (symbolp idlwave-shell-show-commands) |
| 1280 | (eq idlwave-shell-show-commands 'everything)) | 1278 | (eq idlwave-shell-show-commands 'everything)) |
| 1281 | (setq hide nil)) | 1279 | (setq hide nil)) |
| 1282 | (let ((save-buffer (current-buffer)) | 1280 | (let ((save-buffer (current-buffer)) |
| @@ -1304,7 +1302,7 @@ message, independent of what HIDE is set to." | |||
| 1304 | (append (list (list cmd pcmd hide show-if-error)) | 1302 | (append (list (list cmd pcmd hide show-if-error)) |
| 1305 | idlwave-shell-pending-commands) | 1303 | idlwave-shell-pending-commands) |
| 1306 | ;; Put at end. | 1304 | ;; Put at end. |
| 1307 | (append idlwave-shell-pending-commands | 1305 | (append idlwave-shell-pending-commands |
| 1308 | (list (list cmd pcmd hide show-if-error)))))) | 1306 | (list (list cmd pcmd hide show-if-error)))))) |
| 1309 | ;; Check if IDL ready | 1307 | ;; Check if IDL ready |
| 1310 | (let ((save-point (point-marker))) | 1308 | (let ((save-point (point-marker))) |
| @@ -1339,9 +1337,11 @@ message, independent of what HIDE is set to." | |||
| 1339 | (set-marker comint-last-input-end (point)) | 1337 | (set-marker comint-last-input-end (point)) |
| 1340 | (comint-simple-send proc cmd) | 1338 | (comint-simple-send proc cmd) |
| 1341 | (setq idlwave-shell-ready nil) | 1339 | (setq idlwave-shell-ready nil) |
| 1342 | (when (equal preempt 'wait) ; Get all the output at once | 1340 | (if (equal preempt 'wait) ; Get all the output at once |
| 1343 | (setq idlwave-shell-wait-for-output t) | 1341 | (while (not idlwave-shell-ready) |
| 1344 | (accept-process-output proc)))) | 1342 | (when (not (accept-process-output proc 6)) ; long wait |
| 1343 | (setq idlwave-shell-pending-commands nil) | ||
| 1344 | (error "Process timed out")))))) | ||
| 1345 | (goto-char save-point)) | 1345 | (goto-char save-point)) |
| 1346 | (set-buffer save-buffer)))) | 1346 | (set-buffer save-buffer)))) |
| 1347 | 1347 | ||
| @@ -1353,7 +1353,7 @@ message, independent of what HIDE is set to." | |||
| 1353 | (if (or (not (setq buf (get-buffer (idlwave-shell-buffer)))) | 1353 | (if (or (not (setq buf (get-buffer (idlwave-shell-buffer)))) |
| 1354 | (not (setq proc (get-buffer-process buf)))) | 1354 | (not (setq proc (get-buffer-process buf)))) |
| 1355 | (funcall errf "Shell is not running")) | 1355 | (funcall errf "Shell is not running")) |
| 1356 | (if (equal c ?\C-g) | 1356 | (if (equal c ?\C-g) |
| 1357 | (funcall errf "Abort") | 1357 | (funcall errf "Abort") |
| 1358 | (comint-send-string proc (char-to-string c))))) | 1358 | (comint-send-string proc (char-to-string c))))) |
| 1359 | 1359 | ||
| @@ -1394,7 +1394,7 @@ when the IDL prompt gets displayed again after the current IDL command." | |||
| 1394 | (if idlwave-shell-ready | 1394 | (if idlwave-shell-ready |
| 1395 | (funcall errf "No IDL program seems to be waiting for input")) | 1395 | (funcall errf "No IDL program seems to be waiting for input")) |
| 1396 | 1396 | ||
| 1397 | ;; OK, start the loop | 1397 | ;; OK, start the loop |
| 1398 | (message "Character mode on: Sending single chars (`C-g' to exit)") | 1398 | (message "Character mode on: Sending single chars (`C-g' to exit)") |
| 1399 | (message | 1399 | (message |
| 1400 | (catch 'exit | 1400 | (catch 'exit |
| @@ -1474,133 +1474,123 @@ error messages, etc." | |||
| 1474 | (setq output (substring output (string-match "\n" output))) | 1474 | (setq output (substring output (string-match "\n" output))) |
| 1475 | (while (string-match "\\(\n\\|\\`\\)%.*\\(\n .*\\)*" output) | 1475 | (while (string-match "\\(\n\\|\\`\\)%.*\\(\n .*\\)*" output) |
| 1476 | (setq output (replace-match "" nil t output))) | 1476 | (setq output (replace-match "" nil t output))) |
| 1477 | (unless | 1477 | (unless |
| 1478 | (string-match idlwave-shell-only-prompt-pattern output) | 1478 | (string-match idlwave-shell-only-prompt-pattern output) |
| 1479 | output)) | 1479 | output)) |
| 1480 | 1480 | ||
| 1481 | (defvar idlwave-shell-hidden-output-buffer " *idlwave-shell-hidden-output*" | 1481 | (defvar idlwave-shell-hidden-output-buffer " *idlwave-shell-hidden-output*" |
| 1482 | "Buffer containing hidden output from IDL commands.") | 1482 | "Buffer containing hidden output from IDL commands.") |
| 1483 | (defvar idlwave-shell-current-state nil) | 1483 | (defvar idlwave-shell-current-state nil) |
| 1484 | 1484 | ||
| 1485 | (defun idlwave-shell-filter (proc string) | 1485 | (defun idlwave-shell-filter (proc string) |
| 1486 | "Watch for IDL prompt and filter incoming text. | 1486 | "Watch for IDL prompt and filter incoming text. |
| 1487 | When the IDL prompt is received executes `idlwave-shell-post-command-hook' | 1487 | When the IDL prompt is received executes `idlwave-shell-post-command-hook' |
| 1488 | and then calls `idlwave-shell-send-command' for any pending commands." | 1488 | and then calls `idlwave-shell-send-command' for any pending commands." |
| 1489 | ;; We no longer do the cleanup here - this is done by the process sentinel | 1489 | ;; We no longer do the cleanup here - this is done by the process sentinel |
| 1490 | (when (eq (process-status idlwave-shell-process-name) 'run) | 1490 | (if (eq (process-status idlwave-shell-process-name) 'run) |
| 1491 | ;; OK, process is still running, so we can use it. | 1491 | ;; OK, process is still running, so we can use it. |
| 1492 | (let ((data (match-data)) p full-output) | 1492 | (let ((data (match-data)) p full-output) |
| 1493 | (unwind-protect | 1493 | (unwind-protect |
| 1494 | (progn | 1494 | (progn |
| 1495 | ;; Ring the bell if necessary | 1495 | ;; Ring the bell if necessary |
| 1496 | (while (setq p (string-match "\C-G" string)) | 1496 | (while (setq p (string-match "\C-G" string)) |
| 1497 | (ding) | 1497 | (ding) |
| 1498 | (aset string p ?\C-j )) | 1498 | (aset string p ?\C-j )) |
| 1499 | (if idlwave-shell-hide-output | 1499 | (if idlwave-shell-hide-output |
| 1500 | (save-excursion | 1500 | (save-excursion |
| 1501 | (while (setq p (string-match "\C-M" string)) | 1501 | (while (setq p (string-match "\C-M" string)) |
| 1502 | (aset string p ?\ )) | 1502 | (aset string p ?\ )) |
| 1503 | (set-buffer | 1503 | (set-buffer |
| 1504 | (get-buffer-create idlwave-shell-hidden-output-buffer)) | 1504 | (get-buffer-create idlwave-shell-hidden-output-buffer)) |
| 1505 | (goto-char (point-max)) | 1505 | (goto-char (point-max)) |
| 1506 | (insert string)) | 1506 | (insert string)) |
| 1507 | (idlwave-shell-comint-filter proc string)) | 1507 | (idlwave-shell-comint-filter proc string)) |
| 1508 | ;; Watch for magic - need to accumulate the current line | 1508 | ;; Watch for magic - need to accumulate the current line |
| 1509 | ;; since it may not be sent all at once. | 1509 | ;; since it may not be sent all at once. |
| 1510 | (if (string-match "\n" string) | 1510 | (if (string-match "\n" string) |
| 1511 | (progn | 1511 | (progn |
| 1512 | (if idlwave-shell-use-input-mode-magic | 1512 | (if idlwave-shell-use-input-mode-magic |
| 1513 | (idlwave-shell-input-mode-magic | 1513 | (idlwave-shell-input-mode-magic |
| 1514 | (concat idlwave-shell-accumulation string))) | 1514 | (concat idlwave-shell-accumulation string))) |
| 1515 | (setq idlwave-shell-accumulation | 1515 | (setq idlwave-shell-accumulation |
| 1516 | (substring string | 1516 | (substring string |
| 1517 | (progn (string-match "\\(.*[\n\r]+\\)*" | 1517 | (progn (string-match "\\(.*[\n\r]+\\)*" |
| 1518 | string) | 1518 | string) |
| 1519 | (match-end 0))))) | 1519 | (match-end 0))))) |
| 1520 | (setq idlwave-shell-accumulation | 1520 | (setq idlwave-shell-accumulation |
| 1521 | (concat idlwave-shell-accumulation string))) | 1521 | (concat idlwave-shell-accumulation string))) |
| 1522 | 1522 | ||
| 1523 | 1523 | ||
| 1524 | ;;; Test/Debug code | 1524 | ;;; Test/Debug code |
| 1525 | ; (save-excursion (set-buffer | 1525 | ; (save-excursion (set-buffer |
| 1526 | ; (get-buffer-create "*idlwave-shell-output*")) | 1526 | ; (get-buffer-create "*idlwave-shell-output*")) |
| 1527 | ; (goto-char (point-max)) | 1527 | ; (goto-char (point-max)) |
| 1528 | ; (insert "\nSTRING===>\n" string "\n<====\n")) | 1528 | ; (insert "\nSTRING===>\n" string "\n<====\n")) |
| 1529 | 1529 | ||
| 1530 | ;; Check for prompt in current accumulating output | 1530 | ;; Check for prompt in current accumulating output |
| 1531 | (if (setq idlwave-shell-ready | 1531 | (when (setq idlwave-shell-ready |
| 1532 | (string-match idlwave-shell-prompt-pattern | 1532 | (string-match idlwave-shell-prompt-pattern |
| 1533 | idlwave-shell-accumulation)) | 1533 | idlwave-shell-accumulation)) |
| 1534 | (progn | 1534 | ;; Gather the command output |
| 1535 | ;; Gather the command output | 1535 | (if idlwave-shell-hide-output |
| 1536 | (save-excursion | ||
| 1537 | (set-buffer idlwave-shell-hidden-output-buffer) | ||
| 1538 | (setq full-output (buffer-string)) | ||
| 1539 | (goto-char (point-max)) | ||
| 1540 | (re-search-backward idlwave-shell-prompt-pattern nil t) | ||
| 1541 | (goto-char (match-end 0)) | ||
| 1542 | (setq idlwave-shell-command-output | ||
| 1543 | (buffer-substring (point-min) (point))) | ||
| 1544 | (delete-region (point-min) (point))) | ||
| 1545 | (setq idlwave-shell-command-output | ||
| 1546 | (with-current-buffer (process-buffer proc) | ||
| 1547 | (buffer-substring | ||
| 1548 | (save-excursion | ||
| 1549 | (goto-char (process-mark proc)) | ||
| 1550 | (forward-line 0) | ||
| 1551 | (point)) | ||
| 1552 | comint-last-input-end)))) | ||
| 1553 | |||
| 1554 | ;; Scan for state and do post commands - bracket | ||
| 1555 | ;; them with idlwave-shell-ready=nil since they may | ||
| 1556 | ;; call idlwave-shell-send-command themselves. | ||
| 1557 | (let ((idlwave-shell-ready nil)) | ||
| 1558 | (idlwave-shell-scan-for-state) | ||
| 1559 | ;; Show the output in the shell if it contains an error | ||
| 1536 | (if idlwave-shell-hide-output | 1560 | (if idlwave-shell-hide-output |
| 1537 | (save-excursion | 1561 | (if (and idlwave-shell-show-if-error |
| 1538 | (set-buffer idlwave-shell-hidden-output-buffer) | 1562 | (eq idlwave-shell-current-state 'error)) |
| 1539 | (setq full-output (buffer-string)) | 1563 | (idlwave-shell-comint-filter proc full-output) |
| 1540 | (goto-char (point-max)) | 1564 | ;; If it's only *mostly* hidden, filter % lines, |
| 1541 | (re-search-backward idlwave-shell-prompt-pattern nil t) | 1565 | ;; and show anything that remains |
| 1542 | (goto-char (match-end 0)) | 1566 | (if (eq idlwave-shell-hide-output 'mostly) |
| 1543 | (setq idlwave-shell-command-output | 1567 | (let ((filtered |
| 1544 | (buffer-substring (point-min) (point))) | 1568 | (idlwave-shell-filter-hidden-output |
| 1545 | (delete-region (point-min) (point))) | 1569 | full-output))) |
| 1546 | (setq idlwave-shell-command-output | 1570 | (if filtered |
| 1547 | (with-current-buffer (process-buffer proc) | 1571 | (idlwave-shell-comint-filter |
| 1548 | (buffer-substring | 1572 | proc filtered)))))) |
| 1549 | (save-excursion | 1573 | |
| 1550 | (goto-char (process-mark proc)) | 1574 | ;; Call the post-command hook |
| 1551 | (beginning-of-line nil) | 1575 | (if (listp idlwave-shell-post-command-hook) |
| 1552 | (point)) | 1576 | (progn |
| 1553 | comint-last-input-end)))) | 1577 | ;(message "Calling list") |
| 1554 | 1578 | ;(prin1 idlwave-shell-post-command-hook) | |
| 1555 | ;; Scan for state and do post commands - bracket | 1579 | (eval idlwave-shell-post-command-hook)) |
| 1556 | ;; them with idlwave-shell-ready=nil since they may | 1580 | ;(message "Calling command function") |
| 1557 | ;; call idlwave-shell-send-command themselves. | 1581 | (funcall idlwave-shell-post-command-hook)) |
| 1558 | (let ((idlwave-shell-ready nil)) | 1582 | |
| 1559 | (idlwave-shell-scan-for-state) | 1583 | ;; Reset to default state for next command. |
| 1560 | ;; Show the output in the shell if it contains an error | 1584 | ;; Also we do not want to find this prompt again. |
| 1561 | (if idlwave-shell-hide-output | 1585 | (setq idlwave-shell-accumulation nil |
| 1562 | (if (and idlwave-shell-show-if-error | 1586 | idlwave-shell-command-output nil |
| 1563 | (eq idlwave-shell-current-state 'error)) | 1587 | idlwave-shell-post-command-hook nil |
| 1564 | (idlwave-shell-comint-filter proc full-output) | 1588 | idlwave-shell-hide-output nil |
| 1565 | ;; If it's only *mostly* hidden, filter % lines, | 1589 | idlwave-shell-show-if-error nil)) |
| 1566 | ;; and show anything that remains | 1590 | ;; Done with post command. Do pending command if |
| 1567 | (if (eq idlwave-shell-hide-output 'mostly) | 1591 | ;; any. |
| 1568 | (let ((filtered | 1592 | (idlwave-shell-send-command))) |
| 1569 | (idlwave-shell-filter-hidden-output | 1593 | (store-match-data data))))) |
| 1570 | full-output))) | ||
| 1571 | (if filtered | ||
| 1572 | (idlwave-shell-comint-filter | ||
| 1573 | proc filtered)))))) | ||
| 1574 | |||
| 1575 | ;; Call the post-command hook | ||
| 1576 | (if (listp idlwave-shell-post-command-hook) | ||
| 1577 | (progn | ||
| 1578 | ;(message "Calling list") | ||
| 1579 | ;(prin1 idlwave-shell-post-command-hook) | ||
| 1580 | (eval idlwave-shell-post-command-hook)) | ||
| 1581 | ;(message "Calling command function") | ||
| 1582 | (funcall idlwave-shell-post-command-hook)) | ||
| 1583 | |||
| 1584 | ;; Reset to default state for next command. | ||
| 1585 | ;; Also we do not want to find this prompt again. | ||
| 1586 | (setq idlwave-shell-accumulation nil | ||
| 1587 | idlwave-shell-command-output nil | ||
| 1588 | idlwave-shell-post-command-hook nil | ||
| 1589 | idlwave-shell-hide-output nil | ||
| 1590 | idlwave-shell-show-if-error nil | ||
| 1591 | idlwave-shell-wait-for-output nil)) | ||
| 1592 | ;; Done with post command. Do pending command if | ||
| 1593 | ;; any. | ||
| 1594 | (idlwave-shell-send-command)) | ||
| 1595 | ;; We didn't get the prompt yet... maybe accept more output | ||
| 1596 | (when idlwave-shell-wait-for-output | ||
| 1597 | ;;; Test/Debug code | ||
| 1598 | ; (save-excursion (set-buffer | ||
| 1599 | ; (get-buffer-create "*idlwave-shell-output*")) | ||
| 1600 | ; (goto-char (point-max)) | ||
| 1601 | ; (insert "\n<=== WAITING ON OUTPUT ==>\n")) | ||
| 1602 | (accept-process-output proc 1)))) | ||
| 1603 | (store-match-data data))))) | ||
| 1604 | 1594 | ||
| 1605 | (defun idlwave-shell-sentinel (process event) | 1595 | (defun idlwave-shell-sentinel (process event) |
| 1606 | "The sentinel function for the IDLWAVE shell process." | 1596 | "The sentinel function for the IDLWAVE shell process." |
| @@ -1616,7 +1606,7 @@ and then calls `idlwave-shell-send-command' for any pending commands." | |||
| 1616 | (condition-case nil | 1606 | (condition-case nil |
| 1617 | (comint-write-input-ring) | 1607 | (comint-write-input-ring) |
| 1618 | (error nil))))) | 1608 | (error nil))))) |
| 1619 | 1609 | ||
| 1620 | (when (and (> (length (frame-list)) 1) | 1610 | (when (and (> (length (frame-list)) 1) |
| 1621 | (frame-live-p idlwave-shell-idl-wframe)) | 1611 | (frame-live-p idlwave-shell-idl-wframe)) |
| 1622 | (delete-frame idlwave-shell-idl-wframe) | 1612 | (delete-frame idlwave-shell-idl-wframe) |
| @@ -1640,8 +1630,8 @@ and then calls `idlwave-shell-send-command' for any pending commands." | |||
| 1640 | ;; in module and file names. I am not sure if it will be necessary to | 1630 | ;; in module and file names. I am not sure if it will be necessary to |
| 1641 | ;; change this. Currently it seems to work the way it is. | 1631 | ;; change this. Currently it seems to work the way it is. |
| 1642 | (defvar idlwave-shell-syntax-error | 1632 | (defvar idlwave-shell-syntax-error |
| 1643 | "^% Syntax error.\\s-*\n\\s-*At:\\s-*\\(.*\\),\\s-*Line\\s-*\\(.*\\)" | 1633 | "^% Syntax error.\\s-*\n\\s-*At:\\s-*\\(.*\\),\\s-*Line\\s-*\\(.*\\)" |
| 1644 | "A regular expression to match an IDL syntax error. | 1634 | "A regular expression to match an IDL syntax error. |
| 1645 | The 1st pair matches the file name, the second pair matches the line | 1635 | The 1st pair matches the file name, the second pair matches the line |
| 1646 | number.") | 1636 | number.") |
| 1647 | 1637 | ||
| @@ -1649,16 +1639,16 @@ number.") | |||
| 1649 | "^% .*\n\\s-*At:\\s-*\\(.*\\),\\s-*Line\\s-*\\(.*\\)" | 1639 | "^% .*\n\\s-*At:\\s-*\\(.*\\),\\s-*Line\\s-*\\(.*\\)" |
| 1650 | "A regular expression to match any IDL error.") | 1640 | "A regular expression to match any IDL error.") |
| 1651 | 1641 | ||
| 1652 | (defvar idlwave-shell-halting-error | 1642 | (defvar idlwave-shell-halting-error |
| 1653 | "^% .*\n\\([^%].*\n\\)*% Execution halted at:\\(\\s-*\\S-+\\s-*[0-9]+\\s-*.*\\)\n" | 1643 | "^% .*\n\\([^%].*\n\\)*% Execution halted at:\\(\\s-*\\S-+\\s-*[0-9]+\\s-*.*\\)\n" |
| 1654 | "A regular expression to match errors which halt execution.") | 1644 | "A regular expression to match errors which halt execution.") |
| 1655 | 1645 | ||
| 1656 | (defvar idlwave-shell-cant-continue-error | 1646 | (defvar idlwave-shell-cant-continue-error |
| 1657 | "^% Can't continue from this point.\n" | 1647 | "^% Can't continue from this point.\n" |
| 1658 | "A regular expression to match errors stepping errors.") | 1648 | "A regular expression to match errors stepping errors.") |
| 1659 | 1649 | ||
| 1660 | (defvar idlwave-shell-file-line-message | 1650 | (defvar idlwave-shell-file-line-message |
| 1661 | (concat | 1651 | (concat |
| 1662 | "\\(" ; program name group (1) | 1652 | "\\(" ; program name group (1) |
| 1663 | "\\$MAIN\\$\\|" ; main level routine | 1653 | "\\$MAIN\\$\\|" ; main level routine |
| 1664 | "\\<[a-zA-Z][a-zA-Z0-9_$:]*" ; start with a letter followed by [..] | 1654 | "\\<[a-zA-Z][a-zA-Z0-9_$:]*" ; start with a letter followed by [..] |
| @@ -1676,7 +1666,7 @@ number.") | |||
| 1676 | "\\)" ; end line number group (5) | 1666 | "\\)" ; end line number group (5) |
| 1677 | ) | 1667 | ) |
| 1678 | "*A regular expression to parse out the file name and line number. | 1668 | "*A regular expression to parse out the file name and line number. |
| 1679 | The 1st group should match the subroutine name. | 1669 | The 1st group should match the subroutine name. |
| 1680 | The 3rd group is the line number. | 1670 | The 3rd group is the line number. |
| 1681 | The 5th group is the file name. | 1671 | The 5th group is the file name. |
| 1682 | All parts may contain linebreaks surrounded by spaces. This is important | 1672 | All parts may contain linebreaks surrounded by spaces. This is important |
| @@ -1695,9 +1685,9 @@ the above." | |||
| 1695 | (cond | 1685 | (cond |
| 1696 | ;; Make sure we have output | 1686 | ;; Make sure we have output |
| 1697 | ((not idlwave-shell-command-output)) | 1687 | ((not idlwave-shell-command-output)) |
| 1698 | 1688 | ||
| 1699 | ;; First Priority: Syntax and other errors | 1689 | ;; First Priority: Syntax and other errors |
| 1700 | ((or | 1690 | ((or |
| 1701 | (string-match idlwave-shell-syntax-error | 1691 | (string-match idlwave-shell-syntax-error |
| 1702 | idlwave-shell-command-output) | 1692 | idlwave-shell-command-output) |
| 1703 | (string-match idlwave-shell-other-error | 1693 | (string-match idlwave-shell-other-error |
| @@ -1711,19 +1701,19 @@ the above." | |||
| 1711 | (setq idlwave-shell-error-last (point))) | 1701 | (setq idlwave-shell-error-last (point))) |
| 1712 | (setq idlwave-shell-current-state 'error) | 1702 | (setq idlwave-shell-current-state 'error) |
| 1713 | (idlwave-shell-goto-next-error)) | 1703 | (idlwave-shell-goto-next-error)) |
| 1714 | 1704 | ||
| 1715 | ;; Second Priority: Halting errors | 1705 | ;; Second Priority: Halting errors |
| 1716 | ((string-match idlwave-shell-halting-error | 1706 | ((string-match idlwave-shell-halting-error |
| 1717 | idlwave-shell-command-output) | 1707 | idlwave-shell-command-output) |
| 1718 | ;; Grab the file and line state info. | 1708 | ;; Grab the file and line state info. |
| 1719 | (setq idlwave-shell-calling-stack-index 0) | 1709 | (setq idlwave-shell-calling-stack-index 0) |
| 1720 | (setq idlwave-shell-halt-frame | 1710 | (setq idlwave-shell-halt-frame |
| 1721 | (idlwave-shell-parse-line | 1711 | (idlwave-shell-parse-line |
| 1722 | (substring idlwave-shell-command-output | 1712 | (substring idlwave-shell-command-output |
| 1723 | (match-beginning 2))) | 1713 | (match-beginning 2))) |
| 1724 | idlwave-shell-current-state 'error) | 1714 | idlwave-shell-current-state 'error) |
| 1725 | (idlwave-shell-display-line (idlwave-shell-pc-frame))) | 1715 | (idlwave-shell-display-line (idlwave-shell-pc-frame))) |
| 1726 | 1716 | ||
| 1727 | ;; Third Priority: Various types of innocuous HALT and | 1717 | ;; Third Priority: Various types of innocuous HALT and |
| 1728 | ;; TRACEBACK messages. | 1718 | ;; TRACEBACK messages. |
| 1729 | ((or (setq trace (string-match idlwave-shell-trace-message-re | 1719 | ((or (setq trace (string-match idlwave-shell-trace-message-re |
| @@ -1733,25 +1723,25 @@ the above." | |||
| 1733 | ;; Grab the file and line state info. | 1723 | ;; Grab the file and line state info. |
| 1734 | (setq idlwave-shell-calling-stack-index 0) | 1724 | (setq idlwave-shell-calling-stack-index 0) |
| 1735 | (setq idlwave-shell-halt-frame | 1725 | (setq idlwave-shell-halt-frame |
| 1736 | (idlwave-shell-parse-line | 1726 | (idlwave-shell-parse-line |
| 1737 | (substring idlwave-shell-command-output (match-end 0)))) | 1727 | (substring idlwave-shell-command-output (match-end 0)))) |
| 1738 | (setq idlwave-shell-current-state 'halt) | 1728 | (setq idlwave-shell-current-state 'halt) |
| 1739 | ;; Don't debug trace messages | 1729 | ;; Don't debug trace messages |
| 1740 | (idlwave-shell-display-line (idlwave-shell-pc-frame) nil | 1730 | (idlwave-shell-display-line (idlwave-shell-pc-frame) nil |
| 1741 | (if trace 'no-debug))) | 1731 | (if trace 'no-debug))) |
| 1742 | 1732 | ||
| 1743 | ;; Fourth Priority: Breakpoints | 1733 | ;; Fourth Priority: Breakpoints |
| 1744 | ((string-match idlwave-shell-break-message | 1734 | ((string-match idlwave-shell-break-message |
| 1745 | idlwave-shell-command-output) | 1735 | idlwave-shell-command-output) |
| 1746 | (setq idlwave-shell-calling-stack-index 0) | 1736 | (setq idlwave-shell-calling-stack-index 0) |
| 1747 | (setq idlwave-shell-halt-frame | 1737 | (setq idlwave-shell-halt-frame |
| 1748 | (idlwave-shell-parse-line | 1738 | (idlwave-shell-parse-line |
| 1749 | (substring idlwave-shell-command-output (match-end 0)))) | 1739 | (substring idlwave-shell-command-output (match-end 0)))) |
| 1750 | ;; We used to count hits on breakpoints | 1740 | ;; We used to count hits on breakpoints |
| 1751 | ;; this is no longer supported since IDL breakpoints | 1741 | ;; this is no longer supported since IDL breakpoints |
| 1752 | ;; have learned counting. | 1742 | ;; have learned counting. |
| 1753 | ;; Do breakpoint command processing | 1743 | ;; Do breakpoint command processing |
| 1754 | (let ((bp (assoc | 1744 | (let ((bp (assoc |
| 1755 | (list | 1745 | (list |
| 1756 | (nth 0 idlwave-shell-halt-frame) | 1746 | (nth 0 idlwave-shell-halt-frame) |
| 1757 | (nth 1 idlwave-shell-halt-frame)) | 1747 | (nth 1 idlwave-shell-halt-frame)) |
| @@ -1764,9 +1754,9 @@ the above." | |||
| 1764 | ;; A breakpoint that we did not know about - perhaps it was | 1754 | ;; A breakpoint that we did not know about - perhaps it was |
| 1765 | ;; set by the user... Let's update our list. | 1755 | ;; set by the user... Let's update our list. |
| 1766 | (idlwave-shell-bp-query))) | 1756 | (idlwave-shell-bp-query))) |
| 1767 | (setq idlwave-shell-current-state 'breakpoint) | 1757 | (setq idlwave-shell-current-state 'breakpoint) |
| 1768 | (idlwave-shell-display-line (idlwave-shell-pc-frame))) | 1758 | (idlwave-shell-display-line (idlwave-shell-pc-frame))) |
| 1769 | 1759 | ||
| 1770 | ;; Last Priority: Can't Step errors | 1760 | ;; Last Priority: Can't Step errors |
| 1771 | ((string-match idlwave-shell-cant-continue-error | 1761 | ((string-match idlwave-shell-cant-continue-error |
| 1772 | idlwave-shell-command-output) | 1762 | idlwave-shell-command-output) |
| @@ -1775,13 +1765,14 @@ the above." | |||
| 1775 | ;; Otherwise, no particular state | 1765 | ;; Otherwise, no particular state |
| 1776 | (t (setq idlwave-shell-current-state nil))))) | 1766 | (t (setq idlwave-shell-current-state nil))))) |
| 1777 | 1767 | ||
| 1768 | |||
| 1778 | (defun idlwave-shell-parse-line (string &optional skip-main) | 1769 | (defun idlwave-shell-parse-line (string &optional skip-main) |
| 1779 | "Parse IDL message for the subroutine, file name and line number. | 1770 | "Parse IDL message for the subroutine, file name and line number. |
| 1780 | We need to work hard here to remove the stupid line breaks inserted by | 1771 | We need to work hard here to remove the stupid line breaks inserted by |
| 1781 | IDL5. These line breaks can be right in the middle of procedure | 1772 | IDL5. These line breaks can be right in the middle of procedure |
| 1782 | or file names. | 1773 | or file names. |
| 1783 | It is very difficult to come up with a robust solution. This one seems | 1774 | It is very difficult to come up with a robust solution. This one seems |
| 1784 | to be pretty good though. | 1775 | to be pretty good though. |
| 1785 | 1776 | ||
| 1786 | Here is in what ways it improves over the previous solution: | 1777 | Here is in what ways it improves over the previous solution: |
| 1787 | 1778 | ||
| @@ -1806,7 +1797,7 @@ statements." | |||
| 1806 | (setq procedure (match-string 1 string) | 1797 | (setq procedure (match-string 1 string) |
| 1807 | number (match-string 3 string) | 1798 | number (match-string 3 string) |
| 1808 | file (match-string 5 string)) | 1799 | file (match-string 5 string)) |
| 1809 | 1800 | ||
| 1810 | ;; Repair the strings | 1801 | ;; Repair the strings |
| 1811 | (setq procedure (idlwave-shell-repair-string procedure)) | 1802 | (setq procedure (idlwave-shell-repair-string procedure)) |
| 1812 | (setq number (idlwave-shell-repair-string number)) | 1803 | (setq number (idlwave-shell-repair-string number)) |
| @@ -1832,7 +1823,7 @@ The last line of STRING may be garbage - we check which one makes a valid | |||
| 1832 | file name." | 1823 | file name." |
| 1833 | (let ((file1 "") (file2 "") (start 0)) | 1824 | (let ((file1 "") (file2 "") (start 0)) |
| 1834 | ;; We scan no further than to the next "^%" line | 1825 | ;; We scan no further than to the next "^%" line |
| 1835 | (if (string-match "^%" file) | 1826 | (if (string-match "^%" file) |
| 1836 | (setq file (substring file 0 (match-beginning 0)))) | 1827 | (setq file (substring file 0 (match-beginning 0)))) |
| 1837 | ;; Take out the line breaks | 1828 | ;; Take out the line breaks |
| 1838 | (while (string-match "[ \t]*\n[ \t]*" file start) | 1829 | (while (string-match "[ \t]*\n[ \t]*" file start) |
| @@ -1887,7 +1878,7 @@ file name." | |||
| 1887 | The size is given by `idlwave-shell-graphics-window-size'." | 1878 | The size is given by `idlwave-shell-graphics-window-size'." |
| 1888 | (interactive "P") | 1879 | (interactive "P") |
| 1889 | (let ((n (if n (prefix-numeric-value n) 0))) | 1880 | (let ((n (if n (prefix-numeric-value n) 0))) |
| 1890 | (idlwave-shell-send-command | 1881 | (idlwave-shell-send-command |
| 1891 | (apply 'format "window,%d,xs=%d,ys=%d" | 1882 | (apply 'format "window,%d,xs=%d,ys=%d" |
| 1892 | n idlwave-shell-graphics-window-size) | 1883 | n idlwave-shell-graphics-window-size) |
| 1893 | nil (idlwave-shell-hide-p 'misc) nil t))) | 1884 | nil (idlwave-shell-hide-p 'misc) nil t))) |
| @@ -1907,16 +1898,16 @@ directory." | |||
| 1907 | Also get rid of widget events in the queue." | 1898 | Also get rid of widget events in the queue." |
| 1908 | (interactive "P") | 1899 | (interactive "P") |
| 1909 | (save-selected-window | 1900 | (save-selected-window |
| 1910 | ;;if (widget_info(/MANAGED))[0] gt 0 then for i=0,n_elements(widget_info(/MANAGED))-1 do widget_control,(widget_info(/MANAGED))[i],/clear_events & | 1901 | ;;if (widget_info(/MANAGED))[0] gt 0 then for i=0,n_elements(widget_info(/MANAGED))-1 do widget_control,(widget_info(/MANAGED))[i],/clear_events & |
| 1911 | (idlwave-shell-send-command "retall" nil | 1902 | (idlwave-shell-send-command "retall" nil |
| 1912 | (if (idlwave-shell-hide-p 'misc) 'mostly) | 1903 | (if (idlwave-shell-hide-p 'misc) 'mostly) |
| 1913 | nil t) | 1904 | nil t) |
| 1914 | (idlwave-shell-display-line nil))) | 1905 | (idlwave-shell-display-line nil))) |
| 1915 | 1906 | ||
| 1916 | (defun idlwave-shell-closeall (&optional arg) | 1907 | (defun idlwave-shell-closeall (&optional arg) |
| 1917 | "Close all open files." | 1908 | "Close all open files." |
| 1918 | (interactive "P") | 1909 | (interactive "P") |
| 1919 | (idlwave-shell-send-command "close,/all" nil | 1910 | (idlwave-shell-send-command "close,/all" nil |
| 1920 | (idlwave-shell-hide-p 'misc) nil t)) | 1911 | (idlwave-shell-hide-p 'misc) nil t)) |
| 1921 | 1912 | ||
| 1922 | (defun idlwave-shell-quit (&optional arg) | 1913 | (defun idlwave-shell-quit (&optional arg) |
| @@ -1932,7 +1923,7 @@ With prefix ARG, exit without confirmation." | |||
| 1932 | 1923 | ||
| 1933 | (defun idlwave-shell-reset (&optional hidden) | 1924 | (defun idlwave-shell-reset (&optional hidden) |
| 1934 | "Reset IDL. Return to main level and destroy the leftover variables. | 1925 | "Reset IDL. Return to main level and destroy the leftover variables. |
| 1935 | This issues the following commands: | 1926 | This issues the following commands: |
| 1936 | RETALL | 1927 | RETALL |
| 1937 | WIDGET_CONTROL,/RESET | 1928 | WIDGET_CONTROL,/RESET |
| 1938 | CLOSE, /ALL | 1929 | CLOSE, /ALL |
| @@ -1982,14 +1973,14 @@ HEAP_GC, /VERBOSE" | |||
| 1982 | ;; Set dummy values and kill the text | 1973 | ;; Set dummy values and kill the text |
| 1983 | (setq sep "@" sep-re "@ *" text "") | 1974 | (setq sep "@" sep-re "@ *" text "") |
| 1984 | (if idlwave-idlwave_routine_info-compiled | 1975 | (if idlwave-idlwave_routine_info-compiled |
| 1985 | (message | 1976 | (message |
| 1986 | "Routine Info warning: No match for BEGIN line in \n>>>\n%s\n<<<\n" | 1977 | "Routine Info warning: No match for BEGIN line in \n>>>\n%s\n<<<\n" |
| 1987 | idlwave-shell-command-output))) | 1978 | idlwave-shell-command-output))) |
| 1988 | (if (string-match "^>>>END OF IDLWAVE ROUTINE INFO.*" text) | 1979 | (if (string-match "^>>>END OF IDLWAVE ROUTINE INFO.*" text) |
| 1989 | (setq text (substring text 0 (match-beginning 0))) | 1980 | (setq text (substring text 0 (match-beginning 0))) |
| 1990 | (if idlwave-idlwave_routine_info-compiled | 1981 | (if idlwave-idlwave_routine_info-compiled |
| 1991 | (message | 1982 | (message |
| 1992 | "Routine Info warning: No match for END line in \n>>>\n%s\n<<<\n" | 1983 | "Routine Info warning: No match for END line in \n>>>\n%s\n<<<\n" |
| 1993 | idlwave-shell-command-output))) | 1984 | idlwave-shell-command-output))) |
| 1994 | (if (string-match "\\S-" text) | 1985 | (if (string-match "\\S-" text) |
| 1995 | ;; Obviously, the pro worked. Make a note that we have it now. | 1986 | ;; Obviously, the pro worked. Make a note that we have it now. |
| @@ -2007,59 +1998,59 @@ HEAP_GC, /VERBOSE" | |||
| 2007 | key (nth 4 specs) | 1998 | key (nth 4 specs) |
| 2008 | keys (if (and (stringp key) | 1999 | keys (if (and (stringp key) |
| 2009 | (not (string-match "\\` *\\'" key))) | 2000 | (not (string-match "\\` *\\'" key))) |
| 2010 | (mapcar 'list | 2001 | (mapcar 'list |
| 2011 | (delete "" (idlwave-split-string key " +"))))) | 2002 | (delete "" (idlwave-split-string key " +"))))) |
| 2012 | (setq name (idlwave-sintern-routine-or-method name class t) | 2003 | (setq name (idlwave-sintern-routine-or-method name class t) |
| 2013 | class (idlwave-sintern-class class t) | 2004 | class (idlwave-sintern-class class t) |
| 2014 | file (if (equal file "") nil file) | 2005 | file (if (equal file "") nil file) |
| 2015 | keys (mapcar (lambda (x) | 2006 | keys (mapcar (lambda (x) |
| 2016 | (list (idlwave-sintern-keyword (car x) t))) keys)) | 2007 | (list (idlwave-sintern-keyword (car x) t))) keys)) |
| 2017 | 2008 | ||
| 2018 | ;; In the following ignore routines already defined in buffers, | 2009 | ;; In the following ignore routines already defined in buffers, |
| 2019 | ;; assuming that if the buffer stuff differs, it is a "new" | 2010 | ;; assuming that if the buffer stuff differs, it is a "new" |
| 2020 | ;; version, not yet compiled, and should take precedence. | 2011 | ;; version, not yet compiled, and should take precedence. |
| 2021 | ;; We could do the same for the library to avoid duplicates - | 2012 | ;; We could do the same for the library to avoid duplicates - |
| 2022 | ;; but I think frequently a user might have several versions of | 2013 | ;; but I think frequently a user might have several versions of |
| 2023 | ;; the same function in different programs, and in this case the | 2014 | ;; the same function in different programs, and in this case the |
| 2024 | ;; compiled one will be the best guess of all versions. | 2015 | ;; compiled one will be the best guess of all versions. |
| 2025 | ;; Therefore, we leave duplicates of library routines in. | 2016 | ;; Therefore, we leave duplicates of library routines in. |
| 2026 | (cond ((string= name "$MAIN$")) ; ignore this one | 2017 | (cond ((string= name "$MAIN$")) ; ignore this one |
| 2027 | ((and (string= type "PRO") | 2018 | ((and (string= type "PRO") |
| 2028 | ;; FIXME: is it OK to make the buffer routines dominate? | 2019 | ;; FIXME: is it OK to make the buffer routines dominate? |
| 2029 | (or t (null file) | 2020 | (or t (null file) |
| 2030 | (not (idlwave-rinfo-assq name 'pro class | 2021 | (not (idlwave-rinfo-assq name 'pro class |
| 2031 | idlwave-buffer-routines))) | 2022 | idlwave-buffer-routines))) |
| 2032 | ;; FIXME: is it OK to make the library routines dominate? | 2023 | ;; FIXME: is it OK to make the library routines dominate? |
| 2033 | ;;(not (idlwave-rinfo-assq name 'pro class | 2024 | ;;(not (idlwave-rinfo-assq name 'pro class |
| 2034 | ;; idlwave-library-routines)) | 2025 | ;; idlwave-library-routines)) |
| 2035 | ) | 2026 | ) |
| 2036 | (setq entry (list name 'pro class | 2027 | (setq entry (list name 'pro class |
| 2037 | (cons 'compiled | 2028 | (cons 'compiled |
| 2038 | (if file | 2029 | (if file |
| 2039 | (list | 2030 | (list |
| 2040 | (file-name-nondirectory file) | 2031 | (file-name-nondirectory file) |
| 2041 | (idlwave-sintern-dir | 2032 | (idlwave-sintern-dir |
| 2042 | (file-name-directory file))))) | 2033 | (file-name-directory file))))) |
| 2043 | cs (cons nil keys))) | 2034 | cs (cons nil keys))) |
| 2044 | (if file | 2035 | (if file |
| 2045 | (push entry idlwave-compiled-routines) | 2036 | (push entry idlwave-compiled-routines) |
| 2046 | (push entry idlwave-unresolved-routines))) | 2037 | (push entry idlwave-unresolved-routines))) |
| 2047 | 2038 | ||
| 2048 | ((and (string= type "FUN") | 2039 | ((and (string= type "FUN") |
| 2049 | ;; FIXME: is it OK to make the buffer routines dominate? | 2040 | ;; FIXME: is it OK to make the buffer routines dominate? |
| 2050 | (or t (not file) | 2041 | (or t (not file) |
| 2051 | (not (idlwave-rinfo-assq name 'fun class | 2042 | (not (idlwave-rinfo-assq name 'fun class |
| 2052 | idlwave-buffer-routines))) | 2043 | idlwave-buffer-routines))) |
| 2053 | ;; FIXME: is it OK to make the library routines dominate? | 2044 | ;; FIXME: is it OK to make the library routines dominate? |
| 2054 | ;; (not (idlwave-rinfo-assq name 'fun class | 2045 | ;; (not (idlwave-rinfo-assq name 'fun class |
| 2055 | ;; idlwave-library-routines)) | 2046 | ;; idlwave-library-routines)) |
| 2056 | ) | 2047 | ) |
| 2057 | (setq entry (list name 'fun class | 2048 | (setq entry (list name 'fun class |
| 2058 | (cons 'compiled | 2049 | (cons 'compiled |
| 2059 | (if file | 2050 | (if file |
| 2060 | (list | 2051 | (list |
| 2061 | (file-name-nondirectory file) | 2052 | (file-name-nondirectory file) |
| 2062 | (idlwave-sintern-dir | 2053 | (idlwave-sintern-dir |
| 2063 | (file-name-directory file))))) | 2054 | (file-name-directory file))))) |
| 2064 | cs (cons nil keys))) | 2055 | cs (cons nil keys))) |
| 2065 | (if file | 2056 | (if file |
| @@ -2076,7 +2067,7 @@ Change the default directory for the process buffer to concur." | |||
| 2076 | (set-buffer (idlwave-shell-buffer)) | 2067 | (set-buffer (idlwave-shell-buffer)) |
| 2077 | (if (string-match ",___cur[\n\r]\\(\\S-*\\) *[\n\r]" | 2068 | (if (string-match ",___cur[\n\r]\\(\\S-*\\) *[\n\r]" |
| 2078 | idlwave-shell-command-output) | 2069 | idlwave-shell-command-output) |
| 2079 | (let ((dir (substring idlwave-shell-command-output | 2070 | (let ((dir (substring idlwave-shell-command-output |
| 2080 | (match-beginning 1) (match-end 1)))) | 2071 | (match-beginning 1) (match-end 1)))) |
| 2081 | ; (message "Setting Emacs working dir to %s" dir) | 2072 | ; (message "Setting Emacs working dir to %s" dir) |
| 2082 | (setq idlwave-shell-default-directory dir) | 2073 | (setq idlwave-shell-default-directory dir) |
| @@ -2090,10 +2081,10 @@ Change the default directory for the process buffer to concur." | |||
| 2090 | expression) | 2081 | expression) |
| 2091 | (save-excursion | 2082 | (save-excursion |
| 2092 | (goto-char apos) | 2083 | (goto-char apos) |
| 2093 | (setq expression (buffer-substring | 2084 | (setq expression (buffer-substring |
| 2094 | (catch 'exit | 2085 | (catch 'exit |
| 2095 | (while t | 2086 | (while t |
| 2096 | (if (not (re-search-backward | 2087 | (if (not (re-search-backward |
| 2097 | "[^][.A-Za-z0-9_() ]" bos t)) | 2088 | "[^][.A-Za-z0-9_() ]" bos t)) |
| 2098 | (throw 'exit bos)) ;ran into bos | 2089 | (throw 'exit bos)) ;ran into bos |
| 2099 | (if (not (idlwave-is-pointer-dereference bol)) | 2090 | (if (not (idlwave-is-pointer-dereference bol)) |
| @@ -2102,7 +2093,8 @@ Change the default directory for the process buffer to concur." | |||
| 2102 | (when (not (string= expression "")) | 2093 | (when (not (string= expression "")) |
| 2103 | (setq idlwave-shell-get-object-class nil) | 2094 | (setq idlwave-shell-get-object-class nil) |
| 2104 | (idlwave-shell-send-command | 2095 | (idlwave-shell-send-command |
| 2105 | (concat "print,obj_class(" expression ")") | 2096 | (concat "if obj_valid(" expression ") then print,obj_class(" |
| 2097 | expression ")") | ||
| 2106 | 'idlwave-shell-parse-object-class | 2098 | 'idlwave-shell-parse-object-class |
| 2107 | 'hide 'wait) | 2099 | 'hide 'wait) |
| 2108 | ;; If we don't know anything about the class, update shell routines | 2100 | ;; If we don't know anything about the class, update shell routines |
| @@ -2114,14 +2106,11 @@ Change the default directory for the process buffer to concur." | |||
| 2114 | 2106 | ||
| 2115 | (defun idlwave-shell-parse-object-class () | 2107 | (defun idlwave-shell-parse-object-class () |
| 2116 | "Parse the output of the obj_class command." | 2108 | "Parse the output of the obj_class command." |
| 2117 | (let ((match "print,obj_class([^\n\r]+[\n\r ]")) | 2109 | (let ((match "obj_class([^\n\r]+[\n\r ]")) |
| 2118 | (if (and | 2110 | (if (string-match (concat match "\\([A-Za-z_0-9]+\\) *[\n\r]\\(" |
| 2119 | (not (string-match (concat match match "\\s-*^[\n\r]+" | 2111 | idlwave-shell-prompt-pattern "\\)") |
| 2120 | "% Syntax error") | 2112 | idlwave-shell-command-output) |
| 2121 | idlwave-shell-command-output)) | 2113 | (setq idlwave-shell-get-object-class |
| 2122 | (string-match (concat match "\\([A-Za-z_0-9]+\\)") | ||
| 2123 | idlwave-shell-command-output)) | ||
| 2124 | (setq idlwave-shell-get-object-class | ||
| 2125 | (match-string 1 idlwave-shell-command-output))))) | 2114 | (match-string 1 idlwave-shell-command-output))))) |
| 2126 | 2115 | ||
| 2127 | (defvar idlwave-sint-sysvars nil) | 2116 | (defvar idlwave-sint-sysvars nil) |
| @@ -2135,7 +2124,7 @@ keywords." | |||
| 2135 | (interactive "P") | 2124 | (interactive "P") |
| 2136 | (let (exec-cmd) | 2125 | (let (exec-cmd) |
| 2137 | (cond | 2126 | (cond |
| 2138 | ((and | 2127 | ((and |
| 2139 | (setq exec-cmd (idlwave-shell-executive-command)) | 2128 | (setq exec-cmd (idlwave-shell-executive-command)) |
| 2140 | (cdr exec-cmd) | 2129 | (cdr exec-cmd) |
| 2141 | (member (upcase (cdr exec-cmd)) | 2130 | (member (upcase (cdr exec-cmd)) |
| @@ -2145,7 +2134,7 @@ keywords." | |||
| 2145 | (idlwave-shell-complete-filename)) | 2134 | (idlwave-shell-complete-filename)) |
| 2146 | 2135 | ||
| 2147 | ((car-safe exec-cmd) | 2136 | ((car-safe exec-cmd) |
| 2148 | (setq idlwave-completion-help-info | 2137 | (setq idlwave-completion-help-info |
| 2149 | '(idlwave-shell-complete-execcomm-help)) | 2138 | '(idlwave-shell-complete-execcomm-help)) |
| 2150 | (idlwave-complete-in-buffer 'execcomm 'execcomm | 2139 | (idlwave-complete-in-buffer 'execcomm 'execcomm |
| 2151 | idlwave-executive-commands-alist nil | 2140 | idlwave-executive-commands-alist nil |
| @@ -2164,7 +2153,7 @@ keywords." | |||
| 2164 | (let ((case-fold-search t)) | 2153 | (let ((case-fold-search t)) |
| 2165 | (not (looking-at ".*obj_new"))))) | 2154 | (not (looking-at ".*obj_new"))))) |
| 2166 | (idlwave-shell-complete-filename)) | 2155 | (idlwave-shell-complete-filename)) |
| 2167 | 2156 | ||
| 2168 | (t | 2157 | (t |
| 2169 | ;; Default completion of modules and keywords | 2158 | ;; Default completion of modules and keywords |
| 2170 | (idlwave-complete arg))))) | 2159 | (idlwave-complete arg))))) |
| @@ -2186,7 +2175,7 @@ keywords." | |||
| 2186 | We assume that we are after a file name when completing one of the | 2175 | We assume that we are after a file name when completing one of the |
| 2187 | args of an executive .run, .rnew or .compile." | 2176 | args of an executive .run, .rnew or .compile." |
| 2188 | ;; CWD might have changed, resync, to set default directory | 2177 | ;; CWD might have changed, resync, to set default directory |
| 2189 | (idlwave-shell-resync-dirs) | 2178 | (idlwave-shell-resync-dirs) |
| 2190 | (let ((comint-file-name-chars idlwave-shell-file-name-chars)) | 2179 | (let ((comint-file-name-chars idlwave-shell-file-name-chars)) |
| 2191 | (comint-dynamic-complete-as-filename))) | 2180 | (comint-dynamic-complete-as-filename))) |
| 2192 | 2181 | ||
| @@ -2227,7 +2216,7 @@ args of an executive .run, .rnew or .compile." | |||
| 2227 | 2216 | ||
| 2228 | (defun idlwave-shell-redisplay (&optional hide) | 2217 | (defun idlwave-shell-redisplay (&optional hide) |
| 2229 | "Tries to resync the display with where execution has stopped. | 2218 | "Tries to resync the display with where execution has stopped. |
| 2230 | Issues a \"help,/trace\" command followed by a call to | 2219 | Issues a \"help,/trace\" command followed by a call to |
| 2231 | `idlwave-shell-display-line'. Also updates the breakpoint | 2220 | `idlwave-shell-display-line'. Also updates the breakpoint |
| 2232 | overlays." | 2221 | overlays." |
| 2233 | (interactive) | 2222 | (interactive) |
| @@ -2240,7 +2229,7 @@ overlays." | |||
| 2240 | (idlwave-shell-bp-query)) | 2229 | (idlwave-shell-bp-query)) |
| 2241 | 2230 | ||
| 2242 | (defun idlwave-shell-display-level-in-calling-stack (&optional hide) | 2231 | (defun idlwave-shell-display-level-in-calling-stack (&optional hide) |
| 2243 | (idlwave-shell-send-command | 2232 | (idlwave-shell-send-command |
| 2244 | "help,/trace" | 2233 | "help,/trace" |
| 2245 | `(progn | 2234 | `(progn |
| 2246 | ;; scanning for the state will reset the stack level - restore it | 2235 | ;; scanning for the state will reset the stack level - restore it |
| @@ -2271,14 +2260,14 @@ overlays." | |||
| 2271 | (setq idlwave-shell-calling-stack-index nmin | 2260 | (setq idlwave-shell-calling-stack-index nmin |
| 2272 | message (format "%d is the current calling stack level - can't go further down" | 2261 | message (format "%d is the current calling stack level - can't go further down" |
| 2273 | (- nmin))))) | 2262 | (- nmin))))) |
| 2274 | (setq idlwave-shell-calling-stack-routine | 2263 | (setq idlwave-shell-calling-stack-routine |
| 2275 | (nth 2 (nth idlwave-shell-calling-stack-index stack))) | 2264 | (nth 2 (nth idlwave-shell-calling-stack-index stack))) |
| 2276 | 2265 | ||
| 2277 | ;; only edebug if in that mode already | 2266 | ;; only edebug if in that mode already |
| 2278 | (idlwave-shell-display-line | 2267 | (idlwave-shell-display-line |
| 2279 | (nth idlwave-shell-calling-stack-index stack) nil | 2268 | (nth idlwave-shell-calling-stack-index stack) nil |
| 2280 | (unless idlwave-shell-electric-debug-mode 'no-debug)) | 2269 | (unless idlwave-shell-electric-debug-mode 'no-debug)) |
| 2281 | (message (or message | 2270 | (message (or message |
| 2282 | (format "In routine %s (stack level %d)" | 2271 | (format "In routine %s (stack level %d)" |
| 2283 | idlwave-shell-calling-stack-routine | 2272 | idlwave-shell-calling-stack-routine |
| 2284 | (- idlwave-shell-calling-stack-index)))))) | 2273 | (- idlwave-shell-calling-stack-index)))))) |
| @@ -2309,7 +2298,7 @@ used. Does nothing if the resulting frame is nil." | |||
| 2309 | (defun idlwave-shell-pc-frame () | 2298 | (defun idlwave-shell-pc-frame () |
| 2310 | "Returns the frame for IDL execution." | 2299 | "Returns the frame for IDL execution." |
| 2311 | (and idlwave-shell-halt-frame | 2300 | (and idlwave-shell-halt-frame |
| 2312 | (list (nth 0 idlwave-shell-halt-frame) | 2301 | (list (nth 0 idlwave-shell-halt-frame) |
| 2313 | (nth 1 idlwave-shell-halt-frame) | 2302 | (nth 1 idlwave-shell-halt-frame) |
| 2314 | (nth 2 idlwave-shell-halt-frame)))) | 2303 | (nth 2 idlwave-shell-halt-frame)))) |
| 2315 | 2304 | ||
| @@ -2327,7 +2316,7 @@ column in the line. If NO-DEBUG is non-nil, do *not* toggle the electric | |||
| 2327 | debug mode." | 2316 | debug mode." |
| 2328 | (if (not frame) | 2317 | (if (not frame) |
| 2329 | ;; Remove stop-line overlay from old position | 2318 | ;; Remove stop-line overlay from old position |
| 2330 | (progn | 2319 | (progn |
| 2331 | (setq overlay-arrow-string nil) | 2320 | (setq overlay-arrow-string nil) |
| 2332 | (setq idlwave-shell-mode-line-info nil) | 2321 | (setq idlwave-shell-mode-line-info nil) |
| 2333 | (setq idlwave-shell-is-stopped nil) | 2322 | (setq idlwave-shell-is-stopped nil) |
| @@ -2344,10 +2333,10 @@ debug mode." | |||
| 2344 | ;;; | 2333 | ;;; |
| 2345 | ;;; buffer : the buffer to display a line in. | 2334 | ;;; buffer : the buffer to display a line in. |
| 2346 | ;;; select-shell: current buffer is the shell. | 2335 | ;;; select-shell: current buffer is the shell. |
| 2347 | ;;; | 2336 | ;;; |
| 2348 | (setq idlwave-shell-mode-line-info | 2337 | (setq idlwave-shell-mode-line-info |
| 2349 | (if (nth 2 frame) | 2338 | (if (nth 2 frame) |
| 2350 | (format "[%d:%s]" | 2339 | (format "[%d:%s]" |
| 2351 | (- idlwave-shell-calling-stack-index) | 2340 | (- idlwave-shell-calling-stack-index) |
| 2352 | (nth 2 frame)))) | 2341 | (nth 2 frame)))) |
| 2353 | (let* ((buffer (idlwave-find-file-noselect (car frame) 'shell)) | 2342 | (let* ((buffer (idlwave-find-file-noselect (car frame) 'shell)) |
| @@ -2371,7 +2360,7 @@ debug mode." | |||
| 2371 | (forward-line 0) | 2360 | (forward-line 0) |
| 2372 | (setq pos (point)) | 2361 | (setq pos (point)) |
| 2373 | (setq idlwave-shell-is-stopped t) | 2362 | (setq idlwave-shell-is-stopped t) |
| 2374 | 2363 | ||
| 2375 | (if idlwave-shell-stop-line-overlay | 2364 | (if idlwave-shell-stop-line-overlay |
| 2376 | ;; Move overlay | 2365 | ;; Move overlay |
| 2377 | (move-overlay idlwave-shell-stop-line-overlay | 2366 | (move-overlay idlwave-shell-stop-line-overlay |
| @@ -2393,12 +2382,12 @@ debug mode." | |||
| 2393 | ;; If we have the column of the error, move the cursor there. | 2382 | ;; If we have the column of the error, move the cursor there. |
| 2394 | (if col (move-to-column col)) | 2383 | (if col (move-to-column col)) |
| 2395 | (setq pos (point)) | 2384 | (setq pos (point)) |
| 2396 | 2385 | ||
| 2397 | ;; Enter electric debug mode, if not prohibited and not in | 2386 | ;; Enter electric debug mode, if not prohibited and not in |
| 2398 | ;; it already | 2387 | ;; it already |
| 2399 | (when (and (or | 2388 | (when (and (or |
| 2400 | (eq idlwave-shell-automatic-electric-debug t) | 2389 | (eq idlwave-shell-automatic-electric-debug t) |
| 2401 | (and | 2390 | (and |
| 2402 | (eq idlwave-shell-automatic-electric-debug 'breakpoint) | 2391 | (eq idlwave-shell-automatic-electric-debug 'breakpoint) |
| 2403 | (not (eq idlwave-shell-current-state 'error)))) | 2392 | (not (eq idlwave-shell-current-state 'error)))) |
| 2404 | (not no-debug) | 2393 | (not no-debug) |
| @@ -2406,14 +2395,14 @@ debug mode." | |||
| 2406 | (not idlwave-shell-electric-debug-mode)) | 2395 | (not idlwave-shell-electric-debug-mode)) |
| 2407 | (idlwave-shell-electric-debug-mode) | 2396 | (idlwave-shell-electric-debug-mode) |
| 2408 | (setq electric t))) | 2397 | (setq electric t))) |
| 2409 | 2398 | ||
| 2410 | ;; Make sure pos is really displayed in the window. | 2399 | ;; Make sure pos is really displayed in the window. |
| 2411 | (set-window-point window pos) | 2400 | (set-window-point window pos) |
| 2412 | 2401 | ||
| 2413 | ;; If we came from the shell, go back there. Otherwise select | 2402 | ;; If we came from the shell, go back there. Otherwise select |
| 2414 | ;; the window where the error is displayed. | 2403 | ;; the window where the error is displayed. |
| 2415 | (if (or (and idlwave-shell-electric-zap-to-file electric) | 2404 | (if (or (and idlwave-shell-electric-zap-to-file electric) |
| 2416 | (and (equal (buffer-name) (idlwave-shell-buffer)) | 2405 | (and (equal (buffer-name) (idlwave-shell-buffer)) |
| 2417 | (not select-shell))) | 2406 | (not select-shell))) |
| 2418 | (select-window window)))))) | 2407 | (select-window window)))))) |
| 2419 | 2408 | ||
| @@ -2423,23 +2412,24 @@ debug mode." | |||
| 2423 | (interactive "p") | 2412 | (interactive "p") |
| 2424 | (or (not arg) (< arg 1) | 2413 | (or (not arg) (< arg 1) |
| 2425 | (setq arg 1)) | 2414 | (setq arg 1)) |
| 2426 | (idlwave-shell-send-command | 2415 | (idlwave-shell-send-command |
| 2427 | (concat ".s " (if (integerp arg) (int-to-string arg) arg)) | 2416 | (concat ".s " (if (integerp arg) (int-to-string arg) arg)) |
| 2428 | nil (if (idlwave-shell-hide-p 'debug) 'mostly) nil t)) | 2417 | nil (if (idlwave-shell-hide-p 'debug) 'mostly) nil t)) |
| 2429 | 2418 | ||
| 2430 | (defun idlwave-shell-stepover (arg) | 2419 | (defun idlwave-shell-stepover (arg) |
| 2431 | "Stepover one source line. | 2420 | "Stepover one source line. |
| 2432 | If given prefix argument ARG, step ARG source lines. | 2421 | If given prefix argument ARG, step ARG source lines. |
| 2433 | Uses IDL's stepover executive command which does not enter called functions." | 2422 | Uses IDL's stepover executive command which does not enter called functions." |
| 2434 | (interactive "p") | 2423 | (interactive "p") |
| 2435 | (or (not arg) (< arg 1) | 2424 | (or (not arg) (< arg 1) |
| 2436 | (setq arg 1)) | 2425 | (setq arg 1)) |
| 2437 | (idlwave-shell-send-command | 2426 | (idlwave-shell-send-command |
| 2438 | (concat ".so " (if (integerp arg) (int-to-string arg) arg)) | 2427 | (concat ".so " (if (integerp arg) (int-to-string arg) arg)) |
| 2439 | nil (if (idlwave-shell-hide-p 'debug) 'mostly) nil t)) | 2428 | nil (if (idlwave-shell-hide-p 'debug) 'mostly) nil t)) |
| 2440 | 2429 | ||
| 2441 | (defun idlwave-shell-break-here (&optional count cmd condition no-show) | 2430 | (defun idlwave-shell-break-here (&optional count cmd condition disabled |
| 2442 | "Set breakpoint at current line. | 2431 | no-show) |
| 2432 | "Set breakpoint at current line. | ||
| 2443 | 2433 | ||
| 2444 | If Count is nil then an ordinary breakpoint is set. We treat a count | 2434 | If Count is nil then an ordinary breakpoint is set. We treat a count |
| 2445 | of 1 as a temporary breakpoint using the ONCE keyword. Counts greater | 2435 | of 1 as a temporary breakpoint using the ONCE keyword. Counts greater |
| @@ -2447,17 +2437,17 @@ than 1 use the IDL AFTER=count keyword to break only after reaching | |||
| 2447 | the statement count times. | 2437 | the statement count times. |
| 2448 | 2438 | ||
| 2449 | Optional argument CMD is a list or function to evaluate upon reaching | 2439 | Optional argument CMD is a list or function to evaluate upon reaching |
| 2450 | the breakpoint." | 2440 | the breakpoint. CONDITION is a break condition, and DISABLED, if |
| 2451 | 2441 | non-nil disables the breakpoint" | |
| 2452 | (interactive "P") | 2442 | (interactive "P") |
| 2453 | (when (listp count) | 2443 | (when (listp count) |
| 2454 | (if (equal (car count) 4) | 2444 | (if (equal (car count) 4) |
| 2455 | (setq condition (read-string "Break Condition: "))) | 2445 | (setq condition (read-string "Break Condition: "))) |
| 2456 | (setq count nil)) | 2446 | (setq count nil)) |
| 2457 | (idlwave-shell-set-bp | 2447 | (idlwave-shell-set-bp |
| 2458 | ;; Create breakpoint | 2448 | ;; Create breakpoint |
| 2459 | (idlwave-shell-bp (idlwave-shell-current-frame) | 2449 | (idlwave-shell-bp (idlwave-shell-current-frame) |
| 2460 | (list count cmd condition nil) | 2450 | (list count cmd condition disabled) |
| 2461 | (idlwave-shell-current-module)) | 2451 | (idlwave-shell-current-module)) |
| 2462 | no-show)) | 2452 | no-show)) |
| 2463 | 2453 | ||
| @@ -2467,14 +2457,14 @@ This is run on `idlwave-shell-post-command-hook'. | |||
| 2467 | Offers to recompile the procedure if we failed. This usually fixes | 2457 | Offers to recompile the procedure if we failed. This usually fixes |
| 2468 | the problem with not being able to set the breakpoint." | 2458 | the problem with not being able to set the breakpoint." |
| 2469 | ;; Scan for message | 2459 | ;; Scan for message |
| 2470 | (if (and idlwave-shell-command-output | 2460 | (if idlwave-shell-command-output |
| 2471 | (string-match "% BREAKPOINT: *Unable to find code" | 2461 | (cond |
| 2472 | idlwave-shell-command-output)) | 2462 | ((string-match "% BREAKPOINT: *Unable to find code" |
| 2473 | ;; Offer to recompile | 2463 | idlwave-shell-command-output) |
| 2474 | (progn | 2464 | ;; Offer to recompile |
| 2475 | (if (progn | 2465 | (if (progn |
| 2476 | (beep) | 2466 | (beep) |
| 2477 | (y-or-n-p | 2467 | (y-or-n-p |
| 2478 | (concat "Okay to recompile file " | 2468 | (concat "Okay to recompile file " |
| 2479 | (idlwave-shell-bp-get bp 'file) " "))) | 2469 | (idlwave-shell-bp-get bp 'file) " "))) |
| 2480 | ;; Recompile | 2470 | ;; Recompile |
| @@ -2482,17 +2472,21 @@ the problem with not being able to set the breakpoint." | |||
| 2482 | ;; Clean up before retrying | 2472 | ;; Clean up before retrying |
| 2483 | (idlwave-shell-command-failure) | 2473 | (idlwave-shell-command-failure) |
| 2484 | (idlwave-shell-send-command | 2474 | (idlwave-shell-send-command |
| 2485 | (concat ".run " (idlwave-shell-bp-get bp 'file)) nil | 2475 | (concat ".run " (idlwave-shell-bp-get bp 'file)) nil |
| 2486 | (if (idlwave-shell-hide-p 'run) 'mostly) nil t) | 2476 | (if (idlwave-shell-hide-p 'run) 'mostly) nil t) |
| 2487 | ;; Try setting breakpoint again | 2477 | ;; Try setting breakpoint again |
| 2488 | (idlwave-shell-set-bp bp)) | 2478 | (idlwave-shell-set-bp bp)) |
| 2489 | (beep) | 2479 | (beep) |
| 2490 | (message "Unable to set breakpoint.") | 2480 | (message "Unable to set breakpoint.") |
| 2491 | (idlwave-shell-command-failure) | 2481 | (idlwave-shell-command-failure)) |
| 2492 | ) | 2482 | nil) |
| 2493 | ;; return non-nil if no error found | 2483 | |
| 2494 | nil) | 2484 | ((string-match "% Syntax error" idlwave-shell-command-output) |
| 2495 | 'okay)) | 2485 | (message "Syntax error in condition.") |
| 2486 | (idlwave-shell-command-failure) | ||
| 2487 | nil) | ||
| 2488 | |||
| 2489 | (t 'okay)))) | ||
| 2496 | 2490 | ||
| 2497 | (defun idlwave-shell-command-failure () | 2491 | (defun idlwave-shell-command-failure () |
| 2498 | "Do any necessary clean up when an IDL command fails. | 2492 | "Do any necessary clean up when an IDL command fails. |
| @@ -2506,9 +2500,9 @@ breakpoint can not be set." | |||
| 2506 | (defun idlwave-shell-cont (&optional no-show) | 2500 | (defun idlwave-shell-cont (&optional no-show) |
| 2507 | "Continue executing." | 2501 | "Continue executing." |
| 2508 | (interactive) | 2502 | (interactive) |
| 2509 | (idlwave-shell-send-command ".c" (unless no-show | 2503 | (idlwave-shell-send-command ".c" (unless no-show |
| 2510 | '(idlwave-shell-redisplay 'hide)) | 2504 | '(idlwave-shell-redisplay 'hide)) |
| 2511 | (if (idlwave-shell-hide-p 'debug) 'mostly) | 2505 | (if (idlwave-shell-hide-p 'debug) 'mostly) |
| 2512 | nil t)) | 2506 | nil t)) |
| 2513 | 2507 | ||
| 2514 | (defun idlwave-shell-go () | 2508 | (defun idlwave-shell-go () |
| @@ -2589,7 +2583,7 @@ at a breakpoint." | |||
| 2589 | ((eq force 'enable) (setq disabled t))) | 2583 | ((eq force 'enable) (setq disabled t))) |
| 2590 | (when bp | 2584 | (when bp |
| 2591 | (setf (nth 3 (cdr (cdr bp))) (not disabled)) | 2585 | (setf (nth 3 (cdr (cdr bp))) (not disabled)) |
| 2592 | (idlwave-shell-send-command | 2586 | (idlwave-shell-send-command |
| 2593 | (concat "breakpoint," | 2587 | (concat "breakpoint," |
| 2594 | (if disabled "/enable," "/disable,") | 2588 | (if disabled "/enable," "/disable,") |
| 2595 | (int-to-string (idlwave-shell-bp-get bp))) | 2589 | (int-to-string (idlwave-shell-bp-get bp))) |
| @@ -2603,18 +2597,18 @@ If ENABLE is non-nil, enable them instead." | |||
| 2603 | (while bpl | 2597 | (while bpl |
| 2604 | (setq disabled (idlwave-shell-bp-get (car bpl) 'disabled)) | 2598 | (setq disabled (idlwave-shell-bp-get (car bpl) 'disabled)) |
| 2605 | (when (idlwave-xor (not disabled) (eq enable 'enable)) | 2599 | (when (idlwave-xor (not disabled) (eq enable 'enable)) |
| 2606 | (idlwave-shell-toggle-enable-current-bp | 2600 | (idlwave-shell-toggle-enable-current-bp |
| 2607 | (car bpl) (if (eq enable 'enable) 'enable 'disable) no-update) | 2601 | (car bpl) (if (eq enable 'enable) 'enable 'disable) no-update) |
| 2608 | (push (car bpl) modified)) | 2602 | (push (car bpl) modified)) |
| 2609 | (setq bpl (cdr bpl))) | 2603 | (setq bpl (cdr bpl))) |
| 2610 | (unless no-update (idlwave-shell-bp-query)) | 2604 | (unless no-update (idlwave-shell-bp-query)) |
| 2611 | modified)) | 2605 | modified)) |
| 2612 | 2606 | ||
| 2613 | (defun idlwave-shell-to-here () | 2607 | (defun idlwave-shell-to-here () |
| 2614 | "Set a breakpoint with count 1 then continue." | 2608 | "Set a breakpoint with count 1 then continue." |
| 2615 | (interactive) | 2609 | (interactive) |
| 2616 | (let ((disabled (idlwave-shell-enable-all-bp 'disable 'no-update))) | 2610 | (let ((disabled (idlwave-shell-enable-all-bp 'disable 'no-update))) |
| 2617 | (idlwave-shell-break-here 1 nil nil 'no-show) | 2611 | (idlwave-shell-break-here 1 nil nil nil 'no-show) |
| 2618 | (idlwave-shell-cont 'no-show) | 2612 | (idlwave-shell-cont 'no-show) |
| 2619 | (idlwave-shell-enable-all-bp 'enable 'no-update disabled)) | 2613 | (idlwave-shell-enable-all-bp 'enable 'no-update disabled)) |
| 2620 | (idlwave-shell-redisplay)) ; sync up everything at the end | 2614 | (idlwave-shell-redisplay)) ; sync up everything at the end |
| @@ -2631,23 +2625,19 @@ The command looks for an identifier near point and sets a breakpoint | |||
| 2631 | for the first line of the corresponding module. If MODULE is `t', set | 2625 | for the first line of the corresponding module. If MODULE is `t', set |
| 2632 | in the current routine." | 2626 | in the current routine." |
| 2633 | (interactive) | 2627 | (interactive) |
| 2634 | (let (module) | 2628 | (let ((module (idlwave-fix-module-if-obj_new (idlwave-what-module)))) |
| 2635 | (save-excursion | 2629 | (if module |
| 2636 | (skip-chars-backward "a-zA-Z0-9_$") | 2630 | (progn |
| 2637 | (if (looking-at idlwave-identifier) | 2631 | (setq module (idlwave-make-full-name (nth 2 module) (car module))) |
| 2638 | (setq module (match-string 0)) | 2632 | (idlwave-shell-module-source-query module) |
| 2639 | (error "No identifier at point"))) | 2633 | (idlwave-shell-set-bp-in-module module)) |
| 2640 | (idlwave-shell-send-command | 2634 | (error "No identifier at point")))) |
| 2641 | idlwave-shell-sources-query | 2635 | |
| 2642 | `(progn | ||
| 2643 | (idlwave-shell-sources-filter) | ||
| 2644 | (idlwave-shell-set-bp-in-module ,module)) | ||
| 2645 | 'hide))) | ||
| 2646 | 2636 | ||
| 2647 | (defun idlwave-shell-set-bp-in-module (module) | 2637 | (defun idlwave-shell-set-bp-in-module (module) |
| 2648 | "Set breakpoint in module. Assumes that `idlwave-shell-sources-alist' | 2638 | "Set breakpoint in module. Assumes that `idlwave-shell-sources-alist' |
| 2649 | contains an entry for that module." | 2639 | contains an entry for that module." |
| 2650 | (let ((source-file (car-safe | 2640 | (let ((source-file (car-safe |
| 2651 | (cdr-safe | 2641 | (cdr-safe |
| 2652 | (assoc (upcase module) | 2642 | (assoc (upcase module) |
| 2653 | idlwave-shell-sources-alist)))) | 2643 | idlwave-shell-sources-alist)))) |
| @@ -2666,7 +2656,7 @@ contains an entry for that module." | |||
| 2666 | (save-excursion | 2656 | (save-excursion |
| 2667 | (goto-char (point-min)) | 2657 | (goto-char (point-min)) |
| 2668 | (let ((case-fold-search t)) | 2658 | (let ((case-fold-search t)) |
| 2669 | (if (re-search-forward | 2659 | (if (re-search-forward |
| 2670 | (concat "^[ \t]*\\(pro\\|function\\)[ \t]+" | 2660 | (concat "^[ \t]*\\(pro\\|function\\)[ \t]+" |
| 2671 | (downcase module) | 2661 | (downcase module) |
| 2672 | "[ \t\n,]") nil t) | 2662 | "[ \t\n,]") nil t) |
| @@ -2708,7 +2698,7 @@ Sets a breakpoint with count 1 at end of block, then continues." | |||
| 2708 | "Attempt to run until this procedure exits. | 2698 | "Attempt to run until this procedure exits. |
| 2709 | Runs to the last statement and then steps 1 statement. Use the .out command." | 2699 | Runs to the last statement and then steps 1 statement. Use the .out command." |
| 2710 | (interactive) | 2700 | (interactive) |
| 2711 | (idlwave-shell-send-command ".o" nil | 2701 | (idlwave-shell-send-command ".o" nil |
| 2712 | (if (idlwave-shell-hide-p 'debug) 'mostly) | 2702 | (if (idlwave-shell-hide-p 'debug) 'mostly) |
| 2713 | nil t)) | 2703 | nil t)) |
| 2714 | 2704 | ||
| @@ -2755,7 +2745,7 @@ Runs to the last statement and then steps 1 statement. Use the .out command." | |||
| 2755 | (interactive "e") | 2745 | (interactive "e") |
| 2756 | (let ((transient-mark-mode t) | 2746 | (let ((transient-mark-mode t) |
| 2757 | (zmacs-regions t) | 2747 | (zmacs-regions t) |
| 2758 | (tracker (if (featurep 'xemacs) | 2748 | (tracker (if (featurep 'xemacs) |
| 2759 | (if (fboundp 'default-mouse-track-event-is-with-button) | 2749 | (if (fboundp 'default-mouse-track-event-is-with-button) |
| 2760 | 'idlwave-xemacs-hack-mouse-track | 2750 | 'idlwave-xemacs-hack-mouse-track |
| 2761 | 'mouse-track) | 2751 | 'mouse-track) |
| @@ -2773,7 +2763,7 @@ Runs to the last statement and then steps 1 statement. Use the .out command." | |||
| 2773 | (let ((oldfunc (symbol-function 'default-mouse-track-event-is-with-button))) | 2763 | (let ((oldfunc (symbol-function 'default-mouse-track-event-is-with-button))) |
| 2774 | (unwind-protect | 2764 | (unwind-protect |
| 2775 | (progn | 2765 | (progn |
| 2776 | (fset 'default-mouse-track-event-is-with-button | 2766 | (fset 'default-mouse-track-event-is-with-button |
| 2777 | 'idlwave-default-mouse-track-event-is-with-button) | 2767 | 'idlwave-default-mouse-track-event-is-with-button) |
| 2778 | (mouse-track event)) | 2768 | (mouse-track event)) |
| 2779 | (fset 'default-mouse-track-event-is-with-button oldfunc)))) | 2769 | (fset 'default-mouse-track-event-is-with-button oldfunc)))) |
| @@ -2805,7 +2795,7 @@ Runs to the last statement and then steps 1 statement. Use the .out command." | |||
| 2805 | (defvar idlwave-shell-examine-completion-list nil) | 2795 | (defvar idlwave-shell-examine-completion-list nil) |
| 2806 | 2796 | ||
| 2807 | (defun idlwave-shell-print (arg &optional help ev complete-help-type) | 2797 | (defun idlwave-shell-print (arg &optional help ev complete-help-type) |
| 2808 | "Print current expression. | 2798 | "Print current expression. |
| 2809 | 2799 | ||
| 2810 | With HELP non-nil, show help on expression. If HELP is a string, | 2800 | With HELP non-nil, show help on expression. If HELP is a string, |
| 2811 | the expression will be put in place of ___, e.g.: | 2801 | the expression will be put in place of ___, e.g.: |
| @@ -2838,11 +2828,11 @@ idlw-shell-examine-alist via mini-buffer shortcut key." | |||
| 2838 | (save-excursion | 2828 | (save-excursion |
| 2839 | (let* ((process (get-buffer-process (current-buffer))) | 2829 | (let* ((process (get-buffer-process (current-buffer))) |
| 2840 | (process-mark (if process (process-mark process))) | 2830 | (process-mark (if process (process-mark process))) |
| 2841 | (stack-label | 2831 | (stack-label |
| 2842 | (if (and (integerp idlwave-shell-calling-stack-index) | 2832 | (if (and (integerp idlwave-shell-calling-stack-index) |
| 2843 | (> idlwave-shell-calling-stack-index 0)) | 2833 | (> idlwave-shell-calling-stack-index 0)) |
| 2844 | (format " [-%d:%s]" | 2834 | (format " [-%d:%s]" |
| 2845 | idlwave-shell-calling-stack-index | 2835 | idlwave-shell-calling-stack-index |
| 2846 | idlwave-shell-calling-stack-routine))) | 2836 | idlwave-shell-calling-stack-routine))) |
| 2847 | expr beg end cmd examine-hook) | 2837 | expr beg end cmd examine-hook) |
| 2848 | (cond | 2838 | (cond |
| @@ -2872,7 +2862,7 @@ idlw-shell-examine-alist via mini-buffer shortcut key." | |||
| 2872 | ;; an array | 2862 | ;; an array |
| 2873 | (forward-sexp)) | 2863 | (forward-sexp)) |
| 2874 | (setq end (point))))) | 2864 | (setq end (point))))) |
| 2875 | 2865 | ||
| 2876 | ;; Get expression, but first move the begin mark if a | 2866 | ;; Get expression, but first move the begin mark if a |
| 2877 | ;; process-mark is inside the region, to keep the overlay from | 2867 | ;; process-mark is inside the region, to keep the overlay from |
| 2878 | ;; wandering in the Shell. | 2868 | ;; wandering in the Shell. |
| @@ -2883,61 +2873,61 @@ idlw-shell-examine-alist via mini-buffer shortcut key." | |||
| 2883 | 2873 | ||
| 2884 | ;; Show the overlay(s) and attach any necessary hooks and filters | 2874 | ;; Show the overlay(s) and attach any necessary hooks and filters |
| 2885 | (when (and beg end idlwave-shell-expression-overlay) | 2875 | (when (and beg end idlwave-shell-expression-overlay) |
| 2886 | (move-overlay idlwave-shell-expression-overlay beg end | 2876 | (move-overlay idlwave-shell-expression-overlay beg end |
| 2887 | (current-buffer)) | 2877 | (current-buffer)) |
| 2888 | (add-hook 'pre-command-hook | 2878 | (add-hook 'pre-command-hook |
| 2889 | 'idlwave-shell-delete-expression-overlay)) | 2879 | 'idlwave-shell-delete-expression-overlay)) |
| 2890 | (setq examine-hook | 2880 | (setq examine-hook |
| 2891 | (if idlwave-shell-separate-examine-output | 2881 | (if idlwave-shell-separate-examine-output |
| 2892 | 'idlwave-shell-examine-display | 2882 | 'idlwave-shell-examine-display |
| 2893 | 'idlwave-shell-examine-highlight)) | 2883 | 'idlwave-shell-examine-highlight)) |
| 2894 | (add-hook 'pre-command-hook | 2884 | (add-hook 'pre-command-hook |
| 2895 | 'idlwave-shell-delete-output-overlay) | 2885 | 'idlwave-shell-delete-output-overlay) |
| 2896 | 2886 | ||
| 2897 | ;; Remove empty or comment-only lines | 2887 | ;; Remove empty or comment-only lines |
| 2898 | (while (string-match "\n[ \t]*\\(;.*\\)?\r*\n" expr) | 2888 | (while (string-match "\n[ \t]*\\(;.*\\)?\r*\n" expr) |
| 2899 | (setq expr (replace-match "\n" t t expr))) | 2889 | (setq expr (replace-match "\n" t t expr))) |
| 2900 | ;; Concatenate continuation lines | 2890 | ;; Concatenate continuation lines |
| 2901 | (while (string-match "[ \t]*\\$.*\\(;.*\\)?\\(\n[ \t]*\\|$\\)" expr) | 2891 | (while (string-match "[ \t]*\\$[ \t]*\\(;.*\\)?\\(\n[ \t]*\\|$\\)" expr) |
| 2902 | (setq expr (replace-match "" t t expr))) | 2892 | (setq expr (replace-match "" t t expr))) |
| 2903 | ;; Remove final newline | 2893 | ;; Remove final newline |
| 2904 | (if (string-match "\n[ \t\r]*\\'" expr) | 2894 | (if (string-match "\n[ \t\r]*\\'" expr) |
| 2905 | (setq expr (replace-match "" t t expr))) | 2895 | (setq expr (replace-match "" t t expr))) |
| 2906 | 2896 | ||
| 2907 | (catch 'exit | 2897 | (catch 'exit |
| 2908 | ;; Pop-up or complete on the examine selection list, if appropriate | 2898 | ;; Pop-up or complete on the examine selection list, if appropriate |
| 2909 | (if (or | 2899 | (if (or |
| 2910 | complete-help-type | 2900 | complete-help-type |
| 2911 | (and ev idlwave-shell-examine-alist) | 2901 | (and ev idlwave-shell-examine-alist) |
| 2912 | (consp help)) | 2902 | (consp help)) |
| 2913 | (let ((help-cons | 2903 | (let ((help-cons |
| 2914 | (if (consp help) help | 2904 | (if (consp help) help |
| 2915 | (assoc | 2905 | (assoc |
| 2916 | ;; A cons from either a pop-up or mini-buffer completion | 2906 | ;; A cons from either a pop-up or mini-buffer completion |
| 2917 | (if complete-help-type | 2907 | (if complete-help-type |
| 2918 | (idlwave-one-key-select 'idlwave-shell-examine-alist | 2908 | (idlwave-one-key-select 'idlwave-shell-examine-alist |
| 2919 | "Examine with: " 1.5) | 2909 | "Examine with: " 1.5) |
| 2920 | ;; (idlwave-completing-read | 2910 | ;; (idlwave-completing-read |
| 2921 | ;; "Examine with: " | 2911 | ;; "Examine with: " |
| 2922 | ;; idlwave-shell-examine-alist nil nil nil | 2912 | ;; idlwave-shell-examine-alist nil nil nil |
| 2923 | ;; 'idlwave-shell-examine-completion-list | 2913 | ;; 'idlwave-shell-examine-completion-list |
| 2924 | ;; "Print") | 2914 | ;; "Print") |
| 2925 | (idlwave-popup-select | 2915 | (idlwave-popup-select |
| 2926 | ev | 2916 | ev |
| 2927 | (mapcar 'car idlwave-shell-examine-alist) | 2917 | (mapcar 'car idlwave-shell-examine-alist) |
| 2928 | "Examine with")) | 2918 | "Examine with")) |
| 2929 | idlwave-shell-examine-alist)))) | 2919 | idlwave-shell-examine-alist)))) |
| 2930 | (setq help (cdr help-cons)) | 2920 | (setq help (cdr help-cons)) |
| 2931 | (if (null help) (throw 'exit nil)) | 2921 | (if (null help) (throw 'exit nil)) |
| 2932 | (if idlwave-shell-separate-examine-output | 2922 | (if idlwave-shell-separate-examine-output |
| 2933 | (setq idlwave-shell-examine-label | 2923 | (setq idlwave-shell-examine-label |
| 2934 | (concat | 2924 | (concat |
| 2935 | (format "==>%s<==\n%s:" expr (car help-cons)) | 2925 | (format "==>%s<==\n%s:" expr (car help-cons)) |
| 2936 | stack-label "\n")))) | 2926 | stack-label "\n")))) |
| 2937 | ;; The regular help label (no popups, cons cells, etc.) | 2927 | ;; The regular help label (no popups, cons cells, etc.) |
| 2938 | (setq idlwave-shell-examine-label | 2928 | (setq idlwave-shell-examine-label |
| 2939 | (concat | 2929 | (concat |
| 2940 | (format "==>%s<==\n%s:" expr | 2930 | (format "==>%s<==\n%s:" expr |
| 2941 | (cond ((null help) "print") | 2931 | (cond ((null help) "print") |
| 2942 | ((stringp help) help) | 2932 | ((stringp help) help) |
| 2943 | (t (symbol-name help)))) | 2933 | (t (symbol-name help)))) |
| @@ -2950,9 +2940,9 @@ idlw-shell-examine-alist via mini-buffer shortcut key." | |||
| 2950 | idlwave-shell-calling-stack-index))) | 2940 | idlwave-shell-calling-stack-index))) |
| 2951 | (setq cmd (idlwave-shell-help-statement help expr)) | 2941 | (setq cmd (idlwave-shell-help-statement help expr)) |
| 2952 | ;;(idlwave-shell-recenter-shell-window) | 2942 | ;;(idlwave-shell-recenter-shell-window) |
| 2953 | (idlwave-shell-send-command | 2943 | (idlwave-shell-send-command |
| 2954 | cmd | 2944 | cmd |
| 2955 | examine-hook | 2945 | examine-hook |
| 2956 | (if idlwave-shell-separate-examine-output 'hide)))))) | 2946 | (if idlwave-shell-separate-examine-output 'hide)))))) |
| 2957 | 2947 | ||
| 2958 | (defvar idlwave-shell-examine-window-alist nil | 2948 | (defvar idlwave-shell-examine-window-alist nil |
| @@ -2979,9 +2969,9 @@ idlw-shell-examine-alist via mini-buffer shortcut key." | |||
| 2979 | (let* ((end (or | 2969 | (let* ((end (or |
| 2980 | (re-search-backward idlwave-shell-prompt-pattern nil t) | 2970 | (re-search-backward idlwave-shell-prompt-pattern nil t) |
| 2981 | (point-max))) | 2971 | (point-max))) |
| 2982 | (beg (progn | 2972 | (beg (progn |
| 2983 | (goto-char | 2973 | (goto-char |
| 2984 | (or (progn (if (re-search-backward | 2974 | (or (progn (if (re-search-backward |
| 2985 | idlwave-shell-prompt-pattern nil t) | 2975 | idlwave-shell-prompt-pattern nil t) |
| 2986 | (match-end 0))) | 2976 | (match-end 0))) |
| 2987 | (point-min))) | 2977 | (point-min))) |
| @@ -2998,21 +2988,21 @@ idlw-shell-examine-alist via mini-buffer shortcut key." | |||
| 2998 | (setq buffer-read-only t) | 2988 | (setq buffer-read-only t) |
| 2999 | (move-overlay idlwave-shell-output-overlay cur-beg cur-end | 2989 | (move-overlay idlwave-shell-output-overlay cur-beg cur-end |
| 3000 | (current-buffer)) | 2990 | (current-buffer)) |
| 3001 | 2991 | ||
| 3002 | ;; Look for the examine buffer in all windows. If one is | 2992 | ;; Look for the examine buffer in all windows. If one is |
| 3003 | ;; found in a frame all by itself, use that, otherwise, switch | 2993 | ;; found in a frame all by itself, use that, otherwise, switch |
| 3004 | ;; to or create an examine window in this frame, and resize if | 2994 | ;; to or create an examine window in this frame, and resize if |
| 3005 | ;; it's a newly created window | 2995 | ;; it's a newly created window |
| 3006 | (let* ((winlist (get-buffer-window-list "*Examine*" nil 'visible))) | 2996 | (let* ((winlist (get-buffer-window-list "*Examine*" nil 'visible))) |
| 3007 | (setq win (idlwave-display-buffer | 2997 | (setq win (idlwave-display-buffer |
| 3008 | "*Examine*" | 2998 | "*Examine*" |
| 3009 | nil | 2999 | nil |
| 3010 | (let ((list winlist) thiswin) | 3000 | (let ((list winlist) thiswin) |
| 3011 | (catch 'exit | 3001 | (catch 'exit |
| 3012 | (save-selected-window | 3002 | (save-selected-window |
| 3013 | (while (setq thiswin (pop list)) | 3003 | (while (setq thiswin (pop list)) |
| 3014 | (select-window thiswin) | 3004 | (select-window thiswin) |
| 3015 | (if (one-window-p) | 3005 | (if (one-window-p) |
| 3016 | (throw 'exit (window-frame thiswin))))))))) | 3006 | (throw 'exit (window-frame thiswin))))))))) |
| 3017 | (set-window-start win (point-min)) ; Ensure the point is visible. | 3007 | (set-window-start win (point-min)) ; Ensure the point is visible. |
| 3018 | (save-selected-window | 3008 | (save-selected-window |
| @@ -3033,7 +3023,7 @@ idlw-shell-examine-alist via mini-buffer shortcut key." | |||
| 3033 | ;; And add the new value. | 3023 | ;; And add the new value. |
| 3034 | (if (setq elt (assoc win idlwave-shell-examine-window-alist)) | 3024 | (if (setq elt (assoc win idlwave-shell-examine-window-alist)) |
| 3035 | (setcdr elt (window-height)) | 3025 | (setcdr elt (window-height)) |
| 3036 | (add-to-list 'idlwave-shell-examine-window-alist | 3026 | (add-to-list 'idlwave-shell-examine-window-alist |
| 3037 | (cons win (window-height))))))))) | 3027 | (cons win (window-height))))))))) |
| 3038 | ;; Recenter for maximum output, after widened | 3028 | ;; Recenter for maximum output, after widened |
| 3039 | (save-selected-window | 3029 | (save-selected-window |
| @@ -3051,7 +3041,7 @@ idlw-shell-examine-alist via mini-buffer shortcut key." | |||
| 3051 | 3041 | ||
| 3052 | (defun idlwave-shell-examine-display-clear () | 3042 | (defun idlwave-shell-examine-display-clear () |
| 3053 | (interactive) | 3043 | (interactive) |
| 3054 | (save-excursion | 3044 | (save-excursion |
| 3055 | (let ((buf (get-buffer "*Examine*"))) | 3045 | (let ((buf (get-buffer "*Examine*"))) |
| 3056 | (when (bufferp buf) | 3046 | (when (bufferp buf) |
| 3057 | (set-buffer buf) | 3047 | (set-buffer buf) |
| @@ -3072,36 +3062,58 @@ routine_names, there is no guarantee that this will work with future | |||
| 3072 | versions of IDL." | 3062 | versions of IDL." |
| 3073 | (let ((fetch (- 0 level)) | 3063 | (let ((fetch (- 0 level)) |
| 3074 | (start 0) | 3064 | (start 0) |
| 3075 | var rnvar pre post) | 3065 | var fetch-start fetch-end pre post) |
| 3076 | 3066 | ||
| 3077 | ;; FIXME: In the following we try to find the variables in expression | 3067 | ;; FIXME: In the following we try to find the variables in expression |
| 3078 | ;; This is quite empirical - I don't know in what situations this will | 3068 | ;; This is quite empirical - I don't know in what situations this will |
| 3079 | ;; break. We will look for identifiers and exclude cases where we | 3069 | ;; break. We will look for identifiers and exclude cases where we |
| 3080 | ;; know it is not a variable. To distinguish array references from | 3070 | ;; know it is not a variable. To distinguish array references from |
| 3081 | ;; function calls, we require that arrays use [] instead of () | 3071 | ;; function calls, we require that arrays use [] instead of () |
| 3082 | 3072 | ||
| 3083 | (while (string-match | 3073 | (while (string-match |
| 3084 | "\\(\\`\\|[^a-zA-Z0-9$_][ \t]*\\)\\([a-zA-Z][a-zA-Z0-9$_]*\\)\\([ \t]*[^a-zA-Z0-9$_]\\|\\'\\)" expr start) | 3074 | "\\(\\`\\|[^a-zA-Z0-9$_][ \t]*\\)\\([a-zA-Z][a-zA-Z0-9$_]*\\)\\([ \t]*[^a-zA-Z0-9$_]\\|\\'\\)" expr start) |
| 3085 | (setq var (match-string 2 expr) | 3075 | (setq var (match-string 2 expr) |
| 3086 | start (match-beginning 2) | 3076 | start (match-end 2) |
| 3087 | pre (substring expr 0 (match-beginning 2)) | 3077 | pre (substring expr 0 (match-beginning 2)) |
| 3088 | post (substring expr (match-end 2))) | 3078 | post (substring expr (match-end 2))) |
| 3089 | (cond | 3079 | (cond |
| 3090 | ;; Exclude identifiers which are not variables | 3080 | ((or |
| 3091 | ((string-match ",[ \t]*/\\'" pre)) ;; a `/' KEYWORD | 3081 | ;; Exclude identifiers which are not variables |
| 3092 | ((and (string-match "[,(][ \t]*\\'" pre) | 3082 | (string-match ",[ \t$\n]*/\\'" pre) ;; a `/' KEYWORD |
| 3093 | (string-match "\\`[ \t]*=" post))) ;; a `=' KEYWORD | 3083 | (and (string-match "[,(][ \t\n]*\\'" pre) |
| 3094 | ((string-match "\\`(" post)) ;; a function | 3084 | (string-match "\\`[ \t]*=" post)) ;; a `=' KEYWORD |
| 3095 | ((string-match "->[ \t]*\\'" pre)) ;; a method | 3085 | (string-match "\\`(" post) ;; a function |
| 3096 | ((string-match "\\.\\'" pre)) ;; structure member | 3086 | (string-match "->[ \t]*\\'" pre) ;; a method |
| 3087 | (string-match "\\.\\'" pre))) ;; structure member | ||
| 3088 | |||
| 3089 | ;; Skip over strings | ||
| 3097 | ((and (string-match "\\([\"\']\\)[^\1]*$" pre) | 3090 | ((and (string-match "\\([\"\']\\)[^\1]*$" pre) |
| 3098 | (string-match (concat "^[^" (match-string 1 pre) "]*" | 3091 | (string-match (concat "^[^" (match-string 1 pre) "]*" |
| 3099 | (match-string 1 pre)) post))) | 3092 | (match-string 1 pre)) post)) |
| 3100 | (t ;; seems to be a variable - replace its name in the | 3093 | (setq start (+ start (match-end 0)))) |
| 3101 | ;; expression with the fetch. | 3094 | |
| 3102 | (setq rnvar (format "(routine_names('%s',fetch=%d))" var fetch) | 3095 | |
| 3103 | expr (concat pre rnvar post) | 3096 | ;; seems to be a variable - delimit its name |
| 3104 | start (+ start (length rnvar)))))) | 3097 | (t |
| 3098 | (put-text-property start (- start (length var)) 'fetch t expr)))) | ||
| 3099 | |||
| 3100 | (setq start 0) | ||
| 3101 | (while (setq fetch-start | ||
| 3102 | (next-single-property-change start 'fetch expr)) | ||
| 3103 | (if (get-text-property start 'fetch expr) ; it's on in range | ||
| 3104 | (setq fetch-end fetch-start ;it's off in range | ||
| 3105 | fetch-start start) | ||
| 3106 | (setq fetch-end (next-single-property-change fetch-start 'fetch expr))) | ||
| 3107 | (unless fetch-end (setq fetch-end (length expr))) | ||
| 3108 | (remove-text-properties fetch-start fetch-end '(fetch) expr) | ||
| 3109 | (setq expr (concat (substring expr 0 fetch-start) | ||
| 3110 | (format "(routine_names('%s',fetch=%d))" | ||
| 3111 | (substring expr fetch-start fetch-end) | ||
| 3112 | fetch) | ||
| 3113 | (substring expr fetch-end))) | ||
| 3114 | (setq start fetch-end)) | ||
| 3115 | (if (get-text-property 0 'fetch expr) ; Full expression, left over | ||
| 3116 | (setq expr (format "(routine_names('%s',fetch=%d))" expr fetch))) | ||
| 3105 | expr)) | 3117 | expr)) |
| 3106 | 3118 | ||
| 3107 | 3119 | ||
| @@ -3113,13 +3125,13 @@ to insert expression in place of the marker ___, e.g.: print, | |||
| 3113 | size(___,/DIMENSIONS)" | 3125 | size(___,/DIMENSIONS)" |
| 3114 | (cond | 3126 | (cond |
| 3115 | ((null help) (concat "print, " expr)) | 3127 | ((null help) (concat "print, " expr)) |
| 3116 | ((stringp help) | 3128 | ((stringp help) |
| 3117 | (if (string-match "\\(^\\|[^_]\\)\\(___\\)\\([^_]\\|$\\)" help) | 3129 | (if (string-match "\\(^\\|[^_]\\)\\(___\\)\\([^_]\\|$\\)" help) |
| 3118 | (concat (substring help 0 (match-beginning 2)) | 3130 | (concat (substring help 0 (match-beginning 2)) |
| 3119 | expr | 3131 | expr |
| 3120 | (substring help (match-end 2))))) | 3132 | (substring help (match-end 2))))) |
| 3121 | (t (concat "help, " expr)))) | 3133 | (t (concat "help, " expr)))) |
| 3122 | 3134 | ||
| 3123 | 3135 | ||
| 3124 | (defun idlwave-shell-examine-highlight () | 3136 | (defun idlwave-shell-examine-highlight () |
| 3125 | "Highlight the most recent IDL output." | 3137 | "Highlight the most recent IDL output." |
| @@ -3127,7 +3139,7 @@ size(___,/DIMENSIONS)" | |||
| 3127 | (process (get-buffer-process buffer)) | 3139 | (process (get-buffer-process buffer)) |
| 3128 | (process-mark (if process (process-mark process))) | 3140 | (process-mark (if process (process-mark process))) |
| 3129 | output-begin output-end) | 3141 | output-begin output-end) |
| 3130 | (save-excursion | 3142 | (save-excursion |
| 3131 | (set-buffer buffer) | 3143 | (set-buffer buffer) |
| 3132 | (goto-char process-mark) | 3144 | (goto-char process-mark) |
| 3133 | (beginning-of-line) | 3145 | (beginning-of-line) |
| @@ -3135,12 +3147,12 @@ size(___,/DIMENSIONS)" | |||
| 3135 | (re-search-backward idlwave-shell-prompt-pattern nil t) | 3147 | (re-search-backward idlwave-shell-prompt-pattern nil t) |
| 3136 | (beginning-of-line 2) | 3148 | (beginning-of-line 2) |
| 3137 | (setq output-begin (point))) | 3149 | (setq output-begin (point))) |
| 3138 | 3150 | ||
| 3139 | ;; First make sure the shell window is visible | 3151 | ;; First make sure the shell window is visible |
| 3140 | (idlwave-display-buffer (idlwave-shell-buffer) | 3152 | (idlwave-display-buffer (idlwave-shell-buffer) |
| 3141 | nil (idlwave-shell-shell-frame)) | 3153 | nil (idlwave-shell-shell-frame)) |
| 3142 | (if (and idlwave-shell-output-overlay process-mark) | 3154 | (if (and idlwave-shell-output-overlay process-mark) |
| 3143 | (move-overlay idlwave-shell-output-overlay | 3155 | (move-overlay idlwave-shell-output-overlay |
| 3144 | output-begin output-end buffer)))) | 3156 | output-begin output-end buffer)))) |
| 3145 | 3157 | ||
| 3146 | (defun idlwave-shell-delete-output-overlay () | 3158 | (defun idlwave-shell-delete-output-overlay () |
| @@ -3151,7 +3163,7 @@ size(___,/DIMENSIONS)" | |||
| 3151 | (delete-overlay idlwave-shell-output-overlay)) | 3163 | (delete-overlay idlwave-shell-output-overlay)) |
| 3152 | (error nil)) | 3164 | (error nil)) |
| 3153 | (remove-hook 'pre-command-hook 'idlwave-shell-delete-output-overlay))) | 3165 | (remove-hook 'pre-command-hook 'idlwave-shell-delete-output-overlay))) |
| 3154 | 3166 | ||
| 3155 | (defun idlwave-shell-delete-expression-overlay () | 3167 | (defun idlwave-shell-delete-expression-overlay () |
| 3156 | (unless (or (eq this-command 'idlwave-shell-mouse-nop) | 3168 | (unless (or (eq this-command 'idlwave-shell-mouse-nop) |
| 3157 | (eq this-command 'handle-switch-frame)) | 3169 | (eq this-command 'handle-switch-frame)) |
| @@ -3180,7 +3192,7 @@ contains four items: | |||
| 3180 | count - number of times to execute breakpoint. When count reaches 0 | 3192 | count - number of times to execute breakpoint. When count reaches 0 |
| 3181 | the breakpoint is cleared and removed from the alist. | 3193 | the breakpoint is cleared and removed from the alist. |
| 3182 | 3194 | ||
| 3183 | command - command to execute when breakpoint is reached, either a | 3195 | command - command to execute when breakpoint is reached, either a |
| 3184 | lisp function to be called with `funcall' with no arguments or a | 3196 | lisp function to be called with `funcall' with no arguments or a |
| 3185 | list to be evaluated with `eval'. | 3197 | list to be evaluated with `eval'. |
| 3186 | 3198 | ||
| @@ -3213,11 +3225,11 @@ If there is a prefix argument, display IDL process." | |||
| 3213 | (insert "\nend\n")) | 3225 | (insert "\nend\n")) |
| 3214 | (save-buffer 0))) | 3226 | (save-buffer 0))) |
| 3215 | (idlwave-shell-send-command (concat ".run " idlwave-shell-temp-pro-file) | 3227 | (idlwave-shell-send-command (concat ".run " idlwave-shell-temp-pro-file) |
| 3216 | nil | 3228 | nil |
| 3217 | (if (idlwave-shell-hide-p 'run) 'mostly) | 3229 | (if (idlwave-shell-hide-p 'run) 'mostly) |
| 3218 | nil t) | 3230 | nil t) |
| 3219 | (if n | 3231 | (if n |
| 3220 | (idlwave-display-buffer (idlwave-shell-buffer) | 3232 | (idlwave-display-buffer (idlwave-shell-buffer) |
| 3221 | nil (idlwave-shell-shell-frame)))) | 3233 | nil (idlwave-shell-shell-frame)))) |
| 3222 | 3234 | ||
| 3223 | (defun idlwave-shell-evaluate-region (beg end &optional n) | 3235 | (defun idlwave-shell-evaluate-region (beg end &optional n) |
| @@ -3228,7 +3240,7 @@ Does not work for a region with multiline blocks - use | |||
| 3228 | (interactive "r\nP") | 3240 | (interactive "r\nP") |
| 3229 | (idlwave-shell-send-command (buffer-substring beg end)) | 3241 | (idlwave-shell-send-command (buffer-substring beg end)) |
| 3230 | (if n | 3242 | (if n |
| 3231 | (idlwave-display-buffer (idlwave-shell-buffer) | 3243 | (idlwave-display-buffer (idlwave-shell-buffer) |
| 3232 | nil (idlwave-shell-shell-frame)))) | 3244 | nil (idlwave-shell-shell-frame)))) |
| 3233 | 3245 | ||
| 3234 | (defun idlwave-shell-delete-temp-files () | 3246 | (defun idlwave-shell-delete-temp-files () |
| @@ -3283,7 +3295,7 @@ Queries IDL using the string in `idlwave-shell-bp-query'." | |||
| 3283 | 'hide)) | 3295 | 'hide)) |
| 3284 | 3296 | ||
| 3285 | (defun idlwave-shell-bp-get (bp &optional item) | 3297 | (defun idlwave-shell-bp-get (bp &optional item) |
| 3286 | "Get a value for a breakpoint. | 3298 | "Get a value for a breakpoint. |
| 3287 | BP has the form of elements in idlwave-shell-bp-alist. Optional | 3299 | BP has the form of elements in idlwave-shell-bp-alist. Optional |
| 3288 | second arg ITEM is the particular value to retrieve. ITEM can be | 3300 | second arg ITEM is the particular value to retrieve. ITEM can be |
| 3289 | 'file, 'line, 'index, 'module, 'count, 'cmd, 'condition, 'disabled or | 3301 | 'file, 'line, 'index, 'module, 'count, 'cmd, 'condition, 'disabled or |
| @@ -3318,8 +3330,8 @@ breakpoint overlays." | |||
| 3318 | ;; Searching the breakpoints | 3330 | ;; Searching the breakpoints |
| 3319 | ;; In IDL 5.5, the breakpoint reporting format changed. | 3331 | ;; In IDL 5.5, the breakpoint reporting format changed. |
| 3320 | (bp-re54 "^[ \t]*\\([0-9]+\\)[ \t]+\\(\\S-+\\)?[ \t]+\\([0-9]+\\)[ \t]+\\(\\S-+\\)") | 3332 | (bp-re54 "^[ \t]*\\([0-9]+\\)[ \t]+\\(\\S-+\\)?[ \t]+\\([0-9]+\\)[ \t]+\\(\\S-+\\)") |
| 3321 | (bp-re55 | 3333 | (bp-re55 |
| 3322 | (concat | 3334 | (concat |
| 3323 | "^\\s-*\\([0-9]+\\)" ; 1 index | 3335 | "^\\s-*\\([0-9]+\\)" ; 1 index |
| 3324 | "\\s-+\\([0-9]+\\)" ; 2 line number | 3336 | "\\s-+\\([0-9]+\\)" ; 2 line number |
| 3325 | "\\s-+\\(Uncompiled\\|" ; 3-6 either uncompiled or routine name | 3337 | "\\s-+\\(Uncompiled\\|" ; 3-6 either uncompiled or routine name |
| @@ -3334,11 +3346,11 @@ breakpoint overlays." | |||
| 3334 | bp-re indmap) | 3346 | bp-re indmap) |
| 3335 | (setq idlwave-shell-bp-alist (list nil)) | 3347 | (setq idlwave-shell-bp-alist (list nil)) |
| 3336 | ;; Search for either header type, and set the correct regexp | 3348 | ;; Search for either header type, and set the correct regexp |
| 3337 | (when (or | 3349 | (when (or |
| 3338 | (if (re-search-forward "^\\s-*Index.*\n\\s-*-" nil t) | 3350 | (if (re-search-forward "^\\s-*Index.*\n\\s-*-" nil t) |
| 3339 | (setq bp-re bp-re54 ; versions <= 5.4 | 3351 | (setq bp-re bp-re54 ; versions <= 5.4 |
| 3340 | indmap '(1 2 3 4))) ;index module line file | 3352 | indmap '(1 2 3 4))) ;index module line file |
| 3341 | (if (re-search-forward | 3353 | (if (re-search-forward |
| 3342 | "^\\s-*Index\\s-*Line\\s-*Attributes\\s-*File" nil t) | 3354 | "^\\s-*Index\\s-*Line\\s-*Attributes\\s-*File" nil t) |
| 3343 | (setq bp-re bp-re55 ; versions >= 5.5 | 3355 | (setq bp-re bp-re55 ; versions >= 5.5 |
| 3344 | indmap '(1 6 2 16)))) ; index module line file | 3356 | indmap '(1 6 2 16)))) ; index module line file |
| @@ -3349,12 +3361,12 @@ breakpoint overlays." | |||
| 3349 | line (string-to-number (match-string (nth 2 indmap))) | 3361 | line (string-to-number (match-string (nth 2 indmap))) |
| 3350 | file (idlwave-shell-file-name (match-string (nth 3 indmap)))) | 3362 | file (idlwave-shell-file-name (match-string (nth 3 indmap)))) |
| 3351 | (if (eq bp-re bp-re55) | 3363 | (if (eq bp-re bp-re55) |
| 3352 | (setq count (if (match-string 10) 1 | 3364 | (setq count (if (match-string 10) 1 |
| 3353 | (if (match-string 8) | 3365 | (if (match-string 8) |
| 3354 | (string-to-number (match-string 8)))) | 3366 | (string-to-number (match-string 8)))) |
| 3355 | condition (match-string 13) | 3367 | condition (match-string 13) |
| 3356 | disabled (not (null (match-string 15))))) | 3368 | disabled (not (null (match-string 15))))) |
| 3357 | 3369 | ||
| 3358 | ;; Add the breakpoint info to the list | 3370 | ;; Add the breakpoint info to the list |
| 3359 | (nconc idlwave-shell-bp-alist | 3371 | (nconc idlwave-shell-bp-alist |
| 3360 | (list (cons (list file line) | 3372 | (list (cons (list file line) |
| @@ -3364,7 +3376,7 @@ breakpoint overlays." | |||
| 3364 | count nil condition disabled)))))) | 3376 | count nil condition disabled)))))) |
| 3365 | (setq idlwave-shell-bp-alist (cdr idlwave-shell-bp-alist)) | 3377 | (setq idlwave-shell-bp-alist (cdr idlwave-shell-bp-alist)) |
| 3366 | ;; Update breakpoint data | 3378 | ;; Update breakpoint data |
| 3367 | (if (eq bp-re bp-re54) | 3379 | (if (eq bp-re bp-re54) |
| 3368 | (mapcar 'idlwave-shell-update-bp old-bp-alist) | 3380 | (mapcar 'idlwave-shell-update-bp old-bp-alist) |
| 3369 | (mapcar 'idlwave-shell-update-bp-command-only old-bp-alist)))) | 3381 | (mapcar 'idlwave-shell-update-bp-command-only old-bp-alist)))) |
| 3370 | ;; Update the breakpoint overlays | 3382 | ;; Update the breakpoint overlays |
| @@ -3379,8 +3391,8 @@ breakpoint overlays." | |||
| 3379 | "Update BP data in breakpoint list. | 3391 | "Update BP data in breakpoint list. |
| 3380 | If BP frame is in `idlwave-shell-bp-alist' updates the breakpoint data." | 3392 | If BP frame is in `idlwave-shell-bp-alist' updates the breakpoint data." |
| 3381 | (let ((match (assoc (car bp) idlwave-shell-bp-alist))) | 3393 | (let ((match (assoc (car bp) idlwave-shell-bp-alist))) |
| 3382 | (if match | 3394 | (if match |
| 3383 | (if command-only | 3395 | (if command-only |
| 3384 | (setf (nth 1 (cdr (cdr match))) (nth 1 (cdr (cdr match)))) | 3396 | (setf (nth 1 (cdr (cdr match))) (nth 1 (cdr (cdr match)))) |
| 3385 | (setcdr (cdr match) (cdr (cdr bp))))))) | 3397 | (setcdr (cdr match) (cdr (cdr bp))))))) |
| 3386 | 3398 | ||
| @@ -3405,42 +3417,31 @@ Otherwise return the filename in bp." | |||
| 3405 | (let* | 3417 | (let* |
| 3406 | ((bp-file (idlwave-shell-bp-get bp 'file)) | 3418 | ((bp-file (idlwave-shell-bp-get bp 'file)) |
| 3407 | (bp-module (idlwave-shell-bp-get bp 'module)) | 3419 | (bp-module (idlwave-shell-bp-get bp 'module)) |
| 3408 | (internal-file-list | 3420 | (internal-file-list |
| 3409 | (cdr (assoc bp-module idlwave-shell-sources-alist)))) | 3421 | (if bp-module |
| 3422 | (cdr (assoc bp-module idlwave-shell-sources-alist))))) | ||
| 3410 | (if (and internal-file-list | 3423 | (if (and internal-file-list |
| 3411 | (equal bp-file (nth 0 internal-file-list))) | 3424 | (equal bp-file (nth 0 internal-file-list))) |
| 3412 | (nth 1 internal-file-list) | 3425 | (nth 1 internal-file-list) |
| 3413 | bp-file))) | 3426 | bp-file))) |
| 3414 | 3427 | ||
| 3415 | (defun idlwave-shell-set-bp (bp &optional no-show) | 3428 | (defun idlwave-shell-set-bp (bp &optional no-show) |
| 3416 | "Try to set a breakpoint BP. | 3429 | "Try to set a breakpoint BP. |
| 3417 | The breakpoint will be placed at the beginning of the statement on the | 3430 | The breakpoint will be placed at the beginning of the statement on the |
| 3418 | line specified by BP or at the next IDL statement if that line is not | 3431 | line specified by BP or at the next IDL statement if that line is not |
| 3419 | a statement. Determines IDL's internal representation for the | 3432 | a statement. Determines IDL's internal representation for the |
| 3420 | breakpoint, which may have occurred at a different line than | 3433 | breakpoint, which may have occurred at a different line than |
| 3421 | specified. If NO-SHOW is non-nil, don't do any updating." | 3434 | specified. If NO-SHOW is non-nil, don't do any updating." |
| 3422 | ;; Get and save the old breakpoints | 3435 | ;; Get and save the old breakpoints |
| 3423 | (idlwave-shell-send-command | 3436 | (idlwave-shell-send-command |
| 3424 | idlwave-shell-bp-query | 3437 | idlwave-shell-bp-query |
| 3425 | `(progn | 3438 | `(progn |
| 3426 | (idlwave-shell-filter-bp (quote ,no-show)) | 3439 | (idlwave-shell-filter-bp (quote ,no-show)) |
| 3427 | (setq idlwave-shell-old-bp idlwave-shell-bp-alist)) | 3440 | (setq idlwave-shell-old-bp idlwave-shell-bp-alist)) |
| 3428 | 'hide) | 3441 | 'hide) |
| 3429 | ;; Get sources for IDL compiled procedures followed by setting | ||
| 3430 | ;; breakpoint. | ||
| 3431 | (idlwave-shell-send-command | ||
| 3432 | idlwave-shell-sources-query | ||
| 3433 | `(progn | ||
| 3434 | (idlwave-shell-sources-filter) | ||
| 3435 | (idlwave-shell-set-bp2 (quote ,bp) (quote ,no-show))) | ||
| 3436 | 'hide)) | ||
| 3437 | 3442 | ||
| 3438 | (defun idlwave-shell-set-bp2 (bp &optional no-show) | 3443 | ;; Get sources for this routine in the sources list |
| 3439 | "Use results of breakpoint and sources query to set bp. | 3444 | (idlwave-shell-module-source-query (idlwave-shell-bp-get bp 'module)) |
| 3440 | Use the count argument with IDLs breakpoint command. | ||
| 3441 | We treat a count of 1 as a temporary breakpoint. | ||
| 3442 | Counts greater than 1 use the IDL AFTER=count keyword to break | ||
| 3443 | only after reaching the statement count times." | ||
| 3444 | (let* | 3445 | (let* |
| 3445 | ((arg (idlwave-shell-bp-get bp 'count)) | 3446 | ((arg (idlwave-shell-bp-get bp 'count)) |
| 3446 | (key (cond | 3447 | (key (cond |
| @@ -3450,32 +3451,35 @@ only after reaching the statement count times." | |||
| 3450 | ((> arg 1) | 3451 | ((> arg 1) |
| 3451 | (format ",after=%d" arg)))) | 3452 | (format ",after=%d" arg)))) |
| 3452 | (condition (idlwave-shell-bp-get bp 'condition)) | 3453 | (condition (idlwave-shell-bp-get bp 'condition)) |
| 3453 | (key (concat key | 3454 | (disabled (idlwave-shell-bp-get bp 'disabled)) |
| 3455 | (key (concat key | ||
| 3454 | (if condition (concat ",CONDITION=\"" condition "\"")))) | 3456 | (if condition (concat ",CONDITION=\"" condition "\"")))) |
| 3457 | (key (concat key (if disabled ",/DISABLE"))) | ||
| 3455 | (line (idlwave-shell-bp-get bp 'line))) | 3458 | (line (idlwave-shell-bp-get bp 'line))) |
| 3456 | (idlwave-shell-send-command | 3459 | (idlwave-shell-send-command |
| 3457 | (concat "breakpoint,'" | 3460 | (concat "breakpoint,'" |
| 3458 | (idlwave-shell-sources-bp bp) "'," | 3461 | (idlwave-shell-sources-bp bp) "'," |
| 3459 | (if (integerp line) (setq line (int-to-string line))) | 3462 | (if (integerp line) (setq line (int-to-string line))) |
| 3460 | key) | 3463 | key) |
| 3461 | ;; Check for failure and look for breakpoint in IDL's list | 3464 | ;; Check for failure and adjust breakpoint to match IDL's list |
| 3462 | `(progn | 3465 | `(progn |
| 3463 | (if (idlwave-shell-set-bp-check (quote ,bp)) | 3466 | (if (idlwave-shell-set-bp-check (quote ,bp)) |
| 3464 | (idlwave-shell-set-bp3 (quote ,bp) (quote ,no-show)))) | 3467 | (idlwave-shell-set-bp-adjust (quote ,bp) (quote ,no-show)))) |
| 3465 | ;; hide output? | 3468 | ;; hide output? |
| 3466 | (idlwave-shell-hide-p 'breakpoint) | 3469 | (idlwave-shell-hide-p 'breakpoint) |
| 3467 | 'preempt t))) | 3470 | 'preempt t))) |
| 3468 | 3471 | ||
| 3469 | (defun idlwave-shell-set-bp3 (bp &optional no-show) | 3472 | (defun idlwave-shell-set-bp-adjust (bp &optional no-show) |
| 3470 | "Find the breakpoint in IDL's internal list of breakpoints." | 3473 | "Find the breakpoint in IDL's internal list of breakpoints." |
| 3471 | (idlwave-shell-send-command idlwave-shell-bp-query | 3474 | (idlwave-shell-send-command |
| 3472 | `(progn | 3475 | idlwave-shell-bp-query |
| 3473 | (idlwave-shell-filter-bp (quote ,no-show)) | 3476 | `(progn |
| 3474 | (idlwave-shell-new-bp (quote ,bp)) | 3477 | (idlwave-shell-filter-bp 'no-show) |
| 3475 | (unless (quote ,no-show) | 3478 | (idlwave-shell-new-bp (quote ,bp)) |
| 3476 | (idlwave-shell-update-bp-overlays))) | 3479 | (unless (quote ,no-show) |
| 3477 | 'hide | 3480 | (idlwave-shell-update-bp-overlays))) |
| 3478 | 'preempt)) | 3481 | 'hide |
| 3482 | 'preempt)) | ||
| 3479 | 3483 | ||
| 3480 | (defun idlwave-shell-find-bp (frame) | 3484 | (defun idlwave-shell-find-bp (frame) |
| 3481 | "Return breakpoint from `idlwave-shell-bp-alist' for frame. | 3485 | "Return breakpoint from `idlwave-shell-bp-alist' for frame. |
| @@ -3526,10 +3530,14 @@ considered the new breakpoint if the file name of frame matches." | |||
| 3526 | "Alist of overlays marking breakpoints") | 3530 | "Alist of overlays marking breakpoints") |
| 3527 | (defvar idlwave-shell-bp-glyph) | 3531 | (defvar idlwave-shell-bp-glyph) |
| 3528 | 3532 | ||
| 3533 | (defvar idlwave-shell-debug-line-map (make-sparse-keymap)) | ||
| 3534 | (define-key idlwave-shell-debug-line-map | ||
| 3535 | (if (featurep 'xemacs) [button3] [mouse-3]) | ||
| 3536 | 'idlwave-shell-mouse-active-bp) | ||
| 3537 | |||
| 3529 | (defun idlwave-shell-update-bp-overlays () | 3538 | (defun idlwave-shell-update-bp-overlays () |
| 3530 | "Update the overlays which mark breakpoints in the source code. | 3539 | "Update the overlays which mark breakpoints in the source code. |
| 3531 | Existing overlays are recycled, in order to minimize consumption." | 3540 | Existing overlays are recycled, in order to minimize consumption." |
| 3532 | ;(message "Updating Overlays") | ||
| 3533 | (when idlwave-shell-mark-breakpoints | 3541 | (when idlwave-shell-mark-breakpoints |
| 3534 | (let ((ov-alist (copy-alist idlwave-shell-bp-overlays)) | 3542 | (let ((ov-alist (copy-alist idlwave-shell-bp-overlays)) |
| 3535 | (bp-list idlwave-shell-bp-alist) | 3543 | (bp-list idlwave-shell-bp-alist) |
| @@ -3538,14 +3546,14 @@ Existing overlays are recycled, in order to minimize consumption." | |||
| 3538 | ov ov-list bp buf old-buffers win) | 3546 | ov ov-list bp buf old-buffers win) |
| 3539 | 3547 | ||
| 3540 | ;; Delete the old overlays from their buffers | 3548 | ;; Delete the old overlays from their buffers |
| 3541 | (if ov-alist | 3549 | (if ov-alist |
| 3542 | (while (setq ov-list (pop ov-alist)) | 3550 | (while (setq ov-list (pop ov-alist)) |
| 3543 | (while (setq ov (pop (cdr ov-list))) | 3551 | (while (setq ov (pop (cdr ov-list))) |
| 3544 | (add-to-list 'old-buffers (overlay-buffer ov)) | 3552 | (add-to-list 'old-buffers (overlay-buffer ov)) |
| 3545 | (delete-overlay ov)))) | 3553 | (delete-overlay ov)))) |
| 3546 | 3554 | ||
| 3547 | (setq ov-alist idlwave-shell-bp-overlays | 3555 | (setq ov-alist idlwave-shell-bp-overlays |
| 3548 | idlwave-shell-bp-overlays | 3556 | idlwave-shell-bp-overlays |
| 3549 | (if idlwave-shell-bp-glyph | 3557 | (if idlwave-shell-bp-glyph |
| 3550 | (mapcar 'list (mapcar 'car idlwave-shell-bp-glyph)) | 3558 | (mapcar 'list (mapcar 'car idlwave-shell-bp-glyph)) |
| 3551 | (list (list 'bp)))) | 3559 | (list (list 'bp)))) |
| @@ -3569,16 +3577,23 @@ Existing overlays are recycled, in order to minimize consumption." | |||
| 3569 | (t 'bp-n))) | 3577 | (t 'bp-n))) |
| 3570 | (t 'bp)) | 3578 | (t 'bp)) |
| 3571 | 'bp)) | 3579 | 'bp)) |
| 3572 | (help-list | 3580 | (help-list |
| 3573 | (delq nil | 3581 | (delq nil |
| 3574 | (list | 3582 | (list |
| 3575 | (if count | 3583 | (if count |
| 3576 | (concat "n=" (int-to-string count))) | 3584 | (concat "after:" (int-to-string count))) |
| 3577 | (if condition | 3585 | (if condition |
| 3578 | (concat "condition: " condition)) | 3586 | (concat "condition:" condition)) |
| 3579 | (if disabled "disabled")))) | 3587 | (if disabled "disabled")))) |
| 3580 | (help-text (if help-list | 3588 | (help-text (concat |
| 3581 | (mapconcat 'identity help-list ","))) | 3589 | "BP " |
| 3590 | (int-to-string (idlwave-shell-bp-get bp)) | ||
| 3591 | (if help-list | ||
| 3592 | (concat | ||
| 3593 | " - " | ||
| 3594 | (mapconcat 'identity help-list ", "))) | ||
| 3595 | (if (and (not count) (not condition)) | ||
| 3596 | " (use mouse-3 for breakpoint actions)"))) | ||
| 3582 | (full-type (if disabled | 3597 | (full-type (if disabled |
| 3583 | (intern (concat (symbol-name type) | 3598 | (intern (concat (symbol-name type) |
| 3584 | "-disabled")) | 3599 | "-disabled")) |
| @@ -3586,9 +3601,10 @@ Existing overlays are recycled, in order to minimize consumption." | |||
| 3586 | (ov-existing (assq full-type ov-alist)) | 3601 | (ov-existing (assq full-type ov-alist)) |
| 3587 | (ov (or (and (cdr ov-existing) | 3602 | (ov (or (and (cdr ov-existing) |
| 3588 | (pop (cdr ov-existing))) | 3603 | (pop (cdr ov-existing))) |
| 3589 | (idlwave-shell-make-new-bp-overlay | 3604 | (idlwave-shell-make-new-bp-overlay type disabled))) |
| 3590 | type disabled help-text))) | ||
| 3591 | match) | 3605 | match) |
| 3606 | (if idlwave-shell-breakpoint-popup-menu | ||
| 3607 | (overlay-put ov 'help-echo help-text)) | ||
| 3592 | (move-overlay ov beg end) | 3608 | (move-overlay ov beg end) |
| 3593 | (if (setq match (assq full-type idlwave-shell-bp-overlays)) | 3609 | (if (setq match (assq full-type idlwave-shell-bp-overlays)) |
| 3594 | (push ov (cdr match)) | 3610 | (push ov (cdr match)) |
| @@ -3596,7 +3612,7 @@ Existing overlays are recycled, in order to minimize consumption." | |||
| 3596 | (list (list full-type ov))))) | 3612 | (list (list full-type ov))))) |
| 3597 | ;; Take care of margins if using a glyph | 3613 | ;; Take care of margins if using a glyph |
| 3598 | (when use-glyph | 3614 | (when use-glyph |
| 3599 | (if old-buffers | 3615 | (if old-buffers |
| 3600 | (setq old-buffers (delq (current-buffer) old-buffers))) | 3616 | (setq old-buffers (delq (current-buffer) old-buffers))) |
| 3601 | (if (fboundp 'set-specifier) ;; XEmacs | 3617 | (if (fboundp 'set-specifier) ;; XEmacs |
| 3602 | (set-specifier left-margin-width (cons (current-buffer) 2)) | 3618 | (set-specifier left-margin-width (cons (current-buffer) 2)) |
| @@ -3612,29 +3628,31 @@ Existing overlays are recycled, in order to minimize consumption." | |||
| 3612 | (if (setq win (get-buffer-window buf t)) | 3628 | (if (setq win (get-buffer-window buf t)) |
| 3613 | (set-window-buffer win buf)))))))) | 3629 | (set-window-buffer win buf)))))))) |
| 3614 | 3630 | ||
| 3615 | 3631 | (defun idlwave-shell-make-new-bp-overlay (&optional type disabled) | |
| 3616 | (defun idlwave-shell-make-new-bp-overlay (&optional type disabled help) | 3632 | "Make a new overlay for highlighting breakpoints. |
| 3617 | "Make a new overlay for highlighting breakpoints. | ||
| 3618 | 3633 | ||
| 3619 | This stuff is strongly dependant upon the version of Emacs. If TYPE | 3634 | This stuff is strongly dependant upon the version of Emacs. If TYPE |
| 3620 | is passed, make an overlay of that type ('bp or 'bp-cond, currently | 3635 | is passed, make an overlay of that type ('bp or 'bp-cond, currently |
| 3621 | only for glyphs). If HELP is set, use it to make a tooltip with that | 3636 | only for glyphs)." |
| 3622 | text popup." | ||
| 3623 | (let ((ov (make-overlay 1 1)) | 3637 | (let ((ov (make-overlay 1 1)) |
| 3624 | (use-glyph (and (memq idlwave-shell-mark-breakpoints '(t glyph)) | 3638 | (use-glyph (and (memq idlwave-shell-mark-breakpoints '(t glyph)) |
| 3625 | idlwave-shell-bp-glyph)) | 3639 | idlwave-shell-bp-glyph)) |
| 3626 | (type (or type 'bp)) | 3640 | (type (or type 'bp)) |
| 3627 | (face (if disabled | 3641 | (face (if disabled |
| 3628 | idlwave-shell-disabled-breakpoint-face | 3642 | idlwave-shell-disabled-breakpoint-face |
| 3629 | idlwave-shell-breakpoint-face))) | 3643 | idlwave-shell-breakpoint-face))) |
| 3630 | (if (featurep 'xemacs) | 3644 | (if (featurep 'xemacs) |
| 3631 | ;; This is XEmacs | 3645 | ;; This is XEmacs |
| 3632 | (progn | 3646 | (progn |
| 3633 | (cond | 3647 | (when idlwave-shell-breakpoint-popup-menu |
| 3648 | (set-extent-property ov 'mouse-face 'highlight) | ||
| 3649 | (set-extent-property ov 'keymap idlwave-shell-debug-line-map)) | ||
| 3650 | |||
| 3651 | (cond | ||
| 3634 | ;; tty's cannot display glyphs | 3652 | ;; tty's cannot display glyphs |
| 3635 | ((eq (console-type) 'tty) | 3653 | ((eq (console-type) 'tty) |
| 3636 | (set-extent-property ov 'face face)) | 3654 | (set-extent-property ov 'face face)) |
| 3637 | 3655 | ||
| 3638 | ;; use the glyph | 3656 | ;; use the glyph |
| 3639 | (use-glyph | 3657 | (use-glyph |
| 3640 | (let ((glyph (cdr (assq type idlwave-shell-bp-glyph)))) | 3658 | (let ((glyph (cdr (assq type idlwave-shell-bp-glyph)))) |
| @@ -3650,22 +3668,23 @@ text popup." | |||
| 3650 | (t nil)) | 3668 | (t nil)) |
| 3651 | (set-extent-priority ov -1)) ; make stop line face prevail | 3669 | (set-extent-priority ov -1)) ; make stop line face prevail |
| 3652 | ;; This is Emacs | 3670 | ;; This is Emacs |
| 3671 | (when idlwave-shell-breakpoint-popup-menu | ||
| 3672 | (overlay-put ov 'mouse-face 'highlight) | ||
| 3673 | (overlay-put ov 'keymap idlwave-shell-debug-line-map)) | ||
| 3653 | (cond | 3674 | (cond |
| 3654 | (window-system | 3675 | (window-system |
| 3655 | (if use-glyph | 3676 | (if use-glyph |
| 3656 | (let ((image-props (cdr (assq type idlwave-shell-bp-glyph))) | 3677 | (let ((image-props (cdr (assq type idlwave-shell-bp-glyph))) |
| 3657 | string) | 3678 | string) |
| 3658 | 3679 | ||
| 3659 | (if disabled (setq image-props | 3680 | (if disabled (setq image-props |
| 3660 | (append image-props | 3681 | (append image-props |
| 3661 | (list :conversion 'disabled)))) | 3682 | (list :conversion 'disabled)))) |
| 3662 | (setq string | 3683 | (setq string |
| 3663 | (propertize "@" | 3684 | (propertize "@" |
| 3664 | 'display | 3685 | 'display |
| 3665 | (list (list 'margin 'left-margin) | 3686 | (list (list 'margin 'left-margin) |
| 3666 | image-props) | 3687 | image-props))) |
| 3667 | 'mouse-face 'highlight | ||
| 3668 | 'help-echo help)) | ||
| 3669 | (overlay-put ov 'before-string string)) | 3688 | (overlay-put ov 'before-string string)) |
| 3670 | ;; just the face | 3689 | ;; just the face |
| 3671 | (overlay-put ov 'face face))) | 3690 | (overlay-put ov 'face face))) |
| @@ -3678,6 +3697,54 @@ text popup." | |||
| 3678 | (t nil))) | 3697 | (t nil))) |
| 3679 | ov)) | 3698 | ov)) |
| 3680 | 3699 | ||
| 3700 | (defun idlwave-shell-mouse-active-bp (ev) | ||
| 3701 | "Does right-click mouse action on breakpoint lines." | ||
| 3702 | (interactive "e") | ||
| 3703 | (if ev (mouse-set-point ev)) | ||
| 3704 | (let ((bp (idlwave-shell-find-bp (idlwave-shell-current-frame))) | ||
| 3705 | index condition count select cmd disabled) | ||
| 3706 | (unless bp | ||
| 3707 | (error "Breakpoint not found")) | ||
| 3708 | (setq index (int-to-string (idlwave-shell-bp-get bp)) | ||
| 3709 | condition (idlwave-shell-bp-get bp 'condition) | ||
| 3710 | cmd (idlwave-shell-bp-get bp 'cmd) | ||
| 3711 | count (idlwave-shell-bp-get bp 'count) | ||
| 3712 | disabled (idlwave-shell-bp-get bp 'disabled)) | ||
| 3713 | (setq select (idlwave-popup-select | ||
| 3714 | ev | ||
| 3715 | (delq nil | ||
| 3716 | (list (if disabled "Enable" "Disable") | ||
| 3717 | "Clear" | ||
| 3718 | "Clear All" | ||
| 3719 | (if condition "Remove Condition" "Add Condition") | ||
| 3720 | (if condition "Change Condition") | ||
| 3721 | (if count "Remove Repeat Count" | ||
| 3722 | "Add Repeat Count") | ||
| 3723 | (if count "Change Repeat Count"))) | ||
| 3724 | (concat "BreakPoint " index))) | ||
| 3725 | (if select | ||
| 3726 | (cond | ||
| 3727 | ((string-equal select "Clear All") | ||
| 3728 | (idlwave-shell-clear-all-bp)) | ||
| 3729 | ((string-equal select "Clear") | ||
| 3730 | (idlwave-shell-clear-current-bp)) | ||
| 3731 | ((string-match "Condition" select) | ||
| 3732 | (idlwave-shell-break-here count cmd | ||
| 3733 | (if (or (not condition) | ||
| 3734 | (string-match "Change" select)) | ||
| 3735 | (read-string "Break Condition: ")) | ||
| 3736 | disabled)) | ||
| 3737 | ((string-match "Count" select) | ||
| 3738 | (idlwave-shell-break-here (if (or (not count) | ||
| 3739 | (string-match "Change" select)) | ||
| 3740 | (string-to-number | ||
| 3741 | (read-string "Break After Count: "))) | ||
| 3742 | cmd condition disabled)) | ||
| 3743 | ((string-match "able$" select) | ||
| 3744 | (idlwave-shell-toggle-enable-current-bp)) | ||
| 3745 | (t | ||
| 3746 | (message "Unimplemented: %s" select)))))) | ||
| 3747 | |||
| 3681 | (defun idlwave-shell-edit-default-command-line (arg) | 3748 | (defun idlwave-shell-edit-default-command-line (arg) |
| 3682 | "Edit the current execute command." | 3749 | "Edit the current execute command." |
| 3683 | (interactive "P") | 3750 | (interactive "P") |
| @@ -3689,14 +3756,14 @@ text popup." | |||
| 3689 | Also with prefix arg, ask for the command. You can also use the command | 3756 | Also with prefix arg, ask for the command. You can also use the command |
| 3690 | `idlwave-shell-edit-default-command-line' to edit the line." | 3757 | `idlwave-shell-edit-default-command-line' to edit the line." |
| 3691 | (interactive "P") | 3758 | (interactive "P") |
| 3692 | (cond | 3759 | (cond |
| 3693 | ((equal arg '(16)) | 3760 | ((equal arg '(16)) |
| 3694 | (setq idlwave-shell-command-line-to-execute nil)) | 3761 | (setq idlwave-shell-command-line-to-execute nil)) |
| 3695 | ((equal arg '(4)) | 3762 | ((equal arg '(4)) |
| 3696 | (setq idlwave-shell-command-line-to-execute | 3763 | (setq idlwave-shell-command-line-to-execute |
| 3697 | (read-string "IDL> " idlwave-shell-command-line-to-execute)))) | 3764 | (read-string "IDL> " idlwave-shell-command-line-to-execute)))) |
| 3698 | (idlwave-shell-reset 'hidden) | 3765 | (idlwave-shell-reset 'hidden) |
| 3699 | (idlwave-shell-send-command | 3766 | (idlwave-shell-send-command |
| 3700 | (or idlwave-shell-command-line-to-execute | 3767 | (or idlwave-shell-command-line-to-execute |
| 3701 | (with-current-buffer (idlwave-shell-buffer) | 3768 | (with-current-buffer (idlwave-shell-buffer) |
| 3702 | (ring-ref comint-input-ring 0))) | 3769 | (ring-ref comint-input-ring 0))) |
| @@ -3706,7 +3773,7 @@ Also with prefix arg, ask for the command. You can also use the command | |||
| 3706 | "Save file and run it in IDL. | 3773 | "Save file and run it in IDL. |
| 3707 | Runs `save-buffer' and sends a '.RUN' command for the associated file to IDL. | 3774 | Runs `save-buffer' and sends a '.RUN' command for the associated file to IDL. |
| 3708 | When called from the shell buffer, re-run the file which was last handled by | 3775 | When called from the shell buffer, re-run the file which was last handled by |
| 3709 | one of the save-and-.. commands." | 3776 | one of the save-and-.. commands." |
| 3710 | (interactive) | 3777 | (interactive) |
| 3711 | (idlwave-shell-save-and-action 'run)) | 3778 | (idlwave-shell-save-and-action 'run)) |
| 3712 | 3779 | ||
| @@ -3722,7 +3789,7 @@ one of the save-and-.. commands." | |||
| 3722 | "Save file and batch it in IDL. | 3789 | "Save file and batch it in IDL. |
| 3723 | Runs `save-buffer' and sends a '@file' command for the associated file to IDL. | 3790 | Runs `save-buffer' and sends a '@file' command for the associated file to IDL. |
| 3724 | When called from the shell buffer, re-batch the file which was last handled by | 3791 | When called from the shell buffer, re-batch the file which was last handled by |
| 3725 | one of the save-and-.. commands." | 3792 | one of the save-and-.. commands." |
| 3726 | (interactive) | 3793 | (interactive) |
| 3727 | (idlwave-shell-save-and-action 'batch)) | 3794 | (idlwave-shell-save-and-action 'batch)) |
| 3728 | 3795 | ||
| @@ -3762,7 +3829,7 @@ handled by this command." | |||
| 3762 | 'idlwave-shell-maybe-update-routine-info | 3829 | 'idlwave-shell-maybe-update-routine-info |
| 3763 | (if (idlwave-shell-hide-p 'run) 'mostly) nil t) | 3830 | (if (idlwave-shell-hide-p 'run) 'mostly) nil t) |
| 3764 | (idlwave-shell-bp-query)) | 3831 | (idlwave-shell-bp-query)) |
| 3765 | (let ((msg (format "No such file %s" | 3832 | (let ((msg (format "No such file %s" |
| 3766 | idlwave-shell-last-save-and-action-file))) | 3833 | idlwave-shell-last-save-and-action-file))) |
| 3767 | (setq idlwave-shell-last-save-and-action-file nil) | 3834 | (setq idlwave-shell-last-save-and-action-file nil) |
| 3768 | (error msg)))) | 3835 | (error msg)))) |
| @@ -3785,17 +3852,42 @@ Elements of the alist have the form: | |||
| 3785 | 3852 | ||
| 3786 | (module name . (source-file-truename idlwave-internal-filename)).") | 3853 | (module name . (source-file-truename idlwave-internal-filename)).") |
| 3787 | 3854 | ||
| 3855 | (defun idlwave-shell-module-source-query (module) | ||
| 3856 | "Determine the source file for a given module." | ||
| 3857 | (if module | ||
| 3858 | (idlwave-shell-send-command | ||
| 3859 | (format "print,(routine_info('%s',/SOURCE)).PATH" module) | ||
| 3860 | `(idlwave-shell-module-source-filter ,module) | ||
| 3861 | 'hide))) | ||
| 3862 | |||
| 3863 | (defun idlwave-shell-module-source-filter (module) | ||
| 3864 | "Get module source, and update idlwave-shell-sources-alist." | ||
| 3865 | (let ((old (assoc (upcase module) idlwave-shell-sources-alist)) | ||
| 3866 | filename) | ||
| 3867 | (if (string-match "\.PATH *[\n\r]\\([^\r\n]+\\)[\n\r]" | ||
| 3868 | idlwave-shell-command-output) | ||
| 3869 | (setq filename (substring idlwave-shell-command-output | ||
| 3870 | (match-beginning 1) (match-end 1))) | ||
| 3871 | (error "No file matching module found.")) | ||
| 3872 | (if old | ||
| 3873 | (setcdr old (list (idlwave-shell-file-name filename) filename)) | ||
| 3874 | (setq idlwave-shell-sources-alist | ||
| 3875 | (append idlwave-shell-sources-alist | ||
| 3876 | (list (cons (upcase module) | ||
| 3877 | (list (idlwave-shell-file-name filename) | ||
| 3878 | filename)))))))) | ||
| 3879 | |||
| 3788 | (defun idlwave-shell-sources-query () | 3880 | (defun idlwave-shell-sources-query () |
| 3789 | "Determine source files for IDL compiled procedures. | 3881 | "Determine source files for all IDL compiled procedures. |
| 3790 | Queries IDL using the string in `idlwave-shell-sources-query'." | 3882 | Queries IDL using the string in `idlwave-shell-sources-query'." |
| 3791 | ' (interactive) | 3883 | (interactive) |
| 3792 | (idlwave-shell-send-command idlwave-shell-sources-query | 3884 | (idlwave-shell-send-command idlwave-shell-sources-query |
| 3793 | 'idlwave-shell-sources-filter | 3885 | 'idlwave-shell-sources-filter |
| 3794 | 'hide)) | 3886 | 'hide)) |
| 3795 | 3887 | ||
| 3796 | (defun idlwave-shell-sources-filter () | 3888 | (defun idlwave-shell-sources-filter () |
| 3797 | "Get source files from `idlwave-shell-sources-query' output. | 3889 | "Get source files from `idlwave-shell-sources-query' output. |
| 3798 | Create `idlwave-shell-sources-alist' consisting of | 3890 | Create `idlwave-shell-sources-alist' consisting of |
| 3799 | list elements of the form: | 3891 | list elements of the form: |
| 3800 | (module name . (source-file-truename idlwave-internal-filename))." | 3892 | (module name . (source-file-truename idlwave-internal-filename))." |
| 3801 | (save-excursion | 3893 | (save-excursion |
| @@ -3880,7 +3972,7 @@ list elements of the form: | |||
| 3880 | (list | 3972 | (list |
| 3881 | (save-match-data | 3973 | (save-match-data |
| 3882 | (idlwave-shell-file-name | 3974 | (idlwave-shell-file-name |
| 3883 | (buffer-substring (match-beginning 1 ) | 3975 | (buffer-substring (match-beginning 1 ) |
| 3884 | (match-end 1)))) | 3976 | (match-end 1)))) |
| 3885 | (string-to-number | 3977 | (string-to-number |
| 3886 | (buffer-substring (match-beginning 2) | 3978 | (buffer-substring (match-beginning 2) |
| @@ -3947,13 +4039,13 @@ Otherwise, just expand the file name." | |||
| 3947 | 4039 | ||
| 3948 | ;; The mouse bindings for PRINT and HELP | 4040 | ;; The mouse bindings for PRINT and HELP |
| 3949 | (idlwave-shell-define-key-both | 4041 | (idlwave-shell-define-key-both |
| 3950 | (if (featurep 'xemacs) | 4042 | (if (featurep 'xemacs) |
| 3951 | [(shift button2)] | 4043 | [(shift button2)] |
| 3952 | [(shift down-mouse-2)]) | 4044 | [(shift down-mouse-2)]) |
| 3953 | 'idlwave-shell-mouse-print) | 4045 | 'idlwave-shell-mouse-print) |
| 3954 | (idlwave-shell-define-key-both | 4046 | (idlwave-shell-define-key-both |
| 3955 | (if (featurep 'xemacs) | 4047 | (if (featurep 'xemacs) |
| 3956 | [(control meta button2)] | 4048 | [(control meta button2)] |
| 3957 | [(control meta down-mouse-2)]) | 4049 | [(control meta down-mouse-2)]) |
| 3958 | 'idlwave-shell-mouse-help) | 4050 | 'idlwave-shell-mouse-help) |
| 3959 | (idlwave-shell-define-key-both | 4051 | (idlwave-shell-define-key-both |
| @@ -3962,14 +4054,14 @@ Otherwise, just expand the file name." | |||
| 3962 | [(control shift down-mouse-2)]) | 4054 | [(control shift down-mouse-2)]) |
| 3963 | 'idlwave-shell-examine-select) | 4055 | 'idlwave-shell-examine-select) |
| 3964 | ;; Add this one from the idlwave-mode-map | 4056 | ;; Add this one from the idlwave-mode-map |
| 3965 | (define-key idlwave-shell-mode-map | 4057 | (define-key idlwave-shell-mode-map |
| 3966 | (if (featurep 'xemacs) | 4058 | (if (featurep 'xemacs) |
| 3967 | [(shift button3)] | 4059 | [(shift button3)] |
| 3968 | [(shift mouse-3)]) | 4060 | [(shift mouse-3)]) |
| 3969 | 'idlwave-mouse-context-help) | 4061 | 'idlwave-mouse-context-help) |
| 3970 | 4062 | ||
| 3971 | ;; For Emacs, we need to turn off the button release events. | 4063 | ;; For Emacs, we need to turn off the button release events. |
| 3972 | (defun idlwave-shell-mouse-nop (event) | 4064 | (defun idlwave-shell-mouse-nop (event) |
| 3973 | (interactive "e")) | 4065 | (interactive "e")) |
| 3974 | (unless (featurep 'xemacs) | 4066 | (unless (featurep 'xemacs) |
| 3975 | (idlwave-shell-define-key-both | 4067 | (idlwave-shell-define-key-both |
| @@ -3979,7 +4071,7 @@ Otherwise, just expand the file name." | |||
| 3979 | (idlwave-shell-define-key-both | 4071 | (idlwave-shell-define-key-both |
| 3980 | [(control meta mouse-2)] 'idlwave-shell-mouse-nop)) | 4072 | [(control meta mouse-2)] 'idlwave-shell-mouse-nop)) |
| 3981 | 4073 | ||
| 3982 | 4074 | ||
| 3983 | ;; The following set of bindings is used to bind the debugging keys. | 4075 | ;; The following set of bindings is used to bind the debugging keys. |
| 3984 | ;; If `idlwave-shell-activate-prefix-keybindings' is non-nil, the | 4076 | ;; If `idlwave-shell-activate-prefix-keybindings' is non-nil, the |
| 3985 | ;; first key in the list gets bound the C-c C-d prefix map. If | 4077 | ;; first key in the list gets bound the C-c C-d prefix map. If |
| @@ -3988,10 +4080,10 @@ Otherwise, just expand the file name." | |||
| 3988 | ;; `idlwave-mode-map' and `idlwave-shell-mode-map'. The next list | 4080 | ;; `idlwave-mode-map' and `idlwave-shell-mode-map'. The next list |
| 3989 | ;; item, if non-nil, means to bind this as a single key in the | 4081 | ;; item, if non-nil, means to bind this as a single key in the |
| 3990 | ;; electric-debug-mode-map. | 4082 | ;; electric-debug-mode-map. |
| 3991 | ;; | 4083 | ;; |
| 3992 | ;; [C-c C-d]-binding debug-modifier-key command bind-electric-debug buf-only | 4084 | ;; [C-c C-d]-binding debug-modifier-key command bind-electric-debug buf-only |
| 3993 | ;; Used keys: abcdef hijklmnopqrstuvwxyz | 4085 | ;; Used keys: abcdef hijklmnopqrstuvwxyz |
| 3994 | ;; Unused keys: g | 4086 | ;; Unused keys: g |
| 3995 | (let* ((specs | 4087 | (let* ((specs |
| 3996 | '(([(control ?b)] ?b idlwave-shell-break-here t t) | 4088 | '(([(control ?b)] ?b idlwave-shell-break-here t t) |
| 3997 | ([(control ?i)] ?i idlwave-shell-break-in t t) | 4089 | ([(control ?i)] ?i idlwave-shell-break-in t t) |
| @@ -4041,10 +4133,10 @@ Otherwise, just expand the file name." | |||
| 4041 | electric (nth 3 s) | 4133 | electric (nth 3 s) |
| 4042 | only-buffer (nth 4 s) | 4134 | only-buffer (nth 4 s) |
| 4043 | cannotshift (and shift (char-valid-p c2) (eq c2 (upcase c2)))) | 4135 | cannotshift (and shift (char-valid-p c2) (eq c2 (upcase c2)))) |
| 4044 | 4136 | ||
| 4045 | ;; The regular prefix keymap. | 4137 | ;; The regular prefix keymap. |
| 4046 | (when (and idlwave-shell-activate-prefix-keybindings k1) | 4138 | (when (and idlwave-shell-activate-prefix-keybindings k1) |
| 4047 | (unless only-buffer | 4139 | (unless only-buffer |
| 4048 | (define-key idlwave-shell-mode-prefix-map k1 cmd)) | 4140 | (define-key idlwave-shell-mode-prefix-map k1 cmd)) |
| 4049 | (define-key idlwave-mode-prefix-map k1 cmd)) | 4141 | (define-key idlwave-mode-prefix-map k1 cmd)) |
| 4050 | ;; The debug modifier map | 4142 | ;; The debug modifier map |
| @@ -4058,24 +4150,24 @@ Otherwise, just expand the file name." | |||
| 4058 | (unless only-buffer (define-key idlwave-shell-mode-map k2 cmd)))) | 4150 | (unless only-buffer (define-key idlwave-shell-mode-map k2 cmd)))) |
| 4059 | ;; The electric debug single-keystroke map | 4151 | ;; The electric debug single-keystroke map |
| 4060 | (if (and electric (char-or-string-p c2)) | 4152 | (if (and electric (char-or-string-p c2)) |
| 4061 | (define-key idlwave-shell-electric-debug-mode-map (char-to-string c2) | 4153 | (define-key idlwave-shell-electric-debug-mode-map (char-to-string c2) |
| 4062 | cmd)))) | 4154 | cmd)))) |
| 4063 | 4155 | ||
| 4064 | ;; A few extras in the electric debug map | 4156 | ;; A few extras in the electric debug map |
| 4065 | (define-key idlwave-shell-electric-debug-mode-map " " 'idlwave-shell-step) | 4157 | (define-key idlwave-shell-electric-debug-mode-map " " 'idlwave-shell-step) |
| 4066 | (define-key idlwave-shell-electric-debug-mode-map "+" 'idlwave-shell-stack-up) | 4158 | (define-key idlwave-shell-electric-debug-mode-map "+" 'idlwave-shell-stack-up) |
| 4067 | (define-key idlwave-shell-electric-debug-mode-map "=" 'idlwave-shell-stack-up) | 4159 | (define-key idlwave-shell-electric-debug-mode-map "=" 'idlwave-shell-stack-up) |
| 4068 | (define-key idlwave-shell-electric-debug-mode-map "-" | 4160 | (define-key idlwave-shell-electric-debug-mode-map "-" |
| 4069 | 'idlwave-shell-stack-down) | 4161 | 'idlwave-shell-stack-down) |
| 4070 | (define-key idlwave-shell-electric-debug-mode-map "_" | 4162 | (define-key idlwave-shell-electric-debug-mode-map "_" |
| 4071 | 'idlwave-shell-stack-down) | 4163 | 'idlwave-shell-stack-down) |
| 4072 | (define-key idlwave-shell-electric-debug-mode-map "q" 'idlwave-shell-retall) | 4164 | (define-key idlwave-shell-electric-debug-mode-map "q" 'idlwave-shell-retall) |
| 4073 | (define-key idlwave-shell-electric-debug-mode-map "t" | 4165 | (define-key idlwave-shell-electric-debug-mode-map "t" |
| 4074 | '(lambda () (interactive) (idlwave-shell-send-command "help,/TRACE"))) | 4166 | '(lambda () (interactive) (idlwave-shell-send-command "help,/TRACE"))) |
| 4075 | (define-key idlwave-shell-electric-debug-mode-map [(control ??)] | 4167 | (define-key idlwave-shell-electric-debug-mode-map [(control ??)] |
| 4076 | 'idlwave-shell-electric-debug-help) | 4168 | 'idlwave-shell-electric-debug-help) |
| 4077 | (define-key idlwave-shell-electric-debug-mode-map "x" | 4169 | (define-key idlwave-shell-electric-debug-mode-map "x" |
| 4078 | '(lambda (arg) (interactive "P") | 4170 | '(lambda (arg) (interactive "P") |
| 4079 | (idlwave-shell-print arg nil nil t))) | 4171 | (idlwave-shell-print arg nil nil t))) |
| 4080 | 4172 | ||
| 4081 | 4173 | ||
| @@ -4096,12 +4188,12 @@ Otherwise, just expand the file name." | |||
| 4096 | (setq idlwave-shell-suppress-electric-debug nil)) | 4188 | (setq idlwave-shell-suppress-electric-debug nil)) |
| 4097 | (idlwave-shell-electric-debug-mode)) | 4189 | (idlwave-shell-electric-debug-mode)) |
| 4098 | 4190 | ||
| 4099 | (defvar idlwave-shell-electric-debug-read-only) | 4191 | (defvar idlwave-shell-electric-debug-read-only) |
| 4100 | (defvar idlwave-shell-electric-debug-buffers nil) | 4192 | (defvar idlwave-shell-electric-debug-buffers nil) |
| 4101 | 4193 | ||
| 4102 | (easy-mmode-define-minor-mode idlwave-shell-electric-debug-mode | 4194 | (easy-mmode-define-minor-mode idlwave-shell-electric-debug-mode |
| 4103 | "Toggle Electric Debug mode. | 4195 | "Toggle Electric Debug mode. |
| 4104 | With no argument, this command toggles the mode. | 4196 | With no argument, this command toggles the mode. |
| 4105 | Non-null prefix argument turns on the mode. | 4197 | Non-null prefix argument turns on the mode. |
| 4106 | Null prefix argument turns off the mode. | 4198 | Null prefix argument turns off the mode. |
| 4107 | 4199 | ||
| @@ -4111,7 +4203,7 @@ nil | |||
| 4111 | " *Debugging*" | 4203 | " *Debugging*" |
| 4112 | idlwave-shell-electric-debug-mode-map) | 4204 | idlwave-shell-electric-debug-mode-map) |
| 4113 | 4205 | ||
| 4114 | (add-hook | 4206 | (add-hook |
| 4115 | 'idlwave-shell-electric-debug-mode-on-hook | 4207 | 'idlwave-shell-electric-debug-mode-on-hook |
| 4116 | (lambda () | 4208 | (lambda () |
| 4117 | (set (make-local-variable 'idlwave-shell-electric-debug-read-only) | 4209 | (set (make-local-variable 'idlwave-shell-electric-debug-read-only) |
| @@ -4119,13 +4211,13 @@ idlwave-shell-electric-debug-mode-map) | |||
| 4119 | (setq buffer-read-only t) | 4211 | (setq buffer-read-only t) |
| 4120 | (add-to-list 'idlwave-shell-electric-debug-buffers (current-buffer)) | 4212 | (add-to-list 'idlwave-shell-electric-debug-buffers (current-buffer)) |
| 4121 | (if idlwave-shell-stop-line-overlay | 4213 | (if idlwave-shell-stop-line-overlay |
| 4122 | (overlay-put idlwave-shell-stop-line-overlay 'face | 4214 | (overlay-put idlwave-shell-stop-line-overlay 'face |
| 4123 | idlwave-shell-electric-stop-line-face)) | 4215 | idlwave-shell-electric-stop-line-face)) |
| 4124 | (if (facep 'fringe) | 4216 | (if (facep 'fringe) |
| 4125 | (set-face-foreground 'fringe idlwave-shell-electric-stop-color | 4217 | (set-face-foreground 'fringe idlwave-shell-electric-stop-color |
| 4126 | (selected-frame))))) | 4218 | (selected-frame))))) |
| 4127 | 4219 | ||
| 4128 | (add-hook | 4220 | (add-hook |
| 4129 | 'idlwave-shell-electric-debug-mode-off-hook | 4221 | 'idlwave-shell-electric-debug-mode-off-hook |
| 4130 | (lambda () | 4222 | (lambda () |
| 4131 | ;; Return to previous read-only state | 4223 | ;; Return to previous read-only state |
| @@ -4134,7 +4226,7 @@ idlwave-shell-electric-debug-mode-map) | |||
| 4134 | (setq idlwave-shell-electric-debug-buffers | 4226 | (setq idlwave-shell-electric-debug-buffers |
| 4135 | (delq (current-buffer) idlwave-shell-electric-debug-buffers)) | 4227 | (delq (current-buffer) idlwave-shell-electric-debug-buffers)) |
| 4136 | (if idlwave-shell-stop-line-overlay | 4228 | (if idlwave-shell-stop-line-overlay |
| 4137 | (overlay-put idlwave-shell-stop-line-overlay 'face | 4229 | (overlay-put idlwave-shell-stop-line-overlay 'face |
| 4138 | idlwave-shell-stop-line-face) | 4230 | idlwave-shell-stop-line-face) |
| 4139 | (if (facep 'fringe) | 4231 | (if (facep 'fringe) |
| 4140 | (set-face-foreground 'fringe (face-foreground 'default)))))) | 4232 | (set-face-foreground 'fringe (face-foreground 'default)))))) |
| @@ -4148,6 +4240,7 @@ idlwave-shell-electric-debug-mode-map) | |||
| 4148 | (force-mode-line-update)) | 4240 | (force-mode-line-update)) |
| 4149 | 4241 | ||
| 4150 | ;; Turn it off in all relevant buffers | 4242 | ;; Turn it off in all relevant buffers |
| 4243 | (defvar idlwave-shell-electric-debug-buffers nil) | ||
| 4151 | (defun idlwave-shell-electric-debug-all-off () | 4244 | (defun idlwave-shell-electric-debug-all-off () |
| 4152 | (setq idlwave-shell-suppress-electric-debug nil) | 4245 | (setq idlwave-shell-suppress-electric-debug nil) |
| 4153 | (let ((buffers idlwave-shell-electric-debug-buffers) | 4246 | (let ((buffers idlwave-shell-electric-debug-buffers) |
| @@ -4165,7 +4258,7 @@ idlwave-shell-electric-debug-mode-map) | |||
| 4165 | ;; Show the help text | 4258 | ;; Show the help text |
| 4166 | (defun idlwave-shell-electric-debug-help () | 4259 | (defun idlwave-shell-electric-debug-help () |
| 4167 | (interactive) | 4260 | (interactive) |
| 4168 | (with-output-to-temp-buffer "*IDLWAVE Electric Debug Help*" | 4261 | (with-output-to-temp-buffer "*IDLWAVE Electric Debug Help*" |
| 4169 | (princ idlwave-shell-electric-debug-help)) | 4262 | (princ idlwave-shell-electric-debug-help)) |
| 4170 | (let* ((current-window (selected-window)) | 4263 | (let* ((current-window (selected-window)) |
| 4171 | (window (get-buffer-window "*IDLWAVE Electric Debug Help*")) | 4264 | (window (get-buffer-window "*IDLWAVE Electric Debug Help*")) |
| @@ -4180,7 +4273,7 @@ idlwave-shell-electric-debug-mode-map) | |||
| 4180 | `("Debug" | 4273 | `("Debug" |
| 4181 | ["Electric Debug Mode" | 4274 | ["Electric Debug Mode" |
| 4182 | idlwave-shell-electric-debug-mode | 4275 | idlwave-shell-electric-debug-mode |
| 4183 | :style toggle :selected idlwave-shell-electric-debug-mode | 4276 | :style toggle :selected idlwave-shell-electric-debug-mode |
| 4184 | :included (eq major-mode 'idlwave-mode) :keys "C-c C-d C-v"] | 4277 | :included (eq major-mode 'idlwave-mode) :keys "C-c C-d C-v"] |
| 4185 | "--" | 4278 | "--" |
| 4186 | ("Compile & Run" | 4279 | ("Compile & Run" |
| @@ -4196,15 +4289,15 @@ idlwave-shell-electric-debug-mode-map) | |||
| 4196 | "--" | 4289 | "--" |
| 4197 | ["Goto Next Error" idlwave-shell-goto-next-error t] | 4290 | ["Goto Next Error" idlwave-shell-goto-next-error t] |
| 4198 | "--" | 4291 | "--" |
| 4199 | ["Compile and Run Region" idlwave-shell-run-region | 4292 | ["Compile and Run Region" idlwave-shell-run-region |
| 4200 | (eq major-mode 'idlwave-mode)] | 4293 | (eq major-mode 'idlwave-mode)] |
| 4201 | ["Evaluate Region" idlwave-shell-evaluate-region | 4294 | ["Evaluate Region" idlwave-shell-evaluate-region |
| 4202 | (eq major-mode 'idlwave-mode)] | 4295 | (eq major-mode 'idlwave-mode)] |
| 4203 | "--" | 4296 | "--" |
| 4204 | ["Execute Default Cmd" idlwave-shell-execute-default-command-line t] | 4297 | ["Execute Default Cmd" idlwave-shell-execute-default-command-line t] |
| 4205 | ["Edit Default Cmd" idlwave-shell-edit-default-command-line t]) | 4298 | ["Edit Default Cmd" idlwave-shell-edit-default-command-line t]) |
| 4206 | ("Breakpoints" | 4299 | ("Breakpoints" |
| 4207 | ["Set Breakpoint" idlwave-shell-break-here | 4300 | ["Set Breakpoint" idlwave-shell-break-here |
| 4208 | :keys "C-c C-d C-c" :active (eq major-mode 'idlwave-mode)] | 4301 | :keys "C-c C-d C-c" :active (eq major-mode 'idlwave-mode)] |
| 4209 | ("Set Special Breakpoint" | 4302 | ("Set Special Breakpoint" |
| 4210 | ["Set After Count Breakpoint" | 4303 | ["Set After Count Breakpoint" |
| @@ -4215,16 +4308,16 @@ idlwave-shell-electric-debug-mode-map) | |||
| 4215 | ["Set Condition Breakpoint" | 4308 | ["Set Condition Breakpoint" |
| 4216 | (idlwave-shell-break-here '(4)) | 4309 | (idlwave-shell-break-here '(4)) |
| 4217 | :active (eq major-mode 'idlwave-mode)]) | 4310 | :active (eq major-mode 'idlwave-mode)]) |
| 4218 | ["Break in Module" idlwave-shell-break-in | 4311 | ["Break in Module" idlwave-shell-break-in |
| 4219 | :keys "C-c C-d C-i" :active (eq major-mode 'idlwave-mode)] | 4312 | :keys "C-c C-d C-i" :active (eq major-mode 'idlwave-mode)] |
| 4220 | ["Break in this Module" idlwave-shell-break-this-module | 4313 | ["Break in this Module" idlwave-shell-break-this-module |
| 4221 | :keys "C-c C-d C-j" :active (eq major-mode 'idlwave-mode)] | 4314 | :keys "C-c C-d C-j" :active (eq major-mode 'idlwave-mode)] |
| 4222 | ["Clear Breakpoint" idlwave-shell-clear-current-bp t] | 4315 | ["Clear Breakpoint" idlwave-shell-clear-current-bp t] |
| 4223 | ["Clear All Breakpoints" idlwave-shell-clear-all-bp t] | 4316 | ["Clear All Breakpoints" idlwave-shell-clear-all-bp t] |
| 4224 | ["Disable/Enable Breakpoint" idlwave-shell-toggle-enable-current-bp t] | 4317 | ["Disable/Enable Breakpoint" idlwave-shell-toggle-enable-current-bp t] |
| 4225 | ["Goto Previous Breakpoint" idlwave-shell-goto-previous-bp | 4318 | ["Goto Previous Breakpoint" idlwave-shell-goto-previous-bp |
| 4226 | :keys "C-c C-d [" :active (eq major-mode 'idlwave-mode)] | 4319 | :keys "C-c C-d [" :active (eq major-mode 'idlwave-mode)] |
| 4227 | ["Goto Next Breakpoint" idlwave-shell-goto-next-bp | 4320 | ["Goto Next Breakpoint" idlwave-shell-goto-next-bp |
| 4228 | :keys "C-c C-d ]" :active (eq major-mode 'idlwave-mode)] | 4321 | :keys "C-c C-d ]" :active (eq major-mode 'idlwave-mode)] |
| 4229 | ["List All Breakpoints" idlwave-shell-list-all-bp t] | 4322 | ["List All Breakpoints" idlwave-shell-list-all-bp t] |
| 4230 | ["Resync Breakpoints" idlwave-shell-bp-query t]) | 4323 | ["Resync Breakpoints" idlwave-shell-bp-query t]) |
| @@ -4256,38 +4349,38 @@ idlwave-shell-electric-debug-mode-map) | |||
| 4256 | ["Redisplay and Sync" idlwave-shell-redisplay t]) | 4349 | ["Redisplay and Sync" idlwave-shell-redisplay t]) |
| 4257 | ("Show Commands" | 4350 | ("Show Commands" |
| 4258 | ["Everything" (if (eq idlwave-shell-show-commands 'everything) | 4351 | ["Everything" (if (eq idlwave-shell-show-commands 'everything) |
| 4259 | (progn | 4352 | (progn |
| 4260 | (setq idlwave-shell-show-commands | 4353 | (setq idlwave-shell-show-commands |
| 4261 | (get 'idlwave-shell-show-commands 'last-val)) | 4354 | (get 'idlwave-shell-show-commands 'last-val)) |
| 4262 | (put 'idlwave-shell-show-commands 'last-val nil)) | 4355 | (put 'idlwave-shell-show-commands 'last-val nil)) |
| 4263 | (put 'idlwave-shell-show-commands 'last-val | 4356 | (put 'idlwave-shell-show-commands 'last-val |
| 4264 | idlwave-shell-show-commands) | 4357 | idlwave-shell-show-commands) |
| 4265 | (setq idlwave-shell-show-commands 'everything)) | 4358 | (setq idlwave-shell-show-commands 'everything)) |
| 4266 | :style toggle :selected (and (not (listp idlwave-shell-show-commands)) | 4359 | :style toggle :selected (and (not (listp idlwave-shell-show-commands)) |
| 4267 | (eq idlwave-shell-show-commands | 4360 | (eq idlwave-shell-show-commands |
| 4268 | 'everything))] | 4361 | 'everything))] |
| 4269 | "--" | 4362 | "--" |
| 4270 | ["Compiling Commands" (idlwave-shell-add-or-remove-show 'run) | 4363 | ["Compiling Commands" (idlwave-shell-add-or-remove-show 'run) |
| 4271 | :style toggle | 4364 | :style toggle |
| 4272 | :selected (not (idlwave-shell-hide-p | 4365 | :selected (not (idlwave-shell-hide-p |
| 4273 | 'run | 4366 | 'run |
| 4274 | (get 'idlwave-shell-show-commands 'last-val))) | 4367 | (get 'idlwave-shell-show-commands 'last-val))) |
| 4275 | :active (not (eq idlwave-shell-show-commands 'everything))] | 4368 | :active (not (eq idlwave-shell-show-commands 'everything))] |
| 4276 | ["Breakpoint Commands" (idlwave-shell-add-or-remove-show 'breakpoint) | 4369 | ["Breakpoint Commands" (idlwave-shell-add-or-remove-show 'breakpoint) |
| 4277 | :style toggle | 4370 | :style toggle |
| 4278 | :selected (not (idlwave-shell-hide-p | 4371 | :selected (not (idlwave-shell-hide-p |
| 4279 | 'breakpoint | 4372 | 'breakpoint |
| 4280 | (get 'idlwave-shell-show-commands 'last-val))) | 4373 | (get 'idlwave-shell-show-commands 'last-val))) |
| 4281 | :active (not (eq idlwave-shell-show-commands 'everything))] | 4374 | :active (not (eq idlwave-shell-show-commands 'everything))] |
| 4282 | ["Debug Commands" (idlwave-shell-add-or-remove-show 'debug) | 4375 | ["Debug Commands" (idlwave-shell-add-or-remove-show 'debug) |
| 4283 | :style toggle | 4376 | :style toggle |
| 4284 | :selected (not (idlwave-shell-hide-p | 4377 | :selected (not (idlwave-shell-hide-p |
| 4285 | 'debug | 4378 | 'debug |
| 4286 | (get 'idlwave-shell-show-commands 'last-val))) | 4379 | (get 'idlwave-shell-show-commands 'last-val))) |
| 4287 | :active (not (eq idlwave-shell-show-commands 'everything))] | 4380 | :active (not (eq idlwave-shell-show-commands 'everything))] |
| 4288 | ["Miscellaneous Commands" (idlwave-shell-add-or-remove-show 'misc) | 4381 | ["Miscellaneous Commands" (idlwave-shell-add-or-remove-show 'misc) |
| 4289 | :style toggle | 4382 | :style toggle |
| 4290 | :selected (not (idlwave-shell-hide-p | 4383 | :selected (not (idlwave-shell-hide-p |
| 4291 | 'misc | 4384 | 'misc |
| 4292 | (get 'idlwave-shell-show-commands 'last-val))) | 4385 | (get 'idlwave-shell-show-commands 'last-val))) |
| 4293 | :active (not (eq idlwave-shell-show-commands 'everything))]) | 4386 | :active (not (eq idlwave-shell-show-commands 'everything))]) |
| @@ -4301,7 +4394,7 @@ idlwave-shell-electric-debug-mode-map) | |||
| 4301 | :style toggle :selected idlwave-shell-use-input-mode-magic]) | 4394 | :style toggle :selected idlwave-shell-use-input-mode-magic]) |
| 4302 | "--" | 4395 | "--" |
| 4303 | ["Update Working Dir" idlwave-shell-resync-dirs t] | 4396 | ["Update Working Dir" idlwave-shell-resync-dirs t] |
| 4304 | ["Save Path Info" | 4397 | ["Save Path Info" |
| 4305 | (idlwave-shell-send-command idlwave-shell-path-query | 4398 | (idlwave-shell-send-command idlwave-shell-path-query |
| 4306 | 'idlwave-shell-get-path-info | 4399 | 'idlwave-shell-get-path-info |
| 4307 | 'hide) | 4400 | 'hide) |
| @@ -4313,7 +4406,7 @@ idlwave-shell-electric-debug-mode-map) | |||
| 4313 | 4406 | ||
| 4314 | (if (or (featurep 'easymenu) (load "easymenu" t)) | 4407 | (if (or (featurep 'easymenu) (load "easymenu" t)) |
| 4315 | (progn | 4408 | (progn |
| 4316 | (easy-menu-define | 4409 | (easy-menu-define |
| 4317 | idlwave-mode-debug-menu idlwave-mode-map "IDL debugging menus" | 4410 | idlwave-mode-debug-menu idlwave-mode-map "IDL debugging menus" |
| 4318 | idlwave-shell-menu-def) | 4411 | idlwave-shell-menu-def) |
| 4319 | (easy-menu-define | 4412 | (easy-menu-define |
| @@ -4333,7 +4426,7 @@ idlwave-shell-electric-debug-mode-map) | |||
| 4333 | (defvar idlwave-shell-bp-glyph nil | 4426 | (defvar idlwave-shell-bp-glyph nil |
| 4334 | "The glyphs to mark breakpoint lines in the source code.") | 4427 | "The glyphs to mark breakpoint lines in the source code.") |
| 4335 | 4428 | ||
| 4336 | (let ((image-alist | 4429 | (let ((image-alist |
| 4337 | '((bp . "/* XPM */ | 4430 | '((bp . "/* XPM */ |
| 4338 | static char * file[] = { | 4431 | static char * file[] = { |
| 4339 | \"14 12 3 1\", | 4432 | \"14 12 3 1\", |
| @@ -4466,7 +4559,7 @@ static char * file[] = { | |||
| 4466 | \" .XXXX. \", | 4559 | \" .XXXX. \", |
| 4467 | \" .... \", | 4560 | \" .... \", |
| 4468 | \" \"};"))) im-cons im) | 4561 | \" \"};"))) im-cons im) |
| 4469 | 4562 | ||
| 4470 | (while (setq im-cons (pop image-alist)) | 4563 | (while (setq im-cons (pop image-alist)) |
| 4471 | (setq im (cond ((and (featurep 'xemacs) | 4564 | (setq im (cond ((and (featurep 'xemacs) |
| 4472 | (featurep 'xpm)) | 4565 | (featurep 'xpm)) |
| @@ -4479,7 +4572,7 @@ static char * file[] = { | |||
| 4479 | ((and (not (featurep 'xemacs)) | 4572 | ((and (not (featurep 'xemacs)) |
| 4480 | (fboundp 'image-type-available-p) | 4573 | (fboundp 'image-type-available-p) |
| 4481 | (image-type-available-p 'xpm)) | 4574 | (image-type-available-p 'xpm)) |
| 4482 | (list 'image :type 'xpm :data (cdr im-cons) | 4575 | (list 'image :type 'xpm :data (cdr im-cons) |
| 4483 | :ascent 'center)) | 4576 | :ascent 'center)) |
| 4484 | (t nil))) | 4577 | (t nil))) |
| 4485 | (if im (push (cons (car im-cons) im) idlwave-shell-bp-glyph)))) | 4578 | (if im (push (cons (car im-cons) im) idlwave-shell-bp-glyph)))) |
| @@ -4489,7 +4582,7 @@ static char * file[] = { | |||
| 4489 | 4582 | ||
| 4490 | ;;; Load the toolbar when wanted by the user. | 4583 | ;;; Load the toolbar when wanted by the user. |
| 4491 | 4584 | ||
| 4492 | (autoload 'idlwave-toolbar-toggle "idlw-toolbar" | 4585 | (autoload 'idlwave-toolbar-toggle "idlw-toolbar" |
| 4493 | "Toggle the IDLWAVE toolbar") | 4586 | "Toggle the IDLWAVE toolbar") |
| 4494 | (autoload 'idlwave-toolbar-add-everywhere "idlw-toolbar" | 4587 | (autoload 'idlwave-toolbar-add-everywhere "idlw-toolbar" |
| 4495 | "Add IDLWAVE toolbar") | 4588 | "Add IDLWAVE toolbar") |
diff --git a/lisp/progmodes/idlw-toolbar.el b/lisp/progmodes/idlw-toolbar.el index 48d1a24a091..dfd8c50529f 100644 --- a/lisp/progmodes/idlw-toolbar.el +++ b/lisp/progmodes/idlw-toolbar.el | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | ;;; idlw-toolbar.el --- a debugging toolbar for IDLWAVE | 1 | ;;; idlw-toolbar.el --- a debugging toolbar for IDLWAVE |
| 2 | ;; Copyright (c) 1999, 2000, 2001,2002 Free Software Foundation | 2 | ;; Copyright (c) 1999, 2000, 2001,2002,2004 Free Software Foundation |
| 3 | 3 | ||
| 4 | ;; Author: Carsten Dominik <dominik@astro.uva.nl> | 4 | ;; Author: Carsten Dominik <dominik@astro.uva.nl> |
| 5 | ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> | 5 | ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> |
| 6 | ;; Version: 5.5 | 6 | ;; Version: 5.7_22 |
| 7 | ;; Keywords: processes | 7 | ;; Keywords: processes |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index 273c3296180..902646bd81b 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el | |||
| @@ -1,12 +1,12 @@ | |||
| 1 | ;; idlwave.el --- IDL editing mode for GNU Emacs | 1 | ;; idlwave.el --- IDL editing mode for GNU Emacs |
| 2 | ;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005 | 2 | ;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005 |
| 3 | ;; Free Software Foundation | 3 | ;; Free Software Foundation |
| 4 | 4 | ||
| 5 | ;; Authors: J.D. Smith <jdsmith@as.arizona.edu> | 5 | ;; Authors: J.D. Smith <jdsmith@as.arizona.edu> |
| 6 | ;; Carsten Dominik <dominik@science.uva.nl> | 6 | ;; Carsten Dominik <dominik@science.uva.nl> |
| 7 | ;; Chris Chase <chase@att.com> | 7 | ;; Chris Chase <chase@att.com> |
| 8 | ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> | 8 | ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> |
| 9 | ;; Version: 5.5 | 9 | ;; Version: 5.7_22 |
| 10 | ;; Keywords: languages | 10 | ;; Keywords: languages |
| 11 | 11 | ||
| 12 | ;; This file is part of GNU Emacs. | 12 | ;; This file is part of GNU Emacs. |
| @@ -28,6 +28,8 @@ | |||
| 28 | 28 | ||
| 29 | ;;; Commentary: | 29 | ;;; Commentary: |
| 30 | 30 | ||
| 31 | ;; IDLWAVE enables feature-rich development and interaction with IDL. | ||
| 32 | |||
| 31 | ;; In the remotely distant past, based on pascal.el, though bears | 33 | ;; In the remotely distant past, based on pascal.el, though bears |
| 32 | ;; little resemblance to it now. | 34 | ;; little resemblance to it now. |
| 33 | ;; | 35 | ;; |
| @@ -70,7 +72,7 @@ | |||
| 70 | ;; of the documentation is available from the maintainers webpage (see | 72 | ;; of the documentation is available from the maintainers webpage (see |
| 71 | ;; SOURCE). | 73 | ;; SOURCE). |
| 72 | ;; | 74 | ;; |
| 73 | ;; | 75 | ;; |
| 74 | ;; ACKNOWLEDGMENTS | 76 | ;; ACKNOWLEDGMENTS |
| 75 | ;; =============== | 77 | ;; =============== |
| 76 | ;; | 78 | ;; |
| @@ -111,7 +113,7 @@ | |||
| 111 | ;; IDLWAVE support for the IDL-derived PV-WAVE CL language of Visual | 113 | ;; IDLWAVE support for the IDL-derived PV-WAVE CL language of Visual |
| 112 | ;; Numerics, Inc. is growing less and less complete as the two | 114 | ;; Numerics, Inc. is growing less and less complete as the two |
| 113 | ;; languages grow increasingly apart. The mode probably shouldn't | 115 | ;; languages grow increasingly apart. The mode probably shouldn't |
| 114 | ;; even have "WAVE" in it's title, but it's catchy, and was required | 116 | ;; even have "WAVE" in its title, but it's catchy, and was required |
| 115 | ;; to avoid conflict with the CORBA idl.el mode. Caveat WAVEor. | 117 | ;; to avoid conflict with the CORBA idl.el mode. Caveat WAVEor. |
| 116 | ;; | 118 | ;; |
| 117 | ;; Moving the point backwards in conjunction with abbrev expansion | 119 | ;; Moving the point backwards in conjunction with abbrev expansion |
| @@ -120,7 +122,7 @@ | |||
| 120 | ;; up inserting the character that expanded the abbrev after moving | 122 | ;; up inserting the character that expanded the abbrev after moving |
| 121 | ;; point backward, e.g., "\cl" expanded with a space becomes | 123 | ;; point backward, e.g., "\cl" expanded with a space becomes |
| 122 | ;; "LONG( )" with point before the close paren. This is solved by | 124 | ;; "LONG( )" with point before the close paren. This is solved by |
| 123 | ;; using a temporary function in `post-command-hook' - not pretty, | 125 | ;; using a temporary function in `post-command-hook' - not pretty, |
| 124 | ;; but it works. | 126 | ;; but it works. |
| 125 | ;; | 127 | ;; |
| 126 | ;; Tabs and spaces are treated equally as whitespace when filling a | 128 | ;; Tabs and spaces are treated equally as whitespace when filling a |
| @@ -159,6 +161,11 @@ | |||
| 159 | (unless (fboundp 'char-valid-p) | 161 | (unless (fboundp 'char-valid-p) |
| 160 | (defalias 'char-valid-p 'characterp)) | 162 | (defalias 'char-valid-p 'characterp)) |
| 161 | 163 | ||
| 164 | (if (not (fboundp 'cancel-timer)) | ||
| 165 | (condition-case nil | ||
| 166 | (require 'timer) | ||
| 167 | (error nil))) | ||
| 168 | |||
| 162 | (eval-and-compile | 169 | (eval-and-compile |
| 163 | ;; Kludge to allow `defcustom' for Emacs 19. | 170 | ;; Kludge to allow `defcustom' for Emacs 19. |
| 164 | (condition-case () (require 'custom) (error nil)) | 171 | (condition-case () (require 'custom) (error nil)) |
| @@ -166,13 +173,13 @@ | |||
| 166 | nil ;; We've got what we needed | 173 | nil ;; We've got what we needed |
| 167 | ;; We have the old or no custom-library, hack around it! | 174 | ;; We have the old or no custom-library, hack around it! |
| 168 | (defmacro defgroup (&rest args) nil) | 175 | (defmacro defgroup (&rest args) nil) |
| 169 | (defmacro defcustom (var value doc &rest args) | 176 | (defmacro defcustom (var value doc &rest args) |
| 170 | `(defvar ,var ,value ,doc)))) | 177 | `(defvar ,var ,value ,doc)))) |
| 171 | 178 | ||
| 172 | (defgroup idlwave nil | 179 | (defgroup idlwave nil |
| 173 | "Major mode for editing IDL .pro files" | 180 | "Major mode for editing IDL .pro files" |
| 174 | :tag "IDLWAVE" | 181 | :tag "IDLWAVE" |
| 175 | :link '(url-link :tag "Home Page" | 182 | :link '(url-link :tag "Home Page" |
| 176 | "http://idlwave.org") | 183 | "http://idlwave.org") |
| 177 | :link '(emacs-commentary-link :tag "Commentary in idlw-shell.el" | 184 | :link '(emacs-commentary-link :tag "Commentary in idlw-shell.el" |
| 178 | "idlw-shell.el") | 185 | "idlw-shell.el") |
| @@ -286,8 +293,8 @@ extends to the end of the match for the regular expression." | |||
| 286 | 293 | ||
| 287 | (defcustom idlwave-auto-fill-split-string t | 294 | (defcustom idlwave-auto-fill-split-string t |
| 288 | "*If non-nil then auto fill will split strings with the IDL `+' operator. | 295 | "*If non-nil then auto fill will split strings with the IDL `+' operator. |
| 289 | When the line end falls within a string, string concatenation with the | 296 | When the line end falls within a string, string concatenation with the |
| 290 | '+' operator will be used to distribute a long string over lines. | 297 | '+' operator will be used to distribute a long string over lines. |
| 291 | If nil and a string is split then a terminal beep and warning are issued. | 298 | If nil and a string is split then a terminal beep and warning are issued. |
| 292 | 299 | ||
| 293 | This variable is ignored when `idlwave-fill-comment-line-only' is | 300 | This variable is ignored when `idlwave-fill-comment-line-only' is |
| @@ -351,7 +358,7 @@ usually a good idea.." | |||
| 351 | Initializing the routine info can take long, in particular if a large | 358 | Initializing the routine info can take long, in particular if a large |
| 352 | library catalog is involved. When Emacs is idle for more than the number | 359 | library catalog is involved. When Emacs is idle for more than the number |
| 353 | of seconds specified by this variable, it starts the initialization. | 360 | of seconds specified by this variable, it starts the initialization. |
| 354 | The process is split into five steps, in order to keep possible work | 361 | The process is split into five steps, in order to keep possible work |
| 355 | interruption as short as possible. If one of the steps finishes, and no | 362 | interruption as short as possible. If one of the steps finishes, and no |
| 356 | user input has arrived in the mean time, initialization proceeds immediately | 363 | user input has arrived in the mean time, initialization proceeds immediately |
| 357 | to the next step. | 364 | to the next step. |
| @@ -403,7 +410,7 @@ t All available | |||
| 403 | (const :tag "When saving a buffer" save-buffer) | 410 | (const :tag "When saving a buffer" save-buffer) |
| 404 | (const :tag "After a buffer was killed" kill-buffer) | 411 | (const :tag "After a buffer was killed" kill-buffer) |
| 405 | (const :tag "After a buffer was compiled successfully, update shell info" compile-buffer)))) | 412 | (const :tag "After a buffer was compiled successfully, update shell info" compile-buffer)))) |
| 406 | 413 | ||
| 407 | (defcustom idlwave-rinfo-max-source-lines 5 | 414 | (defcustom idlwave-rinfo-max-source-lines 5 |
| 408 | "*Maximum number of source files displayed in the Routine Info window. | 415 | "*Maximum number of source files displayed in the Routine Info window. |
| 409 | When an integer, it is the maximum number of source files displayed. | 416 | When an integer, it is the maximum number of source files displayed. |
| @@ -436,7 +443,7 @@ value of `!DIR'. See also `idlwave-library-path'." | |||
| 436 | :group 'idlwave-routine-info | 443 | :group 'idlwave-routine-info |
| 437 | :type 'directory) | 444 | :type 'directory) |
| 438 | 445 | ||
| 439 | (defcustom idlwave-config-directory | 446 | (defcustom idlwave-config-directory |
| 440 | (convert-standard-filename "~/.idlwave") | 447 | (convert-standard-filename "~/.idlwave") |
| 441 | "*Directory for configuration files and user-library catalog." | 448 | "*Directory for configuration files and user-library catalog." |
| 442 | :group 'idlwave-routine-info | 449 | :group 'idlwave-routine-info |
| @@ -451,7 +458,7 @@ value of `!DIR'. See also `idlwave-library-path'." | |||
| 451 | (defcustom idlwave-special-lib-alist nil | 458 | (defcustom idlwave-special-lib-alist nil |
| 452 | "Alist of regular expressions matching special library directories. | 459 | "Alist of regular expressions matching special library directories. |
| 453 | When listing routine source locations, IDLWAVE gives a short hint where | 460 | When listing routine source locations, IDLWAVE gives a short hint where |
| 454 | the file defining the routine is located. By default it lists `SystemLib' | 461 | the file defining the routine is located. By default it lists `SystemLib' |
| 455 | for routines in the system library `!DIR/lib' and `Library' for anything | 462 | for routines in the system library `!DIR/lib' and `Library' for anything |
| 456 | else. This variable can define additional types. The car of each entry | 463 | else. This variable can define additional types. The car of each entry |
| 457 | is a regular expression matching the file name (they normally will match | 464 | is a regular expression matching the file name (they normally will match |
| @@ -462,7 +469,7 @@ chars are allowed." | |||
| 462 | (cons regexp string))) | 469 | (cons regexp string))) |
| 463 | 470 | ||
| 464 | (defcustom idlwave-auto-write-paths t | 471 | (defcustom idlwave-auto-write-paths t |
| 465 | "Write out path (!PATH) and system directory (!DIR) info automatically. | 472 | "Write out path (!PATH) and system directory (!DIR) info automatically. |
| 466 | Path info is needed to locate library catalog files. If non-nil, | 473 | Path info is needed to locate library catalog files. If non-nil, |
| 467 | whenever the path-list changes as a result of shell-query, etc., it is | 474 | whenever the path-list changes as a result of shell-query, etc., it is |
| 468 | written to file. Otherwise, the menu option \"Write Paths\" can be | 475 | written to file. Otherwise, the menu option \"Write Paths\" can be |
| @@ -493,7 +500,7 @@ used to force a write." | |||
| 493 | This variable determines the case (UPPER/lower/Capitalized...) of | 500 | This variable determines the case (UPPER/lower/Capitalized...) of |
| 494 | words inserted into the buffer by completion. The preferred case can | 501 | words inserted into the buffer by completion. The preferred case can |
| 495 | be specified separately for routine names, keywords, classes and | 502 | be specified separately for routine names, keywords, classes and |
| 496 | methods. | 503 | methods. |
| 497 | This alist should therefore have entries for `routine' (normal | 504 | This alist should therefore have entries for `routine' (normal |
| 498 | functions and procedures, i.e. non-methods), `keyword', `class', and | 505 | functions and procedures, i.e. non-methods), `keyword', `class', and |
| 499 | `method'. Plausible values are | 506 | `method'. Plausible values are |
| @@ -580,7 +587,7 @@ certain methods this assumption is almost always true. The methods | |||
| 580 | for which to assume this can be set here." | 587 | for which to assume this can be set here." |
| 581 | :group 'idlwave-routine-info | 588 | :group 'idlwave-routine-info |
| 582 | :type '(repeat (regexp :tag "Match method:"))) | 589 | :type '(repeat (regexp :tag "Match method:"))) |
| 583 | 590 | ||
| 584 | 591 | ||
| 585 | (defcustom idlwave-completion-show-classes 1 | 592 | (defcustom idlwave-completion-show-classes 1 |
| 586 | "*Number of classes to show when completing object methods and keywords. | 593 | "*Number of classes to show when completing object methods and keywords. |
| @@ -645,7 +652,7 @@ should contain at least two elements: (method-default . VALUE) and | |||
| 645 | specify if the class should be found during method and keyword | 652 | specify if the class should be found during method and keyword |
| 646 | completion, respectively. | 653 | completion, respectively. |
| 647 | 654 | ||
| 648 | The alist may have additional entries specifying exceptions from the | 655 | The alist may have additional entries specifying exceptions from the |
| 649 | keyword completion rule for specific methods, like INIT or | 656 | keyword completion rule for specific methods, like INIT or |
| 650 | GETPROPERTY. In order to turn on class specification for the INIT | 657 | GETPROPERTY. In order to turn on class specification for the INIT |
| 651 | method, add an entry (\"INIT\" . t). The method name must be ALL-CAPS." | 658 | method, add an entry (\"INIT\" . t). The method name must be ALL-CAPS." |
| @@ -669,7 +676,7 @@ particular object method call. This happens during the commands | |||
| 669 | value of the variable `idlwave-query-class'. | 676 | value of the variable `idlwave-query-class'. |
| 670 | 677 | ||
| 671 | When you specify a class, this information can be stored as a text | 678 | When you specify a class, this information can be stored as a text |
| 672 | property on the `->' arrow in the source code, so that during the same | 679 | property on the `->' arrow in the source code, so that during the same |
| 673 | editing session, IDLWAVE will not have to ask again. When this | 680 | editing session, IDLWAVE will not have to ask again. When this |
| 674 | variable is non-nil, IDLWAVE will store and reuse the class information. | 681 | variable is non-nil, IDLWAVE will store and reuse the class information. |
| 675 | The class stored can be checked and removed with `\\[idlwave-routine-info]' | 682 | The class stored can be checked and removed with `\\[idlwave-routine-info]' |
| @@ -1049,7 +1056,7 @@ IDL process is made." | |||
| 1049 | :group 'idlwave-misc | 1056 | :group 'idlwave-misc |
| 1050 | :type 'boolean) | 1057 | :type 'boolean) |
| 1051 | 1058 | ||
| 1052 | (defcustom idlwave-default-font-lock-items | 1059 | (defcustom idlwave-default-font-lock-items |
| 1053 | '(pros-and-functions batch-files idlwave-idl-keywords label goto | 1060 | '(pros-and-functions batch-files idlwave-idl-keywords label goto |
| 1054 | common-blocks class-arrows) | 1061 | common-blocks class-arrows) |
| 1055 | "Items which should be fontified on the default fontification level 2. | 1062 | "Items which should be fontified on the default fontification level 2. |
| @@ -1111,25 +1118,25 @@ As a user, you should not set this to t.") | |||
| 1111 | ;;; and Carsten Dominik... | 1118 | ;;; and Carsten Dominik... |
| 1112 | 1119 | ||
| 1113 | ;; The following are the reserved words in IDL. Maybe we should | 1120 | ;; The following are the reserved words in IDL. Maybe we should |
| 1114 | ;; highlight some more stuff as well? | 1121 | ;; highlight some more stuff as well? |
| 1115 | ;; Procedure declarations. Fontify keyword plus procedure name. | 1122 | ;; Procedure declarations. Fontify keyword plus procedure name. |
| 1116 | (defvar idlwave-idl-keywords | 1123 | (defvar idlwave-idl-keywords |
| 1117 | ;; To update this regexp, update the list of keywords and | 1124 | ;; To update this regexp, update the list of keywords and |
| 1118 | ;; evaluate the form. | 1125 | ;; evaluate the form. |
| 1119 | ;; (insert | 1126 | ;; (insert |
| 1120 | ;; (prin1-to-string | 1127 | ;; (prin1-to-string |
| 1121 | ;; (concat | 1128 | ;; (concat |
| 1122 | ;; "\\<\\(" | 1129 | ;; "\\<\\(" |
| 1123 | ;; (regexp-opt | 1130 | ;; (regexp-opt |
| 1124 | ;; '("||" "&&" "and" "or" "xor" "not" | 1131 | ;; '("||" "&&" "and" "or" "xor" "not" |
| 1125 | ;; "eq" "ge" "gt" "le" "lt" "ne" | 1132 | ;; "eq" "ge" "gt" "le" "lt" "ne" |
| 1126 | ;; "for" "do" "endfor" | 1133 | ;; "for" "do" "endfor" |
| 1127 | ;; "if" "then" "endif" "else" "endelse" | 1134 | ;; "if" "then" "endif" "else" "endelse" |
| 1128 | ;; "case" "of" "endcase" | 1135 | ;; "case" "of" "endcase" |
| 1129 | ;; "switch" "break" "continue" "endswitch" | 1136 | ;; "switch" "break" "continue" "endswitch" |
| 1130 | ;; "begin" "end" | 1137 | ;; "begin" "end" |
| 1131 | ;; "repeat" "until" "endrep" | 1138 | ;; "repeat" "until" "endrep" |
| 1132 | ;; "while" "endwhile" | 1139 | ;; "while" "endwhile" |
| 1133 | ;; "goto" "return" | 1140 | ;; "goto" "return" |
| 1134 | ;; "inherits" "mod" | 1141 | ;; "inherits" "mod" |
| 1135 | ;; "compile_opt" "forward_function" | 1142 | ;; "compile_opt" "forward_function" |
| @@ -1152,7 +1159,7 @@ As a user, you should not set this to t.") | |||
| 1152 | (2 font-lock-reference-face nil t) ; block name | 1159 | (2 font-lock-reference-face nil t) ; block name |
| 1153 | (font-lock-match-c++-style-declaration-item-and-skip-to-next | 1160 | (font-lock-match-c++-style-declaration-item-and-skip-to-next |
| 1154 | ;; Start with point after block name and comma | 1161 | ;; Start with point after block name and comma |
| 1155 | (goto-char (match-end 0)) ; needed for XEmacs, could be nil | 1162 | (goto-char (match-end 0)) ; needed for XEmacs, could be nil |
| 1156 | nil | 1163 | nil |
| 1157 | (1 font-lock-variable-name-face) ; variable names | 1164 | (1 font-lock-variable-name-face) ; variable names |
| 1158 | ))) | 1165 | ))) |
| @@ -1207,7 +1214,7 @@ As a user, you should not set this to t.") | |||
| 1207 | ;; All operators (not used because too noisy) | 1214 | ;; All operators (not used because too noisy) |
| 1208 | (all-operators | 1215 | (all-operators |
| 1209 | '("[-*^#+<>/]" (0 font-lock-keyword-face))) | 1216 | '("[-*^#+<>/]" (0 font-lock-keyword-face))) |
| 1210 | 1217 | ||
| 1211 | ;; Arrows with text property `idlwave-class' | 1218 | ;; Arrows with text property `idlwave-class' |
| 1212 | (class-arrows | 1219 | (class-arrows |
| 1213 | '(idlwave-match-class-arrows (0 idlwave-class-arrow-face)))) | 1220 | '(idlwave-match-class-arrows (0 idlwave-class-arrow-face)))) |
| @@ -1244,14 +1251,14 @@ As a user, you should not set this to t.") | |||
| 1244 | 1251 | ||
| 1245 | (defvar idlwave-font-lock-defaults | 1252 | (defvar idlwave-font-lock-defaults |
| 1246 | '((idlwave-font-lock-keywords | 1253 | '((idlwave-font-lock-keywords |
| 1247 | idlwave-font-lock-keywords-1 | 1254 | idlwave-font-lock-keywords-1 |
| 1248 | idlwave-font-lock-keywords-2 | 1255 | idlwave-font-lock-keywords-2 |
| 1249 | idlwave-font-lock-keywords-3) | 1256 | idlwave-font-lock-keywords-3) |
| 1250 | nil t | 1257 | nil t |
| 1251 | ((?$ . "w") (?_ . "w") (?. . "w") (?| . "w") (?& . "w")) | 1258 | ((?$ . "w") (?_ . "w") (?. . "w") (?| . "w") (?& . "w")) |
| 1252 | beginning-of-line)) | 1259 | beginning-of-line)) |
| 1253 | 1260 | ||
| 1254 | (put 'idlwave-mode 'font-lock-defaults | 1261 | (put 'idlwave-mode 'font-lock-defaults |
| 1255 | idlwave-font-lock-defaults) ; XEmacs | 1262 | idlwave-font-lock-defaults) ; XEmacs |
| 1256 | 1263 | ||
| 1257 | (defconst idlwave-comment-line-start-skip "^[ \t]*;" | 1264 | (defconst idlwave-comment-line-start-skip "^[ \t]*;" |
| @@ -1259,7 +1266,7 @@ As a user, you should not set this to t.") | |||
| 1259 | That is the _beginning_ of a line containing a comment delimiter `;' preceded | 1266 | That is the _beginning_ of a line containing a comment delimiter `;' preceded |
| 1260 | only by whitespace.") | 1267 | only by whitespace.") |
| 1261 | 1268 | ||
| 1262 | (defconst idlwave-begin-block-reg | 1269 | (defconst idlwave-begin-block-reg |
| 1263 | "\\<\\(pro\\|function\\|begin\\|case\\|switch\\)\\>" | 1270 | "\\<\\(pro\\|function\\|begin\\|case\\|switch\\)\\>" |
| 1264 | "Regular expression to find the beginning of a block. The case does | 1271 | "Regular expression to find the beginning of a block. The case does |
| 1265 | not matter. The search skips matches in comments.") | 1272 | not matter. The search skips matches in comments.") |
| @@ -1336,17 +1343,17 @@ blocks starting with a BEGIN statement. The matches must have associations | |||
| 1336 | '(goto . ("goto\\>" nil)) | 1343 | '(goto . ("goto\\>" nil)) |
| 1337 | '(case . ("case\\>" nil)) | 1344 | '(case . ("case\\>" nil)) |
| 1338 | '(switch . ("switch\\>" nil)) | 1345 | '(switch . ("switch\\>" nil)) |
| 1339 | (cons 'call (list (concat "\\(" idlwave-variable "\\) *= *" | 1346 | (cons 'call (list (concat "\\(" idlwave-variable "\\) *= *" |
| 1340 | "\\(" idlwave-method-call "\\s *\\)?" | 1347 | "\\(" idlwave-method-call "\\s *\\)?" |
| 1341 | idlwave-identifier | 1348 | idlwave-identifier |
| 1342 | "\\s *(") nil)) | 1349 | "\\s *(") nil)) |
| 1343 | (cons 'call (list (concat | 1350 | (cons 'call (list (concat |
| 1344 | "\\(" idlwave-method-call "\\s *\\)?" | 1351 | "\\(" idlwave-method-call "\\s *\\)?" |
| 1345 | idlwave-identifier | 1352 | idlwave-identifier |
| 1346 | "\\( *\\($\\|\\$\\)\\|\\s *,\\)") nil)) | 1353 | "\\( *\\($\\|\\$\\)\\|\\s *,\\)") nil)) |
| 1347 | (cons 'assign (list (concat | 1354 | (cons 'assign (list (concat |
| 1348 | "\\(" idlwave-variable "\\) *=") nil))) | 1355 | "\\(" idlwave-variable "\\) *=") nil))) |
| 1349 | 1356 | ||
| 1350 | "Associated list of statement matching regular expressions. | 1357 | "Associated list of statement matching regular expressions. |
| 1351 | Each regular expression matches the start of an IDL statement. The | 1358 | Each regular expression matches the start of an IDL statement. The |
| 1352 | first element of each association is a symbol giving the statement | 1359 | first element of each association is a symbol giving the statement |
| @@ -1369,7 +1376,7 @@ the leftover unidentified statements containing an equal sign." ) | |||
| 1369 | ;; Note that this is documented in the v18 manuals as being a string | 1376 | ;; Note that this is documented in the v18 manuals as being a string |
| 1370 | ;; of length one rather than a single character. | 1377 | ;; of length one rather than a single character. |
| 1371 | ;; The code in this file accepts either format for compatibility. | 1378 | ;; The code in this file accepts either format for compatibility. |
| 1372 | (defvar idlwave-comment-indent-char ?\ | 1379 | (defvar idlwave-comment-indent-char ?\ |
| 1373 | "Character to be inserted for IDL comment indentation. | 1380 | "Character to be inserted for IDL comment indentation. |
| 1374 | Normally a space.") | 1381 | Normally a space.") |
| 1375 | 1382 | ||
| @@ -1377,7 +1384,7 @@ Normally a space.") | |||
| 1377 | "Character which is inserted as a last character on previous line by | 1384 | "Character which is inserted as a last character on previous line by |
| 1378 | \\[idlwave-split-line] to begin a continuation line. Normally $.") | 1385 | \\[idlwave-split-line] to begin a continuation line. Normally $.") |
| 1379 | 1386 | ||
| 1380 | (defconst idlwave-mode-version "5.5") | 1387 | (defconst idlwave-mode-version "5.7_22") |
| 1381 | 1388 | ||
| 1382 | (defmacro idlwave-keyword-abbrev (&rest args) | 1389 | (defmacro idlwave-keyword-abbrev (&rest args) |
| 1383 | "Creates a function for abbrev hooks to call `idlwave-check-abbrev' with args." | 1390 | "Creates a function for abbrev hooks to call `idlwave-check-abbrev' with args." |
| @@ -1484,12 +1491,13 @@ Capitalize system variables - action only | |||
| 1484 | ;; Add action | 1491 | ;; Add action |
| 1485 | (let* ((table (if select 'idlwave-indent-action-table | 1492 | (let* ((table (if select 'idlwave-indent-action-table |
| 1486 | 'idlwave-indent-expand-table)) | 1493 | 'idlwave-indent-expand-table)) |
| 1487 | (cell (assoc key (eval table)))) | 1494 | (table-key (regexp-quote key)) |
| 1495 | (cell (assoc table-key (eval table)))) | ||
| 1488 | (if cell | 1496 | (if cell |
| 1489 | ;; Replace action command | 1497 | ;; Replace action command |
| 1490 | (setcdr cell cmd) | 1498 | (setcdr cell cmd) |
| 1491 | ;; New action | 1499 | ;; New action |
| 1492 | (set table (append (eval table) (list (cons key cmd))))))) | 1500 | (set table (append (eval table) (list (cons table-key cmd))))))) |
| 1493 | ;; Make key binding for action | 1501 | ;; Make key binding for action |
| 1494 | (if (or (and (null select) (= (length key) 1)) | 1502 | (if (or (and (null select) (= (length key) 1)) |
| 1495 | (equal select 'noaction) | 1503 | (equal select 'noaction) |
| @@ -1516,7 +1524,7 @@ Capitalize system variables - action only | |||
| 1516 | (define-key idlwave-mode-map "\C-c{" 'idlwave-beginning-of-block) | 1524 | (define-key idlwave-mode-map "\C-c{" 'idlwave-beginning-of-block) |
| 1517 | (define-key idlwave-mode-map "\C-c}" 'idlwave-end-of-block) | 1525 | (define-key idlwave-mode-map "\C-c}" 'idlwave-end-of-block) |
| 1518 | (define-key idlwave-mode-map "\C-c]" 'idlwave-close-block) | 1526 | (define-key idlwave-mode-map "\C-c]" 'idlwave-close-block) |
| 1519 | (define-key idlwave-mode-map "\M-\C-h" 'idlwave-mark-subprogram) | 1527 | (define-key idlwave-mode-map [(meta control h)] 'idlwave-mark-subprogram) |
| 1520 | (define-key idlwave-mode-map "\M-\C-n" 'idlwave-forward-block) | 1528 | (define-key idlwave-mode-map "\M-\C-n" 'idlwave-forward-block) |
| 1521 | (define-key idlwave-mode-map "\M-\C-p" 'idlwave-backward-block) | 1529 | (define-key idlwave-mode-map "\M-\C-p" 'idlwave-backward-block) |
| 1522 | (define-key idlwave-mode-map "\M-\C-d" 'idlwave-down-block) | 1530 | (define-key idlwave-mode-map "\M-\C-d" 'idlwave-down-block) |
| @@ -1540,15 +1548,15 @@ Capitalize system variables - action only | |||
| 1540 | (not (equal idlwave-shell-debug-modifiers '()))) | 1548 | (not (equal idlwave-shell-debug-modifiers '()))) |
| 1541 | ;; Bind the debug commands also with the special modifiers. | 1549 | ;; Bind the debug commands also with the special modifiers. |
| 1542 | (let ((shift (memq 'shift idlwave-shell-debug-modifiers)) | 1550 | (let ((shift (memq 'shift idlwave-shell-debug-modifiers)) |
| 1543 | (mods-noshift (delq 'shift | 1551 | (mods-noshift (delq 'shift |
| 1544 | (copy-sequence idlwave-shell-debug-modifiers)))) | 1552 | (copy-sequence idlwave-shell-debug-modifiers)))) |
| 1545 | (define-key idlwave-mode-map | 1553 | (define-key idlwave-mode-map |
| 1546 | (vector (append mods-noshift (list (if shift ?C ?c)))) | 1554 | (vector (append mods-noshift (list (if shift ?C ?c)))) |
| 1547 | 'idlwave-shell-save-and-run) | 1555 | 'idlwave-shell-save-and-run) |
| 1548 | (define-key idlwave-mode-map | 1556 | (define-key idlwave-mode-map |
| 1549 | (vector (append mods-noshift (list (if shift ?B ?b)))) | 1557 | (vector (append mods-noshift (list (if shift ?B ?b)))) |
| 1550 | 'idlwave-shell-break-here) | 1558 | 'idlwave-shell-break-here) |
| 1551 | (define-key idlwave-mode-map | 1559 | (define-key idlwave-mode-map |
| 1552 | (vector (append mods-noshift (list (if shift ?E ?e)))) | 1560 | (vector (append mods-noshift (list (if shift ?E ?e)))) |
| 1553 | 'idlwave-shell-run-region))) | 1561 | 'idlwave-shell-run-region))) |
| 1554 | (define-key idlwave-mode-map "\C-c\C-d\C-c" 'idlwave-shell-save-and-run) | 1562 | (define-key idlwave-mode-map "\C-c\C-d\C-c" 'idlwave-shell-save-and-run) |
| @@ -1575,6 +1583,7 @@ Capitalize system variables - action only | |||
| 1575 | (autoload 'idlwave-shell-run-region "idlw-shell" | 1583 | (autoload 'idlwave-shell-run-region "idlw-shell" |
| 1576 | "Compile and run the region." t) | 1584 | "Compile and run the region." t) |
| 1577 | (define-key idlwave-mode-map "\C-c\C-v" 'idlwave-find-module) | 1585 | (define-key idlwave-mode-map "\C-c\C-v" 'idlwave-find-module) |
| 1586 | (define-key idlwave-mode-map "\C-c\C-t" 'idlwave-find-module-this-file) | ||
| 1578 | (define-key idlwave-mode-map "\C-c?" 'idlwave-routine-info) | 1587 | (define-key idlwave-mode-map "\C-c?" 'idlwave-routine-info) |
| 1579 | (define-key idlwave-mode-map "\M-?" 'idlwave-context-help) | 1588 | (define-key idlwave-mode-map "\M-?" 'idlwave-context-help) |
| 1580 | (define-key idlwave-mode-map [(control meta ?\?)] 'idlwave-online-help) | 1589 | (define-key idlwave-mode-map [(control meta ?\?)] 'idlwave-online-help) |
| @@ -1584,7 +1593,7 @@ Capitalize system variables - action only | |||
| 1584 | (define-key idlwave-mode-map "\M-\C-i" 'idlwave-complete) | 1593 | (define-key idlwave-mode-map "\M-\C-i" 'idlwave-complete) |
| 1585 | (define-key idlwave-mode-map "\C-c\C-i" 'idlwave-update-routine-info) | 1594 | (define-key idlwave-mode-map "\C-c\C-i" 'idlwave-update-routine-info) |
| 1586 | (define-key idlwave-mode-map "\C-c=" 'idlwave-resolve) | 1595 | (define-key idlwave-mode-map "\C-c=" 'idlwave-resolve) |
| 1587 | (define-key idlwave-mode-map | 1596 | (define-key idlwave-mode-map |
| 1588 | (if (featurep 'xemacs) [(shift button3)] [(shift mouse-3)]) | 1597 | (if (featurep 'xemacs) [(shift button3)] [(shift mouse-3)]) |
| 1589 | 'idlwave-mouse-context-help) | 1598 | 'idlwave-mouse-context-help) |
| 1590 | 1599 | ||
| @@ -1595,7 +1604,7 @@ Capitalize system variables - action only | |||
| 1595 | ; (lambda (char) 0))) | 1604 | ; (lambda (char) 0))) |
| 1596 | (idlwave-action-and-binding "<" '(idlwave-surround -1 -1)) | 1605 | (idlwave-action-and-binding "<" '(idlwave-surround -1 -1)) |
| 1597 | ;; Binding works for both > and ->, by changing the length of the token. | 1606 | ;; Binding works for both > and ->, by changing the length of the token. |
| 1598 | (idlwave-action-and-binding ">" '(idlwave-surround -1 -1 '(?-) 1 | 1607 | (idlwave-action-and-binding ">" '(idlwave-surround -1 -1 '(?-) 1 |
| 1599 | 'idlwave-gtr-pad-hook)) | 1608 | 'idlwave-gtr-pad-hook)) |
| 1600 | (idlwave-action-and-binding "->" '(idlwave-surround -1 -1 nil 2) t) | 1609 | (idlwave-action-and-binding "->" '(idlwave-surround -1 -1 nil 2) t) |
| 1601 | (idlwave-action-and-binding "," '(idlwave-surround 0 -1)) | 1610 | (idlwave-action-and-binding "," '(idlwave-surround 0 -1)) |
| @@ -1629,7 +1638,7 @@ idlwave-mode-abbrev-table unless TABLE is non-nil." | |||
| 1629 | (error (apply 'define-abbrev args))))) | 1638 | (error (apply 'define-abbrev args))))) |
| 1630 | 1639 | ||
| 1631 | (condition-case nil | 1640 | (condition-case nil |
| 1632 | (modify-syntax-entry (string-to-char idlwave-abbrev-start-char) | 1641 | (modify-syntax-entry (string-to-char idlwave-abbrev-start-char) |
| 1633 | "w" idlwave-mode-syntax-table) | 1642 | "w" idlwave-mode-syntax-table) |
| 1634 | (error nil)) | 1643 | (error nil)) |
| 1635 | 1644 | ||
| @@ -1702,6 +1711,8 @@ idlwave-mode-abbrev-table unless TABLE is non-nil." | |||
| 1702 | (idlwave-define-abbrev "s" "size()" (idlwave-keyword-abbrev 1)) | 1711 | (idlwave-define-abbrev "s" "size()" (idlwave-keyword-abbrev 1)) |
| 1703 | (idlwave-define-abbrev "wi" "widget_info()" (idlwave-keyword-abbrev 1)) | 1712 | (idlwave-define-abbrev "wi" "widget_info()" (idlwave-keyword-abbrev 1)) |
| 1704 | (idlwave-define-abbrev "wc" "widget_control," (idlwave-keyword-abbrev 0)) | 1713 | (idlwave-define-abbrev "wc" "widget_control," (idlwave-keyword-abbrev 0)) |
| 1714 | (idlwave-define-abbrev "pv" "ptr_valid()" (idlwave-keyword-abbrev 1)) | ||
| 1715 | (idlwave-define-abbrev "ipv" "if ptr_valid() then" (idlwave-keyword-abbrev 6)) | ||
| 1705 | 1716 | ||
| 1706 | ;; This section is reserved words only. (From IDL user manual) | 1717 | ;; This section is reserved words only. (From IDL user manual) |
| 1707 | ;; | 1718 | ;; |
| @@ -1751,12 +1762,12 @@ idlwave-mode-abbrev-table unless TABLE is non-nil." | |||
| 1751 | (defvar imenu-extract-index-name-function) | 1762 | (defvar imenu-extract-index-name-function) |
| 1752 | (defvar imenu-prev-index-position-function) | 1763 | (defvar imenu-prev-index-position-function) |
| 1753 | ;; defined later - so just make the compiler hush | 1764 | ;; defined later - so just make the compiler hush |
| 1754 | (defvar idlwave-mode-menu) | 1765 | (defvar idlwave-mode-menu) |
| 1755 | (defvar idlwave-mode-debug-menu) | 1766 | (defvar idlwave-mode-debug-menu) |
| 1756 | 1767 | ||
| 1757 | ;;;###autoload | 1768 | ;;;###autoload |
| 1758 | (defun idlwave-mode () | 1769 | (defun idlwave-mode () |
| 1759 | "Major mode for editing IDL source files (version 5.5). | 1770 | "Major mode for editing IDL source files (version 5.7_22). |
| 1760 | 1771 | ||
| 1761 | The main features of this mode are | 1772 | The main features of this mode are |
| 1762 | 1773 | ||
| @@ -1836,7 +1847,7 @@ The main features of this mode are | |||
| 1836 | \\i IF statement template | 1847 | \\i IF statement template |
| 1837 | \\elif IF-ELSE statement template | 1848 | \\elif IF-ELSE statement template |
| 1838 | \\b BEGIN | 1849 | \\b BEGIN |
| 1839 | 1850 | ||
| 1840 | For a full list, use \\[idlwave-list-abbrevs]. Some templates also | 1851 | For a full list, use \\[idlwave-list-abbrevs]. Some templates also |
| 1841 | have direct keybindings - see the list of keybindings below. | 1852 | have direct keybindings - see the list of keybindings below. |
| 1842 | 1853 | ||
| @@ -1878,26 +1889,26 @@ The main features of this mode are | |||
| 1878 | 1889 | ||
| 1879 | (interactive) | 1890 | (interactive) |
| 1880 | (kill-all-local-variables) | 1891 | (kill-all-local-variables) |
| 1881 | 1892 | ||
| 1882 | (if idlwave-startup-message | 1893 | (if idlwave-startup-message |
| 1883 | (message "Emacs IDLWAVE mode version %s." idlwave-mode-version)) | 1894 | (message "Emacs IDLWAVE mode version %s." idlwave-mode-version)) |
| 1884 | (setq idlwave-startup-message nil) | 1895 | (setq idlwave-startup-message nil) |
| 1885 | 1896 | ||
| 1886 | (setq local-abbrev-table idlwave-mode-abbrev-table) | 1897 | (setq local-abbrev-table idlwave-mode-abbrev-table) |
| 1887 | (set-syntax-table idlwave-mode-syntax-table) | 1898 | (set-syntax-table idlwave-mode-syntax-table) |
| 1888 | 1899 | ||
| 1889 | (set (make-local-variable 'indent-line-function) 'idlwave-indent-and-action) | 1900 | (set (make-local-variable 'indent-line-function) 'idlwave-indent-and-action) |
| 1890 | 1901 | ||
| 1891 | (make-local-variable idlwave-comment-indent-function) | 1902 | (make-local-variable idlwave-comment-indent-function) |
| 1892 | (set idlwave-comment-indent-function 'idlwave-comment-hook) | 1903 | (set idlwave-comment-indent-function 'idlwave-comment-hook) |
| 1893 | 1904 | ||
| 1894 | (set (make-local-variable 'comment-start-skip) ";+[ \t]*") | 1905 | (set (make-local-variable 'comment-start-skip) ";+[ \t]*") |
| 1895 | (set (make-local-variable 'comment-start) ";") | 1906 | (set (make-local-variable 'comment-start) ";") |
| 1896 | (set (make-local-variable 'require-final-newline) mode-require-final-newline) | 1907 | (set (make-local-variable 'require-final-newline) mode-require-final-newline) |
| 1897 | (set (make-local-variable 'abbrev-all-caps) t) | 1908 | (set (make-local-variable 'abbrev-all-caps) t) |
| 1898 | (set (make-local-variable 'indent-tabs-mode) nil) | 1909 | (set (make-local-variable 'indent-tabs-mode) nil) |
| 1899 | (set (make-local-variable 'completion-ignore-case) t) | 1910 | (set (make-local-variable 'completion-ignore-case) t) |
| 1900 | 1911 | ||
| 1901 | (use-local-map idlwave-mode-map) | 1912 | (use-local-map idlwave-mode-map) |
| 1902 | 1913 | ||
| 1903 | (when (featurep 'easymenu) | 1914 | (when (featurep 'easymenu) |
| @@ -1907,11 +1918,11 @@ The main features of this mode are | |||
| 1907 | (setq mode-name "IDLWAVE") | 1918 | (setq mode-name "IDLWAVE") |
| 1908 | (setq major-mode 'idlwave-mode) | 1919 | (setq major-mode 'idlwave-mode) |
| 1909 | (setq abbrev-mode t) | 1920 | (setq abbrev-mode t) |
| 1910 | 1921 | ||
| 1911 | (set (make-local-variable idlwave-fill-function) 'idlwave-auto-fill) | 1922 | (set (make-local-variable idlwave-fill-function) 'idlwave-auto-fill) |
| 1912 | (setq comment-end "") | 1923 | (setq comment-end "") |
| 1913 | (set (make-local-variable 'comment-multi-line) nil) | 1924 | (set (make-local-variable 'comment-multi-line) nil) |
| 1914 | (set (make-local-variable 'paragraph-separate) | 1925 | (set (make-local-variable 'paragraph-separate) |
| 1915 | "[ \t\f]*$\\|[ \t]*;+[ \t]*$\\|;+[+=-_*]+$") | 1926 | "[ \t\f]*$\\|[ \t]*;+[ \t]*$\\|;+[+=-_*]+$") |
| 1916 | (set (make-local-variable 'paragraph-start) "[ \t\f]\\|[ \t]*;+[ \t]") | 1927 | (set (make-local-variable 'paragraph-start) "[ \t\f]\\|[ \t]*;+[ \t]") |
| 1917 | (set (make-local-variable 'paragraph-ignore-fill-prefix) nil) | 1928 | (set (make-local-variable 'paragraph-ignore-fill-prefix) nil) |
| @@ -1920,7 +1931,7 @@ The main features of this mode are | |||
| 1920 | ;; Set tag table list to use IDLTAGS as file name. | 1931 | ;; Set tag table list to use IDLTAGS as file name. |
| 1921 | (if (boundp 'tag-table-alist) | 1932 | (if (boundp 'tag-table-alist) |
| 1922 | (add-to-list 'tag-table-alist '("\\.pro$" . "IDLTAGS"))) | 1933 | (add-to-list 'tag-table-alist '("\\.pro$" . "IDLTAGS"))) |
| 1923 | 1934 | ||
| 1924 | ;; Font-lock additions - originally Phil Williams, then Ulrik Dickow | 1935 | ;; Font-lock additions - originally Phil Williams, then Ulrik Dickow |
| 1925 | ;; Following line is for Emacs - XEmacs uses the corresponding property | 1936 | ;; Following line is for Emacs - XEmacs uses the corresponding property |
| 1926 | ;; on the `idlwave-mode' symbol. | 1937 | ;; on the `idlwave-mode' symbol. |
| @@ -1935,15 +1946,10 @@ The main features of this mode are | |||
| 1935 | 'idlwave-prev-index-position) | 1946 | 'idlwave-prev-index-position) |
| 1936 | 1947 | ||
| 1937 | ;; Make a local post-command-hook and add our hook to it | 1948 | ;; Make a local post-command-hook and add our hook to it |
| 1938 | ;; NB: `make-local-hook' needed for older/alternative Emacs compatibility | ||
| 1939 | (make-local-hook 'post-command-hook) | ||
| 1940 | (add-hook 'post-command-hook 'idlwave-command-hook nil 'local) | 1949 | (add-hook 'post-command-hook 'idlwave-command-hook nil 'local) |
| 1941 | 1950 | ||
| 1942 | ;; Make local hooks for buffer updates | 1951 | ;; Make local hooks for buffer updates |
| 1943 | ;; NB: `make-local-hook' needed for older/alternative Emacs compatibility | ||
| 1944 | (make-local-hook 'kill-buffer-hook) | ||
| 1945 | (add-hook 'kill-buffer-hook 'idlwave-kill-buffer-update nil 'local) | 1952 | (add-hook 'kill-buffer-hook 'idlwave-kill-buffer-update nil 'local) |
| 1946 | (make-local-hook 'after-save-hook) | ||
| 1947 | (add-hook 'after-save-hook 'idlwave-save-buffer-update nil 'local) | 1953 | (add-hook 'after-save-hook 'idlwave-save-buffer-update nil 'local) |
| 1948 | (add-hook 'after-save-hook 'idlwave-revoke-license-to-kill nil 'local) | 1954 | (add-hook 'after-save-hook 'idlwave-revoke-license-to-kill nil 'local) |
| 1949 | 1955 | ||
| @@ -1961,18 +1967,18 @@ The main features of this mode are | |||
| 1961 | (unless idlwave-setup-done | 1967 | (unless idlwave-setup-done |
| 1962 | (if (not (file-directory-p idlwave-config-directory)) | 1968 | (if (not (file-directory-p idlwave-config-directory)) |
| 1963 | (make-directory idlwave-config-directory)) | 1969 | (make-directory idlwave-config-directory)) |
| 1964 | (setq idlwave-user-catalog-file (expand-file-name | 1970 | (setq idlwave-user-catalog-file (expand-file-name |
| 1965 | idlwave-user-catalog-file | 1971 | idlwave-user-catalog-file |
| 1966 | idlwave-config-directory) | 1972 | idlwave-config-directory) |
| 1967 | idlwave-path-file (expand-file-name | 1973 | idlwave-path-file (expand-file-name |
| 1968 | idlwave-path-file | 1974 | idlwave-path-file |
| 1969 | idlwave-config-directory)) | 1975 | idlwave-config-directory)) |
| 1970 | (idlwave-read-paths) ; we may need these early | 1976 | (idlwave-read-paths) ; we may need these early |
| 1971 | (setq idlwave-setup-done t))) | 1977 | (setq idlwave-setup-done t))) |
| 1972 | 1978 | ||
| 1973 | ;; | 1979 | ;; |
| 1974 | ;; Code Formatting ---------------------------------------------------- | 1980 | ;; Code Formatting ---------------------------------------------------- |
| 1975 | ;; | 1981 | ;; |
| 1976 | 1982 | ||
| 1977 | (defun idlwave-push-mark (&rest rest) | 1983 | (defun idlwave-push-mark (&rest rest) |
| 1978 | "Push mark for compatibility with Emacs 18/19." | 1984 | "Push mark for compatibility with Emacs 18/19." |
| @@ -2121,7 +2127,7 @@ Also checks if the correct end statement has been used." | |||
| 2121 | (if (> end-pos eol-pos) | 2127 | (if (> end-pos eol-pos) |
| 2122 | (setq end-pos pos)) | 2128 | (setq end-pos pos)) |
| 2123 | (goto-char end-pos) | 2129 | (goto-char end-pos) |
| 2124 | (setq end (buffer-substring | 2130 | (setq end (buffer-substring |
| 2125 | (progn | 2131 | (progn |
| 2126 | (skip-chars-backward "a-zA-Z") | 2132 | (skip-chars-backward "a-zA-Z") |
| 2127 | (point)) | 2133 | (point)) |
| @@ -2143,7 +2149,7 @@ Also checks if the correct end statement has been used." | |||
| 2143 | (sit-for 1)) | 2149 | (sit-for 1)) |
| 2144 | (t | 2150 | (t |
| 2145 | (beep) | 2151 | (beep) |
| 2146 | (message "Warning: Shouldn't this be \"%s\" instead of \"%s\"?" | 2152 | (message "Warning: Shouldn't this be \"%s\" instead of \"%s\"?" |
| 2147 | end1 end) | 2153 | end1 end) |
| 2148 | (sit-for 1)))))))) | 2154 | (sit-for 1)))))))) |
| 2149 | ;;(delete-char 1)) | 2155 | ;;(delete-char 1)) |
| @@ -2155,8 +2161,8 @@ Also checks if the correct end statement has been used." | |||
| 2155 | ((looking-at "pro\\|case\\|switch\\|function\\>") | 2161 | ((looking-at "pro\\|case\\|switch\\|function\\>") |
| 2156 | (assoc (downcase (match-string 0)) idlwave-block-matches)) | 2162 | (assoc (downcase (match-string 0)) idlwave-block-matches)) |
| 2157 | ((looking-at "begin\\>") | 2163 | ((looking-at "begin\\>") |
| 2158 | (let ((limit (save-excursion | 2164 | (let ((limit (save-excursion |
| 2159 | (idlwave-beginning-of-statement) | 2165 | (idlwave-beginning-of-statement) |
| 2160 | (point)))) | 2166 | (point)))) |
| 2161 | (cond | 2167 | (cond |
| 2162 | ((re-search-backward ":[ \t]*\\=" limit t) | 2168 | ((re-search-backward ":[ \t]*\\=" limit t) |
| @@ -2184,9 +2190,9 @@ Also checks if the correct end statement has been used." | |||
| 2184 | (insert "end") | 2190 | (insert "end") |
| 2185 | (idlwave-show-begin))) | 2191 | (idlwave-show-begin))) |
| 2186 | 2192 | ||
| 2187 | (defun idlwave-gtr-pad-hook (char) | 2193 | (defun idlwave-gtr-pad-hook (char) |
| 2188 | "Let the > symbol expand around -> if present. The new token length | 2194 | "Let the > symbol expand around -> if present. The new token length |
| 2189 | is returned." | 2195 | is returned." |
| 2190 | 2) | 2196 | 2) |
| 2191 | 2197 | ||
| 2192 | (defun idlwave-surround (&optional before after escape-chars length ec-hook) | 2198 | (defun idlwave-surround (&optional before after escape-chars length ec-hook) |
| @@ -2216,8 +2222,8 @@ return value." | |||
| 2216 | (let* ((length (or length 1)) ; establish a default for LENGTH | 2222 | (let* ((length (or length 1)) ; establish a default for LENGTH |
| 2217 | (prev-char (char-after (- (point) (1+ length))))) | 2223 | (prev-char (char-after (- (point) (1+ length))))) |
| 2218 | (when (or (not (memq prev-char escape-chars)) | 2224 | (when (or (not (memq prev-char escape-chars)) |
| 2219 | (and (fboundp ec-hook) | 2225 | (and (fboundp ec-hook) |
| 2220 | (setq length | 2226 | (setq length |
| 2221 | (save-excursion (funcall ec-hook prev-char))))) | 2227 | (save-excursion (funcall ec-hook prev-char))))) |
| 2222 | (backward-char length) | 2228 | (backward-char length) |
| 2223 | (save-restriction | 2229 | (save-restriction |
| @@ -2439,7 +2445,7 @@ Returns non-nil if successfull." | |||
| 2439 | (let ((eos (save-excursion | 2445 | (let ((eos (save-excursion |
| 2440 | (idlwave-block-jump-out -1 'nomark) | 2446 | (idlwave-block-jump-out -1 'nomark) |
| 2441 | (point)))) | 2447 | (point)))) |
| 2442 | (if (setq status (idlwave-find-key | 2448 | (if (setq status (idlwave-find-key |
| 2443 | idlwave-end-block-reg -1 'nomark eos)) | 2449 | idlwave-end-block-reg -1 'nomark eos)) |
| 2444 | (idlwave-beginning-of-statement) | 2450 | (idlwave-beginning-of-statement) |
| 2445 | (message "No nested block before beginning of containing block."))) | 2451 | (message "No nested block before beginning of containing block."))) |
| @@ -2447,7 +2453,7 @@ Returns non-nil if successfull." | |||
| 2447 | (let ((eos (save-excursion | 2453 | (let ((eos (save-excursion |
| 2448 | (idlwave-block-jump-out 1 'nomark) | 2454 | (idlwave-block-jump-out 1 'nomark) |
| 2449 | (point)))) | 2455 | (point)))) |
| 2450 | (if (setq status (idlwave-find-key | 2456 | (if (setq status (idlwave-find-key |
| 2451 | idlwave-begin-block-reg 1 'nomark eos)) | 2457 | idlwave-begin-block-reg 1 'nomark eos)) |
| 2452 | (idlwave-end-of-statement) | 2458 | (idlwave-end-of-statement) |
| 2453 | (message "No nested block before end of containing block.")))) | 2459 | (message "No nested block before end of containing block.")))) |
| @@ -2461,7 +2467,7 @@ The marks are pushed." | |||
| 2461 | (here (point))) | 2467 | (here (point))) |
| 2462 | (goto-char (point-max)) | 2468 | (goto-char (point-max)) |
| 2463 | (if (re-search-backward idlwave-doclib-start nil t) | 2469 | (if (re-search-backward idlwave-doclib-start nil t) |
| 2464 | (progn | 2470 | (progn |
| 2465 | (setq beg (progn (beginning-of-line) (point))) | 2471 | (setq beg (progn (beginning-of-line) (point))) |
| 2466 | (if (re-search-forward idlwave-doclib-end nil t) | 2472 | (if (re-search-forward idlwave-doclib-end nil t) |
| 2467 | (progn | 2473 | (progn |
| @@ -2495,7 +2501,7 @@ actual statement." | |||
| 2495 | ((eq major-mode 'idlwave-shell-mode) | 2501 | ((eq major-mode 'idlwave-shell-mode) |
| 2496 | (if (re-search-backward idlwave-shell-prompt-pattern nil t) | 2502 | (if (re-search-backward idlwave-shell-prompt-pattern nil t) |
| 2497 | (goto-char (match-end 0)))) | 2503 | (goto-char (match-end 0)))) |
| 2498 | (t | 2504 | (t |
| 2499 | (if (save-excursion (forward-line -1) (idlwave-is-continuation-line)) | 2505 | (if (save-excursion (forward-line -1) (idlwave-is-continuation-line)) |
| 2500 | (idlwave-previous-statement) | 2506 | (idlwave-previous-statement) |
| 2501 | (beginning-of-line))))) | 2507 | (beginning-of-line))))) |
| @@ -2572,7 +2578,7 @@ If not in a statement just moves to end of line. Returns position." | |||
| 2572 | (let ((save-point (point))) | 2578 | (let ((save-point (point))) |
| 2573 | (when (re-search-forward ".*&" lim t) | 2579 | (when (re-search-forward ".*&" lim t) |
| 2574 | (goto-char (match-end 0)) | 2580 | (goto-char (match-end 0)) |
| 2575 | (if (idlwave-quoted) | 2581 | (if (idlwave-quoted) |
| 2576 | (goto-char save-point) | 2582 | (goto-char save-point) |
| 2577 | (if (eq (char-after (- (point) 2)) ?&) (goto-char save-point)))) | 2583 | (if (eq (char-after (- (point) 2)) ?&) (goto-char save-point)))) |
| 2578 | (point))) | 2584 | (point))) |
| @@ -2589,7 +2595,7 @@ If there is no label point is not moved and nil is returned." | |||
| 2589 | ;; - not in parenthesis (like a[0:3]) | 2595 | ;; - not in parenthesis (like a[0:3]) |
| 2590 | ;; - not followed by another ":" in explicit class, ala a->b::c | 2596 | ;; - not followed by another ":" in explicit class, ala a->b::c |
| 2591 | ;; As many in this mode, this function is heuristic and not an exact | 2597 | ;; As many in this mode, this function is heuristic and not an exact |
| 2592 | ;; parser. | 2598 | ;; parser. |
| 2593 | (let* ((start (point)) | 2599 | (let* ((start (point)) |
| 2594 | (eos (save-excursion (idlwave-end-of-statement) (point))) | 2600 | (eos (save-excursion (idlwave-end-of-statement) (point))) |
| 2595 | (end (idlwave-find-key ":" 1 'nomark eos))) | 2601 | (end (idlwave-find-key ":" 1 'nomark eos))) |
| @@ -2666,7 +2672,7 @@ equal sign will be surrounded by BEFORE and AFTER blanks. If | |||
| 2666 | `idlwave-pad-keyword' is t then keyword assignment is treated just | 2672 | `idlwave-pad-keyword' is t then keyword assignment is treated just |
| 2667 | like assignment statements. When nil, spaces are removed for keyword | 2673 | like assignment statements. When nil, spaces are removed for keyword |
| 2668 | assignment. Any other value keeps the current space around the `='. | 2674 | assignment. Any other value keeps the current space around the `='. |
| 2669 | Limits in for loops are treated as keyword assignment. | 2675 | Limits in for loops are treated as keyword assignment. |
| 2670 | 2676 | ||
| 2671 | Starting with IDL 6.0, a number of op= assignments are available. | 2677 | Starting with IDL 6.0, a number of op= assignments are available. |
| 2672 | Since ambiguities of the form: | 2678 | Since ambiguities of the form: |
| @@ -2681,25 +2687,25 @@ operators, such as ##=, ^=, etc., will be pre-padded. | |||
| 2681 | 2687 | ||
| 2682 | See `idlwave-surround'." | 2688 | See `idlwave-surround'." |
| 2683 | (if idlwave-surround-by-blank | 2689 | (if idlwave-surround-by-blank |
| 2684 | (let | 2690 | (let |
| 2685 | ((non-an-ops "\\(##\\|\\*\\|\\+\\|-\\|/\\|<\\|>\\|\\^\\)\\=") | 2691 | ((non-an-ops "\\(##\\|\\*\\|\\+\\|-\\|/\\|<\\|>\\|\\^\\)\\=") |
| 2686 | (an-ops | 2692 | (an-ops |
| 2687 | "\\s-\\(AND\\|EQ\\|GE\\|GT\\|LE\\|LT\\|MOD\\|NE\\|OR\\|XOR\\)\\=") | 2693 | "\\s-\\(AND\\|EQ\\|GE\\|GT\\|LE\\|LT\\|MOD\\|NE\\|OR\\|XOR\\)\\=") |
| 2688 | (len 1)) | 2694 | (len 1)) |
| 2689 | 2695 | ||
| 2690 | (save-excursion | 2696 | (save-excursion |
| 2691 | (let ((case-fold-search t)) | 2697 | (let ((case-fold-search t)) |
| 2692 | (backward-char) | 2698 | (backward-char) |
| 2693 | (if (or | 2699 | (if (or |
| 2694 | (re-search-backward non-an-ops nil t) | 2700 | (re-search-backward non-an-ops nil t) |
| 2695 | ;; Why doesn't ##? work for both? | 2701 | ;; Why doesn't ##? work for both? |
| 2696 | (re-search-backward "\\(#\\)\\=" nil t)) | 2702 | (re-search-backward "\\(#\\)\\=" nil t)) |
| 2697 | (setq len (1+ (length (match-string 1)))) | 2703 | (setq len (1+ (length (match-string 1)))) |
| 2698 | (when (re-search-backward an-ops nil t) | 2704 | (when (re-search-backward an-ops nil t) |
| 2699 | (setq begin nil) ; won't modify begin | 2705 | ;(setq begin nil) ; won't modify begin |
| 2700 | (setq len (1+ (length (match-string 1)))))))) | 2706 | (setq len (1+ (length (match-string 1)))))))) |
| 2701 | 2707 | ||
| 2702 | (if (eq t idlwave-pad-keyword) | 2708 | (if (eq t idlwave-pad-keyword) |
| 2703 | ;; Everything gets padded equally | 2709 | ;; Everything gets padded equally |
| 2704 | (idlwave-surround before after nil len) | 2710 | (idlwave-surround before after nil len) |
| 2705 | ;; Treating keywords/for variables specially... | 2711 | ;; Treating keywords/for variables specially... |
| @@ -2710,22 +2716,22 @@ See `idlwave-surround'." | |||
| 2710 | (skip-chars-backward "= \t") | 2716 | (skip-chars-backward "= \t") |
| 2711 | (nth 2 (idlwave-where))))) | 2717 | (nth 2 (idlwave-where))))) |
| 2712 | (cond ((or (memq what '(function-keyword procedure-keyword)) | 2718 | (cond ((or (memq what '(function-keyword procedure-keyword)) |
| 2713 | (memq (caar st) '(for pdef))) | 2719 | (memq (caar st) '(for pdef))) |
| 2714 | (cond | 2720 | (cond |
| 2715 | ((null idlwave-pad-keyword) | 2721 | ((null idlwave-pad-keyword) |
| 2716 | (idlwave-surround 0 0) | 2722 | (idlwave-surround 0 0) |
| 2717 | ) ; remove space | 2723 | ) ; remove space |
| 2718 | (t))) ; leave any spaces alone | 2724 | (t))) ; leave any spaces alone |
| 2719 | (t (idlwave-surround before after nil len)))))))) | 2725 | (t (idlwave-surround before after nil len)))))))) |
| 2720 | 2726 | ||
| 2721 | 2727 | ||
| 2722 | (defun idlwave-indent-and-action (&optional arg) | 2728 | (defun idlwave-indent-and-action (&optional arg) |
| 2723 | "Call `idlwave-indent-line' and do expand actions. | 2729 | "Call `idlwave-indent-line' and do expand actions. |
| 2724 | With prefix ARG non-nil, indent the entire sub-statement." | 2730 | With prefix ARG non-nil, indent the entire sub-statement." |
| 2725 | (interactive "p") | 2731 | (interactive "p") |
| 2726 | (save-excursion | 2732 | (save-excursion |
| 2727 | (if (and idlwave-expand-generic-end | 2733 | (if (and idlwave-expand-generic-end |
| 2728 | (re-search-backward "\\<\\(end\\)\\s-*\\=" | 2734 | (re-search-backward "\\<\\(end\\)\\s-*\\=" |
| 2729 | (max 0 (- (point) 10)) t) | 2735 | (max 0 (- (point) 10)) t) |
| 2730 | (looking-at "\\(end\\)\\([ \n\t]\\|\\'\\)")) | 2736 | (looking-at "\\(end\\)\\([ \n\t]\\|\\'\\)")) |
| 2731 | (progn (goto-char (match-end 1)) | 2737 | (progn (goto-char (match-end 1)) |
| @@ -2735,7 +2741,7 @@ With prefix ARG non-nil, indent the entire sub-statement." | |||
| 2735 | (when (and (not arg) current-prefix-arg) | 2741 | (when (and (not arg) current-prefix-arg) |
| 2736 | (setq arg current-prefix-arg) | 2742 | (setq arg current-prefix-arg) |
| 2737 | (setq current-prefix-arg nil)) | 2743 | (setq current-prefix-arg nil)) |
| 2738 | (if arg | 2744 | (if arg |
| 2739 | (idlwave-indent-statement) | 2745 | (idlwave-indent-statement) |
| 2740 | (idlwave-indent-line t))) | 2746 | (idlwave-indent-line t))) |
| 2741 | 2747 | ||
| @@ -2868,7 +2874,7 @@ Inserts spaces before markers at point." | |||
| 2868 | (save-excursion | 2874 | (save-excursion |
| 2869 | (cond | 2875 | (cond |
| 2870 | ;; Beginning of file | 2876 | ;; Beginning of file |
| 2871 | ((prog1 | 2877 | ((prog1 |
| 2872 | (idlwave-previous-statement) | 2878 | (idlwave-previous-statement) |
| 2873 | (setq beg-prev-pos (point))) | 2879 | (setq beg-prev-pos (point))) |
| 2874 | 0) | 2880 | 0) |
| @@ -2878,7 +2884,7 @@ Inserts spaces before markers at point." | |||
| 2878 | idlwave-main-block-indent)) | 2884 | idlwave-main-block-indent)) |
| 2879 | ;; Begin block | 2885 | ;; Begin block |
| 2880 | ((idlwave-look-at idlwave-begin-block-reg t) | 2886 | ((idlwave-look-at idlwave-begin-block-reg t) |
| 2881 | (+ (idlwave-min-current-statement-indent) | 2887 | (+ (idlwave-min-current-statement-indent) |
| 2882 | idlwave-block-indent)) | 2888 | idlwave-block-indent)) |
| 2883 | ;; End Block | 2889 | ;; End Block |
| 2884 | ((idlwave-look-at idlwave-end-block-reg t) | 2890 | ((idlwave-look-at idlwave-end-block-reg t) |
| @@ -2889,7 +2895,7 @@ Inserts spaces before markers at point." | |||
| 2889 | (idlwave-min-current-statement-indent))) | 2895 | (idlwave-min-current-statement-indent))) |
| 2890 | ;; idlwave-end-offset | 2896 | ;; idlwave-end-offset |
| 2891 | ;; idlwave-block-indent)) | 2897 | ;; idlwave-block-indent)) |
| 2892 | 2898 | ||
| 2893 | ;; Default to current indent | 2899 | ;; Default to current indent |
| 2894 | ((idlwave-current-statement-indent)))))) | 2900 | ((idlwave-current-statement-indent)))))) |
| 2895 | ;; adjust the indentation based on the current statement | 2901 | ;; adjust the indentation based on the current statement |
| @@ -2905,7 +2911,7 @@ Inserts spaces before markers at point." | |||
| 2905 | 2911 | ||
| 2906 | (defun idlwave-calculate-paren-indent (beg-reg end-reg close-exp) | 2912 | (defun idlwave-calculate-paren-indent (beg-reg end-reg close-exp) |
| 2907 | "Calculate the continuation indent inside a paren group. | 2913 | "Calculate the continuation indent inside a paren group. |
| 2908 | Returns a cons-cell with (open . indent), where open is the | 2914 | Returns a cons-cell with (open . indent), where open is the |
| 2909 | location of the open paren" | 2915 | location of the open paren" |
| 2910 | (let ((open (nth 1 (parse-partial-sexp beg-reg end-reg)))) | 2916 | (let ((open (nth 1 (parse-partial-sexp beg-reg end-reg)))) |
| 2911 | ;; Found an innermost open paren. | 2917 | ;; Found an innermost open paren. |
| @@ -2946,24 +2952,24 @@ groupings, are treated separately." | |||
| 2946 | (end-reg (progn (beginning-of-line) (point))) | 2952 | (end-reg (progn (beginning-of-line) (point))) |
| 2947 | (beg-last-statement (save-excursion (idlwave-previous-statement) | 2953 | (beg-last-statement (save-excursion (idlwave-previous-statement) |
| 2948 | (point))) | 2954 | (point))) |
| 2949 | (beg-reg (progn (idlwave-start-of-substatement 'pre) | 2955 | (beg-reg (progn (idlwave-start-of-substatement 'pre) |
| 2950 | (if (eq (line-beginning-position) end-reg) | 2956 | (if (eq (line-beginning-position) end-reg) |
| 2951 | (goto-char beg-last-statement) | 2957 | (goto-char beg-last-statement) |
| 2952 | (point)))) | 2958 | (point)))) |
| 2953 | (basic-indent (+ (idlwave-min-current-statement-indent end-reg) | 2959 | (basic-indent (+ (idlwave-min-current-statement-indent end-reg) |
| 2954 | idlwave-continuation-indent)) | 2960 | idlwave-continuation-indent)) |
| 2955 | fancy-nonparen-indent fancy-paren-indent) | 2961 | fancy-nonparen-indent fancy-paren-indent) |
| 2956 | (cond | 2962 | (cond |
| 2957 | ;; Align then with its matching if, etc. | 2963 | ;; Align then with its matching if, etc. |
| 2958 | ((let ((matchers '(("\\<if\\>" . "[ \t]*then") | 2964 | ((let ((matchers '(("\\<if\\>" . "[ \t]*then") |
| 2959 | ("\\<\\(if\\|end\\(if\\)?\\)\\>" . "[ \t]*else") | 2965 | ("\\<\\(if\\|end\\(if\\)?\\)\\>" . "[ \t]*else") |
| 2960 | ("\\<\\(for\\|while\\)\\>" . "[ \t]*do") | 2966 | ("\\<\\(for\\|while\\)\\>" . "[ \t]*do") |
| 2961 | ("\\<\\(repeat\\|end\\(rep\\)?\\)\\>" . | 2967 | ("\\<\\(repeat\\|end\\(rep\\)?\\)\\>" . |
| 2962 | "[ \t]*until") | 2968 | "[ \t]*until") |
| 2963 | ("\\<case\\>" . "[ \t]*of"))) | 2969 | ("\\<case\\>" . "[ \t]*of"))) |
| 2964 | match cont-re) | 2970 | match cont-re) |
| 2965 | (goto-char end-reg) | 2971 | (goto-char end-reg) |
| 2966 | (and | 2972 | (and |
| 2967 | (setq cont-re | 2973 | (setq cont-re |
| 2968 | (catch 'exit | 2974 | (catch 'exit |
| 2969 | (while (setq match (car matchers)) | 2975 | (while (setq match (car matchers)) |
| @@ -2972,7 +2978,7 @@ groupings, are treated separately." | |||
| 2972 | (setq matchers (cdr matchers))))) | 2978 | (setq matchers (cdr matchers))))) |
| 2973 | (idlwave-find-key cont-re -1 'nomark beg-last-statement))) | 2979 | (idlwave-find-key cont-re -1 'nomark beg-last-statement))) |
| 2974 | (if (looking-at "end") ;; that one's special | 2980 | (if (looking-at "end") ;; that one's special |
| 2975 | (- (idlwave-current-indent) | 2981 | (- (idlwave-current-indent) |
| 2976 | (+ idlwave-block-indent idlwave-end-offset)) | 2982 | (+ idlwave-block-indent idlwave-end-offset)) |
| 2977 | (idlwave-current-indent))) | 2983 | (idlwave-current-indent))) |
| 2978 | 2984 | ||
| @@ -2998,7 +3004,7 @@ groupings, are treated separately." | |||
| 2998 | (let* ((end-reg end-reg) | 3004 | (let* ((end-reg end-reg) |
| 2999 | (close-exp (progn | 3005 | (close-exp (progn |
| 3000 | (goto-char end-reg) | 3006 | (goto-char end-reg) |
| 3001 | (skip-chars-forward " \t") | 3007 | (skip-chars-forward " \t") |
| 3002 | (looking-at "\\s)"))) | 3008 | (looking-at "\\s)"))) |
| 3003 | indent-cons) | 3009 | indent-cons) |
| 3004 | (catch 'loop | 3010 | (catch 'loop |
| @@ -3032,12 +3038,12 @@ groupings, are treated separately." | |||
| 3032 | (if (save-match-data (looking-at "[ \t$]*\\(;.*\\)?$")) | 3038 | (if (save-match-data (looking-at "[ \t$]*\\(;.*\\)?$")) |
| 3033 | nil | 3039 | nil |
| 3034 | (current-column))) | 3040 | (current-column))) |
| 3035 | 3041 | ||
| 3036 | ;; Continued assignment (with =): | 3042 | ;; Continued assignment (with =): |
| 3037 | ((catch 'assign ; | 3043 | ((catch 'assign ; |
| 3038 | (while (looking-at "[^=\n\r]*\\(=\\)[ \t]*") | 3044 | (while (looking-at "[^=\n\r]*\\(=\\)[ \t]*") |
| 3039 | (goto-char (match-end 0)) | 3045 | (goto-char (match-end 0)) |
| 3040 | (if (null (idlwave-what-function beg-reg)) | 3046 | (if (null (idlwave-what-function beg-reg)) |
| 3041 | (throw 'assign t)))) | 3047 | (throw 'assign t)))) |
| 3042 | (unless (or | 3048 | (unless (or |
| 3043 | (idlwave-in-quote) | 3049 | (idlwave-in-quote) |
| @@ -3099,7 +3105,7 @@ possibility of unbalanced blocks." | |||
| 3099 | (let* ((here (point)) | 3105 | (let* ((here (point)) |
| 3100 | (case-fold-search t) | 3106 | (case-fold-search t) |
| 3101 | (limit (if (>= dir 0) (point-max) (point-min))) | 3107 | (limit (if (>= dir 0) (point-max) (point-min))) |
| 3102 | (block-limit (if (>= dir 0) | 3108 | (block-limit (if (>= dir 0) |
| 3103 | idlwave-begin-block-reg | 3109 | idlwave-begin-block-reg |
| 3104 | idlwave-end-block-reg)) | 3110 | idlwave-end-block-reg)) |
| 3105 | found | 3111 | found |
| @@ -3110,7 +3116,7 @@ possibility of unbalanced blocks." | |||
| 3110 | (idlwave-find-key | 3116 | (idlwave-find-key |
| 3111 | idlwave-begin-unit-reg dir t limit) | 3117 | idlwave-begin-unit-reg dir t limit) |
| 3112 | (end-of-line) | 3118 | (end-of-line) |
| 3113 | (idlwave-find-key | 3119 | (idlwave-find-key |
| 3114 | idlwave-end-unit-reg dir t limit))) | 3120 | idlwave-end-unit-reg dir t limit))) |
| 3115 | limit))) | 3121 | limit))) |
| 3116 | (if (>= dir 0) (end-of-line)) ;Make sure we are in current block | 3122 | (if (>= dir 0) (end-of-line)) ;Make sure we are in current block |
| @@ -3135,7 +3141,7 @@ possibility of unbalanced blocks." | |||
| 3135 | (or (null end-reg) (< (point) end-reg))) | 3141 | (or (null end-reg) (< (point) end-reg))) |
| 3136 | (unless comm-or-empty (setq min (min min (idlwave-current-indent))))) | 3142 | (unless comm-or-empty (setq min (min min (idlwave-current-indent))))) |
| 3137 | (if (or comm-or-empty (and end-reg (>= (point) end-reg))) | 3143 | (if (or comm-or-empty (and end-reg (>= (point) end-reg))) |
| 3138 | min | 3144 | min |
| 3139 | (min min (idlwave-current-indent)))))) | 3145 | (min min (idlwave-current-indent)))))) |
| 3140 | 3146 | ||
| 3141 | (defun idlwave-current-statement-indent (&optional last-line) | 3147 | (defun idlwave-current-statement-indent (&optional last-line) |
| @@ -3161,10 +3167,10 @@ Skips any whitespace. Returns 0 if the end-of-line follows the whitespace." | |||
| 3161 | Blank or comment-only lines following regular continuation lines (with | 3167 | Blank or comment-only lines following regular continuation lines (with |
| 3162 | `$') count as continuations too." | 3168 | `$') count as continuations too." |
| 3163 | (save-excursion | 3169 | (save-excursion |
| 3164 | (or | 3170 | (or |
| 3165 | (idlwave-look-at "\\<\\$") | 3171 | (idlwave-look-at "\\<\\$") |
| 3166 | (catch 'loop | 3172 | (catch 'loop |
| 3167 | (while (and (looking-at "^[ \t]*\\(;.*\\)?$") | 3173 | (while (and (looking-at "^[ \t]*\\(;.*\\)?$") |
| 3168 | (eq (forward-line -1) 0)) | 3174 | (eq (forward-line -1) 0)) |
| 3169 | (if (idlwave-look-at "\\<\\$") (throw 'loop t))))))) | 3175 | (if (idlwave-look-at "\\<\\$") (throw 'loop t))))))) |
| 3170 | 3176 | ||
| @@ -3262,7 +3268,7 @@ ignored." | |||
| 3262 | (beginning-of-line) (point)) | 3268 | (beginning-of-line) (point)) |
| 3263 | (point)))) | 3269 | (point)))) |
| 3264 | "[^;]")) | 3270 | "[^;]")) |
| 3265 | 3271 | ||
| 3266 | ;; Mark the beginning and end of the paragraph | 3272 | ;; Mark the beginning and end of the paragraph |
| 3267 | (goto-char bcl) | 3273 | (goto-char bcl) |
| 3268 | (while (and (looking-at fill-prefix-reg) | 3274 | (while (and (looking-at fill-prefix-reg) |
| @@ -3326,7 +3332,7 @@ ignored." | |||
| 3326 | (insert (make-string diff ?\ )))) | 3332 | (insert (make-string diff ?\ )))) |
| 3327 | (forward-line -1)) | 3333 | (forward-line -1)) |
| 3328 | ) | 3334 | ) |
| 3329 | 3335 | ||
| 3330 | ;; No hang. Instead find minimum indentation of paragraph | 3336 | ;; No hang. Instead find minimum indentation of paragraph |
| 3331 | ;; after first line. | 3337 | ;; after first line. |
| 3332 | ;; For the following while statement, since START is at the | 3338 | ;; For the following while statement, since START is at the |
| @@ -3358,7 +3364,7 @@ ignored." | |||
| 3358 | t) | 3364 | t) |
| 3359 | (current-column)) | 3365 | (current-column)) |
| 3360 | indent)) | 3366 | indent)) |
| 3361 | 3367 | ||
| 3362 | ;; try to keep point at its original place | 3368 | ;; try to keep point at its original place |
| 3363 | (goto-char here) | 3369 | (goto-char here) |
| 3364 | 3370 | ||
| @@ -3407,7 +3413,7 @@ If not found returns nil." | |||
| 3407 | (current-column))))) | 3413 | (current-column))))) |
| 3408 | 3414 | ||
| 3409 | (defun idlwave-auto-fill () | 3415 | (defun idlwave-auto-fill () |
| 3410 | "Called to break lines in auto fill mode. | 3416 | "Called to break lines in auto fill mode. |
| 3411 | Only fills non-comment lines if `idlwave-fill-comment-line-only' is | 3417 | Only fills non-comment lines if `idlwave-fill-comment-line-only' is |
| 3412 | non-nil. Places a continuation character at the end of the line if | 3418 | non-nil. Places a continuation character at the end of the line if |
| 3413 | not in a comment. Splits strings with IDL concatenation operator `+' | 3419 | not in a comment. Splits strings with IDL concatenation operator `+' |
| @@ -3558,7 +3564,7 @@ is non-nil." | |||
| 3558 | (insert (current-time-string)) | 3564 | (insert (current-time-string)) |
| 3559 | (insert ", " (user-full-name)) | 3565 | (insert ", " (user-full-name)) |
| 3560 | (if (boundp 'user-mail-address) | 3566 | (if (boundp 'user-mail-address) |
| 3561 | (insert " <" user-mail-address ">") | 3567 | (insert " <" user-mail-address ">") |
| 3562 | (insert " <" (user-login-name) "@" (system-name) ">")) | 3568 | (insert " <" (user-login-name) "@" (system-name) ">")) |
| 3563 | ;; Remove extra spaces from line | 3569 | ;; Remove extra spaces from line |
| 3564 | (idlwave-fill-paragraph) | 3570 | (idlwave-fill-paragraph) |
| @@ -3584,7 +3590,7 @@ location on mark ring so that the user can return to previous point." | |||
| 3584 | (setq end (match-end 0))) | 3590 | (setq end (match-end 0))) |
| 3585 | (progn | 3591 | (progn |
| 3586 | (goto-char beg) | 3592 | (goto-char beg) |
| 3587 | (if (re-search-forward | 3593 | (if (re-search-forward |
| 3588 | (concat idlwave-doc-modifications-keyword ":") | 3594 | (concat idlwave-doc-modifications-keyword ":") |
| 3589 | end t) | 3595 | end t) |
| 3590 | (end-of-line) | 3596 | (end-of-line) |
| @@ -3682,7 +3688,7 @@ constants - a double quote followed by an octal digit." | |||
| 3682 | (not (idlwave-in-quote)) | 3688 | (not (idlwave-in-quote)) |
| 3683 | (save-excursion | 3689 | (save-excursion |
| 3684 | (forward-char) | 3690 | (forward-char) |
| 3685 | (re-search-backward (concat "\\(" idlwave-idl-keywords | 3691 | (re-search-backward (concat "\\(" idlwave-idl-keywords |
| 3686 | "\\|[[(*+-/=,^><]\\)\\s-*\\*") limit t))))) | 3692 | "\\|[[(*+-/=,^><]\\)\\s-*\\*") limit t))))) |
| 3687 | 3693 | ||
| 3688 | 3694 | ||
| @@ -3728,7 +3734,7 @@ unless the optional second argument NOINDENT is non-nil." | |||
| 3728 | (indent-region beg end nil)) | 3734 | (indent-region beg end nil)) |
| 3729 | (if (stringp prompt) | 3735 | (if (stringp prompt) |
| 3730 | (message prompt))))) | 3736 | (message prompt))))) |
| 3731 | 3737 | ||
| 3732 | (defun idlwave-rw-case (string) | 3738 | (defun idlwave-rw-case (string) |
| 3733 | "Make STRING have the case required by `idlwave-reserved-word-upcase'." | 3739 | "Make STRING have the case required by `idlwave-reserved-word-upcase'." |
| 3734 | (if idlwave-reserved-word-upcase | 3740 | (if idlwave-reserved-word-upcase |
| @@ -3746,7 +3752,7 @@ unless the optional second argument NOINDENT is non-nil." | |||
| 3746 | (defun idlwave-case () | 3752 | (defun idlwave-case () |
| 3747 | "Build skeleton IDL case statement." | 3753 | "Build skeleton IDL case statement." |
| 3748 | (interactive) | 3754 | (interactive) |
| 3749 | (idlwave-template | 3755 | (idlwave-template |
| 3750 | (idlwave-rw-case "case") | 3756 | (idlwave-rw-case "case") |
| 3751 | (idlwave-rw-case " of\n\nendcase") | 3757 | (idlwave-rw-case " of\n\nendcase") |
| 3752 | "Selector expression")) | 3758 | "Selector expression")) |
| @@ -3754,7 +3760,7 @@ unless the optional second argument NOINDENT is non-nil." | |||
| 3754 | (defun idlwave-switch () | 3760 | (defun idlwave-switch () |
| 3755 | "Build skeleton IDL switch statement." | 3761 | "Build skeleton IDL switch statement." |
| 3756 | (interactive) | 3762 | (interactive) |
| 3757 | (idlwave-template | 3763 | (idlwave-template |
| 3758 | (idlwave-rw-case "switch") | 3764 | (idlwave-rw-case "switch") |
| 3759 | (idlwave-rw-case " of\n\nendswitch") | 3765 | (idlwave-rw-case " of\n\nendswitch") |
| 3760 | "Selector expression")) | 3766 | "Selector expression")) |
| @@ -3762,7 +3768,7 @@ unless the optional second argument NOINDENT is non-nil." | |||
| 3762 | (defun idlwave-for () | 3768 | (defun idlwave-for () |
| 3763 | "Build skeleton for loop statment." | 3769 | "Build skeleton for loop statment." |
| 3764 | (interactive) | 3770 | (interactive) |
| 3765 | (idlwave-template | 3771 | (idlwave-template |
| 3766 | (idlwave-rw-case "for") | 3772 | (idlwave-rw-case "for") |
| 3767 | (idlwave-rw-case " do begin\n\nendfor") | 3773 | (idlwave-rw-case " do begin\n\nendfor") |
| 3768 | "Loop expression")) | 3774 | "Loop expression")) |
| @@ -3777,14 +3783,14 @@ unless the optional second argument NOINDENT is non-nil." | |||
| 3777 | 3783 | ||
| 3778 | (defun idlwave-procedure () | 3784 | (defun idlwave-procedure () |
| 3779 | (interactive) | 3785 | (interactive) |
| 3780 | (idlwave-template | 3786 | (idlwave-template |
| 3781 | (idlwave-rw-case "pro") | 3787 | (idlwave-rw-case "pro") |
| 3782 | (idlwave-rw-case "\n\nreturn\nend") | 3788 | (idlwave-rw-case "\n\nreturn\nend") |
| 3783 | "Procedure name")) | 3789 | "Procedure name")) |
| 3784 | 3790 | ||
| 3785 | (defun idlwave-function () | 3791 | (defun idlwave-function () |
| 3786 | (interactive) | 3792 | (interactive) |
| 3787 | (idlwave-template | 3793 | (idlwave-template |
| 3788 | (idlwave-rw-case "function") | 3794 | (idlwave-rw-case "function") |
| 3789 | (idlwave-rw-case "\n\nreturn\nend") | 3795 | (idlwave-rw-case "\n\nreturn\nend") |
| 3790 | "Function name")) | 3796 | "Function name")) |
| @@ -3798,7 +3804,7 @@ unless the optional second argument NOINDENT is non-nil." | |||
| 3798 | 3804 | ||
| 3799 | (defun idlwave-while () | 3805 | (defun idlwave-while () |
| 3800 | (interactive) | 3806 | (interactive) |
| 3801 | (idlwave-template | 3807 | (idlwave-template |
| 3802 | (idlwave-rw-case "while") | 3808 | (idlwave-rw-case "while") |
| 3803 | (idlwave-rw-case " do begin\n\nendwhile") | 3809 | (idlwave-rw-case " do begin\n\nendwhile") |
| 3804 | "Entry condition")) | 3810 | "Entry condition")) |
| @@ -3877,8 +3883,8 @@ Buffer containing unsaved changes require confirmation before they are killed." | |||
| 3877 | (defun idlwave-count-outlawed-buffers (tag) | 3883 | (defun idlwave-count-outlawed-buffers (tag) |
| 3878 | "How many outlawed buffers have tag TAG?" | 3884 | "How many outlawed buffers have tag TAG?" |
| 3879 | (length (delq nil | 3885 | (length (delq nil |
| 3880 | (mapcar | 3886 | (mapcar |
| 3881 | (lambda (x) (eq (cdr x) tag)) | 3887 | (lambda (x) (eq (cdr x) tag)) |
| 3882 | idlwave-outlawed-buffers)))) | 3888 | idlwave-outlawed-buffers)))) |
| 3883 | 3889 | ||
| 3884 | (defun idlwave-do-kill-autoloaded-buffers (&rest reasons) | 3890 | (defun idlwave-do-kill-autoloaded-buffers (&rest reasons) |
| @@ -3892,9 +3898,9 @@ Buffer containing unsaved changes require confirmation before they are killed." | |||
| 3892 | (memq (cdr entry) reasons)) | 3898 | (memq (cdr entry) reasons)) |
| 3893 | (kill-buffer (car entry)) | 3899 | (kill-buffer (car entry)) |
| 3894 | (incf cnt) | 3900 | (incf cnt) |
| 3895 | (setq idlwave-outlawed-buffers | 3901 | (setq idlwave-outlawed-buffers |
| 3896 | (delq entry idlwave-outlawed-buffers))) | 3902 | (delq entry idlwave-outlawed-buffers))) |
| 3897 | (setq idlwave-outlawed-buffers | 3903 | (setq idlwave-outlawed-buffers |
| 3898 | (delq entry idlwave-outlawed-buffers)))) | 3904 | (delq entry idlwave-outlawed-buffers)))) |
| 3899 | (message "%d buffer%s killed" cnt (if (= cnt 1) "" "s")))) | 3905 | (message "%d buffer%s killed" cnt (if (= cnt 1) "" "s")))) |
| 3900 | 3906 | ||
| @@ -3906,7 +3912,7 @@ Intended for `after-save-hook'." | |||
| 3906 | (entry (assq buf idlwave-outlawed-buffers))) | 3912 | (entry (assq buf idlwave-outlawed-buffers))) |
| 3907 | ;; Revoke license | 3913 | ;; Revoke license |
| 3908 | (if entry | 3914 | (if entry |
| 3909 | (setq idlwave-outlawed-buffers | 3915 | (setq idlwave-outlawed-buffers |
| 3910 | (delq entry idlwave-outlawed-buffers))) | 3916 | (delq entry idlwave-outlawed-buffers))) |
| 3911 | ;; Remove this function from the hook. | 3917 | ;; Remove this function from the hook. |
| 3912 | (remove-hook 'after-save-hook 'idlwave-revoke-license-to-kill 'local))) | 3918 | (remove-hook 'after-save-hook 'idlwave-revoke-license-to-kill 'local))) |
| @@ -3925,7 +3931,7 @@ Intended for `after-save-hook'." | |||
| 3925 | (defun idlwave-expand-lib-file-name (file) | 3931 | (defun idlwave-expand-lib-file-name (file) |
| 3926 | ;; Find FILE on the scanned lib path and return a buffer visiting it | 3932 | ;; Find FILE on the scanned lib path and return a buffer visiting it |
| 3927 | ;; This is for, e.g., finding source with no user catalog | 3933 | ;; This is for, e.g., finding source with no user catalog |
| 3928 | (cond | 3934 | (cond |
| 3929 | ((null file) nil) | 3935 | ((null file) nil) |
| 3930 | ((file-name-absolute-p file) file) | 3936 | ((file-name-absolute-p file) file) |
| 3931 | (t (idlwave-locate-lib-file file)))) | 3937 | (t (idlwave-locate-lib-file file)))) |
| @@ -3940,7 +3946,7 @@ you specify /." | |||
| 3940 | (interactive) | 3946 | (interactive) |
| 3941 | (let (directory directories cmd append status numdirs dir getsubdirs | 3947 | (let (directory directories cmd append status numdirs dir getsubdirs |
| 3942 | buffer save_buffer files numfiles item errbuf) | 3948 | buffer save_buffer files numfiles item errbuf) |
| 3943 | 3949 | ||
| 3944 | ;; | 3950 | ;; |
| 3945 | ;; Read list of directories | 3951 | ;; Read list of directories |
| 3946 | (setq directory (read-string "Tag Directories: " ".")) | 3952 | (setq directory (read-string "Tag Directories: " ".")) |
| @@ -3992,7 +3998,7 @@ you specify /." | |||
| 3992 | (message (concat "Tagging " item "...")) | 3998 | (message (concat "Tagging " item "...")) |
| 3993 | (setq errbuf (get-buffer-create "*idltags-error*")) | 3999 | (setq errbuf (get-buffer-create "*idltags-error*")) |
| 3994 | (setq status (+ status | 4000 | (setq status (+ status |
| 3995 | (if (eq 0 (call-process | 4001 | (if (eq 0 (call-process |
| 3996 | "sh" nil errbuf nil "-c" | 4002 | "sh" nil errbuf nil "-c" |
| 3997 | (concat cmd append item))) | 4003 | (concat cmd append item))) |
| 3998 | 0 | 4004 | 0 |
| @@ -4006,13 +4012,13 @@ you specify /." | |||
| 4006 | (setq numfiles (1+ numfiles)) | 4012 | (setq numfiles (1+ numfiles)) |
| 4007 | (setq item (nth numfiles files)) | 4013 | (setq item (nth numfiles files)) |
| 4008 | ))) | 4014 | ))) |
| 4009 | 4015 | ||
| 4010 | (setq numdirs (1+ numdirs)) | 4016 | (setq numdirs (1+ numdirs)) |
| 4011 | (setq dir (nth numdirs directories))) | 4017 | (setq dir (nth numdirs directories))) |
| 4012 | (progn | 4018 | (progn |
| 4013 | (setq numdirs (1+ numdirs)) | 4019 | (setq numdirs (1+ numdirs)) |
| 4014 | (setq dir (nth numdirs directories))))) | 4020 | (setq dir (nth numdirs directories))))) |
| 4015 | 4021 | ||
| 4016 | (setq errbuf (get-buffer-create "*idltags-error*")) | 4022 | (setq errbuf (get-buffer-create "*idltags-error*")) |
| 4017 | (if (= status 0) | 4023 | (if (= status 0) |
| 4018 | (kill-buffer errbuf)) | 4024 | (kill-buffer errbuf)) |
| @@ -4088,7 +4094,7 @@ blank lines." | |||
| 4088 | ;; Make sure the hash functions are accessible. | 4094 | ;; Make sure the hash functions are accessible. |
| 4089 | (if (or (not (fboundp 'gethash)) | 4095 | (if (or (not (fboundp 'gethash)) |
| 4090 | (not (fboundp 'puthash))) | 4096 | (not (fboundp 'puthash))) |
| 4091 | (progn | 4097 | (progn |
| 4092 | (require 'cl) | 4098 | (require 'cl) |
| 4093 | (or (fboundp 'puthash) | 4099 | (or (fboundp 'puthash) |
| 4094 | (defalias 'puthash 'cl-puthash)))) | 4100 | (defalias 'puthash 'cl-puthash)))) |
| @@ -4107,7 +4113,7 @@ blank lines." | |||
| 4107 | ;; Reset the system & library hash | 4113 | ;; Reset the system & library hash |
| 4108 | (loop for entry in entries | 4114 | (loop for entry in entries |
| 4109 | for var = (car entry) for size = (nth 1 entry) | 4115 | for var = (car entry) for size = (nth 1 entry) |
| 4110 | do (setcdr (symbol-value var) | 4116 | do (setcdr (symbol-value var) |
| 4111 | (make-hash-table ':size size ':test 'equal))) | 4117 | (make-hash-table ':size size ':test 'equal))) |
| 4112 | (setq idlwave-sint-dirs nil | 4118 | (setq idlwave-sint-dirs nil |
| 4113 | idlwave-sint-libnames nil)) | 4119 | idlwave-sint-libnames nil)) |
| @@ -4117,7 +4123,7 @@ blank lines." | |||
| 4117 | ;; Reset the buffer & shell hash | 4123 | ;; Reset the buffer & shell hash |
| 4118 | (loop for entry in entries | 4124 | (loop for entry in entries |
| 4119 | for var = (car entry) for size = (nth 1 entry) | 4125 | for var = (car entry) for size = (nth 1 entry) |
| 4120 | do (setcar (symbol-value var) | 4126 | do (setcar (symbol-value var) |
| 4121 | (make-hash-table ':size size ':test 'equal)))))) | 4127 | (make-hash-table ':size size ':test 'equal)))))) |
| 4122 | 4128 | ||
| 4123 | (defun idlwave-sintern-routine-or-method (name &optional class set) | 4129 | (defun idlwave-sintern-routine-or-method (name &optional class set) |
| @@ -4204,11 +4210,11 @@ If DEFAULT-DIR is passed, it is used as the base of the directory" | |||
| 4204 | (setq class (idlwave-sintern-class class set)) | 4210 | (setq class (idlwave-sintern-class class set)) |
| 4205 | (setq name (idlwave-sintern-method name set))) | 4211 | (setq name (idlwave-sintern-method name set))) |
| 4206 | (setq name (idlwave-sintern-routine name set))) | 4212 | (setq name (idlwave-sintern-routine name set))) |
| 4207 | 4213 | ||
| 4208 | ;; The source | 4214 | ;; The source |
| 4209 | (let ((source-type (car source)) | 4215 | (let ((source-type (car source)) |
| 4210 | (source-file (nth 1 source)) | 4216 | (source-file (nth 1 source)) |
| 4211 | (source-dir (if default-dir | 4217 | (source-dir (if default-dir |
| 4212 | (file-name-as-directory default-dir) | 4218 | (file-name-as-directory default-dir) |
| 4213 | (nth 2 source))) | 4219 | (nth 2 source))) |
| 4214 | (source-lib (nth 3 source))) | 4220 | (source-lib (nth 3 source))) |
| @@ -4217,7 +4223,7 @@ If DEFAULT-DIR is passed, it is used as the base of the directory" | |||
| 4217 | (if (stringp source-lib) | 4223 | (if (stringp source-lib) |
| 4218 | (setq source-lib (idlwave-sintern-libname source-lib set))) | 4224 | (setq source-lib (idlwave-sintern-libname source-lib set))) |
| 4219 | (setq source (list source-type source-file source-dir source-lib))) | 4225 | (setq source (list source-type source-file source-dir source-lib))) |
| 4220 | 4226 | ||
| 4221 | ;; The keywords | 4227 | ;; The keywords |
| 4222 | (setq kwds (mapcar (lambda (x) | 4228 | (setq kwds (mapcar (lambda (x) |
| 4223 | (idlwave-sintern-keyword-list x set)) | 4229 | (idlwave-sintern-keyword-list x set)) |
| @@ -4267,7 +4273,9 @@ This defines the function `idlwave-sintern-TAG' and the variable | |||
| 4267 | (defvar idlwave-user-catalog-routines nil | 4273 | (defvar idlwave-user-catalog-routines nil |
| 4268 | "Holds the procedure routine-info from the user scan.") | 4274 | "Holds the procedure routine-info from the user scan.") |
| 4269 | (defvar idlwave-library-catalog-routines nil | 4275 | (defvar idlwave-library-catalog-routines nil |
| 4270 | "Holds the procedure routine-info from the library catalog files.") | 4276 | "Holds the procedure routine-info from the .idlwave_catalog library files.") |
| 4277 | (defvar idlwave-library-catalog-libname nil | ||
| 4278 | "Name of library catalog loaded from .idlwave_catalog files.") | ||
| 4271 | (defvar idlwave-path-alist nil | 4279 | (defvar idlwave-path-alist nil |
| 4272 | "Alist with !PATH directories and zero or more flags if the dir has | 4280 | "Alist with !PATH directories and zero or more flags if the dir has |
| 4273 | been scanned in a user catalog ('user) or discovered in a library | 4281 | been scanned in a user catalog ('user) or discovered in a library |
| @@ -4355,10 +4363,10 @@ will re-read the catalog." | |||
| 4355 | "-l" (expand-file-name "~/.emacs") | 4363 | "-l" (expand-file-name "~/.emacs") |
| 4356 | "-l" "idlwave" | 4364 | "-l" "idlwave" |
| 4357 | "-f" "idlwave-rescan-catalog-directories")) | 4365 | "-f" "idlwave-rescan-catalog-directories")) |
| 4358 | (process (apply 'start-process "idlcat" | 4366 | (process (apply 'start-process "idlcat" |
| 4359 | nil emacs args))) | 4367 | nil emacs args))) |
| 4360 | (setq idlwave-catalog-process process) | 4368 | (setq idlwave-catalog-process process) |
| 4361 | (set-process-sentinel | 4369 | (set-process-sentinel |
| 4362 | process | 4370 | process |
| 4363 | (lambda (pro why) | 4371 | (lambda (pro why) |
| 4364 | (when (string-match "finished" why) | 4372 | (when (string-match "finished" why) |
| @@ -4384,6 +4392,8 @@ will re-read the catalog." | |||
| 4384 | 4392 | ||
| 4385 | 4393 | ||
| 4386 | (defvar idlwave-load-rinfo-idle-timer) | 4394 | (defvar idlwave-load-rinfo-idle-timer) |
| 4395 | (defvar idlwave-shell-path-query) | ||
| 4396 | |||
| 4387 | (defun idlwave-update-routine-info (&optional arg no-concatenate) | 4397 | (defun idlwave-update-routine-info (&optional arg no-concatenate) |
| 4388 | "Update the internal routine-info lists. | 4398 | "Update the internal routine-info lists. |
| 4389 | These lists are used by `idlwave-routine-info' (\\[idlwave-routine-info]) | 4399 | These lists are used by `idlwave-routine-info' (\\[idlwave-routine-info]) |
| @@ -4431,7 +4441,7 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4431 | ;; The override-idle means, even if the idle timer has done some | 4441 | ;; The override-idle means, even if the idle timer has done some |
| 4432 | ;; preparing work, load and renormalize everything anyway. | 4442 | ;; preparing work, load and renormalize everything anyway. |
| 4433 | (override-idle (or arg idlwave-buffer-case-takes-precedence))) | 4443 | (override-idle (or arg idlwave-buffer-case-takes-precedence))) |
| 4434 | 4444 | ||
| 4435 | (setq idlwave-buffer-routines nil | 4445 | (setq idlwave-buffer-routines nil |
| 4436 | idlwave-compiled-routines nil | 4446 | idlwave-compiled-routines nil |
| 4437 | idlwave-unresolved-routines nil) | 4447 | idlwave-unresolved-routines nil) |
| @@ -4442,7 +4452,7 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4442 | (idlwave-reset-sintern (cond (load t) | 4452 | (idlwave-reset-sintern (cond (load t) |
| 4443 | ((null idlwave-system-routines) t) | 4453 | ((null idlwave-system-routines) t) |
| 4444 | (t 'bufsh)))) | 4454 | (t 'bufsh)))) |
| 4445 | 4455 | ||
| 4446 | (if idlwave-buffer-case-takes-precedence | 4456 | (if idlwave-buffer-case-takes-precedence |
| 4447 | ;; We can safely scan the buffer stuff first | 4457 | ;; We can safely scan the buffer stuff first |
| 4448 | (progn | 4458 | (progn |
| @@ -4457,9 +4467,9 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4457 | (idlwave-shell-is-running))) | 4467 | (idlwave-shell-is-running))) |
| 4458 | (ask-shell (and shell-is-running | 4468 | (ask-shell (and shell-is-running |
| 4459 | idlwave-query-shell-for-routine-info))) | 4469 | idlwave-query-shell-for-routine-info))) |
| 4460 | 4470 | ||
| 4461 | ;; Load the library catalogs again, first re-scanning the path | 4471 | ;; Load the library catalogs again, first re-scanning the path |
| 4462 | (when arg | 4472 | (when arg |
| 4463 | (if shell-is-running | 4473 | (if shell-is-running |
| 4464 | (idlwave-shell-send-command idlwave-shell-path-query | 4474 | (idlwave-shell-send-command idlwave-shell-path-query |
| 4465 | '(progn | 4475 | '(progn |
| @@ -4479,7 +4489,7 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4479 | ;; Therefore, we do a concatenation now, even though | 4489 | ;; Therefore, we do a concatenation now, even though |
| 4480 | ;; the shell might do it again. | 4490 | ;; the shell might do it again. |
| 4481 | (idlwave-concatenate-rinfo-lists nil 'run-hooks)) | 4491 | (idlwave-concatenate-rinfo-lists nil 'run-hooks)) |
| 4482 | 4492 | ||
| 4483 | (when ask-shell | 4493 | (when ask-shell |
| 4484 | ;; Ask the shell about the routines it knows of. | 4494 | ;; Ask the shell about the routines it knows of. |
| 4485 | (message "Querying the shell") | 4495 | (message "Querying the shell") |
| @@ -4508,6 +4518,8 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4508 | nil 'idlwave-load-rinfo-next-step))) | 4518 | nil 'idlwave-load-rinfo-next-step))) |
| 4509 | (error nil)))) | 4519 | (error nil)))) |
| 4510 | 4520 | ||
| 4521 | (defvar idlwave-library-routines nil "Obsolete variable.") | ||
| 4522 | |||
| 4511 | (defun idlwave-load-rinfo-next-step () | 4523 | (defun idlwave-load-rinfo-next-step () |
| 4512 | (let ((inhibit-quit t) | 4524 | (let ((inhibit-quit t) |
| 4513 | (arr idlwave-load-rinfo-steps-done)) | 4525 | (arr idlwave-load-rinfo-steps-done)) |
| @@ -4541,7 +4553,7 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4541 | (progn | 4553 | (progn |
| 4542 | (setq idlwave-library-routines nil) | 4554 | (setq idlwave-library-routines nil) |
| 4543 | (ding) | 4555 | (ding) |
| 4544 | (message "Outdated user catalog: %s... recreate" | 4556 | (message "Outdated user catalog: %s... recreate" |
| 4545 | idlwave-user-catalog-file)) | 4557 | idlwave-user-catalog-file)) |
| 4546 | (message "Loading user catalog in idle time...done")) | 4558 | (message "Loading user catalog in idle time...done")) |
| 4547 | (aset arr 2 t) | 4559 | (aset arr 2 t) |
| @@ -4549,15 +4561,15 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4549 | (when (not (aref arr 3)) | 4561 | (when (not (aref arr 3)) |
| 4550 | (when idlwave-user-catalog-routines | 4562 | (when idlwave-user-catalog-routines |
| 4551 | (message "Normalizing user catalog routines in idle time...") | 4563 | (message "Normalizing user catalog routines in idle time...") |
| 4552 | (setq idlwave-user-catalog-routines | 4564 | (setq idlwave-user-catalog-routines |
| 4553 | (idlwave-sintern-rinfo-list | 4565 | (idlwave-sintern-rinfo-list |
| 4554 | idlwave-user-catalog-routines 'sys)) | 4566 | idlwave-user-catalog-routines 'sys)) |
| 4555 | (message | 4567 | (message |
| 4556 | "Normalizing user catalog routines in idle time...done")) | 4568 | "Normalizing user catalog routines in idle time...done")) |
| 4557 | (aset arr 3 t) | 4569 | (aset arr 3 t) |
| 4558 | (throw 'exit t)) | 4570 | (throw 'exit t)) |
| 4559 | (when (not (aref arr 4)) | 4571 | (when (not (aref arr 4)) |
| 4560 | (idlwave-scan-library-catalogs | 4572 | (idlwave-scan-library-catalogs |
| 4561 | "Loading and normalizing library catalogs in idle time...") | 4573 | "Loading and normalizing library catalogs in idle time...") |
| 4562 | (aset arr 4 t) | 4574 | (aset arr 4 t) |
| 4563 | (throw 'exit t)) | 4575 | (throw 'exit t)) |
| @@ -4598,8 +4610,8 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4598 | (setq idlwave-true-path-alist nil) | 4610 | (setq idlwave-true-path-alist nil) |
| 4599 | (when (or force (not (aref idlwave-load-rinfo-steps-done 3))) | 4611 | (when (or force (not (aref idlwave-load-rinfo-steps-done 3))) |
| 4600 | (message "Normalizing user catalog routines...") | 4612 | (message "Normalizing user catalog routines...") |
| 4601 | (setq idlwave-user-catalog-routines | 4613 | (setq idlwave-user-catalog-routines |
| 4602 | (idlwave-sintern-rinfo-list | 4614 | (idlwave-sintern-rinfo-list |
| 4603 | idlwave-user-catalog-routines 'sys)) | 4615 | idlwave-user-catalog-routines 'sys)) |
| 4604 | (message "Normalizing user catalog routines...done"))) | 4616 | (message "Normalizing user catalog routines...done"))) |
| 4605 | (when (or force (not (aref idlwave-load-rinfo-steps-done 4))) | 4617 | (when (or force (not (aref idlwave-load-rinfo-steps-done 4))) |
| @@ -4610,11 +4622,11 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4610 | 4622 | ||
| 4611 | (defun idlwave-update-buffer-routine-info () | 4623 | (defun idlwave-update-buffer-routine-info () |
| 4612 | (let (res) | 4624 | (let (res) |
| 4613 | (cond | 4625 | (cond |
| 4614 | ((eq idlwave-scan-all-buffers-for-routine-info t) | 4626 | ((eq idlwave-scan-all-buffers-for-routine-info t) |
| 4615 | ;; Scan all buffers, current buffer last | 4627 | ;; Scan all buffers, current buffer last |
| 4616 | (message "Scanning all buffers...") | 4628 | (message "Scanning all buffers...") |
| 4617 | (setq res (idlwave-get-routine-info-from-buffers | 4629 | (setq res (idlwave-get-routine-info-from-buffers |
| 4618 | (reverse (buffer-list))))) | 4630 | (reverse (buffer-list))))) |
| 4619 | ((null idlwave-scan-all-buffers-for-routine-info) | 4631 | ((null idlwave-scan-all-buffers-for-routine-info) |
| 4620 | ;; Don't scan any buffers | 4632 | ;; Don't scan any buffers |
| @@ -4627,12 +4639,12 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4627 | (setq res (idlwave-get-routine-info-from-buffers | 4639 | (setq res (idlwave-get-routine-info-from-buffers |
| 4628 | (list (current-buffer)))))))) | 4640 | (list (current-buffer)))))))) |
| 4629 | ;; Put the result into the correct variable | 4641 | ;; Put the result into the correct variable |
| 4630 | (setq idlwave-buffer-routines | 4642 | (setq idlwave-buffer-routines |
| 4631 | (idlwave-sintern-rinfo-list res 'set)))) | 4643 | (idlwave-sintern-rinfo-list res 'set)))) |
| 4632 | 4644 | ||
| 4633 | (defun idlwave-concatenate-rinfo-lists (&optional quiet run-hook) | 4645 | (defun idlwave-concatenate-rinfo-lists (&optional quiet run-hook) |
| 4634 | "Put the different sources for routine information together." | 4646 | "Put the different sources for routine information together." |
| 4635 | ;; The sequence here is important because earlier definitions shadow | 4647 | ;; The sequence here is important because earlier definitions shadow |
| 4636 | ;; later ones. We assume that if things in the buffers are newer | 4648 | ;; later ones. We assume that if things in the buffers are newer |
| 4637 | ;; then in the shell of the system, they are meant to be different. | 4649 | ;; then in the shell of the system, they are meant to be different. |
| 4638 | (setcdr idlwave-last-system-routine-info-cons-cell | 4650 | (setcdr idlwave-last-system-routine-info-cons-cell |
| @@ -4644,7 +4656,7 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4644 | 4656 | ||
| 4645 | ;; Give a message with information about the number of routines we have. | 4657 | ;; Give a message with information about the number of routines we have. |
| 4646 | (unless quiet | 4658 | (unless quiet |
| 4647 | (message | 4659 | (message |
| 4648 | "Routines Found: buffer(%d) compiled(%d) library(%d) user(%d) system(%d)" | 4660 | "Routines Found: buffer(%d) compiled(%d) library(%d) user(%d) system(%d)" |
| 4649 | (length idlwave-buffer-routines) | 4661 | (length idlwave-buffer-routines) |
| 4650 | (length idlwave-compiled-routines) | 4662 | (length idlwave-compiled-routines) |
| @@ -4662,7 +4674,7 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4662 | (when (and (setq class (nth 2 x)) | 4674 | (when (and (setq class (nth 2 x)) |
| 4663 | (not (assq class idlwave-class-alist))) | 4675 | (not (assq class idlwave-class-alist))) |
| 4664 | (push (list class) idlwave-class-alist))) | 4676 | (push (list class) idlwave-class-alist))) |
| 4665 | idlwave-class-alist))) | 4677 | idlwave-class-alist))) |
| 4666 | 4678 | ||
| 4667 | ;; Three functions for the hooks | 4679 | ;; Three functions for the hooks |
| 4668 | (defun idlwave-save-buffer-update () | 4680 | (defun idlwave-save-buffer-update () |
| @@ -4695,7 +4707,7 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4695 | 4707 | ||
| 4696 | (defun idlwave-replace-buffer-routine-info (file new) | 4708 | (defun idlwave-replace-buffer-routine-info (file new) |
| 4697 | "Cut the part from FILE out of `idlwave-buffer-routines' and add NEW." | 4709 | "Cut the part from FILE out of `idlwave-buffer-routines' and add NEW." |
| 4698 | (let ((list idlwave-buffer-routines) | 4710 | (let ((list idlwave-buffer-routines) |
| 4699 | found) | 4711 | found) |
| 4700 | (while list | 4712 | (while list |
| 4701 | ;; The following test uses eq to make sure it works correctly | 4713 | ;; The following test uses eq to make sure it works correctly |
| @@ -4706,7 +4718,7 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4706 | (setcar list nil) | 4718 | (setcar list nil) |
| 4707 | (setq found t)) | 4719 | (setq found t)) |
| 4708 | (if found | 4720 | (if found |
| 4709 | ;; End of that section reached. Jump. | 4721 | ;; End of that section reached. Jump. |
| 4710 | (setq list nil))) | 4722 | (setq list nil))) |
| 4711 | (setq list (cdr list))) | 4723 | (setq list (cdr list))) |
| 4712 | (setq idlwave-buffer-routines | 4724 | (setq idlwave-buffer-routines |
| @@ -4738,11 +4750,11 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4738 | (save-restriction | 4750 | (save-restriction |
| 4739 | (widen) | 4751 | (widen) |
| 4740 | (goto-char (point-min)) | 4752 | (goto-char (point-min)) |
| 4741 | (while (re-search-forward | 4753 | (while (re-search-forward |
| 4742 | "^[ \t]*\\(pro\\|function\\)[ \t]" nil t) | 4754 | "^[ \t]*\\(pro\\|function\\)[ \t]" nil t) |
| 4743 | (setq string (buffer-substring-no-properties | 4755 | (setq string (buffer-substring-no-properties |
| 4744 | (match-beginning 0) | 4756 | (match-beginning 0) |
| 4745 | (progn | 4757 | (progn |
| 4746 | (idlwave-end-of-statement) | 4758 | (idlwave-end-of-statement) |
| 4747 | (point)))) | 4759 | (point)))) |
| 4748 | (setq entry (idlwave-parse-definition string)) | 4760 | (setq entry (idlwave-parse-definition string)) |
| @@ -4780,7 +4792,7 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4780 | (push (match-string 1 string) args))) | 4792 | (push (match-string 1 string) args))) |
| 4781 | ;; Normalize and sort. | 4793 | ;; Normalize and sort. |
| 4782 | (setq args (nreverse args)) | 4794 | (setq args (nreverse args)) |
| 4783 | (setq keywords (sort keywords (lambda (a b) | 4795 | (setq keywords (sort keywords (lambda (a b) |
| 4784 | (string< (downcase a) (downcase b))))) | 4796 | (string< (downcase a) (downcase b))))) |
| 4785 | ;; Make and return the entry | 4797 | ;; Make and return the entry |
| 4786 | ;; We don't know which argument are optional, so this information | 4798 | ;; We don't know which argument are optional, so this information |
| @@ -4790,7 +4802,7 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4790 | class | 4802 | class |
| 4791 | (cond ((not (boundp 'idlwave-scanning-lib)) | 4803 | (cond ((not (boundp 'idlwave-scanning-lib)) |
| 4792 | (list 'buffer (buffer-file-name))) | 4804 | (list 'buffer (buffer-file-name))) |
| 4793 | ; ((string= (downcase | 4805 | ; ((string= (downcase |
| 4794 | ; (file-name-sans-extension | 4806 | ; (file-name-sans-extension |
| 4795 | ; (file-name-nondirectory (buffer-file-name)))) | 4807 | ; (file-name-nondirectory (buffer-file-name)))) |
| 4796 | ; (downcase name)) | 4808 | ; (downcase name)) |
| @@ -4798,7 +4810,7 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4798 | ; (t (cons 'lib (file-name-nondirectory (buffer-file-name)))) | 4810 | ; (t (cons 'lib (file-name-nondirectory (buffer-file-name)))) |
| 4799 | (t (list 'user (file-name-nondirectory (buffer-file-name)) | 4811 | (t (list 'user (file-name-nondirectory (buffer-file-name)) |
| 4800 | idlwave-scanning-lib-dir "UserLib"))) | 4812 | idlwave-scanning-lib-dir "UserLib"))) |
| 4801 | (concat | 4813 | (concat |
| 4802 | (if (string= type "function") "Result = " "") | 4814 | (if (string= type "function") "Result = " "") |
| 4803 | (if class "Obj ->[%s::]" "") | 4815 | (if class "Obj ->[%s::]" "") |
| 4804 | "%s" | 4816 | "%s" |
| @@ -4816,12 +4828,15 @@ information updated immediately, leave NO-CONCATENATE nil." | |||
| 4816 | 4828 | ||
| 4817 | (defun idlwave-sys-dir () | 4829 | (defun idlwave-sys-dir () |
| 4818 | "Return the syslib directory, or a dummy that never matches." | 4830 | "Return the syslib directory, or a dummy that never matches." |
| 4819 | (if (string= idlwave-system-directory "") | 4831 | (cond |
| 4820 | "@@@@@@@@" | 4832 | ((and idlwave-system-directory |
| 4821 | idlwave-system-directory)) | 4833 | (not (string= idlwave-system-directory ""))) |
| 4834 | idlwave-system-directory) | ||
| 4835 | ((getenv "IDL_DIR")) | ||
| 4836 | (t "@@@@@@@@"))) | ||
| 4837 | |||
| 4822 | 4838 | ||
| 4823 | 4839 | ||
| 4824 | (defvar idlwave-shell-path-query) | ||
| 4825 | (defun idlwave-create-user-catalog-file (&optional arg) | 4840 | (defun idlwave-create-user-catalog-file (&optional arg) |
| 4826 | "Scan all files on selected dirs of IDL search path for routine information. | 4841 | "Scan all files on selected dirs of IDL search path for routine information. |
| 4827 | 4842 | ||
| @@ -4842,10 +4857,10 @@ time - so no widget will pop up." | |||
| 4842 | (> (length idlwave-user-catalog-file) 0) | 4857 | (> (length idlwave-user-catalog-file) 0) |
| 4843 | (file-accessible-directory-p | 4858 | (file-accessible-directory-p |
| 4844 | (file-name-directory idlwave-user-catalog-file)) | 4859 | (file-name-directory idlwave-user-catalog-file)) |
| 4845 | (not (string= "" (file-name-nondirectory | 4860 | (not (string= "" (file-name-nondirectory |
| 4846 | idlwave-user-catalog-file)))) | 4861 | idlwave-user-catalog-file)))) |
| 4847 | (error "`idlwave-user-catalog-file' does not point to a file in an accessible directory")) | 4862 | (error "`idlwave-user-catalog-file' does not point to a file in an accessible directory")) |
| 4848 | 4863 | ||
| 4849 | (cond | 4864 | (cond |
| 4850 | ;; Rescan the known directories | 4865 | ;; Rescan the known directories |
| 4851 | ((and arg idlwave-path-alist | 4866 | ((and arg idlwave-path-alist |
| @@ -4855,13 +4870,13 @@ time - so no widget will pop up." | |||
| 4855 | ;; Expand the directories from library-path and run the widget | 4870 | ;; Expand the directories from library-path and run the widget |
| 4856 | (idlwave-library-path | 4871 | (idlwave-library-path |
| 4857 | (idlwave-display-user-catalog-widget | 4872 | (idlwave-display-user-catalog-widget |
| 4858 | (if idlwave-true-path-alist | 4873 | (if idlwave-true-path-alist |
| 4859 | ;; Propagate any flags on the existing path-alist | 4874 | ;; Propagate any flags on the existing path-alist |
| 4860 | (mapcar (lambda (x) | 4875 | (mapcar (lambda (x) |
| 4861 | (let ((path-entry (assoc (file-truename x) | 4876 | (let ((path-entry (assoc (file-truename x) |
| 4862 | idlwave-true-path-alist))) | 4877 | idlwave-true-path-alist))) |
| 4863 | (if path-entry | 4878 | (if path-entry |
| 4864 | (cons x (cdr path-entry)) | 4879 | (cons x (cdr path-entry)) |
| 4865 | (list x)))) | 4880 | (list x)))) |
| 4866 | (idlwave-expand-path idlwave-library-path)) | 4881 | (idlwave-expand-path idlwave-library-path)) |
| 4867 | (mapcar 'list (idlwave-expand-path idlwave-library-path))))) | 4882 | (mapcar 'list (idlwave-expand-path idlwave-library-path))))) |
| @@ -4886,7 +4901,7 @@ time - so no widget will pop up." | |||
| 4886 | (idlwave-scan-library-catalogs "Locating library catalogs..." 'no-load) | 4901 | (idlwave-scan-library-catalogs "Locating library catalogs..." 'no-load) |
| 4887 | (idlwave-display-user-catalog-widget idlwave-path-alist))) | 4902 | (idlwave-display-user-catalog-widget idlwave-path-alist))) |
| 4888 | 4903 | ||
| 4889 | (defconst idlwave-user-catalog-widget-help-string | 4904 | (defconst idlwave-user-catalog-widget-help-string |
| 4890 | "This is the front-end to the creation of the IDLWAVE user catalog. | 4905 | "This is the front-end to the creation of the IDLWAVE user catalog. |
| 4891 | Please select the directories on IDL's search path from which you | 4906 | Please select the directories on IDL's search path from which you |
| 4892 | would like to extract routine information, to be stored in the file: | 4907 | would like to extract routine information, to be stored in the file: |
| @@ -4921,7 +4936,7 @@ directories and save the routine info. | |||
| 4921 | (make-local-variable 'idlwave-widget) | 4936 | (make-local-variable 'idlwave-widget) |
| 4922 | (widget-insert (format idlwave-user-catalog-widget-help-string | 4937 | (widget-insert (format idlwave-user-catalog-widget-help-string |
| 4923 | idlwave-user-catalog-file)) | 4938 | idlwave-user-catalog-file)) |
| 4924 | 4939 | ||
| 4925 | (widget-create 'push-button | 4940 | (widget-create 'push-button |
| 4926 | :notify 'idlwave-widget-scan-user-lib-files | 4941 | :notify 'idlwave-widget-scan-user-lib-files |
| 4927 | "Scan & Save") | 4942 | "Scan & Save") |
| @@ -4931,7 +4946,7 @@ directories and save the routine info. | |||
| 4931 | "Delete File") | 4946 | "Delete File") |
| 4932 | (widget-insert " ") | 4947 | (widget-insert " ") |
| 4933 | (widget-create 'push-button | 4948 | (widget-create 'push-button |
| 4934 | :notify | 4949 | :notify |
| 4935 | '(lambda (&rest ignore) | 4950 | '(lambda (&rest ignore) |
| 4936 | (let ((path-list (widget-get idlwave-widget :path-dirs))) | 4951 | (let ((path-list (widget-get idlwave-widget :path-dirs))) |
| 4937 | (mapcar (lambda (x) | 4952 | (mapcar (lambda (x) |
| @@ -4942,7 +4957,7 @@ directories and save the routine info. | |||
| 4942 | "Select All Non-Lib") | 4957 | "Select All Non-Lib") |
| 4943 | (widget-insert " ") | 4958 | (widget-insert " ") |
| 4944 | (widget-create 'push-button | 4959 | (widget-create 'push-button |
| 4945 | :notify | 4960 | :notify |
| 4946 | '(lambda (&rest ignore) | 4961 | '(lambda (&rest ignore) |
| 4947 | (let ((path-list (widget-get idlwave-widget :path-dirs))) | 4962 | (let ((path-list (widget-get idlwave-widget :path-dirs))) |
| 4948 | (mapcar (lambda (x) | 4963 | (mapcar (lambda (x) |
| @@ -4958,18 +4973,18 @@ directories and save the routine info. | |||
| 4958 | (widget-insert "\n\n") | 4973 | (widget-insert "\n\n") |
| 4959 | 4974 | ||
| 4960 | (widget-insert "Select Directories: \n") | 4975 | (widget-insert "Select Directories: \n") |
| 4961 | 4976 | ||
| 4962 | (setq idlwave-widget | 4977 | (setq idlwave-widget |
| 4963 | (apply 'widget-create | 4978 | (apply 'widget-create |
| 4964 | 'checklist | 4979 | 'checklist |
| 4965 | :value (delq nil (mapcar (lambda (x) | 4980 | :value (delq nil (mapcar (lambda (x) |
| 4966 | (if (memq 'user (cdr x)) | 4981 | (if (memq 'user (cdr x)) |
| 4967 | (car x))) | 4982 | (car x))) |
| 4968 | dirs-list)) | 4983 | dirs-list)) |
| 4969 | :greedy t | 4984 | :greedy t |
| 4970 | :tag "List of directories" | 4985 | :tag "List of directories" |
| 4971 | (mapcar (lambda (x) | 4986 | (mapcar (lambda (x) |
| 4972 | (list 'item | 4987 | (list 'item |
| 4973 | (if (memq 'lib (cdr x)) | 4988 | (if (memq 'lib (cdr x)) |
| 4974 | (concat "[LIB] " (car x) ) | 4989 | (concat "[LIB] " (car x) ) |
| 4975 | (car x)))) dirs-list))) | 4990 | (car x)))) dirs-list))) |
| @@ -4979,7 +4994,7 @@ directories and save the routine info. | |||
| 4979 | (widget-setup) | 4994 | (widget-setup) |
| 4980 | (goto-char (point-min)) | 4995 | (goto-char (point-min)) |
| 4981 | (delete-other-windows)) | 4996 | (delete-other-windows)) |
| 4982 | 4997 | ||
| 4983 | (defun idlwave-delete-user-catalog-file (&rest ignore) | 4998 | (defun idlwave-delete-user-catalog-file (&rest ignore) |
| 4984 | (if (yes-or-no-p | 4999 | (if (yes-or-no-p |
| 4985 | (format "Delete file %s " idlwave-user-catalog-file)) | 5000 | (format "Delete file %s " idlwave-user-catalog-file)) |
| @@ -4995,7 +5010,7 @@ directories and save the routine info. | |||
| 4995 | (this-path-alist path-alist) | 5010 | (this-path-alist path-alist) |
| 4996 | dir-entry) | 5011 | dir-entry) |
| 4997 | (while (setq dir-entry (pop this-path-alist)) | 5012 | (while (setq dir-entry (pop this-path-alist)) |
| 4998 | (if (member | 5013 | (if (member |
| 4999 | (if (memq 'lib (cdr dir-entry)) | 5014 | (if (memq 'lib (cdr dir-entry)) |
| 5000 | (concat "[LIB] " (car dir-entry)) | 5015 | (concat "[LIB] " (car dir-entry)) |
| 5001 | (car dir-entry)) | 5016 | (car dir-entry)) |
| @@ -5092,7 +5107,7 @@ directories and save the routine info. | |||
| 5092 | ;; Define the variable which knows the value of "!DIR" | 5107 | ;; Define the variable which knows the value of "!DIR" |
| 5093 | (insert (format "\n(setq idlwave-system-directory \"%s\")\n" | 5108 | (insert (format "\n(setq idlwave-system-directory \"%s\")\n" |
| 5094 | idlwave-system-directory)) | 5109 | idlwave-system-directory)) |
| 5095 | 5110 | ||
| 5096 | ;; Define the variable which contains a list of all scanned directories | 5111 | ;; Define the variable which contains a list of all scanned directories |
| 5097 | (insert "\n(setq idlwave-path-alist\n '(") | 5112 | (insert "\n(setq idlwave-path-alist\n '(") |
| 5098 | (let ((standard-output (current-buffer))) | 5113 | (let ((standard-output (current-buffer))) |
| @@ -5132,7 +5147,7 @@ directories and save the routine info. | |||
| 5132 | (when (file-directory-p dir) | 5147 | (when (file-directory-p dir) |
| 5133 | (setq files (nreverse (directory-files dir t "[^.]"))) | 5148 | (setq files (nreverse (directory-files dir t "[^.]"))) |
| 5134 | (while (setq file (pop files)) | 5149 | (while (setq file (pop files)) |
| 5135 | (if (file-directory-p file) | 5150 | (if (file-directory-p file) |
| 5136 | (push (file-name-as-directory file) path))) | 5151 | (push (file-name-as-directory file) path))) |
| 5137 | (push dir path1))) | 5152 | (push dir path1))) |
| 5138 | path1)) | 5153 | path1)) |
| @@ -5140,8 +5155,11 @@ directories and save the routine info. | |||
| 5140 | 5155 | ||
| 5141 | ;;----- Scanning the library catalogs ------------------ | 5156 | ;;----- Scanning the library catalogs ------------------ |
| 5142 | 5157 | ||
| 5158 | |||
| 5159 | |||
| 5160 | |||
| 5143 | (defun idlwave-scan-library-catalogs (&optional message-base no-load) | 5161 | (defun idlwave-scan-library-catalogs (&optional message-base no-load) |
| 5144 | "Scan for library catalog files (.idlwave_catalog) and ingest. | 5162 | "Scan for library catalog files (.idlwave_catalog) and ingest. |
| 5145 | 5163 | ||
| 5146 | All directories on `idlwave-path-alist' (or `idlwave-library-path' | 5164 | All directories on `idlwave-path-alist' (or `idlwave-library-path' |
| 5147 | instead, if present) are searched. Print MESSAGE-BASE along with the | 5165 | instead, if present) are searched. Print MESSAGE-BASE along with the |
| @@ -5149,7 +5167,7 @@ libraries being loaded, if passed, and skip loading/normalizing if | |||
| 5149 | NO-LOAD is non-nil. The variable `idlwave-use-library-catalogs' can | 5167 | NO-LOAD is non-nil. The variable `idlwave-use-library-catalogs' can |
| 5150 | be set to nil to disable library catalog scanning." | 5168 | be set to nil to disable library catalog scanning." |
| 5151 | (when idlwave-use-library-catalogs | 5169 | (when idlwave-use-library-catalogs |
| 5152 | (let ((dirs | 5170 | (let ((dirs |
| 5153 | (if idlwave-library-path | 5171 | (if idlwave-library-path |
| 5154 | (idlwave-expand-path idlwave-library-path) | 5172 | (idlwave-expand-path idlwave-library-path) |
| 5155 | (mapcar 'car idlwave-path-alist))) | 5173 | (mapcar 'car idlwave-path-alist))) |
| @@ -5158,7 +5176,7 @@ be set to nil to disable library catalog scanning." | |||
| 5158 | (if message-base (message message-base)) | 5176 | (if message-base (message message-base)) |
| 5159 | (while (setq dir (pop dirs)) | 5177 | (while (setq dir (pop dirs)) |
| 5160 | (catch 'continue | 5178 | (catch 'continue |
| 5161 | (when (file-readable-p | 5179 | (when (file-readable-p |
| 5162 | (setq catalog (expand-file-name ".idlwave_catalog" dir))) | 5180 | (setq catalog (expand-file-name ".idlwave_catalog" dir))) |
| 5163 | (unless no-load | 5181 | (unless no-load |
| 5164 | (setq idlwave-library-catalog-routines nil) | 5182 | (setq idlwave-library-catalog-routines nil) |
| @@ -5166,20 +5184,20 @@ be set to nil to disable library catalog scanning." | |||
| 5166 | (condition-case nil | 5184 | (condition-case nil |
| 5167 | (load catalog t t t) | 5185 | (load catalog t t t) |
| 5168 | (error (throw 'continue t))) | 5186 | (error (throw 'continue t))) |
| 5169 | (when (and | 5187 | (when (and |
| 5170 | message-base | 5188 | message-base |
| 5171 | (not (string= idlwave-library-catalog-libname | 5189 | (not (string= idlwave-library-catalog-libname |
| 5172 | old-libname))) | 5190 | old-libname))) |
| 5173 | (message (concat message-base | 5191 | (message (concat message-base |
| 5174 | idlwave-library-catalog-libname)) | 5192 | idlwave-library-catalog-libname)) |
| 5175 | (setq old-libname idlwave-library-catalog-libname)) | 5193 | (setq old-libname idlwave-library-catalog-libname)) |
| 5176 | (when idlwave-library-catalog-routines | 5194 | (when idlwave-library-catalog-routines |
| 5177 | (setq all-routines | 5195 | (setq all-routines |
| 5178 | (append | 5196 | (append |
| 5179 | (idlwave-sintern-rinfo-list | 5197 | (idlwave-sintern-rinfo-list |
| 5180 | idlwave-library-catalog-routines 'sys dir) | 5198 | idlwave-library-catalog-routines 'sys dir) |
| 5181 | all-routines)))) | 5199 | all-routines)))) |
| 5182 | 5200 | ||
| 5183 | ;; Add a 'lib flag if on path-alist | 5201 | ;; Add a 'lib flag if on path-alist |
| 5184 | (when (and idlwave-path-alist | 5202 | (when (and idlwave-path-alist |
| 5185 | (setq dir-entry (assoc dir idlwave-path-alist))) | 5203 | (setq dir-entry (assoc dir idlwave-path-alist))) |
| @@ -5190,17 +5208,17 @@ be set to nil to disable library catalog scanning." | |||
| 5190 | ;;----- Communicating with the Shell ------------------- | 5208 | ;;----- Communicating with the Shell ------------------- |
| 5191 | 5209 | ||
| 5192 | ;; First, here is the idl program which can be used to query IDL for | 5210 | ;; First, here is the idl program which can be used to query IDL for |
| 5193 | ;; defined routines. | 5211 | ;; defined routines. |
| 5194 | (defconst idlwave-routine-info.pro | 5212 | (defconst idlwave-routine-info.pro |
| 5195 | " | 5213 | " |
| 5196 | ;; START OF IDLWAVE SUPPORT ROUTINES | 5214 | ;; START OF IDLWAVE SUPPORT ROUTINES |
| 5197 | pro idlwave_print_info_entry,name,func=func,separator=sep | 5215 | pro idlwave_print_info_entry,name,func=func,separator=sep |
| 5198 | ;; See if it's an object method | 5216 | ;; See if it's an object method |
| 5199 | if name eq '' then return | 5217 | if name eq '' then return |
| 5200 | func = keyword_set(func) | 5218 | func = keyword_set(func) |
| 5201 | methsep = strpos(name,'::') | 5219 | methsep = strpos(name,'::') |
| 5202 | meth = methsep ne -1 | 5220 | meth = methsep ne -1 |
| 5203 | 5221 | ||
| 5204 | ;; Get routine info | 5222 | ;; Get routine info |
| 5205 | pars = routine_info(name,/parameters,functions=func) | 5223 | pars = routine_info(name,/parameters,functions=func) |
| 5206 | source = routine_info(name,/source,functions=func) | 5224 | source = routine_info(name,/source,functions=func) |
| @@ -5208,12 +5226,12 @@ pro idlwave_print_info_entry,name,func=func,separator=sep | |||
| 5208 | nkw = pars.num_kw_args | 5226 | nkw = pars.num_kw_args |
| 5209 | if nargs gt 0 then args = pars.args | 5227 | if nargs gt 0 then args = pars.args |
| 5210 | if nkw gt 0 then kwargs = pars.kw_args | 5228 | if nkw gt 0 then kwargs = pars.kw_args |
| 5211 | 5229 | ||
| 5212 | ;; Trim the class, and make the name | 5230 | ;; Trim the class, and make the name |
| 5213 | if meth then begin | 5231 | if meth then begin |
| 5214 | class = strmid(name,0,methsep) | 5232 | class = strmid(name,0,methsep) |
| 5215 | name = strmid(name,methsep+2,strlen(name)-1) | 5233 | name = strmid(name,methsep+2,strlen(name)-1) |
| 5216 | if nargs gt 0 then begin | 5234 | if nargs gt 0 then begin |
| 5217 | ;; remove the self argument | 5235 | ;; remove the self argument |
| 5218 | wh = where(args ne 'SELF',nargs) | 5236 | wh = where(args ne 'SELF',nargs) |
| 5219 | if nargs gt 0 then args = args[wh] | 5237 | if nargs gt 0 then args = args[wh] |
| @@ -5222,7 +5240,7 @@ pro idlwave_print_info_entry,name,func=func,separator=sep | |||
| 5222 | ;; No class, just a normal routine. | 5240 | ;; No class, just a normal routine. |
| 5223 | class = \"\" | 5241 | class = \"\" |
| 5224 | endelse | 5242 | endelse |
| 5225 | 5243 | ||
| 5226 | ;; Calling sequence | 5244 | ;; Calling sequence |
| 5227 | cs = \"\" | 5245 | cs = \"\" |
| 5228 | if func then cs = 'Result = ' | 5246 | if func then cs = 'Result = ' |
| @@ -5243,9 +5261,9 @@ pro idlwave_print_info_entry,name,func=func,separator=sep | |||
| 5243 | kwstring = kwstring + ' ' + kwargs[j] | 5261 | kwstring = kwstring + ' ' + kwargs[j] |
| 5244 | endfor | 5262 | endfor |
| 5245 | endif | 5263 | endif |
| 5246 | 5264 | ||
| 5247 | ret=(['IDLWAVE-PRO','IDLWAVE-FUN'])[func] | 5265 | ret=(['IDLWAVE-PRO','IDLWAVE-FUN'])[func] |
| 5248 | 5266 | ||
| 5249 | print,ret + ': ' + name + sep + class + sep + source[0].path $ | 5267 | print,ret + ': ' + name + sep + class + sep + source[0].path $ |
| 5250 | + sep + cs + sep + kwstring | 5268 | + sep + cs + sep + kwstring |
| 5251 | end | 5269 | end |
| @@ -5285,7 +5303,7 @@ pro idlwave_get_class_tags, class | |||
| 5285 | if res then print,'IDLWAVE-CLASS-TAGS: '+class+' '+strjoin(tags,' ',/single) | 5303 | if res then print,'IDLWAVE-CLASS-TAGS: '+class+' '+strjoin(tags,' ',/single) |
| 5286 | end | 5304 | end |
| 5287 | ;; END OF IDLWAVE SUPPORT ROUTINES | 5305 | ;; END OF IDLWAVE SUPPORT ROUTINES |
| 5288 | " | 5306 | " |
| 5289 | "The idl programs to get info from the shell.") | 5307 | "The idl programs to get info from the shell.") |
| 5290 | 5308 | ||
| 5291 | (defvar idlwave-idlwave_routine_info-compiled nil | 5309 | (defvar idlwave-idlwave_routine_info-compiled nil |
| @@ -5308,12 +5326,12 @@ end | |||
| 5308 | (erase-buffer) | 5326 | (erase-buffer) |
| 5309 | (insert idlwave-routine-info.pro) | 5327 | (insert idlwave-routine-info.pro) |
| 5310 | (save-buffer 0)) | 5328 | (save-buffer 0)) |
| 5311 | (idlwave-shell-send-command | 5329 | (idlwave-shell-send-command |
| 5312 | (concat ".run " idlwave-shell-temp-pro-file) | 5330 | (concat ".run " idlwave-shell-temp-pro-file) |
| 5313 | nil 'hide wait) | 5331 | nil 'hide wait) |
| 5314 | ; (message "SENDING SAVE") ; ???????????????????????? | 5332 | ; (message "SENDING SAVE") ; ???????????????????????? |
| 5315 | (idlwave-shell-send-command | 5333 | (idlwave-shell-send-command |
| 5316 | (format "save,'idlwave_routine_info','idlwave_print_info_entry','idlwave_get_class_tags','idlwave_get_sysvars',FILE='%s',/ROUTINES" | 5334 | (format "save,'idlwave_routine_info','idlwave_print_info_entry','idlwave_get_class_tags','idlwave_get_sysvars',FILE='%s',/ROUTINES" |
| 5317 | (idlwave-shell-temp-file 'rinfo)) | 5335 | (idlwave-shell-temp-file 'rinfo)) |
| 5318 | nil 'hide wait)) | 5336 | nil 'hide wait)) |
| 5319 | 5337 | ||
| @@ -5396,7 +5414,7 @@ When we force a method or a method keyword, CLASS can specify the class." | |||
| 5396 | (completion-regexp-list | 5414 | (completion-regexp-list |
| 5397 | (if (equal arg '(16)) | 5415 | (if (equal arg '(16)) |
| 5398 | (list (read-string (concat "Completion Regexp: ")))))) | 5416 | (list (read-string (concat "Completion Regexp: ")))))) |
| 5399 | 5417 | ||
| 5400 | (if (and module (string-match "::" module)) | 5418 | (if (and module (string-match "::" module)) |
| 5401 | (setq class (substring module 0 (match-beginning 0)) | 5419 | (setq class (substring module 0 (match-beginning 0)) |
| 5402 | module (substring module (match-end 0)))) | 5420 | module (substring module (match-end 0)))) |
| @@ -5417,7 +5435,7 @@ When we force a method or a method keyword, CLASS can specify the class." | |||
| 5417 | ;; Check for any special completion functions | 5435 | ;; Check for any special completion functions |
| 5418 | ((and idlwave-complete-special | 5436 | ((and idlwave-complete-special |
| 5419 | (idlwave-call-special idlwave-complete-special))) | 5437 | (idlwave-call-special idlwave-complete-special))) |
| 5420 | 5438 | ||
| 5421 | ((null what) | 5439 | ((null what) |
| 5422 | (error "Nothing to complete here")) | 5440 | (error "Nothing to complete here")) |
| 5423 | 5441 | ||
| @@ -5434,7 +5452,7 @@ When we force a method or a method keyword, CLASS can specify the class." | |||
| 5434 | (idlwave-all-class-inherits class-selector))) | 5452 | (idlwave-all-class-inherits class-selector))) |
| 5435 | (isa (concat "procedure" (if class-selector "-method" ""))) | 5453 | (isa (concat "procedure" (if class-selector "-method" ""))) |
| 5436 | (type-selector 'pro)) | 5454 | (type-selector 'pro)) |
| 5437 | (setq idlwave-completion-help-info | 5455 | (setq idlwave-completion-help-info |
| 5438 | (list 'routine nil type-selector class-selector nil super-classes)) | 5456 | (list 'routine nil type-selector class-selector nil super-classes)) |
| 5439 | (idlwave-complete-in-buffer | 5457 | (idlwave-complete-in-buffer |
| 5440 | 'procedure (if class-selector 'method 'routine) | 5458 | 'procedure (if class-selector 'method 'routine) |
| @@ -5442,8 +5460,8 @@ When we force a method or a method keyword, CLASS can specify the class." | |||
| 5442 | (format "Select a %s name%s" | 5460 | (format "Select a %s name%s" |
| 5443 | isa | 5461 | isa |
| 5444 | (if class-selector | 5462 | (if class-selector |
| 5445 | (format " (class is %s)" | 5463 | (format " (class is %s)" |
| 5446 | (if (eq class-selector t) | 5464 | (if (eq class-selector t) |
| 5447 | "unknown" class-selector)) | 5465 | "unknown" class-selector)) |
| 5448 | "")) | 5466 | "")) |
| 5449 | isa | 5467 | isa |
| @@ -5457,7 +5475,7 @@ When we force a method or a method keyword, CLASS can specify the class." | |||
| 5457 | (idlwave-all-class-inherits class-selector))) | 5475 | (idlwave-all-class-inherits class-selector))) |
| 5458 | (isa (concat "function" (if class-selector "-method" ""))) | 5476 | (isa (concat "function" (if class-selector "-method" ""))) |
| 5459 | (type-selector 'fun)) | 5477 | (type-selector 'fun)) |
| 5460 | (setq idlwave-completion-help-info | 5478 | (setq idlwave-completion-help-info |
| 5461 | (list 'routine nil type-selector class-selector nil super-classes)) | 5479 | (list 'routine nil type-selector class-selector nil super-classes)) |
| 5462 | (idlwave-complete-in-buffer | 5480 | (idlwave-complete-in-buffer |
| 5463 | 'function (if class-selector 'method 'routine) | 5481 | 'function (if class-selector 'method 'routine) |
| @@ -5465,7 +5483,7 @@ When we force a method or a method keyword, CLASS can specify the class." | |||
| 5465 | (format "Select a %s name%s" | 5483 | (format "Select a %s name%s" |
| 5466 | isa | 5484 | isa |
| 5467 | (if class-selector | 5485 | (if class-selector |
| 5468 | (format " (class is %s)" | 5486 | (format " (class is %s)" |
| 5469 | (if (eq class-selector t) | 5487 | (if (eq class-selector t) |
| 5470 | "unknown" class-selector)) | 5488 | "unknown" class-selector)) |
| 5471 | "")) | 5489 | "")) |
| @@ -5488,21 +5506,23 @@ When we force a method or a method keyword, CLASS can specify the class." | |||
| 5488 | (isa (format "procedure%s-keyword" (if class "-method" ""))) | 5506 | (isa (format "procedure%s-keyword" (if class "-method" ""))) |
| 5489 | (entry (idlwave-best-rinfo-assq | 5507 | (entry (idlwave-best-rinfo-assq |
| 5490 | name 'pro class (idlwave-routines))) | 5508 | name 'pro class (idlwave-routines))) |
| 5509 | (system (if entry (eq (car (nth 3 entry)) 'system))) | ||
| 5491 | (list (idlwave-entry-keywords entry 'do-link))) | 5510 | (list (idlwave-entry-keywords entry 'do-link))) |
| 5492 | (unless (or entry (eq class t)) | 5511 | (unless (or entry (eq class t)) |
| 5493 | (error "Nothing known about procedure %s" | 5512 | (error "Nothing known about procedure %s" |
| 5494 | (idlwave-make-full-name class name))) | 5513 | (idlwave-make-full-name class name))) |
| 5495 | (setq list (idlwave-fix-keywords name 'pro class list super-classes)) | 5514 | (setq list (idlwave-fix-keywords name 'pro class list |
| 5515 | super-classes system)) | ||
| 5496 | (unless list (error "No keywords available for procedure %s" | 5516 | (unless list (error "No keywords available for procedure %s" |
| 5497 | (idlwave-make-full-name class name))) | 5517 | (idlwave-make-full-name class name))) |
| 5498 | (setq idlwave-completion-help-info | 5518 | (setq idlwave-completion-help-info |
| 5499 | (list 'keyword name type-selector class-selector entry super-classes)) | 5519 | (list 'keyword name type-selector class-selector entry super-classes)) |
| 5500 | (idlwave-complete-in-buffer | 5520 | (idlwave-complete-in-buffer |
| 5501 | 'keyword 'keyword list nil | 5521 | 'keyword 'keyword list nil |
| 5502 | (format "Select keyword for procedure %s%s" | 5522 | (format "Select keyword for procedure %s%s" |
| 5503 | (idlwave-make-full-name class name) | 5523 | (idlwave-make-full-name class name) |
| 5504 | (if (or (member '("_EXTRA") list) | 5524 | (if (or (member '("_EXTRA") list) |
| 5505 | (member '("_REF_EXTRA") list)) | 5525 | (member '("_REF_EXTRA") list)) |
| 5506 | " (note _EXTRA)" "")) | 5526 | " (note _EXTRA)" "")) |
| 5507 | isa | 5527 | isa |
| 5508 | 'idlwave-attach-keyword-classes))) | 5528 | 'idlwave-attach-keyword-classes))) |
| @@ -5519,12 +5539,14 @@ When we force a method or a method keyword, CLASS can specify the class." | |||
| 5519 | (isa (format "function%s-keyword" (if class "-method" ""))) | 5539 | (isa (format "function%s-keyword" (if class "-method" ""))) |
| 5520 | (entry (idlwave-best-rinfo-assq | 5540 | (entry (idlwave-best-rinfo-assq |
| 5521 | name 'fun class (idlwave-routines))) | 5541 | name 'fun class (idlwave-routines))) |
| 5542 | (system (if entry (eq (car (nth 3 entry)) 'system))) | ||
| 5522 | (list (idlwave-entry-keywords entry 'do-link)) | 5543 | (list (idlwave-entry-keywords entry 'do-link)) |
| 5523 | msg-name) | 5544 | msg-name) |
| 5524 | (unless (or entry (eq class t)) | 5545 | (unless (or entry (eq class t)) |
| 5525 | (error "Nothing known about function %s" | 5546 | (error "Nothing known about function %s" |
| 5526 | (idlwave-make-full-name class name))) | 5547 | (idlwave-make-full-name class name))) |
| 5527 | (setq list (idlwave-fix-keywords name 'fun class list super-classes)) | 5548 | (setq list (idlwave-fix-keywords name 'fun class list |
| 5549 | super-classes system)) | ||
| 5528 | ;; OBJ_NEW: Messages mention the proper Init method | 5550 | ;; OBJ_NEW: Messages mention the proper Init method |
| 5529 | (setq msg-name (if (and (null class) | 5551 | (setq msg-name (if (and (null class) |
| 5530 | (string= (upcase name) "OBJ_NEW")) | 5552 | (string= (upcase name) "OBJ_NEW")) |
| @@ -5532,14 +5554,14 @@ When we force a method or a method keyword, CLASS can specify the class." | |||
| 5532 | "::Init (via OBJ_NEW)") | 5554 | "::Init (via OBJ_NEW)") |
| 5533 | (idlwave-make-full-name class name))) | 5555 | (idlwave-make-full-name class name))) |
| 5534 | (unless list (error "No keywords available for function %s" | 5556 | (unless list (error "No keywords available for function %s" |
| 5535 | msg-name)) | 5557 | msg-name)) |
| 5536 | (setq idlwave-completion-help-info | 5558 | (setq idlwave-completion-help-info |
| 5537 | (list 'keyword name type-selector class-selector nil super-classes)) | 5559 | (list 'keyword name type-selector class-selector nil super-classes)) |
| 5538 | (idlwave-complete-in-buffer | 5560 | (idlwave-complete-in-buffer |
| 5539 | 'keyword 'keyword list nil | 5561 | 'keyword 'keyword list nil |
| 5540 | (format "Select keyword for function %s%s" msg-name | 5562 | (format "Select keyword for function %s%s" msg-name |
| 5541 | (if (or (member '("_EXTRA") list) | 5563 | (if (or (member '("_EXTRA") list) |
| 5542 | (member '("_REF_EXTRA") list)) | 5564 | (member '("_REF_EXTRA") list)) |
| 5543 | " (note _EXTRA)" "")) | 5565 | " (note _EXTRA)" "")) |
| 5544 | isa | 5566 | isa |
| 5545 | 'idlwave-attach-keyword-classes))) | 5567 | 'idlwave-attach-keyword-classes))) |
| @@ -5577,10 +5599,10 @@ other completions will be tried.") | |||
| 5577 | ("class"))) | 5599 | ("class"))) |
| 5578 | (module (idlwave-sintern-routine-or-method module class)) | 5600 | (module (idlwave-sintern-routine-or-method module class)) |
| 5579 | (class (idlwave-sintern-class class)) | 5601 | (class (idlwave-sintern-class class)) |
| 5580 | (what (cond | 5602 | (what (cond |
| 5581 | ((equal what 0) | 5603 | ((equal what 0) |
| 5582 | (setq what | 5604 | (setq what |
| 5583 | (intern (completing-read | 5605 | (intern (completing-read |
| 5584 | "Complete what? " what-list nil t)))) | 5606 | "Complete what? " what-list nil t)))) |
| 5585 | ((integerp what) | 5607 | ((integerp what) |
| 5586 | (setq what (intern (car (nth (1- what) what-list))))) | 5608 | (setq what (intern (car (nth (1- what) what-list))))) |
| @@ -5602,7 +5624,7 @@ other completions will be tried.") | |||
| 5602 | (super-classes nil) | 5624 | (super-classes nil) |
| 5603 | (type-selector 'pro) | 5625 | (type-selector 'pro) |
| 5604 | (pro (or module | 5626 | (pro (or module |
| 5605 | (idlwave-completing-read | 5627 | (idlwave-completing-read |
| 5606 | "Procedure: " (idlwave-routines) 'idlwave-selector)))) | 5628 | "Procedure: " (idlwave-routines) 'idlwave-selector)))) |
| 5607 | (setq pro (idlwave-sintern-routine pro)) | 5629 | (setq pro (idlwave-sintern-routine pro)) |
| 5608 | (list nil-list nil-list 'procedure-keyword | 5630 | (list nil-list nil-list 'procedure-keyword |
| @@ -5616,7 +5638,7 @@ other completions will be tried.") | |||
| 5616 | (super-classes nil) | 5638 | (super-classes nil) |
| 5617 | (type-selector 'fun) | 5639 | (type-selector 'fun) |
| 5618 | (func (or module | 5640 | (func (or module |
| 5619 | (idlwave-completing-read | 5641 | (idlwave-completing-read |
| 5620 | "Function: " (idlwave-routines) 'idlwave-selector)))) | 5642 | "Function: " (idlwave-routines) 'idlwave-selector)))) |
| 5621 | (setq func (idlwave-sintern-routine func)) | 5643 | (setq func (idlwave-sintern-routine func)) |
| 5622 | (list nil-list nil-list 'function-keyword | 5644 | (list nil-list nil-list 'function-keyword |
| @@ -5656,7 +5678,7 @@ other completions will be tried.") | |||
| 5656 | 5678 | ||
| 5657 | ((eq what 'class) | 5679 | ((eq what 'class) |
| 5658 | (list nil-list nil-list 'class nil-list nil)) | 5680 | (list nil-list nil-list 'class nil-list nil)) |
| 5659 | 5681 | ||
| 5660 | (t (error "Invalid value for WHAT"))))) | 5682 | (t (error "Invalid value for WHAT"))))) |
| 5661 | 5683 | ||
| 5662 | (defun idlwave-completing-read (&rest args) | 5684 | (defun idlwave-completing-read (&rest args) |
| @@ -5679,7 +5701,7 @@ other completions will be tried.") | |||
| 5679 | (stringp idlwave-shell-default-directory) | 5701 | (stringp idlwave-shell-default-directory) |
| 5680 | (file-directory-p idlwave-shell-default-directory)) | 5702 | (file-directory-p idlwave-shell-default-directory)) |
| 5681 | idlwave-shell-default-directory | 5703 | idlwave-shell-default-directory |
| 5682 | default-directory))) | 5704 | default-directory))) |
| 5683 | (comint-dynamic-complete-filename))) | 5705 | (comint-dynamic-complete-filename))) |
| 5684 | 5706 | ||
| 5685 | (defun idlwave-make-full-name (class name) | 5707 | (defun idlwave-make-full-name (class name) |
| @@ -5688,7 +5710,7 @@ other completions will be tried.") | |||
| 5688 | 5710 | ||
| 5689 | (defun idlwave-rinfo-assoc (name type class list) | 5711 | (defun idlwave-rinfo-assoc (name type class list) |
| 5690 | "Like `idlwave-rinfo-assq', but sintern strings first." | 5712 | "Like `idlwave-rinfo-assq', but sintern strings first." |
| 5691 | (idlwave-rinfo-assq | 5713 | (idlwave-rinfo-assq |
| 5692 | (idlwave-sintern-routine-or-method name class) | 5714 | (idlwave-sintern-routine-or-method name class) |
| 5693 | type (idlwave-sintern-class class) list)) | 5715 | type (idlwave-sintern-class class) list)) |
| 5694 | 5716 | ||
| @@ -5712,7 +5734,7 @@ other completions will be tried.") | |||
| 5712 | (setq classes nil))) | 5734 | (setq classes nil))) |
| 5713 | rtn)) | 5735 | rtn)) |
| 5714 | 5736 | ||
| 5715 | (defun idlwave-best-rinfo-assq (name type class list &optional with-file | 5737 | (defun idlwave-best-rinfo-assq (name type class list &optional with-file |
| 5716 | keep-system) | 5738 | keep-system) |
| 5717 | "Like `idlwave-rinfo-assq', but get all twins and sort, then return first. | 5739 | "Like `idlwave-rinfo-assq', but get all twins and sort, then return first. |
| 5718 | If WITH-FILE is passed, find the best rinfo entry with a file | 5740 | If WITH-FILE is passed, find the best rinfo entry with a file |
| @@ -5737,7 +5759,7 @@ syslib files." | |||
| 5737 | twins))))) | 5759 | twins))))) |
| 5738 | (car twins))) | 5760 | (car twins))) |
| 5739 | 5761 | ||
| 5740 | (defun idlwave-best-rinfo-assoc (name type class list &optional with-file | 5762 | (defun idlwave-best-rinfo-assoc (name type class list &optional with-file |
| 5741 | keep-system) | 5763 | keep-system) |
| 5742 | "Like `idlwave-best-rinfo-assq', but sintern strings first." | 5764 | "Like `idlwave-best-rinfo-assq', but sintern strings first." |
| 5743 | (idlwave-best-rinfo-assq | 5765 | (idlwave-best-rinfo-assq |
| @@ -5828,7 +5850,7 @@ INFO is as returned by idlwave-what-function or -procedure." | |||
| 5828 | Must accept two arguments: `apos' and `info'") | 5850 | Must accept two arguments: `apos' and `info'") |
| 5829 | 5851 | ||
| 5830 | (defun idlwave-determine-class (info type) | 5852 | (defun idlwave-determine-class (info type) |
| 5831 | ;; Determine the class of a routine call. | 5853 | ;; Determine the class of a routine call. |
| 5832 | ;; INFO is the `cw-list' structure as returned by idlwave-where. | 5854 | ;; INFO is the `cw-list' structure as returned by idlwave-where. |
| 5833 | ;; The second element in this structure is the class. When nil, we | 5855 | ;; The second element in this structure is the class. When nil, we |
| 5834 | ;; return nil. When t, try to get the class from text properties at | 5856 | ;; return nil. When t, try to get the class from text properties at |
| @@ -5848,7 +5870,7 @@ Must accept two arguments: `apos' and `info'") | |||
| 5848 | (dassoc (cdr dassoc)) | 5870 | (dassoc (cdr dassoc)) |
| 5849 | (t t))) | 5871 | (t t))) |
| 5850 | (arrow (and apos (string= (buffer-substring apos (+ 2 apos)) "->"))) | 5872 | (arrow (and apos (string= (buffer-substring apos (+ 2 apos)) "->"))) |
| 5851 | (is-self | 5873 | (is-self |
| 5852 | (and arrow | 5874 | (and arrow |
| 5853 | (save-excursion (goto-char apos) | 5875 | (save-excursion (goto-char apos) |
| 5854 | (forward-word -1) | 5876 | (forward-word -1) |
| @@ -5869,19 +5891,19 @@ Must accept two arguments: `apos' and `info'") | |||
| 5869 | (setq class (or (nth 2 (idlwave-current-routine)) class))) | 5891 | (setq class (or (nth 2 (idlwave-current-routine)) class))) |
| 5870 | 5892 | ||
| 5871 | ;; Before prompting, try any special class determination routines | 5893 | ;; Before prompting, try any special class determination routines |
| 5872 | (when (and (eq t class) | 5894 | (when (and (eq t class) |
| 5873 | idlwave-determine-class-special | 5895 | idlwave-determine-class-special |
| 5874 | (not force-query)) | 5896 | (not force-query)) |
| 5875 | (setq special-class | 5897 | (setq special-class |
| 5876 | (idlwave-call-special idlwave-determine-class-special apos)) | 5898 | (idlwave-call-special idlwave-determine-class-special apos)) |
| 5877 | (if special-class | 5899 | (if special-class |
| 5878 | (setq class (idlwave-sintern-class special-class) | 5900 | (setq class (idlwave-sintern-class special-class) |
| 5879 | store idlwave-store-inquired-class))) | 5901 | store idlwave-store-inquired-class))) |
| 5880 | 5902 | ||
| 5881 | ;; Prompt for a class, if we need to | 5903 | ;; Prompt for a class, if we need to |
| 5882 | (when (and (eq class t) | 5904 | (when (and (eq class t) |
| 5883 | (or force-query query)) | 5905 | (or force-query query)) |
| 5884 | (setq class-alist | 5906 | (setq class-alist |
| 5885 | (mapcar 'list (idlwave-all-method-classes (car info) type))) | 5907 | (mapcar 'list (idlwave-all-method-classes (car info) type))) |
| 5886 | (setq class | 5908 | (setq class |
| 5887 | (idlwave-sintern-class | 5909 | (idlwave-sintern-class |
| @@ -5890,9 +5912,9 @@ Must accept two arguments: `apos' and `info'") | |||
| 5890 | (error "No classes available with method %s" (car info))) | 5912 | (error "No classes available with method %s" (car info))) |
| 5891 | ((and (= (length class-alist) 1) (not force-query)) | 5913 | ((and (= (length class-alist) 1) (not force-query)) |
| 5892 | (car (car class-alist))) | 5914 | (car (car class-alist))) |
| 5893 | (t | 5915 | (t |
| 5894 | (setq store idlwave-store-inquired-class) | 5916 | (setq store idlwave-store-inquired-class) |
| 5895 | (idlwave-completing-read | 5917 | (idlwave-completing-read |
| 5896 | (format "Class%s: " (if (stringp (car info)) | 5918 | (format "Class%s: " (if (stringp (car info)) |
| 5897 | (format " for %s method %s" | 5919 | (format " for %s method %s" |
| 5898 | type (car info)) | 5920 | type (car info)) |
| @@ -5904,9 +5926,9 @@ Must accept two arguments: `apos' and `info'") | |||
| 5904 | ;; We have a real class here | 5926 | ;; We have a real class here |
| 5905 | (when (and store arrow) | 5927 | (when (and store arrow) |
| 5906 | (condition-case () | 5928 | (condition-case () |
| 5907 | (add-text-properties | 5929 | (add-text-properties |
| 5908 | apos (+ apos 2) | 5930 | apos (+ apos 2) |
| 5909 | `(idlwave-class ,class face ,idlwave-class-arrow-face | 5931 | `(idlwave-class ,class face ,idlwave-class-arrow-face |
| 5910 | rear-nonsticky t)) | 5932 | rear-nonsticky t)) |
| 5911 | (error nil))) | 5933 | (error nil))) |
| 5912 | (setf (nth 2 info) class)) | 5934 | (setf (nth 2 info) class)) |
| @@ -5934,14 +5956,14 @@ Must accept two arguments: `apos' and `info'") | |||
| 5934 | 5956 | ||
| 5935 | 5957 | ||
| 5936 | (defun idlwave-where () | 5958 | (defun idlwave-where () |
| 5937 | "Find out where we are. | 5959 | "Find out where we are. |
| 5938 | The return value is a list with the following stuff: | 5960 | The return value is a list with the following stuff: |
| 5939 | \(PRO-LIST FUNC-LIST COMPLETE-WHAT CW-LIST LAST-CHAR) | 5961 | \(PRO-LIST FUNC-LIST COMPLETE-WHAT CW-LIST LAST-CHAR) |
| 5940 | 5962 | ||
| 5941 | PRO-LIST (PRO POINT CLASS ARROW) | 5963 | PRO-LIST (PRO POINT CLASS ARROW) |
| 5942 | FUNC-LIST (FUNC POINT CLASS ARROW) | 5964 | FUNC-LIST (FUNC POINT CLASS ARROW) |
| 5943 | COMPLETE-WHAT a symbol indicating what kind of completion makes sense here | 5965 | COMPLETE-WHAT a symbol indicating what kind of completion makes sense here |
| 5944 | CW-LIST (PRO-OR-FUNC POINT CLASS ARROW) Like PRO-LIST, for what can | 5966 | CW-LIST (PRO-OR-FUNC POINT CLASS ARROW) Like PRO-LIST, for what can |
| 5945 | be completed here. | 5967 | be completed here. |
| 5946 | LAST-CHAR last relevant character before point (non-white non-comment, | 5968 | LAST-CHAR last relevant character before point (non-white non-comment, |
| 5947 | not part of current identifier or leading slash). | 5969 | not part of current identifier or leading slash). |
| @@ -5953,7 +5975,7 @@ POINT: Where is this | |||
| 5953 | CLASS: What class has the routine (nil=no, t=is method, but class unknown) | 5975 | CLASS: What class has the routine (nil=no, t=is method, but class unknown) |
| 5954 | ARROW: Location of the arrow" | 5976 | ARROW: Location of the arrow" |
| 5955 | (idlwave-routines) | 5977 | (idlwave-routines) |
| 5956 | (let* (;(bos (save-excursion (idlwave-beginning-of-statement) (point))) | 5978 | (let* (;(bos (save-excursion (idlwave-beginning-of-statement) (point))) |
| 5957 | (bos (save-excursion (idlwave-start-of-substatement 'pre) (point))) | 5979 | (bos (save-excursion (idlwave-start-of-substatement 'pre) (point))) |
| 5958 | (func-entry (idlwave-what-function bos)) | 5980 | (func-entry (idlwave-what-function bos)) |
| 5959 | (func (car func-entry)) | 5981 | (func (car func-entry)) |
| @@ -5975,8 +5997,8 @@ ARROW: Location of the arrow" | |||
| 5975 | ((string-match "\\`[ \t]*\\(pro\\|function\\)[ \t]+[a-zA-Z0-9_]*\\'" | 5997 | ((string-match "\\`[ \t]*\\(pro\\|function\\)[ \t]+[a-zA-Z0-9_]*\\'" |
| 5976 | match-string) | 5998 | match-string) |
| 5977 | (setq cw 'class)) | 5999 | (setq cw 'class)) |
| 5978 | ((string-match | 6000 | ((string-match |
| 5979 | "\\`[ \t]*\\([a-zA-Z][a-zA-Z0-9$_]*\\)?\\'" | 6001 | "\\`[ \t]*\\([a-zA-Z][a-zA-Z0-9$_]*\\)?\\'" |
| 5980 | (if (> pro-point 0) | 6002 | (if (> pro-point 0) |
| 5981 | (buffer-substring pro-point (point)) | 6003 | (buffer-substring pro-point (point)) |
| 5982 | match-string)) | 6004 | match-string)) |
| @@ -5987,11 +6009,11 @@ ARROW: Location of the arrow" | |||
| 5987 | nil) | 6009 | nil) |
| 5988 | ((string-match "OBJ_NEW([ \t]*['\"]\\([a-zA-Z0-9$_]*\\)?\\'" | 6010 | ((string-match "OBJ_NEW([ \t]*['\"]\\([a-zA-Z0-9$_]*\\)?\\'" |
| 5989 | match-string) | 6011 | match-string) |
| 5990 | (setq cw 'class)) | 6012 | (setq cw 'class)) |
| 5991 | ((string-match "\\<inherits\\s-+\\([a-zA-Z0-9$_]*\\)?\\'" | 6013 | ((string-match "\\<inherits\\s-+\\([a-zA-Z0-9$_]*\\)?\\'" |
| 5992 | match-string) | 6014 | match-string) |
| 5993 | (setq cw 'class)) | 6015 | (setq cw 'class)) |
| 5994 | ((and func | 6016 | ((and func |
| 5995 | (> func-point pro-point) | 6017 | (> func-point pro-point) |
| 5996 | (= func-level 1) | 6018 | (= func-level 1) |
| 5997 | (memq last-char '(?\( ?,))) | 6019 | (memq last-char '(?\( ?,))) |
| @@ -6037,7 +6059,7 @@ ARROW: Location of the arrow" | |||
| 6037 | ;; searches to this point. | 6059 | ;; searches to this point. |
| 6038 | 6060 | ||
| 6039 | (catch 'exit | 6061 | (catch 'exit |
| 6040 | (let (pos | 6062 | (let (pos |
| 6041 | func-point | 6063 | func-point |
| 6042 | (cnt 0) | 6064 | (cnt 0) |
| 6043 | func arrow-start class) | 6065 | func arrow-start class) |
| @@ -6052,18 +6074,18 @@ ARROW: Location of the arrow" | |||
| 6052 | (setq pos (point)) | 6074 | (setq pos (point)) |
| 6053 | (incf cnt) | 6075 | (incf cnt) |
| 6054 | (when (and (= (following-char) ?\() | 6076 | (when (and (= (following-char) ?\() |
| 6055 | (re-search-backward | 6077 | (re-search-backward |
| 6056 | "\\(::\\|\\<\\)\\([a-zA-Z][a-zA-Z0-9$_]*\\)[ \t]*\\=" | 6078 | "\\(::\\|\\<\\)\\([a-zA-Z][a-zA-Z0-9$_]*\\)[ \t]*\\=" |
| 6057 | bound t)) | 6079 | bound t)) |
| 6058 | (setq func (match-string 2) | 6080 | (setq func (match-string 2) |
| 6059 | func-point (goto-char (match-beginning 2)) | 6081 | func-point (goto-char (match-beginning 2)) |
| 6060 | pos func-point) | 6082 | pos func-point) |
| 6061 | (if (re-search-backward | 6083 | (if (re-search-backward |
| 6062 | "->[ \t]*\\(\\([a-zA-Z][a-zA-Z0-9$_]*\\)::\\)?\\=" bound t) | 6084 | "->[ \t]*\\(\\([a-zA-Z][a-zA-Z0-9$_]*\\)::\\)?\\=" bound t) |
| 6063 | (setq arrow-start (copy-marker (match-beginning 0)) | 6085 | (setq arrow-start (copy-marker (match-beginning 0)) |
| 6064 | class (or (match-string 2) t))) | 6086 | class (or (match-string 2) t))) |
| 6065 | (throw | 6087 | (throw |
| 6066 | 'exit | 6088 | 'exit |
| 6067 | (list | 6089 | (list |
| 6068 | (idlwave-sintern-routine-or-method func class) | 6090 | (idlwave-sintern-routine-or-method func class) |
| 6069 | (idlwave-sintern-class class) | 6091 | (idlwave-sintern-class class) |
| @@ -6079,18 +6101,18 @@ ARROW: Location of the arrow" | |||
| 6079 | ;; searches to this point. | 6101 | ;; searches to this point. |
| 6080 | (let ((pos (point)) pro-point | 6102 | (let ((pos (point)) pro-point |
| 6081 | pro class arrow-start string) | 6103 | pro class arrow-start string) |
| 6082 | (save-excursion | 6104 | (save-excursion |
| 6083 | ;;(idlwave-beginning-of-statement) | 6105 | ;;(idlwave-beginning-of-statement) |
| 6084 | (idlwave-start-of-substatement 'pre) | 6106 | (idlwave-start-of-substatement 'pre) |
| 6085 | (setq string (buffer-substring (point) pos)) | 6107 | (setq string (buffer-substring (point) pos)) |
| 6086 | (if (string-match | 6108 | (if (string-match |
| 6087 | "\\`[ \t]*\\([a-zA-Z][a-zA-Z0-9$_]*\\)[ \t]*\\(,\\|\\'\\)" string) | 6109 | "\\`[ \t]*\\([a-zA-Z][a-zA-Z0-9$_]*\\)[ \t]*\\(,\\|\\'\\)" string) |
| 6088 | (setq pro (match-string 1 string) | 6110 | (setq pro (match-string 1 string) |
| 6089 | pro-point (+ (point) (match-beginning 1))) | 6111 | pro-point (+ (point) (match-beginning 1))) |
| 6090 | (if (and (idlwave-skip-object) | 6112 | (if (and (idlwave-skip-object) |
| 6091 | (setq string (buffer-substring (point) pos)) | 6113 | (setq string (buffer-substring (point) pos)) |
| 6092 | (string-match | 6114 | (string-match |
| 6093 | "\\`[ \t]*\\(->\\)[ \t]*\\(\\([a-zA-Z][a-zA-Z0-9$_]*\\)::\\)?\\([a-zA-Z][a-zA-Z0-9$_]*\\)?[ \t]*\\(,\\|\\(\\$\\s *\\(;.*\\)?\\)?$\\)" | 6115 | "\\`[ \t]*\\(->\\)[ \t]*\\(\\([a-zA-Z][a-zA-Z0-9$_]*\\)::\\)?\\([a-zA-Z][a-zA-Z0-9$_]*\\)?[ \t]*\\(,\\|\\(\\$\\s *\\(;.*\\)?\\)?$\\)" |
| 6094 | string)) | 6116 | string)) |
| 6095 | (setq pro (if (match-beginning 4) | 6117 | (setq pro (if (match-beginning 4) |
| 6096 | (match-string 4 string)) | 6118 | (match-string 4 string)) |
| @@ -6134,7 +6156,7 @@ ARROW: Location of the arrow" | |||
| 6134 | (throw 'exit nil)))) | 6156 | (throw 'exit nil)))) |
| 6135 | (goto-char pos) | 6157 | (goto-char pos) |
| 6136 | nil))) | 6158 | nil))) |
| 6137 | 6159 | ||
| 6138 | (defun idlwave-last-valid-char () | 6160 | (defun idlwave-last-valid-char () |
| 6139 | "Return the last character before point which is not white or a comment | 6161 | "Return the last character before point which is not white or a comment |
| 6140 | and also not part of the current identifier. Since we do this in | 6162 | and also not part of the current identifier. Since we do this in |
| @@ -6155,7 +6177,7 @@ This function is not general, can only be used for completion stuff." | |||
| 6155 | ((memq (preceding-char) '(?\; ?\$)) (throw 'exit nil)) | 6177 | ((memq (preceding-char) '(?\; ?\$)) (throw 'exit nil)) |
| 6156 | ((eq (preceding-char) ?\n) | 6178 | ((eq (preceding-char) ?\n) |
| 6157 | (beginning-of-line 0) | 6179 | (beginning-of-line 0) |
| 6158 | (if (looking-at "\\([^;\n]*\\)\\$[ \t]*\\(;[^\n]*\\)?\n") | 6180 | (if (looking-at "\\([^\n]*\\)\\$[ \t]*\\(;[^\n]*\\)?\n") |
| 6159 | ;; continuation line | 6181 | ;; continuation line |
| 6160 | (goto-char (match-end 1)) | 6182 | (goto-char (match-end 1)) |
| 6161 | (throw 'exit nil))) | 6183 | (throw 'exit nil))) |
| @@ -6224,23 +6246,23 @@ accumulate information on matching completions." | |||
| 6224 | ((or (eq completion t) | 6246 | ((or (eq completion t) |
| 6225 | (and (= 1 (length (setq all-completions | 6247 | (and (= 1 (length (setq all-completions |
| 6226 | (idlwave-uniquify | 6248 | (idlwave-uniquify |
| 6227 | (all-completions part list | 6249 | (all-completions part list |
| 6228 | (or special-selector | 6250 | (or special-selector |
| 6229 | selector)))))) | 6251 | selector)))))) |
| 6230 | (equal dpart dcompletion))) | 6252 | (equal dpart dcompletion))) |
| 6231 | ;; This is already complete | 6253 | ;; This is already complete |
| 6232 | (idlwave-after-successful-completion type slash beg) | 6254 | (idlwave-after-successful-completion type slash beg) |
| 6233 | (message "%s is already the complete %s" part isa) | 6255 | (message "%s is already the complete %s" part isa) |
| 6234 | nil) | 6256 | nil) |
| 6235 | (t | 6257 | (t |
| 6236 | ;; We cannot add something - offer a list. | 6258 | ;; We cannot add something - offer a list. |
| 6237 | (message "Making completion list...") | 6259 | (message "Making completion list...") |
| 6238 | 6260 | ||
| 6239 | (unless idlwave-completion-help-links ; already set somewhere? | 6261 | (unless idlwave-completion-help-links ; already set somewhere? |
| 6240 | (mapcar (lambda (x) ; Pass link prop through to highlight-linked | 6262 | (mapcar (lambda (x) ; Pass link prop through to highlight-linked |
| 6241 | (let ((link (get-text-property 0 'link (car x)))) | 6263 | (let ((link (get-text-property 0 'link (car x)))) |
| 6242 | (if link | 6264 | (if link |
| 6243 | (push (cons (car x) link) | 6265 | (push (cons (car x) link) |
| 6244 | idlwave-completion-help-links)))) | 6266 | idlwave-completion-help-links)))) |
| 6245 | list)) | 6267 | list)) |
| 6246 | (let* ((list all-completions) | 6268 | (let* ((list all-completions) |
| @@ -6250,7 +6272,7 @@ accumulate information on matching completions." | |||
| 6250 | ; (completion-fixup-function ; Emacs | 6272 | ; (completion-fixup-function ; Emacs |
| 6251 | ; (lambda () (and (eq (preceding-char) ?>) | 6273 | ; (lambda () (and (eq (preceding-char) ?>) |
| 6252 | ; (re-search-backward " <" beg t))))) | 6274 | ; (re-search-backward " <" beg t))))) |
| 6253 | 6275 | ||
| 6254 | (setq list (sort list (lambda (a b) | 6276 | (setq list (sort list (lambda (a b) |
| 6255 | (string< (downcase a) (downcase b))))) | 6277 | (string< (downcase a) (downcase b))))) |
| 6256 | (if prepare-display-function | 6278 | (if prepare-display-function |
| @@ -6260,7 +6282,7 @@ accumulate information on matching completions." | |||
| 6260 | idlwave-complete-empty-string-as-lower-case) | 6282 | idlwave-complete-empty-string-as-lower-case) |
| 6261 | (not idlwave-completion-force-default-case)) | 6283 | (not idlwave-completion-force-default-case)) |
| 6262 | (setq list (mapcar (lambda (x) | 6284 | (setq list (mapcar (lambda (x) |
| 6263 | (if (listp x) | 6285 | (if (listp x) |
| 6264 | (setcar x (downcase (car x))) | 6286 | (setcar x (downcase (car x))) |
| 6265 | (setq x (downcase x))) | 6287 | (setq x (downcase x))) |
| 6266 | x) | 6288 | x) |
| @@ -6280,19 +6302,19 @@ accumulate information on matching completions." | |||
| 6280 | (re-search-backward "\\<\\(pro\\|function\\)[ \t]+\\=" | 6302 | (re-search-backward "\\<\\(pro\\|function\\)[ \t]+\\=" |
| 6281 | (- (point) 15) t) | 6303 | (- (point) 15) t) |
| 6282 | (goto-char (point-min)) | 6304 | (goto-char (point-min)) |
| 6283 | (re-search-forward | 6305 | (re-search-forward |
| 6284 | "^[ \t]*\\(pro\\|function\\)[ \t]+\\([a-zA-Z0-9_]+::\\)" nil t)))) | 6306 | "^[ \t]*\\(pro\\|function\\)[ \t]+\\([a-zA-Z0-9_]+::\\)" nil t)))) |
| 6285 | ;; Yank the full class specification | 6307 | ;; Yank the full class specification |
| 6286 | (insert (match-string 2)) | 6308 | (insert (match-string 2)) |
| 6287 | ;; Do the completion, using list gathered from `idlwave-routines' | 6309 | ;; Do the completion, using list gathered from `idlwave-routines' |
| 6288 | (idlwave-complete-in-buffer | 6310 | (idlwave-complete-in-buffer |
| 6289 | 'class 'class (idlwave-class-alist) nil | 6311 | 'class 'class (idlwave-class-alist) nil |
| 6290 | "Select a class" "class" | 6312 | "Select a class" "class" |
| 6291 | '(lambda (list) ;; Push it to help-links if system help available | 6313 | '(lambda (list) ;; Push it to help-links if system help available |
| 6292 | (mapcar (lambda (x) | 6314 | (mapcar (lambda (x) |
| 6293 | (let* ((entry (idlwave-class-info x)) | 6315 | (let* ((entry (idlwave-class-info x)) |
| 6294 | (link (nth 1 (assq 'link entry)))) | 6316 | (link (nth 1 (assq 'link entry)))) |
| 6295 | (if link (push (cons x link) | 6317 | (if link (push (cons x link) |
| 6296 | idlwave-completion-help-links)) | 6318 | idlwave-completion-help-links)) |
| 6297 | x)) | 6319 | x)) |
| 6298 | list))))) | 6320 | list))))) |
| @@ -6304,7 +6326,7 @@ accumulate information on matching completions." | |||
| 6304 | ;; SHOW-CLASSES is the value of `idlwave-completion-show-classes'. | 6326 | ;; SHOW-CLASSES is the value of `idlwave-completion-show-classes'. |
| 6305 | (if (or (null show-classes) ; don't want to see classes | 6327 | (if (or (null show-classes) ; don't want to see classes |
| 6306 | (null class-selector) ; not a method call | 6328 | (null class-selector) ; not a method call |
| 6307 | (and | 6329 | (and |
| 6308 | (stringp class-selector) ; the class is already known | 6330 | (stringp class-selector) ; the class is already known |
| 6309 | (not super-classes))) ; no possibilities for inheritance | 6331 | (not super-classes))) ; no possibilities for inheritance |
| 6310 | ;; In these cases, we do not have to do anything | 6332 | ;; In these cases, we do not have to do anything |
| @@ -6319,13 +6341,13 @@ accumulate information on matching completions." | |||
| 6319 | (max (abs show-classes)) | 6341 | (max (abs show-classes)) |
| 6320 | (lmax (if do-dots (apply 'max (mapcar 'length list)))) | 6342 | (lmax (if do-dots (apply 'max (mapcar 'length list)))) |
| 6321 | classes nclasses class-info space) | 6343 | classes nclasses class-info space) |
| 6322 | (mapcar | 6344 | (mapcar |
| 6323 | (lambda (x) | 6345 | (lambda (x) |
| 6324 | ;; get the classes | 6346 | ;; get the classes |
| 6325 | (if (eq type 'class-tag) | 6347 | (if (eq type 'class-tag) |
| 6326 | ;; Just one class for tags | 6348 | ;; Just one class for tags |
| 6327 | (setq classes | 6349 | (setq classes |
| 6328 | (list | 6350 | (list |
| 6329 | (idlwave-class-or-superclass-with-tag class-selector x))) | 6351 | (idlwave-class-or-superclass-with-tag class-selector x))) |
| 6330 | ;; Multiple classes for method or method-keyword | 6352 | ;; Multiple classes for method or method-keyword |
| 6331 | (setq classes | 6353 | (setq classes |
| @@ -6334,7 +6356,7 @@ accumulate information on matching completions." | |||
| 6334 | method-selector x type-selector) | 6356 | method-selector x type-selector) |
| 6335 | (idlwave-all-method-classes x type-selector))) | 6357 | (idlwave-all-method-classes x type-selector))) |
| 6336 | (if inherit | 6358 | (if inherit |
| 6337 | (setq classes | 6359 | (setq classes |
| 6338 | (delq nil | 6360 | (delq nil |
| 6339 | (mapcar (lambda (x) (if (memq x inherit) x nil)) | 6361 | (mapcar (lambda (x) (if (memq x inherit) x nil)) |
| 6340 | classes))))) | 6362 | classes))))) |
| @@ -6371,7 +6393,7 @@ accumulate information on matching completions." | |||
| 6371 | (defun idlwave-attach-class-tag-classes (list) | 6393 | (defun idlwave-attach-class-tag-classes (list) |
| 6372 | ;; Call idlwave-attach-classes with class structure tags | 6394 | ;; Call idlwave-attach-classes with class structure tags |
| 6373 | (idlwave-attach-classes list 'class-tag idlwave-completion-show-classes)) | 6395 | (idlwave-attach-classes list 'class-tag idlwave-completion-show-classes)) |
| 6374 | 6396 | ||
| 6375 | 6397 | ||
| 6376 | ;;---------------------------------------------------------------------- | 6398 | ;;---------------------------------------------------------------------- |
| 6377 | ;;---------------------------------------------------------------------- | 6399 | ;;---------------------------------------------------------------------- |
| @@ -6392,7 +6414,7 @@ sort the list before displaying" | |||
| 6392 | ((= 1 (length list)) | 6414 | ((= 1 (length list)) |
| 6393 | (setq rtn (car list))) | 6415 | (setq rtn (car list))) |
| 6394 | ((featurep 'xemacs) | 6416 | ((featurep 'xemacs) |
| 6395 | (if sort (setq list (sort list (lambda (a b) | 6417 | (if sort (setq list (sort list (lambda (a b) |
| 6396 | (string< (upcase a) (upcase b)))))) | 6418 | (string< (upcase a) (upcase b)))))) |
| 6397 | (setq menu | 6419 | (setq menu |
| 6398 | (append (list title) | 6420 | (append (list title) |
| @@ -6403,7 +6425,7 @@ sort the list before displaying" | |||
| 6403 | (setq resp (get-popup-menu-response menu)) | 6425 | (setq resp (get-popup-menu-response menu)) |
| 6404 | (funcall (event-function resp) (event-object resp))) | 6426 | (funcall (event-function resp) (event-object resp))) |
| 6405 | (t | 6427 | (t |
| 6406 | (if sort (setq list (sort list (lambda (a b) | 6428 | (if sort (setq list (sort list (lambda (a b) |
| 6407 | (string< (upcase a) (upcase b)))))) | 6429 | (string< (upcase a) (upcase b)))))) |
| 6408 | (setq menu (cons title | 6430 | (setq menu (cons title |
| 6409 | (list | 6431 | (list |
| @@ -6494,7 +6516,7 @@ sort the list before displaying" | |||
| 6494 | (setq idlwave-before-completion-wconf (current-window-configuration))) | 6516 | (setq idlwave-before-completion-wconf (current-window-configuration))) |
| 6495 | 6517 | ||
| 6496 | (if (featurep 'xemacs) | 6518 | (if (featurep 'xemacs) |
| 6497 | (idlwave-display-completion-list-xemacs | 6519 | (idlwave-display-completion-list-xemacs |
| 6498 | list) | 6520 | list) |
| 6499 | (idlwave-display-completion-list-emacs list)) | 6521 | (idlwave-display-completion-list-emacs list)) |
| 6500 | 6522 | ||
| @@ -6575,7 +6597,7 @@ If these don't exist, a letter in the string is automatically selected." | |||
| 6575 | (mapcar (lambda(x) | 6597 | (mapcar (lambda(x) |
| 6576 | (princ (nth 1 x)) | 6598 | (princ (nth 1 x)) |
| 6577 | (princ "\n")) | 6599 | (princ "\n")) |
| 6578 | keys-alist)) | 6600 | keys-alist)) |
| 6579 | (setq char (read-char))) | 6601 | (setq char (read-char))) |
| 6580 | (setq char (read-char))) | 6602 | (setq char (read-char))) |
| 6581 | (message nil) | 6603 | (message nil) |
| @@ -6695,7 +6717,7 @@ If these don't exist, a letter in the string is automatically selected." | |||
| 6695 | (defun idlwave-make-modified-completion-map-emacs (old-map) | 6717 | (defun idlwave-make-modified-completion-map-emacs (old-map) |
| 6696 | "Replace `choose-completion' and `mouse-choose-completion' in OLD-MAP." | 6718 | "Replace `choose-completion' and `mouse-choose-completion' in OLD-MAP." |
| 6697 | (let ((new-map (copy-keymap old-map))) | 6719 | (let ((new-map (copy-keymap old-map))) |
| 6698 | (substitute-key-definition | 6720 | (substitute-key-definition |
| 6699 | 'choose-completion 'idlwave-choose-completion new-map) | 6721 | 'choose-completion 'idlwave-choose-completion new-map) |
| 6700 | (substitute-key-definition | 6722 | (substitute-key-definition |
| 6701 | 'mouse-choose-completion 'idlwave-mouse-choose-completion new-map) | 6723 | 'mouse-choose-completion 'idlwave-mouse-choose-completion new-map) |
| @@ -6721,8 +6743,8 @@ If these don't exist, a letter in the string is automatically selected." | |||
| 6721 | ;; | 6743 | ;; |
| 6722 | ;; - Go again over the documentation how to write a completion | 6744 | ;; - Go again over the documentation how to write a completion |
| 6723 | ;; plugin. It is in self.el, but currently still very bad. | 6745 | ;; plugin. It is in self.el, but currently still very bad. |
| 6724 | ;; This could be in a separate file in the distribution, or | 6746 | ;; This could be in a separate file in the distribution, or |
| 6725 | ;; in an appendix for the manual. | 6747 | ;; in an appendix for the manual. |
| 6726 | 6748 | ||
| 6727 | (defvar idlwave-struct-skip | 6749 | (defvar idlwave-struct-skip |
| 6728 | "[ \t]*\\(\\$.*\n\\(^[ \t]*\\(\\$[ \t]*\\)?\\(;.*\\)?\n\\)*\\)?[ \t]*" | 6750 | "[ \t]*\\(\\$.*\n\\(^[ \t]*\\(\\$[ \t]*\\)?\\(;.*\\)?\n\\)*\\)?[ \t]*" |
| @@ -6761,7 +6783,7 @@ Point is expected just before the opening `{' of the struct definition." | |||
| 6761 | (beg (car borders)) | 6783 | (beg (car borders)) |
| 6762 | (end (cdr borders)) | 6784 | (end (cdr borders)) |
| 6763 | (case-fold-search t)) | 6785 | (case-fold-search t)) |
| 6764 | (re-search-forward (concat "\\(^[ \t]*\\|[,{][ \t]*\\)" tag "[ \t]*:") | 6786 | (re-search-forward (concat "\\(^[ \t]*\\|[,{][ \t]*\\)" tag "[ \t]*:") |
| 6765 | end t))) | 6787 | end t))) |
| 6766 | 6788 | ||
| 6767 | (defun idlwave-struct-inherits () | 6789 | (defun idlwave-struct-inherits () |
| @@ -6776,7 +6798,7 @@ Point is expected just before the opening `{' of the struct definition." | |||
| 6776 | (goto-char beg) | 6798 | (goto-char beg) |
| 6777 | (save-restriction | 6799 | (save-restriction |
| 6778 | (narrow-to-region beg end) | 6800 | (narrow-to-region beg end) |
| 6779 | (while (re-search-forward | 6801 | (while (re-search-forward |
| 6780 | (concat "[{,]" ;leading comma/brace | 6802 | (concat "[{,]" ;leading comma/brace |
| 6781 | idlwave-struct-skip ; 4 groups | 6803 | idlwave-struct-skip ; 4 groups |
| 6782 | "inherits" ; The INHERITS tag | 6804 | "inherits" ; The INHERITS tag |
| @@ -6826,9 +6848,9 @@ backward." | |||
| 6826 | (concat "\\<" (regexp-quote (downcase var)) "\\>" ws) | 6848 | (concat "\\<" (regexp-quote (downcase var)) "\\>" ws) |
| 6827 | "\\(\\)") | 6849 | "\\(\\)") |
| 6828 | "=" ws "\\({\\)" | 6850 | "=" ws "\\({\\)" |
| 6829 | (if name | 6851 | (if name |
| 6830 | (if (stringp name) | 6852 | (if (stringp name) |
| 6831 | (concat ws "\\(\\<" (downcase name) "\\)[^a-zA-Z0-9_$]") | 6853 | (concat ws "\\(\\<" (downcase name) "\\)[^a-zA-Z0-9_$]") |
| 6832 | ;; Just a generic name | 6854 | ;; Just a generic name |
| 6833 | (concat ws "\\<\\([a-zA-Z_0-9$]+\\)" ws ",")) | 6855 | (concat ws "\\<\\([a-zA-Z_0-9$]+\\)" ws ",")) |
| 6834 | "")))) | 6856 | "")))) |
| @@ -6839,7 +6861,7 @@ backward." | |||
| 6839 | (goto-char (match-beginning 3)) | 6861 | (goto-char (match-beginning 3)) |
| 6840 | (match-string-no-properties 5))))) | 6862 | (match-string-no-properties 5))))) |
| 6841 | 6863 | ||
| 6842 | (defvar idlwave-class-info nil) | 6864 | (defvar idlwave-class-info nil) |
| 6843 | (defvar idlwave-system-class-info nil) ; Gathered from idlw-rinfo | 6865 | (defvar idlwave-system-class-info nil) ; Gathered from idlw-rinfo |
| 6844 | (defvar idlwave-class-reset nil) ; to reset buffer-local classes | 6866 | (defvar idlwave-class-reset nil) ; to reset buffer-local classes |
| 6845 | 6867 | ||
| @@ -6852,13 +6874,13 @@ backward." | |||
| 6852 | (let (list entry) | 6874 | (let (list entry) |
| 6853 | (if idlwave-class-info | 6875 | (if idlwave-class-info |
| 6854 | (if idlwave-class-reset | 6876 | (if idlwave-class-reset |
| 6855 | (setq | 6877 | (setq |
| 6856 | idlwave-class-reset nil | 6878 | idlwave-class-reset nil |
| 6857 | idlwave-class-info ; Remove any visited in a buffer | 6879 | idlwave-class-info ; Remove any visited in a buffer |
| 6858 | (delq nil (mapcar | 6880 | (delq nil (mapcar |
| 6859 | (lambda (x) | 6881 | (lambda (x) |
| 6860 | (let ((filebuf | 6882 | (let ((filebuf |
| 6861 | (idlwave-class-file-or-buffer | 6883 | (idlwave-class-file-or-buffer |
| 6862 | (or (cdr (assq 'found-in x)) (car x))))) | 6884 | (or (cdr (assq 'found-in x)) (car x))))) |
| 6863 | (if (cdr filebuf) | 6885 | (if (cdr filebuf) |
| 6864 | nil | 6886 | nil |
| @@ -6896,7 +6918,7 @@ class/struct definition" | |||
| 6896 | (progn | 6918 | (progn |
| 6897 | ;; For everything there | 6919 | ;; For everything there |
| 6898 | (setq end-lim (save-excursion (idlwave-end-of-subprogram) (point))) | 6920 | (setq end-lim (save-excursion (idlwave-end-of-subprogram) (point))) |
| 6899 | (while (setq name | 6921 | (while (setq name |
| 6900 | (idlwave-find-structure-definition nil t end-lim)) | 6922 | (idlwave-find-structure-definition nil t end-lim)) |
| 6901 | (funcall all-hook name))) | 6923 | (funcall all-hook name))) |
| 6902 | (idlwave-find-structure-definition nil (or alt-class class)))))) | 6924 | (idlwave-find-structure-definition nil (or alt-class class)))))) |
| @@ -6934,11 +6956,11 @@ class/struct definition" | |||
| 6934 | (insert-file-contents file)) | 6956 | (insert-file-contents file)) |
| 6935 | (save-excursion | 6957 | (save-excursion |
| 6936 | (goto-char 1) | 6958 | (goto-char 1) |
| 6937 | (idlwave-find-class-definition class | 6959 | (idlwave-find-class-definition class |
| 6938 | ;; Scan all of the structures found there | 6960 | ;; Scan all of the structures found there |
| 6939 | (lambda (name) | 6961 | (lambda (name) |
| 6940 | (let* ((this-class (idlwave-sintern-class name)) | 6962 | (let* ((this-class (idlwave-sintern-class name)) |
| 6941 | (entry | 6963 | (entry |
| 6942 | (list this-class | 6964 | (list this-class |
| 6943 | (cons 'tags (idlwave-struct-tags)) | 6965 | (cons 'tags (idlwave-struct-tags)) |
| 6944 | (cons 'inherits (idlwave-struct-inherits))))) | 6966 | (cons 'inherits (idlwave-struct-inherits))))) |
| @@ -6963,7 +6985,7 @@ class/struct definition" | |||
| 6963 | (condition-case err | 6985 | (condition-case err |
| 6964 | (apply 'append (mapcar 'idlwave-class-tags | 6986 | (apply 'append (mapcar 'idlwave-class-tags |
| 6965 | (cons class (idlwave-all-class-inherits class)))) | 6987 | (cons class (idlwave-all-class-inherits class)))) |
| 6966 | (error | 6988 | (error |
| 6967 | (idlwave-class-tag-reset) | 6989 | (idlwave-class-tag-reset) |
| 6968 | (error "%s" (error-message-string err))))) | 6990 | (error "%s" (error-message-string err))))) |
| 6969 | 6991 | ||
| @@ -7000,24 +7022,24 @@ The list is cached in `idlwave-class-info' for faster access." | |||
| 7000 | all-inherits)))))) | 7022 | all-inherits)))))) |
| 7001 | 7023 | ||
| 7002 | (defun idlwave-entry-keywords (entry &optional record-link) | 7024 | (defun idlwave-entry-keywords (entry &optional record-link) |
| 7003 | "Return the flat entry keywords alist from routine-info entry. | 7025 | "Return the flat entry keywords alist from routine-info entry. |
| 7004 | If RECORD-LINK is non-nil, the keyword text is copied and a text | 7026 | If RECORD-LINK is non-nil, the keyword text is copied and a text |
| 7005 | property indicating the link is added." | 7027 | property indicating the link is added." |
| 7006 | (let (kwds) | 7028 | (let (kwds) |
| 7007 | (mapcar | 7029 | (mapcar |
| 7008 | (lambda (key-list) | 7030 | (lambda (key-list) |
| 7009 | (let ((file (car key-list))) | 7031 | (let ((file (car key-list))) |
| 7010 | (mapcar (lambda (key-cons) | 7032 | (mapcar (lambda (key-cons) |
| 7011 | (let ((key (car key-cons)) | 7033 | (let ((key (car key-cons)) |
| 7012 | (link (cdr key-cons))) | 7034 | (link (cdr key-cons))) |
| 7013 | (when (and record-link file) | 7035 | (when (and record-link file) |
| 7014 | (setq key (copy-sequence key)) | 7036 | (setq key (copy-sequence key)) |
| 7015 | (put-text-property | 7037 | (put-text-property |
| 7016 | 0 (length key) | 7038 | 0 (length key) |
| 7017 | 'link | 7039 | 'link |
| 7018 | (concat | 7040 | (concat |
| 7019 | file | 7041 | file |
| 7020 | (if link | 7042 | (if link |
| 7021 | (concat idlwave-html-link-sep | 7043 | (concat idlwave-html-link-sep |
| 7022 | (number-to-string link)))) | 7044 | (number-to-string link)))) |
| 7023 | key)) | 7045 | key)) |
| @@ -7030,13 +7052,13 @@ property indicating the link is added." | |||
| 7030 | "Find keyword KEYWORD in entry ENTRY, and return (with link) if set" | 7052 | "Find keyword KEYWORD in entry ENTRY, and return (with link) if set" |
| 7031 | (catch 'exit | 7053 | (catch 'exit |
| 7032 | (mapc | 7054 | (mapc |
| 7033 | (lambda (key-list) | 7055 | (lambda (key-list) |
| 7034 | (let ((file (car key-list)) | 7056 | (let ((file (car key-list)) |
| 7035 | (kwd (assoc keyword (cdr key-list)))) | 7057 | (kwd (assoc keyword (cdr key-list)))) |
| 7036 | (when kwd | 7058 | (when kwd |
| 7037 | (setq kwd (cons (car kwd) | 7059 | (setq kwd (cons (car kwd) |
| 7038 | (if (and file (cdr kwd)) | 7060 | (if (and file (cdr kwd)) |
| 7039 | (concat file | 7061 | (concat file |
| 7040 | idlwave-html-link-sep | 7062 | idlwave-html-link-sep |
| 7041 | (number-to-string (cdr kwd))) | 7063 | (number-to-string (cdr kwd))) |
| 7042 | (cdr kwd)))) | 7064 | (cdr kwd)))) |
| @@ -7074,14 +7096,14 @@ property indicating the link is added." | |||
| 7074 | ;; Check if we need to update the "current" class | 7096 | ;; Check if we need to update the "current" class |
| 7075 | (if (not (equal class-selector idlwave-current-tags-class)) | 7097 | (if (not (equal class-selector idlwave-current-tags-class)) |
| 7076 | (idlwave-prepare-class-tag-completion class-selector)) | 7098 | (idlwave-prepare-class-tag-completion class-selector)) |
| 7077 | (setq idlwave-completion-help-info | 7099 | (setq idlwave-completion-help-info |
| 7078 | (list 'idlwave-complete-class-structure-tag-help | 7100 | (list 'idlwave-complete-class-structure-tag-help |
| 7079 | (idlwave-sintern-routine | 7101 | (idlwave-sintern-routine |
| 7080 | (concat class-selector "__define")) | 7102 | (concat class-selector "__define")) |
| 7081 | nil)) | 7103 | nil)) |
| 7082 | (let ((idlwave-cpl-bold idlwave-current-native-class-tags)) | 7104 | (let ((idlwave-cpl-bold idlwave-current-native-class-tags)) |
| 7083 | (idlwave-complete-in-buffer | 7105 | (idlwave-complete-in-buffer |
| 7084 | 'class-tag 'class-tag | 7106 | 'class-tag 'class-tag |
| 7085 | idlwave-current-class-tags nil | 7107 | idlwave-current-class-tags nil |
| 7086 | (format "Select a tag of class %s" class-selector) | 7108 | (format "Select a tag of class %s" class-selector) |
| 7087 | "class tag" | 7109 | "class tag" |
| @@ -7133,7 +7155,7 @@ Gets set in `idlw-rinfo.el'.") | |||
| 7133 | (skip-chars-backward "[a-zA-Z0-9_$]") | 7155 | (skip-chars-backward "[a-zA-Z0-9_$]") |
| 7134 | (equal (char-before) ?!)) | 7156 | (equal (char-before) ?!)) |
| 7135 | (setq idlwave-completion-help-info '(idlwave-complete-sysvar-help)) | 7157 | (setq idlwave-completion-help-info '(idlwave-complete-sysvar-help)) |
| 7136 | (idlwave-complete-in-buffer 'sysvar 'sysvar | 7158 | (idlwave-complete-in-buffer 'sysvar 'sysvar |
| 7137 | idlwave-system-variables-alist nil | 7159 | idlwave-system-variables-alist nil |
| 7138 | "Select a system variable" | 7160 | "Select a system variable" |
| 7139 | "system variable") | 7161 | "system variable") |
| @@ -7152,13 +7174,14 @@ Gets set in `idlw-rinfo.el'.") | |||
| 7152 | (or tags (error "System variable !%s is not a structure" var)) | 7174 | (or tags (error "System variable !%s is not a structure" var)) |
| 7153 | (setq idlwave-completion-help-info | 7175 | (setq idlwave-completion-help-info |
| 7154 | (list 'idlwave-complete-sysvar-tag-help var)) | 7176 | (list 'idlwave-complete-sysvar-tag-help var)) |
| 7155 | (idlwave-complete-in-buffer 'sysvartag 'sysvartag | 7177 | (idlwave-complete-in-buffer 'sysvartag 'sysvartag |
| 7156 | tags nil | 7178 | tags nil |
| 7157 | "Select a system variable tag" | 7179 | "Select a system variable tag" |
| 7158 | "system variable tag") | 7180 | "system variable tag") |
| 7159 | t)) ; return t to skip other completions | 7181 | t)) ; return t to skip other completions |
| 7160 | (t nil)))) | 7182 | (t nil)))) |
| 7161 | 7183 | ||
| 7184 | (defvar link) ;dynamic | ||
| 7162 | (defun idlwave-complete-sysvar-help (mode word) | 7185 | (defun idlwave-complete-sysvar-help (mode word) |
| 7163 | (let ((word (or (nth 1 idlwave-completion-help-info) word)) | 7186 | (let ((word (or (nth 1 idlwave-completion-help-info) word)) |
| 7164 | (entry (assoc word idlwave-system-variables-alist))) | 7187 | (entry (assoc word idlwave-system-variables-alist))) |
| @@ -7179,8 +7202,8 @@ Gets set in `idlw-rinfo.el'.") | |||
| 7179 | ((eq mode 'test) ; we can at least link the main | 7202 | ((eq mode 'test) ; we can at least link the main |
| 7180 | (and (stringp word) entry main)) | 7203 | (and (stringp word) entry main)) |
| 7181 | ((eq mode 'set) | 7204 | ((eq mode 'set) |
| 7182 | (if entry | 7205 | (if entry |
| 7183 | (setq link | 7206 | (setq link |
| 7184 | (if (setq target (cdr (assoc word tags))) | 7207 | (if (setq target (cdr (assoc word tags))) |
| 7185 | (idlwave-substitute-link-target main target) | 7208 | (idlwave-substitute-link-target main target) |
| 7186 | main)))) ;; setting dynamic!!! | 7209 | main)))) ;; setting dynamic!!! |
| @@ -7198,7 +7221,7 @@ Gets set in `idlw-rinfo.el'.") | |||
| 7198 | 7221 | ||
| 7199 | ;; Fake help in the source buffer for class structure tags. | 7222 | ;; Fake help in the source buffer for class structure tags. |
| 7200 | ;; KWD AND NAME ARE GLOBAL-VARIABLES HERE. | 7223 | ;; KWD AND NAME ARE GLOBAL-VARIABLES HERE. |
| 7201 | (defvar name) | 7224 | (defvar name) |
| 7202 | (defvar kwd) | 7225 | (defvar kwd) |
| 7203 | (defvar idlwave-help-do-class-struct-tag nil) | 7226 | (defvar idlwave-help-do-class-struct-tag nil) |
| 7204 | (defun idlwave-complete-class-structure-tag-help (mode word) | 7227 | (defun idlwave-complete-class-structure-tag-help (mode word) |
| @@ -7207,11 +7230,11 @@ Gets set in `idlw-rinfo.el'.") | |||
| 7207 | nil) | 7230 | nil) |
| 7208 | ((eq mode 'set) | 7231 | ((eq mode 'set) |
| 7209 | (let (class-with found-in) | 7232 | (let (class-with found-in) |
| 7210 | (when (setq class-with | 7233 | (when (setq class-with |
| 7211 | (idlwave-class-or-superclass-with-tag | 7234 | (idlwave-class-or-superclass-with-tag |
| 7212 | idlwave-current-tags-class | 7235 | idlwave-current-tags-class |
| 7213 | word)) | 7236 | word)) |
| 7214 | (if (assq (idlwave-sintern-class class-with) | 7237 | (if (assq (idlwave-sintern-class class-with) |
| 7215 | idlwave-system-class-info) | 7238 | idlwave-system-class-info) |
| 7216 | (error "No help available for system class tags")) | 7239 | (error "No help available for system class tags")) |
| 7217 | (if (setq found-in (idlwave-class-found-in class-with)) | 7240 | (if (setq found-in (idlwave-class-found-in class-with)) |
| @@ -7224,7 +7247,7 @@ Gets set in `idlw-rinfo.el'.") | |||
| 7224 | (defun idlwave-class-or-superclass-with-tag (class tag) | 7247 | (defun idlwave-class-or-superclass-with-tag (class tag) |
| 7225 | "Find and return the CLASS or one of its superclass with the | 7248 | "Find and return the CLASS or one of its superclass with the |
| 7226 | associated TAG, if any." | 7249 | associated TAG, if any." |
| 7227 | (let ((sclasses (cons class (cdr (assq 'all-inherits | 7250 | (let ((sclasses (cons class (cdr (assq 'all-inherits |
| 7228 | (idlwave-class-info class))))) | 7251 | (idlwave-class-info class))))) |
| 7229 | cl) | 7252 | cl) |
| 7230 | (catch 'exit | 7253 | (catch 'exit |
| @@ -7233,7 +7256,7 @@ associated TAG, if any." | |||
| 7233 | (let ((tags (idlwave-class-tags cl))) | 7256 | (let ((tags (idlwave-class-tags cl))) |
| 7234 | (while tags | 7257 | (while tags |
| 7235 | (if (eq t (compare-strings tag 0 nil (car tags) 0 nil t)) | 7258 | (if (eq t (compare-strings tag 0 nil (car tags) 0 nil t)) |
| 7236 | (throw 'exit cl)) | 7259 | (throw 'exit cl)) |
| 7237 | (setq tags (cdr tags)))))))) | 7260 | (setq tags (cdr tags)))))))) |
| 7238 | 7261 | ||
| 7239 | 7262 | ||
| @@ -7256,8 +7279,8 @@ associated TAG, if any." | |||
| 7256 | (setcar entry (idlwave-sintern-sysvar (car entry) 'set)) | 7279 | (setcar entry (idlwave-sintern-sysvar (car entry) 'set)) |
| 7257 | (setq tags (assq 'tags entry)) | 7280 | (setq tags (assq 'tags entry)) |
| 7258 | (if tags | 7281 | (if tags |
| 7259 | (setcdr tags | 7282 | (setcdr tags |
| 7260 | (mapcar (lambda (x) | 7283 | (mapcar (lambda (x) |
| 7261 | (cons (idlwave-sintern-sysvartag (car x) 'set) | 7284 | (cons (idlwave-sintern-sysvartag (car x) 'set) |
| 7262 | (cdr x))) | 7285 | (cdr x))) |
| 7263 | (cdr tags))))))) | 7286 | (cdr tags))))))) |
| @@ -7274,19 +7297,19 @@ associated TAG, if any." | |||
| 7274 | text start) | 7297 | text start) |
| 7275 | (setq start (match-end 0) | 7298 | (setq start (match-end 0) |
| 7276 | var (match-string 1 text) | 7299 | var (match-string 1 text) |
| 7277 | tags (if (match-end 3) | 7300 | tags (if (match-end 3) |
| 7278 | (idlwave-split-string (match-string 3 text)))) | 7301 | (idlwave-split-string (match-string 3 text)))) |
| 7279 | ;; Maintain old links, if present | 7302 | ;; Maintain old links, if present |
| 7280 | (setq old-entry (assq (idlwave-sintern-sysvar var) old)) | 7303 | (setq old-entry (assq (idlwave-sintern-sysvar var) old)) |
| 7281 | (setq link (assq 'link old-entry)) | 7304 | (setq link (assq 'link old-entry)) |
| 7282 | (setq idlwave-system-variables-alist | 7305 | (setq idlwave-system-variables-alist |
| 7283 | (cons (list var | 7306 | (cons (list var |
| 7284 | (cons | 7307 | (cons |
| 7285 | 'tags | 7308 | 'tags |
| 7286 | (mapcar (lambda (x) | 7309 | (mapcar (lambda (x) |
| 7287 | (cons x | 7310 | (cons x |
| 7288 | (cdr (assq | 7311 | (cdr (assq |
| 7289 | (idlwave-sintern-sysvartag x) | 7312 | (idlwave-sintern-sysvartag x) |
| 7290 | (cdr (assq 'tags old-entry)))))) | 7313 | (cdr (assq 'tags old-entry)))))) |
| 7291 | tags)) link) | 7314 | tags)) link) |
| 7292 | idlwave-system-variables-alist))) | 7315 | idlwave-system-variables-alist))) |
| @@ -7308,9 +7331,9 @@ associated TAG, if any." | |||
| 7308 | 7331 | ||
| 7309 | (defun idlwave-uniquify (list) | 7332 | (defun idlwave-uniquify (list) |
| 7310 | (let ((ht (make-hash-table :size (length list) :test 'equal))) | 7333 | (let ((ht (make-hash-table :size (length list) :test 'equal))) |
| 7311 | (delq nil | 7334 | (delq nil |
| 7312 | (mapcar (lambda (x) | 7335 | (mapcar (lambda (x) |
| 7313 | (unless (gethash x ht) | 7336 | (unless (gethash x ht) |
| 7314 | (puthash x t ht) | 7337 | (puthash x t ht) |
| 7315 | x)) | 7338 | x)) |
| 7316 | list)))) | 7339 | list)))) |
| @@ -7338,11 +7361,11 @@ Restore the pre-completion window configuration if possible." | |||
| 7338 | nil))) | 7361 | nil))) |
| 7339 | 7362 | ||
| 7340 | ;; Restore the pre-completion window configuration if this is safe. | 7363 | ;; Restore the pre-completion window configuration if this is safe. |
| 7341 | 7364 | ||
| 7342 | (if (or (eq verify 'force) ; force | 7365 | (if (or (eq verify 'force) ; force |
| 7343 | (and | 7366 | (and |
| 7344 | (get-buffer-window "*Completions*") ; visible | 7367 | (get-buffer-window "*Completions*") ; visible |
| 7345 | (idlwave-local-value 'idlwave-completion-p | 7368 | (idlwave-local-value 'idlwave-completion-p |
| 7346 | "*Completions*") ; cib-buffer | 7369 | "*Completions*") ; cib-buffer |
| 7347 | (eq (marker-buffer idlwave-completion-mark) | 7370 | (eq (marker-buffer idlwave-completion-mark) |
| 7348 | (current-buffer)) ; buffer OK | 7371 | (current-buffer)) ; buffer OK |
| @@ -7440,7 +7463,7 @@ With ARG, enforce query for the class of object methods." | |||
| 7440 | (if (string-match "\\(pro\\|function\\)[ \t]+\\(\\(.*\\)::\\)?\\(.*\\)" | 7463 | (if (string-match "\\(pro\\|function\\)[ \t]+\\(\\(.*\\)::\\)?\\(.*\\)" |
| 7441 | resolve) | 7464 | resolve) |
| 7442 | (setq type (match-string 1 resolve) | 7465 | (setq type (match-string 1 resolve) |
| 7443 | class (if (match-beginning 2) | 7466 | class (if (match-beginning 2) |
| 7444 | (match-string 3 resolve) | 7467 | (match-string 3 resolve) |
| 7445 | nil) | 7468 | nil) |
| 7446 | name (match-string 4 resolve))) | 7469 | name (match-string 4 resolve))) |
| @@ -7449,19 +7472,23 @@ With ARG, enforce query for the class of object methods." | |||
| 7449 | 7472 | ||
| 7450 | (cond | 7473 | (cond |
| 7451 | ((null class) | 7474 | ((null class) |
| 7452 | (idlwave-shell-send-command | 7475 | (idlwave-shell-send-command |
| 7453 | (format "resolve_routine,'%s'%s" (downcase name) kwd) | 7476 | (format "resolve_routine,'%s'%s" (downcase name) kwd) |
| 7454 | 'idlwave-update-routine-info | 7477 | 'idlwave-update-routine-info |
| 7455 | nil t)) | 7478 | nil t)) |
| 7456 | (t | 7479 | (t |
| 7457 | (idlwave-shell-send-command | 7480 | (idlwave-shell-send-command |
| 7458 | (format "resolve_routine,'%s__define'%s" (downcase class) kwd) | 7481 | (format "resolve_routine,'%s__define'%s" (downcase class) kwd) |
| 7459 | (list 'idlwave-shell-send-command | 7482 | (list 'idlwave-shell-send-command |
| 7460 | (format "resolve_routine,'%s__%s'%s" | 7483 | (format "resolve_routine,'%s__%s'%s" |
| 7461 | (downcase class) (downcase name) kwd) | 7484 | (downcase class) (downcase name) kwd) |
| 7462 | '(idlwave-update-routine-info) | 7485 | '(idlwave-update-routine-info) |
| 7463 | nil t)))))) | 7486 | nil t)))))) |
| 7464 | 7487 | ||
| 7488 | (defun idlwave-find-module-this-file () | ||
| 7489 | (interactive) | ||
| 7490 | (idlwave-find-module '(4))) | ||
| 7491 | |||
| 7465 | (defun idlwave-find-module (&optional arg) | 7492 | (defun idlwave-find-module (&optional arg) |
| 7466 | "Find the source code of an IDL module. | 7493 | "Find the source code of an IDL module. |
| 7467 | Works for modules for which IDLWAVE has routine info available. The | 7494 | Works for modules for which IDLWAVE has routine info available. The |
| @@ -7474,19 +7501,19 @@ force class query for object methods." | |||
| 7474 | (this-buffer (equal arg '(4))) | 7501 | (this-buffer (equal arg '(4))) |
| 7475 | (module (idlwave-fix-module-if-obj_new (idlwave-what-module))) | 7502 | (module (idlwave-fix-module-if-obj_new (idlwave-what-module))) |
| 7476 | (default (if module | 7503 | (default (if module |
| 7477 | (concat (idlwave-make-full-name | 7504 | (concat (idlwave-make-full-name |
| 7478 | (nth 2 module) (car module)) | 7505 | (nth 2 module) (car module)) |
| 7479 | (if (eq (nth 1 module) 'pro) "<p>" "<f>")) | 7506 | (if (eq (nth 1 module) 'pro) "<p>" "<f>")) |
| 7480 | "none")) | 7507 | "none")) |
| 7481 | (list | 7508 | (list |
| 7482 | (idlwave-uniquify | 7509 | (idlwave-uniquify |
| 7483 | (delq nil | 7510 | (delq nil |
| 7484 | (mapcar (lambda (x) | 7511 | (mapcar (lambda (x) |
| 7485 | (if (eq 'system (car-safe (nth 3 x))) | 7512 | (if (eq 'system (car-safe (nth 3 x))) |
| 7486 | ;; Take out system routines with no source. | 7513 | ;; Take out system routines with no source. |
| 7487 | nil | 7514 | nil |
| 7488 | (list | 7515 | (list |
| 7489 | (concat (idlwave-make-full-name | 7516 | (concat (idlwave-make-full-name |
| 7490 | (nth 2 x) (car x)) | 7517 | (nth 2 x) (car x)) |
| 7491 | (if (eq (nth 1 x) 'pro) "<p>" "<f>"))))) | 7518 | (if (eq (nth 1 x) 'pro) "<p>" "<f>"))))) |
| 7492 | (if this-buffer | 7519 | (if this-buffer |
| @@ -7515,10 +7542,10 @@ force class query for object methods." | |||
| 7515 | (t t))) | 7542 | (t t))) |
| 7516 | (idlwave-do-find-module name type class nil this-buffer))) | 7543 | (idlwave-do-find-module name type class nil this-buffer))) |
| 7517 | 7544 | ||
| 7518 | (defun idlwave-do-find-module (name type class | 7545 | (defun idlwave-do-find-module (name type class |
| 7519 | &optional force-source this-buffer) | 7546 | &optional force-source this-buffer) |
| 7520 | (let ((name1 (idlwave-make-full-name class name)) | 7547 | (let ((name1 (idlwave-make-full-name class name)) |
| 7521 | source buf1 entry | 7548 | source buf1 entry |
| 7522 | (buf (current-buffer)) | 7549 | (buf (current-buffer)) |
| 7523 | (pos (point)) | 7550 | (pos (point)) |
| 7524 | file name2) | 7551 | file name2) |
| @@ -7528,11 +7555,11 @@ force class query for object methods." | |||
| 7528 | name2 (if (nth 2 entry) | 7555 | name2 (if (nth 2 entry) |
| 7529 | (idlwave-make-full-name (nth 2 entry) name) | 7556 | (idlwave-make-full-name (nth 2 entry) name) |
| 7530 | name1)) | 7557 | name1)) |
| 7531 | (if source | 7558 | (if source |
| 7532 | (setq file (idlwave-routine-source-file source))) | 7559 | (setq file (idlwave-routine-source-file source))) |
| 7533 | (unless file ; Try to find it on the path. | 7560 | (unless file ; Try to find it on the path. |
| 7534 | (setq file | 7561 | (setq file |
| 7535 | (idlwave-expand-lib-file-name | 7562 | (idlwave-expand-lib-file-name |
| 7536 | (if class | 7563 | (if class |
| 7537 | (format "%s__define.pro" (downcase class)) | 7564 | (format "%s__define.pro" (downcase class)) |
| 7538 | (format "%s.pro" (downcase name)))))) | 7565 | (format "%s.pro" (downcase name)))))) |
| @@ -7540,14 +7567,14 @@ force class query for object methods." | |||
| 7540 | ((or (null name) (equal name "")) | 7567 | ((or (null name) (equal name "")) |
| 7541 | (error "Abort")) | 7568 | (error "Abort")) |
| 7542 | ((eq (car source) 'system) | 7569 | ((eq (car source) 'system) |
| 7543 | (error "Source code for system routine %s is not available" | 7570 | (error "Source code for system routine %s is not available" |
| 7544 | name2)) | 7571 | name2)) |
| 7545 | ((or (not file) (not (file-regular-p file))) | 7572 | ((or (not file) (not (file-regular-p file))) |
| 7546 | (error "Source code for routine %s is not available" | 7573 | (error "Source code for routine %s is not available" |
| 7547 | name2)) | 7574 | name2)) |
| 7548 | (t | 7575 | (t |
| 7549 | (when (not this-buffer) | 7576 | (when (not this-buffer) |
| 7550 | (setq buf1 | 7577 | (setq buf1 |
| 7551 | (idlwave-find-file-noselect file 'find)) | 7578 | (idlwave-find-file-noselect file 'find)) |
| 7552 | (pop-to-buffer buf1 t)) | 7579 | (pop-to-buffer buf1 t)) |
| 7553 | (goto-char (point-max)) | 7580 | (goto-char (point-max)) |
| @@ -7557,7 +7584,7 @@ force class query for object methods." | |||
| 7557 | (cond ((eq type 'fun) "function") | 7584 | (cond ((eq type 'fun) "function") |
| 7558 | ((eq type 'pro) "pro") | 7585 | ((eq type 'pro) "pro") |
| 7559 | (t "\\(pro\\|function\\)")) | 7586 | (t "\\(pro\\|function\\)")) |
| 7560 | "\\>[ \t]+" | 7587 | "\\>[ \t]+" |
| 7561 | (regexp-quote (downcase name2)) | 7588 | (regexp-quote (downcase name2)) |
| 7562 | "[^a-zA-Z0-9_$]") | 7589 | "[^a-zA-Z0-9_$]") |
| 7563 | nil t) | 7590 | nil t) |
| @@ -7594,17 +7621,17 @@ Used by `idlwave-routine-info' and `idlwave-find-module'." | |||
| 7594 | (cond | 7621 | (cond |
| 7595 | ((and (eq cw 'procedure) | 7622 | ((and (eq cw 'procedure) |
| 7596 | (not (equal this-word ""))) | 7623 | (not (equal this-word ""))) |
| 7597 | (setq this-word (idlwave-sintern-routine-or-method | 7624 | (setq this-word (idlwave-sintern-routine-or-method |
| 7598 | this-word (nth 2 (nth 3 where)))) | 7625 | this-word (nth 2 (nth 3 where)))) |
| 7599 | (list this-word 'pro | 7626 | (list this-word 'pro |
| 7600 | (idlwave-determine-class | 7627 | (idlwave-determine-class |
| 7601 | (cons this-word (cdr (nth 3 where))) | 7628 | (cons this-word (cdr (nth 3 where))) |
| 7602 | 'pro))) | 7629 | 'pro))) |
| 7603 | ((and (eq cw 'function) | 7630 | ((and (eq cw 'function) |
| 7604 | (not (equal this-word "")) | 7631 | (not (equal this-word "")) |
| 7605 | (or (eq next-char ?\() ; exclude arrays, vars. | 7632 | (or (eq next-char ?\() ; exclude arrays, vars. |
| 7606 | (looking-at "[a-zA-Z0-9_]*[ \t]*("))) | 7633 | (looking-at "[a-zA-Z0-9_]*[ \t]*("))) |
| 7607 | (setq this-word (idlwave-sintern-routine-or-method | 7634 | (setq this-word (idlwave-sintern-routine-or-method |
| 7608 | this-word (nth 2 (nth 3 where)))) | 7635 | this-word (nth 2 (nth 3 where)))) |
| 7609 | (list this-word 'fun | 7636 | (list this-word 'fun |
| 7610 | (idlwave-determine-class | 7637 | (idlwave-determine-class |
| @@ -7641,7 +7668,7 @@ Used by `idlwave-routine-info' and `idlwave-find-module'." | |||
| 7641 | class))) | 7668 | class))) |
| 7642 | 7669 | ||
| 7643 | (defun idlwave-fix-module-if-obj_new (module) | 7670 | (defun idlwave-fix-module-if-obj_new (module) |
| 7644 | "Check if MODULE points to obj_new. | 7671 | "Check if MODULE points to obj_new. |
| 7645 | If yes, and if the cursor is in the keyword region, change to the | 7672 | If yes, and if the cursor is in the keyword region, change to the |
| 7646 | appropriate Init method." | 7673 | appropriate Init method." |
| 7647 | (let* ((name (car module)) | 7674 | (let* ((name (car module)) |
| @@ -7662,10 +7689,12 @@ appropriate Init method." | |||
| 7662 | (idlwave-sintern-class class))))) | 7689 | (idlwave-sintern-class class))))) |
| 7663 | module)) | 7690 | module)) |
| 7664 | 7691 | ||
| 7665 | (defun idlwave-fix-keywords (name type class keywords &optional super-classes) | 7692 | (defun idlwave-fix-keywords (name type class keywords |
| 7693 | &optional super-classes system) | ||
| 7666 | "Update a list of keywords. | 7694 | "Update a list of keywords. |
| 7667 | Translate OBJ_NEW, adding all super-class keywords, or all keywords | 7695 | Translate OBJ_NEW, adding all super-class keywords, or all keywords |
| 7668 | from all classes if class equals t." | 7696 | from all classes if class equals t. If SYSTEM is non-nil, don't |
| 7697 | demand _EXTRA in the keyword list." | ||
| 7669 | (let ((case-fold-search t)) | 7698 | (let ((case-fold-search t)) |
| 7670 | 7699 | ||
| 7671 | ;; If this is the OBJ_NEW function, try to figure out the class and use | 7700 | ;; If this is the OBJ_NEW function, try to figure out the class and use |
| @@ -7681,35 +7710,37 @@ from all classes if class equals t." | |||
| 7681 | string) | 7710 | string) |
| 7682 | (setq class (idlwave-sintern-class (match-string 1 string))) | 7711 | (setq class (idlwave-sintern-class (match-string 1 string))) |
| 7683 | (setq idlwave-current-obj_new-class class) | 7712 | (setq idlwave-current-obj_new-class class) |
| 7684 | (setq keywords | 7713 | (setq keywords |
| 7685 | (append keywords | 7714 | (append keywords |
| 7686 | (idlwave-entry-keywords | 7715 | (idlwave-entry-keywords |
| 7687 | (idlwave-rinfo-assq | 7716 | (idlwave-rinfo-assq |
| 7688 | (idlwave-sintern-method "INIT") | 7717 | (idlwave-sintern-method "INIT") |
| 7689 | 'fun | 7718 | 'fun |
| 7690 | class | 7719 | class |
| 7691 | (idlwave-routines)) 'do-link)))))) | 7720 | (idlwave-routines)) 'do-link)))))) |
| 7692 | 7721 | ||
| 7693 | ;; If the class is `t', combine all keywords of all methods NAME | 7722 | ;; If the class is `t', combine all keywords of all methods NAME |
| 7694 | (when (eq class t) | 7723 | (when (eq class t) |
| 7695 | (mapc (lambda (entry) | 7724 | (mapc (lambda (entry) |
| 7696 | (and | 7725 | (and |
| 7697 | (nth 2 entry) ; non-nil class | 7726 | (nth 2 entry) ; non-nil class |
| 7698 | (eq (nth 1 entry) type) ; correct type | 7727 | (eq (nth 1 entry) type) ; correct type |
| 7699 | (setq keywords | 7728 | (setq keywords |
| 7700 | (append keywords | 7729 | (append keywords |
| 7701 | (idlwave-entry-keywords entry 'do-link))))) | 7730 | (idlwave-entry-keywords entry 'do-link))))) |
| 7702 | (idlwave-all-assq name (idlwave-routines))) | 7731 | (idlwave-all-assq name (idlwave-routines))) |
| 7703 | (setq keywords (idlwave-uniquify keywords))) | 7732 | (setq keywords (idlwave-uniquify keywords))) |
| 7704 | 7733 | ||
| 7705 | ;; If we have inheritance, add all keywords from superclasses, if | 7734 | ;; If we have inheritance, add all keywords from superclasses, if |
| 7706 | ;; the user indicated that method in `idlwave-keyword-class-inheritance' | 7735 | ;; the user indicated that method in `idlwave-keyword-class-inheritance' |
| 7707 | (when (and | 7736 | (when (and |
| 7708 | super-classes | 7737 | super-classes |
| 7709 | idlwave-keyword-class-inheritance | 7738 | idlwave-keyword-class-inheritance |
| 7710 | (stringp class) | 7739 | (stringp class) |
| 7711 | (or (assq (idlwave-sintern-keyword "_extra") keywords) | 7740 | (or |
| 7712 | (assq (idlwave-sintern-keyword "_ref_extra") keywords)) | 7741 | system |
| 7742 | (assq (idlwave-sintern-keyword "_extra") keywords) | ||
| 7743 | (assq (idlwave-sintern-keyword "_ref_extra") keywords)) | ||
| 7713 | ;; Check if one of the keyword-class regexps matches the name | 7744 | ;; Check if one of the keyword-class regexps matches the name |
| 7714 | (let ((regexps idlwave-keyword-class-inheritance) re) | 7745 | (let ((regexps idlwave-keyword-class-inheritance) re) |
| 7715 | (catch 'exit | 7746 | (catch 'exit |
| @@ -7724,7 +7755,7 @@ from all classes if class equals t." | |||
| 7724 | (mapcar (lambda (k) (add-to-list 'keywords k)) | 7755 | (mapcar (lambda (k) (add-to-list 'keywords k)) |
| 7725 | (idlwave-entry-keywords entry 'do-link)))) | 7756 | (idlwave-entry-keywords entry 'do-link)))) |
| 7726 | (setq keywords (idlwave-uniquify keywords))) | 7757 | (setq keywords (idlwave-uniquify keywords))) |
| 7727 | 7758 | ||
| 7728 | ;; Return the final list | 7759 | ;; Return the final list |
| 7729 | keywords)) | 7760 | keywords)) |
| 7730 | 7761 | ||
| @@ -7749,14 +7780,14 @@ If we do not know about MODULE, just return KEYWORD literally." | |||
| 7749 | (assq (idlwave-sintern-keyword "_REF_EXTRA") kwd-alist))) | 7780 | (assq (idlwave-sintern-keyword "_REF_EXTRA") kwd-alist))) |
| 7750 | (completion-ignore-case t) | 7781 | (completion-ignore-case t) |
| 7751 | candidates) | 7782 | candidates) |
| 7752 | (cond ((assq kwd kwd-alist) | 7783 | (cond ((assq kwd kwd-alist) |
| 7753 | kwd) | 7784 | kwd) |
| 7754 | ((setq candidates (all-completions kwd kwd-alist)) | 7785 | ((setq candidates (all-completions kwd kwd-alist)) |
| 7755 | (if (= (length candidates) 1) | 7786 | (if (= (length candidates) 1) |
| 7756 | (car candidates) | 7787 | (car candidates) |
| 7757 | candidates)) | 7788 | candidates)) |
| 7758 | ((and entry extra) | 7789 | ((and entry extra) |
| 7759 | ;; Inheritance may cause this keyword to be correct | 7790 | ;; Inheritance may cause this keyword to be correct |
| 7760 | keyword) | 7791 | keyword) |
| 7761 | (entry | 7792 | (entry |
| 7762 | ;; We do know the function, which does not have the keyword. | 7793 | ;; We do know the function, which does not have the keyword. |
| @@ -7768,13 +7799,13 @@ If we do not know about MODULE, just return KEYWORD literally." | |||
| 7768 | 7799 | ||
| 7769 | (defvar idlwave-rinfo-mouse-map (make-sparse-keymap)) | 7800 | (defvar idlwave-rinfo-mouse-map (make-sparse-keymap)) |
| 7770 | (defvar idlwave-rinfo-map (make-sparse-keymap)) | 7801 | (defvar idlwave-rinfo-map (make-sparse-keymap)) |
| 7771 | (define-key idlwave-rinfo-mouse-map | 7802 | (define-key idlwave-rinfo-mouse-map |
| 7772 | (if (featurep 'xemacs) [button2] [mouse-2]) | 7803 | (if (featurep 'xemacs) [button2] [mouse-2]) |
| 7773 | 'idlwave-mouse-active-rinfo) | 7804 | 'idlwave-mouse-active-rinfo) |
| 7774 | (define-key idlwave-rinfo-mouse-map | 7805 | (define-key idlwave-rinfo-mouse-map |
| 7775 | (if (featurep 'xemacs) [(shift button2)] [(shift mouse-2)]) | 7806 | (if (featurep 'xemacs) [(shift button2)] [(shift mouse-2)]) |
| 7776 | 'idlwave-mouse-active-rinfo-shift) | 7807 | 'idlwave-mouse-active-rinfo-shift) |
| 7777 | (define-key idlwave-rinfo-mouse-map | 7808 | (define-key idlwave-rinfo-mouse-map |
| 7778 | (if (featurep 'xemacs) [button3] [mouse-3]) | 7809 | (if (featurep 'xemacs) [button3] [mouse-3]) |
| 7779 | 'idlwave-mouse-active-rinfo-right) | 7810 | 'idlwave-mouse-active-rinfo-right) |
| 7780 | (define-key idlwave-rinfo-mouse-map " " 'idlwave-active-rinfo-space) | 7811 | (define-key idlwave-rinfo-mouse-map " " 'idlwave-active-rinfo-space) |
| @@ -7800,7 +7831,7 @@ If we do not know about MODULE, just return KEYWORD literally." | |||
| 7800 | (let* ((initial-class (or initial-class class)) | 7831 | (let* ((initial-class (or initial-class class)) |
| 7801 | (entry (or (idlwave-best-rinfo-assq name type class | 7832 | (entry (or (idlwave-best-rinfo-assq name type class |
| 7802 | (idlwave-routines)) | 7833 | (idlwave-routines)) |
| 7803 | (idlwave-rinfo-assq name type class | 7834 | (idlwave-rinfo-assq name type class |
| 7804 | idlwave-unresolved-routines))) | 7835 | idlwave-unresolved-routines))) |
| 7805 | (name (or (car entry) name)) | 7836 | (name (or (car entry) name)) |
| 7806 | (class (or (nth 2 entry) class)) | 7837 | (class (or (nth 2 entry) class)) |
| @@ -7825,7 +7856,7 @@ If we do not know about MODULE, just return KEYWORD literally." | |||
| 7825 | (km-prop (if (featurep 'xemacs) 'keymap 'local-map)) | 7856 | (km-prop (if (featurep 'xemacs) 'keymap 'local-map)) |
| 7826 | (face 'idlwave-help-link-face) | 7857 | (face 'idlwave-help-link-face) |
| 7827 | beg props win cnt total) | 7858 | beg props win cnt total) |
| 7828 | ;; Fix keywords, but don't add chained super-classes, since these | 7859 | ;; Fix keywords, but don't add chained super-classes, since these |
| 7829 | ;; are shown separately for that super-class | 7860 | ;; are shown separately for that super-class |
| 7830 | (setq keywords (idlwave-fix-keywords name type class keywords)) | 7861 | (setq keywords (idlwave-fix-keywords name type class keywords)) |
| 7831 | (cond | 7862 | (cond |
| @@ -7867,7 +7898,7 @@ If we do not know about MODULE, just return KEYWORD literally." | |||
| 7867 | km-prop idlwave-rinfo-mouse-map | 7898 | km-prop idlwave-rinfo-mouse-map |
| 7868 | 'help-echo help-echo-use | 7899 | 'help-echo help-echo-use |
| 7869 | 'data (cons 'usage data))) | 7900 | 'data (cons 'usage data))) |
| 7870 | (if html-file (setq props (append (list 'face face 'link html-file) | 7901 | (if html-file (setq props (append (list 'face face 'link html-file) |
| 7871 | props))) | 7902 | props))) |
| 7872 | (insert "Usage: ") | 7903 | (insert "Usage: ") |
| 7873 | (setq beg (point)) | 7904 | (setq beg (point)) |
| @@ -7876,14 +7907,14 @@ If we do not know about MODULE, just return KEYWORD literally." | |||
| 7876 | (format calling-seq name name name name)) | 7907 | (format calling-seq name name name name)) |
| 7877 | "\n") | 7908 | "\n") |
| 7878 | (add-text-properties beg (point) props) | 7909 | (add-text-properties beg (point) props) |
| 7879 | 7910 | ||
| 7880 | (insert "Keywords:") | 7911 | (insert "Keywords:") |
| 7881 | (if (null keywords) | 7912 | (if (null keywords) |
| 7882 | (insert " No keywords accepted.") | 7913 | (insert " No keywords accepted.") |
| 7883 | (setq col 9) | 7914 | (setq col 9) |
| 7884 | (mapcar | 7915 | (mapcar |
| 7885 | (lambda (x) | 7916 | (lambda (x) |
| 7886 | (if (>= (+ col 1 (length (car x))) | 7917 | (if (>= (+ col 1 (length (car x))) |
| 7887 | (window-width)) | 7918 | (window-width)) |
| 7888 | (progn | 7919 | (progn |
| 7889 | (insert "\n ") | 7920 | (insert "\n ") |
| @@ -7901,7 +7932,7 @@ If we do not know about MODULE, just return KEYWORD literally." | |||
| 7901 | (add-text-properties beg (point) props) | 7932 | (add-text-properties beg (point) props) |
| 7902 | (setq col (+ col 1 (length (car x))))) | 7933 | (setq col (+ col 1 (length (car x))))) |
| 7903 | keywords)) | 7934 | keywords)) |
| 7904 | 7935 | ||
| 7905 | (setq cnt 1 total (length all)) | 7936 | (setq cnt 1 total (length all)) |
| 7906 | ;; Here entry is (key file (list of type-conses)) | 7937 | ;; Here entry is (key file (list of type-conses)) |
| 7907 | (while (setq entry (pop all)) | 7938 | (while (setq entry (pop all)) |
| @@ -7914,7 +7945,7 @@ If we do not know about MODULE, just return KEYWORD literally." | |||
| 7914 | (cdr (car (nth 2 entry)))) | 7945 | (cdr (car (nth 2 entry)))) |
| 7915 | 'data (cons 'source data))) | 7946 | 'data (cons 'source data))) |
| 7916 | (idlwave-insert-source-location | 7947 | (idlwave-insert-source-location |
| 7917 | (format "\n%-8s %s" | 7948 | (format "\n%-8s %s" |
| 7918 | (if (equal cnt 1) | 7949 | (if (equal cnt 1) |
| 7919 | (if (> total 1) "Sources:" "Source:") | 7950 | (if (> total 1) "Sources:" "Source:") |
| 7920 | "") | 7951 | "") |
| @@ -7923,7 +7954,7 @@ If we do not know about MODULE, just return KEYWORD literally." | |||
| 7923 | (incf cnt) | 7954 | (incf cnt) |
| 7924 | (when (and all (> cnt idlwave-rinfo-max-source-lines)) | 7955 | (when (and all (> cnt idlwave-rinfo-max-source-lines)) |
| 7925 | ;; No more source lines, please | 7956 | ;; No more source lines, please |
| 7926 | (insert (format | 7957 | (insert (format |
| 7927 | "\n Source information truncated to %d entries." | 7958 | "\n Source information truncated to %d entries." |
| 7928 | idlwave-rinfo-max-source-lines)) | 7959 | idlwave-rinfo-max-source-lines)) |
| 7929 | (setq all nil))) | 7960 | (setq all nil))) |
| @@ -7937,7 +7968,7 @@ If we do not know about MODULE, just return KEYWORD literally." | |||
| 7937 | (unwind-protect | 7968 | (unwind-protect |
| 7938 | (progn | 7969 | (progn |
| 7939 | (select-window win) | 7970 | (select-window win) |
| 7940 | (enlarge-window (- (/ (frame-height) 2) | 7971 | (enlarge-window (- (/ (frame-height) 2) |
| 7941 | (window-height))) | 7972 | (window-height))) |
| 7942 | (shrink-window-if-larger-than-buffer)) | 7973 | (shrink-window-if-larger-than-buffer)) |
| 7943 | (select-window ww))))))))) | 7974 | (select-window ww))))))))) |
| @@ -7974,9 +8005,9 @@ it." | |||
| 7974 | ((and (not file) shell-flag) | 8005 | ((and (not file) shell-flag) |
| 7975 | (insert "Unresolved")) | 8006 | (insert "Unresolved")) |
| 7976 | 8007 | ||
| 7977 | ((null file) | 8008 | ((null file) |
| 7978 | (insert "ERROR")) | 8009 | (insert "ERROR")) |
| 7979 | 8010 | ||
| 7980 | ((idlwave-syslib-p file) | 8011 | ((idlwave-syslib-p file) |
| 7981 | (if (string-match "obsolete" (file-name-directory file)) | 8012 | (if (string-match "obsolete" (file-name-directory file)) |
| 7982 | (insert "Obsolete ") | 8013 | (insert "Obsolete ") |
| @@ -7990,7 +8021,7 @@ it." | |||
| 7990 | ;; Old special syntax: a matching regexp | 8021 | ;; Old special syntax: a matching regexp |
| 7991 | ((setq special (idlwave-special-lib-test file)) | 8022 | ((setq special (idlwave-special-lib-test file)) |
| 7992 | (insert (format "%-10s" special))) | 8023 | (insert (format "%-10s" special))) |
| 7993 | 8024 | ||
| 7994 | ;; Catch-all with file | 8025 | ;; Catch-all with file |
| 7995 | ((idlwave-lib-p file) (insert "Library ")) | 8026 | ((idlwave-lib-p file) (insert "Library ")) |
| 7996 | 8027 | ||
| @@ -8005,7 +8036,7 @@ it." | |||
| 8005 | (if shell-flag "S" "-") | 8036 | (if shell-flag "S" "-") |
| 8006 | (if buffer-flag "B" "-") | 8037 | (if buffer-flag "B" "-") |
| 8007 | "] "))) | 8038 | "] "))) |
| 8008 | (when (> ndupl 1) | 8039 | (when (> ndupl 1) |
| 8009 | (setq beg (point)) | 8040 | (setq beg (point)) |
| 8010 | (insert (format "(%dx) " ndupl)) | 8041 | (insert (format "(%dx) " ndupl)) |
| 8011 | (add-text-properties beg (point) (list 'face 'bold))) | 8042 | (add-text-properties beg (point) (list 'face 'bold))) |
| @@ -8029,7 +8060,7 @@ Return the name of the special lib if there is a match." | |||
| 8029 | alist nil))) | 8060 | alist nil))) |
| 8030 | rtn) | 8061 | rtn) |
| 8031 | (t nil)))) | 8062 | (t nil)))) |
| 8032 | 8063 | ||
| 8033 | (defun idlwave-mouse-active-rinfo-right (ev) | 8064 | (defun idlwave-mouse-active-rinfo-right (ev) |
| 8034 | (interactive "e") | 8065 | (interactive "e") |
| 8035 | (idlwave-mouse-active-rinfo ev 'right)) | 8066 | (idlwave-mouse-active-rinfo ev 'right)) |
| @@ -8048,7 +8079,8 @@ Optional args RIGHT and SHIFT indicate, if mouse-3 was used, and if SHIFT | |||
| 8048 | was pressed." | 8079 | was pressed." |
| 8049 | (interactive "e") | 8080 | (interactive "e") |
| 8050 | (if ev (mouse-set-point ev)) | 8081 | (if ev (mouse-set-point ev)) |
| 8051 | (let (data id name type class buf bufwin source word initial-class) | 8082 | (let (data id name type class buf bufwin source link keyword |
| 8083 | word initial-class) | ||
| 8052 | (setq data (get-text-property (point) 'data) | 8084 | (setq data (get-text-property (point) 'data) |
| 8053 | source (get-text-property (point) 'source) | 8085 | source (get-text-property (point) 'source) |
| 8054 | keyword (get-text-property (point) 'keyword) | 8086 | keyword (get-text-property (point) 'keyword) |
| @@ -8062,9 +8094,9 @@ was pressed." | |||
| 8062 | 8094 | ||
| 8063 | (cond ((eq id 'class) ; Switch class being displayed | 8095 | (cond ((eq id 'class) ; Switch class being displayed |
| 8064 | (if (window-live-p bufwin) (select-window bufwin)) | 8096 | (if (window-live-p bufwin) (select-window bufwin)) |
| 8065 | (idlwave-display-calling-sequence | 8097 | (idlwave-display-calling-sequence |
| 8066 | (idlwave-sintern-method name) | 8098 | (idlwave-sintern-method name) |
| 8067 | type (idlwave-sintern-class word) | 8099 | type (idlwave-sintern-class word) |
| 8068 | initial-class)) | 8100 | initial-class)) |
| 8069 | ((eq id 'usage) ; Online help on this routine | 8101 | ((eq id 'usage) ; Online help on this routine |
| 8070 | (idlwave-online-help link name type class)) | 8102 | (idlwave-online-help link name type class)) |
| @@ -8105,9 +8137,9 @@ was pressed." | |||
| 8105 | (setq bwin (get-buffer-window buffer))) | 8137 | (setq bwin (get-buffer-window buffer))) |
| 8106 | (if (eq (preceding-char) ?/) | 8138 | (if (eq (preceding-char) ?/) |
| 8107 | (insert keyword) | 8139 | (insert keyword) |
| 8108 | (unless (save-excursion | 8140 | (unless (save-excursion |
| 8109 | (re-search-backward | 8141 | (re-search-backward |
| 8110 | "[(,][ \t]*\\(\\$[ \t]*\\(;.*\\)?\n\\)?[ \t]*\\=" | 8142 | "[(,][ \t]*\\(\\$[ \t]*\\(;.*\\)?\n\\)?[ \t]*\\=" |
| 8111 | (min (- (point) 100) (point-min)) t)) | 8143 | (min (- (point) 100) (point-min)) t)) |
| 8112 | (insert ", ")) | 8144 | (insert ", ")) |
| 8113 | (if shift (insert "/")) | 8145 | (if shift (insert "/")) |
| @@ -8159,7 +8191,7 @@ the load path in order to find a definition. The output of this | |||
| 8159 | command can be used to detect possible name clashes during this process." | 8191 | command can be used to detect possible name clashes during this process." |
| 8160 | (idlwave-routines) ; Make sure everything is loaded. | 8192 | (idlwave-routines) ; Make sure everything is loaded. |
| 8161 | (unless (or idlwave-user-catalog-routines idlwave-library-catalog-routines) | 8193 | (unless (or idlwave-user-catalog-routines idlwave-library-catalog-routines) |
| 8162 | (or (y-or-n-p | 8194 | (or (y-or-n-p |
| 8163 | "You don't have any user or library catalogs. Continue anyway? ") | 8195 | "You don't have any user or library catalogs. Continue anyway? ") |
| 8164 | (error "Abort"))) | 8196 | (error "Abort"))) |
| 8165 | (let* ((routines (append idlwave-system-routines | 8197 | (let* ((routines (append idlwave-system-routines |
| @@ -8172,7 +8204,7 @@ command can be used to detect possible name clashes during this process." | |||
| 8172 | (keymap (make-sparse-keymap)) | 8204 | (keymap (make-sparse-keymap)) |
| 8173 | (props (list 'mouse-face 'highlight | 8205 | (props (list 'mouse-face 'highlight |
| 8174 | km-prop keymap | 8206 | km-prop keymap |
| 8175 | 'help-echo "Mouse2: Find source")) | 8207 | 'help-echo "Mouse2: Find source")) |
| 8176 | (nroutines (length (or special-routines routines))) | 8208 | (nroutines (length (or special-routines routines))) |
| 8177 | (step (/ nroutines 99)) | 8209 | (step (/ nroutines 99)) |
| 8178 | (n 0) | 8210 | (n 0) |
| @@ -8196,13 +8228,13 @@ command can be used to detect possible name clashes during this process." | |||
| 8196 | (message "Sorting routines...done") | 8228 | (message "Sorting routines...done") |
| 8197 | 8229 | ||
| 8198 | (define-key keymap (if (featurep 'xemacs) [(button2)] [(mouse-2)]) | 8230 | (define-key keymap (if (featurep 'xemacs) [(button2)] [(mouse-2)]) |
| 8199 | (lambda (ev) | 8231 | (lambda (ev) |
| 8200 | (interactive "e") | 8232 | (interactive "e") |
| 8201 | (mouse-set-point ev) | 8233 | (mouse-set-point ev) |
| 8202 | (apply 'idlwave-do-find-module | 8234 | (apply 'idlwave-do-find-module |
| 8203 | (get-text-property (point) 'find-args)))) | 8235 | (get-text-property (point) 'find-args)))) |
| 8204 | (define-key keymap [(return)] | 8236 | (define-key keymap [(return)] |
| 8205 | (lambda () | 8237 | (lambda () |
| 8206 | (interactive) | 8238 | (interactive) |
| 8207 | (apply 'idlwave-do-find-module | 8239 | (apply 'idlwave-do-find-module |
| 8208 | (get-text-property (point) 'find-args)))) | 8240 | (get-text-property (point) 'find-args)))) |
| @@ -8230,13 +8262,13 @@ command can be used to detect possible name clashes during this process." | |||
| 8230 | (> (idlwave-count-memq 'buffer (nth 2 (car dtwins))) 1)) | 8262 | (> (idlwave-count-memq 'buffer (nth 2 (car dtwins))) 1)) |
| 8231 | (incf cnt) | 8263 | (incf cnt) |
| 8232 | (insert (format "\n%s%s" | 8264 | (insert (format "\n%s%s" |
| 8233 | (idlwave-make-full-name (nth 2 routine) | 8265 | (idlwave-make-full-name (nth 2 routine) |
| 8234 | (car routine)) | 8266 | (car routine)) |
| 8235 | (if (eq (nth 1 routine) 'fun) "()" ""))) | 8267 | (if (eq (nth 1 routine) 'fun) "()" ""))) |
| 8236 | (while (setq twin (pop dtwins)) | 8268 | (while (setq twin (pop dtwins)) |
| 8237 | (setq props1 (append (list 'find-args | 8269 | (setq props1 (append (list 'find-args |
| 8238 | (list (nth 0 routine) | 8270 | (list (nth 0 routine) |
| 8239 | (nth 1 routine) | 8271 | (nth 1 routine) |
| 8240 | (nth 2 routine))) | 8272 | (nth 2 routine))) |
| 8241 | props)) | 8273 | props)) |
| 8242 | (idlwave-insert-source-location "\n - " twin props1)))) | 8274 | (idlwave-insert-source-location "\n - " twin props1)))) |
| @@ -8259,7 +8291,7 @@ command can be used to detect possible name clashes during this process." | |||
| 8259 | (or (not (stringp sfile)) | 8291 | (or (not (stringp sfile)) |
| 8260 | (not (string-match "\\S-" sfile)))) | 8292 | (not (string-match "\\S-" sfile)))) |
| 8261 | (setq stype 'unresolved)) | 8293 | (setq stype 'unresolved)) |
| 8262 | (princ (format " %-10s %s\n" | 8294 | (princ (format " %-10s %s\n" |
| 8263 | stype | 8295 | stype |
| 8264 | (if sfile sfile "No source code available"))))) | 8296 | (if sfile sfile "No source code available"))))) |
| 8265 | 8297 | ||
| @@ -8278,20 +8310,20 @@ ENTRY will also be returned, as the first item of this list." | |||
| 8278 | (eq type (nth 1 candidate)) | 8310 | (eq type (nth 1 candidate)) |
| 8279 | (eq class (nth 2 candidate))) | 8311 | (eq class (nth 2 candidate))) |
| 8280 | (push candidate twins))) | 8312 | (push candidate twins))) |
| 8281 | (if (setq candidate (idlwave-rinfo-assq name type class | 8313 | (if (setq candidate (idlwave-rinfo-assq name type class |
| 8282 | idlwave-unresolved-routines)) | 8314 | idlwave-unresolved-routines)) |
| 8283 | (push candidate twins)) | 8315 | (push candidate twins)) |
| 8284 | (cons entry (nreverse twins)))) | 8316 | (cons entry (nreverse twins)))) |
| 8285 | 8317 | ||
| 8286 | (defun idlwave-study-twins (entries) | 8318 | (defun idlwave-study-twins (entries) |
| 8287 | "Return dangerous twins of first entry in ENTRIES. | 8319 | "Return dangerous twins of first entry in ENTRIES. |
| 8288 | Dangerous twins are routines with same name, but in different files on | 8320 | Dangerous twins are routines with same name, but in different files on |
| 8289 | the load path. If a file is in the system library and has an entry in | 8321 | the load path. If a file is in the system library and has an entry in |
| 8290 | the `idlwave-system-routines' list, we omit the latter as | 8322 | the `idlwave-system-routines' list, we omit the latter as |
| 8291 | non-dangerous because many IDL routines are implemented as library | 8323 | non-dangerous because many IDL routines are implemented as library |
| 8292 | routines, and may have been scanned." | 8324 | routines, and may have been scanned." |
| 8293 | (let* ((entry (car entries)) | 8325 | (let* ((entry (car entries)) |
| 8294 | (name (car entry)) ; | 8326 | (name (car entry)) ; |
| 8295 | (type (nth 1 entry)) ; Must be bound for | 8327 | (type (nth 1 entry)) ; Must be bound for |
| 8296 | (class (nth 2 entry)) ; idlwave-routine-twin-compare | 8328 | (class (nth 2 entry)) ; idlwave-routine-twin-compare |
| 8297 | (cnt 0) | 8329 | (cnt 0) |
| @@ -8309,23 +8341,23 @@ routines, and may have been scanned." | |||
| 8309 | (t 'unresolved))) | 8341 | (t 'unresolved))) |
| 8310 | 8342 | ||
| 8311 | ;; Check for an entry in the system library | 8343 | ;; Check for an entry in the system library |
| 8312 | (if (and file | 8344 | (if (and file |
| 8313 | (not syslibp) | 8345 | (not syslibp) |
| 8314 | (idlwave-syslib-p file)) | 8346 | (idlwave-syslib-p file)) |
| 8315 | (setq syslibp t)) | 8347 | (setq syslibp t)) |
| 8316 | 8348 | ||
| 8317 | ;; If there's more than one matching entry for the same file, just | 8349 | ;; If there's more than one matching entry for the same file, just |
| 8318 | ;; append the type-cons to the type list. | 8350 | ;; append the type-cons to the type list. |
| 8319 | (if (setq entry (assoc key alist)) | 8351 | (if (setq entry (assoc key alist)) |
| 8320 | (push type-cons (nth 2 entry)) | 8352 | (push type-cons (nth 2 entry)) |
| 8321 | (push (list key file (list type-cons)) alist))) | 8353 | (push (list key file (list type-cons)) alist))) |
| 8322 | 8354 | ||
| 8323 | (setq alist (nreverse alist)) | 8355 | (setq alist (nreverse alist)) |
| 8324 | 8356 | ||
| 8325 | (when syslibp | 8357 | (when syslibp |
| 8326 | ;; File is in system *library* - remove any 'system entry | 8358 | ;; File is in system *library* - remove any 'system entry |
| 8327 | (setq alist (delq (assq 'system alist) alist))) | 8359 | (setq alist (delq (assq 'system alist) alist))) |
| 8328 | 8360 | ||
| 8329 | ;; If 'system remains and we've scanned the syslib, it's a builtin | 8361 | ;; If 'system remains and we've scanned the syslib, it's a builtin |
| 8330 | ;; (rather than a !DIR/lib/.pro file bundled as source). | 8362 | ;; (rather than a !DIR/lib/.pro file bundled as source). |
| 8331 | (when (and (idlwave-syslib-scanned-p) | 8363 | (when (and (idlwave-syslib-scanned-p) |
| @@ -8333,7 +8365,6 @@ routines, and may have been scanned." | |||
| 8333 | (setcar entry 'builtin)) | 8365 | (setcar entry 'builtin)) |
| 8334 | (sort alist 'idlwave-routine-twin-compare))) | 8366 | (sort alist 'idlwave-routine-twin-compare))) |
| 8335 | 8367 | ||
| 8336 | (defvar name) | ||
| 8337 | (defvar type) | 8368 | (defvar type) |
| 8338 | (defvar class) | 8369 | (defvar class) |
| 8339 | (defvar idlwave-sort-prefer-buffer-info t | 8370 | (defvar idlwave-sort-prefer-buffer-info t |
| @@ -8362,7 +8393,7 @@ compares twins on the basis of their file names and path locations." | |||
| 8362 | ((not (eq type (nth 1 b))) | 8393 | ((not (eq type (nth 1 b))) |
| 8363 | ;; Type decides | 8394 | ;; Type decides |
| 8364 | (< (if (eq type 'fun) 1 0) (if (eq (nth 1 b) 'fun) 1 0))) | 8395 | (< (if (eq type 'fun) 1 0) (if (eq (nth 1 b) 'fun) 1 0))) |
| 8365 | (t | 8396 | (t |
| 8366 | ;; A and B are twins - so the decision is more complicated. | 8397 | ;; A and B are twins - so the decision is more complicated. |
| 8367 | ;; Call twin-compare with the proper arguments. | 8398 | ;; Call twin-compare with the proper arguments. |
| 8368 | (idlwave-routine-entry-compare-twins a b))))) | 8399 | (idlwave-routine-entry-compare-twins a b))))) |
| @@ -8414,7 +8445,7 @@ This expects NAME TYPE CLASS to be bound to the right values." | |||
| 8414 | (tpath-alist (idlwave-true-path-alist)) | 8445 | (tpath-alist (idlwave-true-path-alist)) |
| 8415 | (apathp (and (stringp akey) | 8446 | (apathp (and (stringp akey) |
| 8416 | (assoc (file-name-directory akey) tpath-alist))) | 8447 | (assoc (file-name-directory akey) tpath-alist))) |
| 8417 | (bpathp (and (stringp bkey) | 8448 | (bpathp (and (stringp bkey) |
| 8418 | (assoc (file-name-directory bkey) tpath-alist))) | 8449 | (assoc (file-name-directory bkey) tpath-alist))) |
| 8419 | ;; How early on search path? High number means early since we | 8450 | ;; How early on search path? High number means early since we |
| 8420 | ;; measure the tail of the path list | 8451 | ;; measure the tail of the path list |
| @@ -8450,7 +8481,7 @@ This expects NAME TYPE CLASS to be bound to the right values." | |||
| 8450 | (t nil)))) ; Default | 8481 | (t nil)))) ; Default |
| 8451 | 8482 | ||
| 8452 | (defun idlwave-routine-source-file (source) | 8483 | (defun idlwave-routine-source-file (source) |
| 8453 | (if (nth 2 source) | 8484 | (if (nth 2 source) |
| 8454 | (expand-file-name (nth 1 source) (nth 2 source)) | 8485 | (expand-file-name (nth 1 source) (nth 2 source)) |
| 8455 | (nth 1 source))) | 8486 | (nth 1 source))) |
| 8456 | 8487 | ||
| @@ -8540,7 +8571,7 @@ Assumes that point is at the beginning of the unit as found by | |||
| 8540 | (forward-sexp 2) | 8571 | (forward-sexp 2) |
| 8541 | (forward-sexp -1) | 8572 | (forward-sexp -1) |
| 8542 | (let ((begin (point))) | 8573 | (let ((begin (point))) |
| 8543 | (re-search-forward | 8574 | (re-search-forward |
| 8544 | "[a-zA-Z_][a-zA-Z0-9$_]+\\(::[a-zA-Z_][a-zA-Z0-9$_]+\\)?") | 8575 | "[a-zA-Z_][a-zA-Z0-9$_]+\\(::[a-zA-Z_][a-zA-Z0-9$_]+\\)?") |
| 8545 | (if (fboundp 'buffer-substring-no-properties) | 8576 | (if (fboundp 'buffer-substring-no-properties) |
| 8546 | (buffer-substring-no-properties begin (point)) | 8577 | (buffer-substring-no-properties begin (point)) |
| @@ -8580,12 +8611,12 @@ Assumes that point is at the beginning of the unit as found by | |||
| 8580 | (start-process "idldeclient" nil | 8611 | (start-process "idldeclient" nil |
| 8581 | idlwave-shell-explicit-file-name "-c" "-e" | 8612 | idlwave-shell-explicit-file-name "-c" "-e" |
| 8582 | (buffer-file-name) "&")) | 8613 | (buffer-file-name) "&")) |
| 8583 | 8614 | ||
| 8584 | (defun idlwave-launch-idlhelp () | 8615 | (defun idlwave-launch-idlhelp () |
| 8585 | "Start the IDLhelp application." | 8616 | "Start the IDLhelp application." |
| 8586 | (interactive) | 8617 | (interactive) |
| 8587 | (start-process "idlhelp" nil idlwave-help-application)) | 8618 | (start-process "idlhelp" nil idlwave-help-application)) |
| 8588 | 8619 | ||
| 8589 | ;; Menus - using easymenu.el | 8620 | ;; Menus - using easymenu.el |
| 8590 | (defvar idlwave-mode-menu-def | 8621 | (defvar idlwave-mode-menu-def |
| 8591 | `("IDLWAVE" | 8622 | `("IDLWAVE" |
| @@ -8672,7 +8703,7 @@ Assumes that point is at the beginning of the unit as found by | |||
| 8672 | ("Customize" | 8703 | ("Customize" |
| 8673 | ["Browse IDLWAVE Group" idlwave-customize t] | 8704 | ["Browse IDLWAVE Group" idlwave-customize t] |
| 8674 | "--" | 8705 | "--" |
| 8675 | ["Build Full Customize Menu" idlwave-create-customize-menu | 8706 | ["Build Full Customize Menu" idlwave-create-customize-menu |
| 8676 | (fboundp 'customize-menu-create)]) | 8707 | (fboundp 'customize-menu-create)]) |
| 8677 | ("Documentation" | 8708 | ("Documentation" |
| 8678 | ["Describe Mode" describe-mode t] | 8709 | ["Describe Mode" describe-mode t] |
| @@ -8689,22 +8720,22 @@ Assumes that point is at the beginning of the unit as found by | |||
| 8689 | '("Debug" | 8720 | '("Debug" |
| 8690 | ["Start IDL shell" idlwave-shell t] | 8721 | ["Start IDL shell" idlwave-shell t] |
| 8691 | ["Save and .RUN buffer" idlwave-shell-save-and-run | 8722 | ["Save and .RUN buffer" idlwave-shell-save-and-run |
| 8692 | (and (boundp 'idlwave-shell-automatic-start) | 8723 | (and (boundp 'idlwave-shell-automatic-start) |
| 8693 | idlwave-shell-automatic-start)])) | 8724 | idlwave-shell-automatic-start)])) |
| 8694 | 8725 | ||
| 8695 | (if (or (featurep 'easymenu) (load "easymenu" t)) | 8726 | (if (or (featurep 'easymenu) (load "easymenu" t)) |
| 8696 | (progn | 8727 | (progn |
| 8697 | (easy-menu-define idlwave-mode-menu idlwave-mode-map | 8728 | (easy-menu-define idlwave-mode-menu idlwave-mode-map |
| 8698 | "IDL and WAVE CL editing menu" | 8729 | "IDL and WAVE CL editing menu" |
| 8699 | idlwave-mode-menu-def) | 8730 | idlwave-mode-menu-def) |
| 8700 | (easy-menu-define idlwave-mode-debug-menu idlwave-mode-map | 8731 | (easy-menu-define idlwave-mode-debug-menu idlwave-mode-map |
| 8701 | "IDL and WAVE CL editing menu" | 8732 | "IDL and WAVE CL editing menu" |
| 8702 | idlwave-mode-debug-menu-def))) | 8733 | idlwave-mode-debug-menu-def))) |
| 8703 | 8734 | ||
| 8704 | (defun idlwave-customize () | 8735 | (defun idlwave-customize () |
| 8705 | "Call the customize function with idlwave as argument." | 8736 | "Call the customize function with idlwave as argument." |
| 8706 | (interactive) | 8737 | (interactive) |
| 8707 | ;; Try to load the code for the shell, so that we can customize it | 8738 | ;; Try to load the code for the shell, so that we can customize it |
| 8708 | ;; as well. | 8739 | ;; as well. |
| 8709 | (or (featurep 'idlw-shell) | 8740 | (or (featurep 'idlw-shell) |
| 8710 | (load "idlw-shell" t)) | 8741 | (load "idlw-shell" t)) |
| @@ -8715,11 +8746,11 @@ Assumes that point is at the beginning of the unit as found by | |||
| 8715 | (interactive) | 8746 | (interactive) |
| 8716 | (if (fboundp 'customize-menu-create) | 8747 | (if (fboundp 'customize-menu-create) |
| 8717 | (progn | 8748 | (progn |
| 8718 | ;; Try to load the code for the shell, so that we can customize it | 8749 | ;; Try to load the code for the shell, so that we can customize it |
| 8719 | ;; as well. | 8750 | ;; as well. |
| 8720 | (or (featurep 'idlw-shell) | 8751 | (or (featurep 'idlw-shell) |
| 8721 | (load "idlw-shell" t)) | 8752 | (load "idlw-shell" t)) |
| 8722 | (easy-menu-change | 8753 | (easy-menu-change |
| 8723 | '("IDLWAVE") "Customize" | 8754 | '("IDLWAVE") "Customize" |
| 8724 | `(["Browse IDLWAVE group" idlwave-customize t] | 8755 | `(["Browse IDLWAVE group" idlwave-customize t] |
| 8725 | "--" | 8756 | "--" |
| @@ -8767,7 +8798,7 @@ This function was written since `list-abbrevs' looks terrible for IDLWAVE mode." | |||
| 8767 | (let ((table (symbol-value 'idlwave-mode-abbrev-table)) | 8798 | (let ((table (symbol-value 'idlwave-mode-abbrev-table)) |
| 8768 | abbrevs | 8799 | abbrevs |
| 8769 | str rpl func fmt (len-str 0) (len-rpl 0)) | 8800 | str rpl func fmt (len-str 0) (len-rpl 0)) |
| 8770 | (mapatoms | 8801 | (mapatoms |
| 8771 | (lambda (sym) | 8802 | (lambda (sym) |
| 8772 | (if (symbol-value sym) | 8803 | (if (symbol-value sym) |
| 8773 | (progn | 8804 | (progn |
| @@ -8793,7 +8824,7 @@ This function was written since `list-abbrevs' looks terrible for IDLWAVE mode." | |||
| 8793 | (with-output-to-temp-buffer "*Help*" | 8824 | (with-output-to-temp-buffer "*Help*" |
| 8794 | (if arg | 8825 | (if arg |
| 8795 | (progn | 8826 | (progn |
| 8796 | (princ "Abbreviations and Actions in IDLWAVE-Mode\n") | 8827 | (princ "Abbreviations and Actions in IDLWAVE-Mode\n") |
| 8797 | (princ "=========================================\n\n") | 8828 | (princ "=========================================\n\n") |
| 8798 | (princ (format fmt "KEY" "REPLACE" "HOOK")) | 8829 | (princ (format fmt "KEY" "REPLACE" "HOOK")) |
| 8799 | (princ (format fmt "---" "-------" "----"))) | 8830 | (princ (format fmt "---" "-------" "----"))) |