Mercurial > emacs
annotate lisp/progmodes/idlw-shell.el @ 46780:5094a0226bac
Correction regarding --enable-static and libjpeg.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 01 Aug 2002 17:06:08 +0000 |
parents | 148f4d9a8905 |
children | 1c1d47728dc8 |
rev | line source |
---|---|
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1 ;; idlw-shell.el --- run IDL as an inferior process of Emacs. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2 ;; Copyright (c) 1999, 2000, 2001 Free Software Foundation |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
4 ;; Author: Carsten Dominik <dominik@astro.uva.nl> |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
5 ;; Chris Chase <chase@att.com> |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
6 ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
7 ;; Version: 4.14 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
8 ;; Date: $Date: 2002/06/14 19:05:30 $ |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
9 ;; Keywords: processes |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
10 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
11 ;; This file is part of GNU Emacs. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
12 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
13 ;; GNU Emacs is free software; you can redistribute it and/or modify |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
14 ;; it under the terms of the GNU General Public License as published by |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
15 ;; the Free Software Foundation; either version 2, or (at your option) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
16 ;; any later version. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
17 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
18 ;; GNU Emacs is distributed in the hope that it will be useful, |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
21 ;; GNU General Public License for more details. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
22 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
23 ;; You should have received a copy of the GNU General Public License |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
24 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
25 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
26 ;; Boston, MA 02111-1307, USA. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
27 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
28 ;;; Commentary: |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
29 ;; |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
30 ;; This mode is for IDL version 5 or later. It should work on |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
31 ;; Emacs>20.3 or XEmacs>20.4. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
32 ;; |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
33 ;; Runs IDL as an inferior process of Emacs, much like the emacs |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
34 ;; `shell' or `telnet' commands. Provides command history and |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
35 ;; searching. Provides debugging commands available in buffers |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
36 ;; visiting IDL procedure files, e.g., breakpoint setting, stepping, |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
37 ;; execution until a certain line, printing expressions under point, |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
38 ;; visual line pointer for current execution line, etc. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
39 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
40 ;; Documentation should be available online with `M-x idlwave-info'. |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
41 ;; |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
42 ;; New versions of IDLWAVE, documentation, and more information |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
43 ;; available from: |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
44 ;; http://idlwave.org |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
45 ;; |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
46 ;; INSTALLATION: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
47 ;; ============= |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
48 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
49 ;; Follow the instructions in the INSTALL file of the distribution. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
50 ;; In short, put this file on your load path and add the following |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
51 ;; lines to your .emacs file: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
52 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
53 ;; (autoload 'idlwave-shell "idlw-shell" "IDLWAVE Shell" t) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
54 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
55 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
56 ;; SOURCE |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
57 ;; ====== |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
58 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
59 ;; The newest version of this file can be found on the maintainers |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
60 ;; web site. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
61 ;; |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
62 ;; http://idlwave.org |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
63 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
64 ;; DOCUMENTATION |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
65 ;; ============= |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
66 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
67 ;; IDLWAVE is documented online in info format. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
68 ;; A printable version of the documentation is available from the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
69 ;; maintainers webpage (see under SOURCE) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
70 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
71 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
72 ;; KNOWN PROBLEMS |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
73 ;; ============== |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
74 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
75 ;; I don't plan on implementing directory tracking by watching the IDL |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
76 ;; commands entered at the prompt, since too often an IDL procedure |
45318 | 77 ;; will change the current directory. If you want the idl process |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
78 ;; buffer to match the IDL current working just execute `M-x |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
79 ;; idlwave-shell-resync-dirs' (bound to "\C-c\C-d\C-w" by default.) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
80 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
81 ;; Under XEmacs the Debug menu in the shell does not display the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
82 ;; keybindings in the prefix map. There bindings are available anyway - so |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
83 ;; it is a bug in XEmacs. |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
84 ;; The Debug menu in source buffers *does* display the bindings correctly. |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
85 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
86 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
87 ;; CUSTOMIZATION VARIABLES |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
88 ;; ======================= |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
89 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
90 ;; IDLWAVE has customize support - so if you want to learn about |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
91 ;; the variables which control the behavior of the mode, use |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
92 ;; `M-x idlwave-customize'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
93 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
94 ;;-------------------------------------------------------------------------- |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
95 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
96 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
97 ;;; Code: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
98 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
99 (require 'comint) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
100 (require 'idlwave) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
101 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
102 (eval-when-compile (require 'cl)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
103 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
104 (defvar idlwave-shell-have-new-custom nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
105 (eval-and-compile |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
106 ;; Kludge to allow `defcustom' for Emacs 19. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
107 (condition-case () (require 'custom) (error nil)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
108 (if (and (featurep 'custom) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
109 (fboundp 'custom-declare-variable) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
110 (fboundp 'defface)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
111 ;; We've got what we needed |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
112 (setq idlwave-shell-have-new-custom t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
113 ;; We have the old or no custom-library, hack around it! |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
114 (defmacro defgroup (&rest args) nil) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
115 (defmacro defcustom (var value doc &rest args) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
116 `(defvar ,var ,value ,doc)))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
117 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
118 ;;; Customizations: idlwave-shell group |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
119 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
120 (defgroup idlwave-shell-general-setup nil |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
121 "General setup of the Shell interaction for IDLWAVE/Shell." |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
122 :prefix "idlwave-shell" |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
123 :group 'idlwave) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
124 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
125 (defcustom idlwave-shell-prompt-pattern "^ ?IDL> " |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
126 "*Regexp to match IDL prompt at beginning of a line. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
127 For example, \"^IDL> \" or \"^WAVE> \". |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
128 The \"^\" means beginning of line. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
129 This variable is used to initialise `comint-prompt-regexp' in the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
130 process buffer. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
131 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
132 This is a fine thing to set in your `.emacs' file." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
133 :group 'idlwave-shell-general-setup |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
134 :type 'regexp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
135 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
136 (defcustom idlwave-shell-process-name "idl" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
137 "*Name to be associated with the IDL process. The buffer for the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
138 process output is made by surrounding this name with `*'s." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
139 :group 'idlwave-shell-general-setup |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
140 :type 'string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
141 |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
142 ;; (defcustom idlwave-shell-automatic-start...) See idlwave.el |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
143 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
144 (defcustom idlwave-shell-initial-commands "!more=0" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
145 "Initial commands, separated by newlines, to send to IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
146 This string is sent to the IDL process by `idlwave-shell-mode' which is |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
147 invoked by `idlwave-shell'." |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
148 :group 'idlwave-shell-general-setup |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
149 :type 'string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
150 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
151 (defcustom idlwave-shell-save-command-history t |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
152 "Non-nil means preserve command history between sessions. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
153 The file `idlwave-shell-command-history-file' is used to save and restore |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
154 the history." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
155 :group 'idlwave-shell-general-setup |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
156 :type 'boolean) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
157 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
158 (defcustom idlwave-shell-command-history-file "~/.idlwhist" |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
159 "The file in which the command history of the idlwave shell is saved. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
160 In order to change the size of the history, see the variable |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
161 `comint-input-ring-size'. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
162 The history is only saved if the variable `idlwave-shell-save-command-history' |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
163 is non-nil." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
164 :group 'idlwave-shell-general-setup |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
165 :type 'file) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
166 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
167 (defcustom idlwave-shell-use-dedicated-frame nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
168 "*Non-nil means, IDLWAVE should use a special frame to display shell buffer." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
169 :group 'idlwave-shell-general-setup |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
170 :type 'boolean) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
171 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
172 (defcustom idlwave-shell-frame-parameters |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
173 '((height . 30) (unsplittable . nil)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
174 "The frame parameters for a dedicated idlwave-shell frame. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
175 See also `idlwave-shell-use-dedicated-frame'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
176 The default makes the frame splittable, so that completion works correctly." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
177 :group 'idlwave-shell-general-setup |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
178 :type '(repeat |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
179 (cons symbol sexp))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
180 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
181 (defcustom idlwave-shell-raise-frame t |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
182 "*Non-nil means, `idlwave-shell' raises the frame showing the shell window." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
183 :group 'idlwave-shell-general-setup |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
184 :type 'boolean) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
185 |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
186 (defcustom idlwave-shell-arrows-do-history t |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
187 "*Non-nil means UP and DOWN arrows move through command history. |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
188 This variable can have 3 values: |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
189 nil Arrows just move the cursor |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
190 t Arrows force the cursor back to the current command line and |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
191 walk the history |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
192 'cmdline When the cursor is in the current command line, arrows walk the |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
193 history. Everywhere else in the buffer, arrows move the cursor." |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
194 :group 'idlwave-shell-general-setup |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
195 :type '(choice |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
196 (const :tag "never" nil) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
197 (const :tag "everywhere" t) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
198 (const :tag "in command line only" cmdline))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
199 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
200 ;; FIXME: add comint-input-ring-size? |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
201 (defcustom idlwave-shell-comint-settings |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
202 '((comint-scroll-to-bottom-on-input . t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
203 (comint-scroll-to-bottom-on-output . nil) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
204 (comint-scroll-show-maximum-output . t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
205 ) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
206 "Alist of special settings for the comint variables in the IDLWAVE Shell. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
207 Each entry is a cons cell with the name of a variable and a value. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
208 The function `idlwave-shell-mode' will make local variables out of each entry. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
209 Changes to this variable will only be active when the shell buffer is |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
210 newly created." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
211 :group 'idlwave-shell-general-setup |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
212 :type '(repeat |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
213 (cons variable sexp))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
214 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
215 (defcustom idlwave-shell-use-toolbar t |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
216 "*Non-nil means, use the debugging toolbar in all IDL related buffers. |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
217 Starting the shell will then add the toolbar to all idlwave-mode buffers. |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
218 Exiting the shell will removed everywhere. |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
219 Available on XEmacs and on Emacs 21.x or later. |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
220 At any time you can toggle the display of the toolbar with |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
221 `C-c C-d C-t' (`idlwave-shell-toggle-toolbar')." |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
222 :group 'idlwave-shell-general-setup |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
223 :type 'boolean) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
224 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
225 (defcustom idlwave-shell-temp-pro-prefix "/tmp/idltemp" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
226 "*The prefix for temporary IDL files used when compiling regions. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
227 It should be an absolute pathname. |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
228 The full temporary file name is obtained by using `make-temp-file' |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
229 so that the name will be unique among multiple Emacs processes." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
230 :group 'idlwave-shell-general-setup |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
231 :type 'string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
232 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
233 (defvar idlwave-shell-fix-inserted-breaks nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
234 "*OBSOLETE VARIABLE, is no longer used. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
235 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
236 The documentation of this variable used to be: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
237 If non-nil then run `idlwave-shell-remove-breaks' to clean up IDL messages.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
238 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
239 (defcustom idlwave-shell-prefix-key "\C-c\C-d" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
240 "*The prefix key for the debugging map `idlwave-shell-mode-prefix-map'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
241 This variable must already be set when idlwave-shell.el is loaded. |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
242 Setting it in the mode-hook is too late." |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
243 :group 'idlwave-shell-general-setup |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
244 :type 'string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
245 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
246 (defcustom idlwave-shell-activate-prefix-keybindings t |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
247 "Non-nil means, the debug commands will be bound to the prefix key. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
248 The prefix key itself is given in the option `idlwave-shell-prefix-key'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
249 So by default setting a breakpoint will be on C-c C-d C-b." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
250 :group 'idlwave-shell-general-setup |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
251 :type 'boolean) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
252 |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
253 ;; (defcustom idlwave-shell-debug-modifiers... See idlwave.el |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
254 |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
255 (defvar idlwave-shell-activate-alt-keybindings nil |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
256 "Obsolete variable. See `idlwave-shell-debug-modifiers'.") |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
257 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
258 (defcustom idlwave-shell-use-truename nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
259 "*Non-nil means, use use `file-truename' when looking for buffers. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
260 If this variable is non-nil, Emacs will use the function `file-truename' to |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
261 resolve symbolic links in the file paths printed by e.g., STOP commands. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
262 This means, unvisited files will be loaded under their truename. |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
263 However, when a file is already visited under a different name, IDLWAVE will |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
264 reuse that buffer. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
265 This option was once introduced in order to avoid multiple buffers visiting |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
266 the same file. However, IDLWAVE no longer makes this mistake, so it is safe |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
267 to set this option to nil." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
268 :group 'idlwave-shell-general-setup |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
269 :type 'boolean) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
270 |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
271 (defcustom idlwave-shell-file-name-chars "~/A-Za-z0-9+@:_.$#%={}\\-" |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
272 "The characters allowed in file names, as a string. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
273 Used for file name completion. Must not contain `'', `,' and `\"' |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
274 because these are used as separators by IDL." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
275 :group 'idlwave-shell-general-setup |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
276 :type 'string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
277 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
278 (defcustom idlwave-shell-mode-hook '() |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
279 "*Hook for customising `idlwave-shell-mode'." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
280 :group 'idlwave-shell-general-setup |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
281 :type 'hook) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
282 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
283 (defvar idlwave-shell-print-expression-function nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
284 "*OBSOLETE VARIABLE, is no longer used.") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
285 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
286 (defcustom idlwave-shell-examine-alist |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
287 '(("Print" . "print,___") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
288 ("Help" . "help,___") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
289 ("Structure Help" . "help,___,/STRUCTURE") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
290 ("Dimensions" . "print,size(___,/DIMENSIONS)") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
291 ("Type" . "print,size(___,/TNAME)") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
292 ("N_Elements" . "print,n_elements(___)") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
293 ("All Size Info" . "help,(__IWsz__=size(___,/STRUCTURE)),/STRUCTURE & print,__IWsz__.DIMENSIONS") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
294 ("Ptr Valid" . "print,ptr_valid(___)") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
295 ("Widget Valid" . "print,widget_info(___,/VALID)") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
296 ("Widget Geometry" . "help,widget_info(___,/GEOMETRY)")) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
297 "Alist of special examine commands for popup selection. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
298 The keys are used in the selection popup created by |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
299 `idlwave-shell-examine-select', and the corresponding value is sent as |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
300 a command to the shell, with special sequence `___' replaced by the |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
301 expression being examined." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
302 :group 'idlwave-shell-general-setup |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
303 :type '(repeat |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
304 (cons |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
305 (string :tag "Label ") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
306 (string :tag "Command")))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
307 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
308 (defcustom idlwave-shell-separate-examine-output t |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
309 "*Non-nil mean, put output of examine commands in their own buffer." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
310 :group 'idlwave-shell-general-setup |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
311 :type 'boolean) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
312 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
313 (defcustom idlwave-shell-use-input-mode-magic nil |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
314 "*Non-nil means, IDLWAVE should check for input mode spells in output. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
315 The spells are strings printed by your IDL program and matched |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
316 by the regular expressions in `idlwave-shell-input-mode-spells'. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
317 When these expressions match, IDLWAVE switches to character input mode and |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
318 back, respectively. See `idlwave-shell-input-mode-spells' for details." |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
319 :group 'idlwave-shell-general-setup |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
320 :type 'boolean) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
321 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
322 (defcustom idlwave-shell-input-mode-spells |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
323 '("^<onechar>$" "^<chars>$" "^</chars>$") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
324 "The three regular expressions which match the magic spells for input modes. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
325 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
326 When the first regexp matches in the output streem of IDL, IDLWAVE |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
327 prompts for a single character and sends it immediately to IDL, similar |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
328 to the command \\[idlwave-shell-send-char]. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
329 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
330 When the second regexp matches, IDLWAVE switches to a blocking |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
331 single-character input mode. This is the same mode which can be entered |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
332 manually with \\[idlwave-shell-char-mode-loop]. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
333 This input mode exits when the third regexp matches in the output, |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
334 or when the IDL prompt is encountered. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
335 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
336 The variable `idlwave-shell-use-input-mode-magic' must be non-nil to enable |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
337 scanning for these expressions. If the IDL program produces lots of |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
338 output, shell operation may be slowed down. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
339 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
340 This mechanism is useful for correct interaction with the IDL function |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
341 GET_KBRD, because in normal operation IDLWAVE only sends \\n terminated |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
342 strings. Here is some example code which makes use of the default spells. |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
343 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
344 print,'<chars>' ; Make IDLWAVE switch to character mode |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
345 REPEAT BEGIN |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
346 A = GET_KBRD(1) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
347 PRINT, BYTE(A) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
348 ENDREP UNTIL A EQ 'q' |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
349 print,'</chars>' ; Make IDLWAVE switch back to line mode |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
350 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
351 print,'Quit the program, y or n?' |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
352 print,'<onechar>' ; Ask IDLWAVE to send one character |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
353 answer = GET_KBRD(1) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
354 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
355 Since the IDLWAVE shell defines the system variable `!IDLWAVE_VERSION', |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
356 you could actually check if you are running under Emacs before printing |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
357 the magic strings. Here is a procedure which uses this. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
358 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
359 Usage: |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
360 ====== |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
361 idlwave_char_input ; Make IDLWAVE send one character |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
362 idlwave_char_input,/on ; Start the loop to send characters |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
363 idlwave_char_input,/off ; End the loop to send chracters |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
364 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
365 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
366 pro idlwave_char_input,on=on,off=off |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
367 ;; Test if we are running under Emacs |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
368 defsysv,'!idlwave_version',exists=running_emacs |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
369 if running_emacs then begin |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
370 if keyword_set(on) then print,'<chars>' $ |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
371 else if keyword_set(off) then print,'</chars>' $ |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
372 else print,'<onechar>' |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
373 endif |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
374 end" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
375 :group 'idlwave-shell-general-setup |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
376 :type '(list |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
377 (regexp :tag "One-char regexp") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
378 (regexp :tag "Char-mode regexp") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
379 (regexp :tag "Line-mode regexp"))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
380 |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
381 (defcustom idlwave-shell-graphics-window-size '(500 400) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
382 "Size of IDL graphics windows popped up by special IDLWAVE command. |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
383 The command is `C-c C-d C-f' and accepts as a prefix the window nr. |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
384 A command like `WINDOW,N,xsize=XX,ysize=YY' is sent to IDL." |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
385 :group 'idlwave-shell-general-setup |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
386 :type '(list |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
387 (integer :tag "x size") |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
388 (integer :tag "y size"))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
389 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
390 ;;; Breakpoint Overlays etc |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
391 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
392 (defgroup idlwave-shell-highlighting-and-faces nil |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
393 "Highlighting and Faces used by the IDLWAVE Shell mode." |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
394 :prefix "idlwave-shell" |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
395 :group 'idlwave) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
396 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
397 (defcustom idlwave-shell-mark-stop-line t |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
398 "*Non-nil means, mark the source code line where IDL is currently stopped. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
399 Value decides about the method which is used to mark the line. Legal values |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
400 are: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
401 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
402 nil Do not mark the line |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
403 'arrow Use the overlay arrow |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
404 'face Use `idlwave-shell-stop-line-face' to highlight the line. |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
405 t Use what IDLWAVE thinks is best. Will be a face where possible, |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
406 otherwise the overlay arrow. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
407 The overlay-arrow has the disadvantage to hide the first chars of a line. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
408 Since many people do not have the main block of IDL programs indented, |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
409 a face highlighting may be better. |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
410 In Emacs 21, the overlay arrow is displayed in a special area and never |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
411 hides any code, so setting this to 'arrow on Emacs 21 sounds like a good idea." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
412 :group 'idlwave-shell-highlighting-and-faces |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
413 :type '(choice |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
414 (const :tag "No marking" nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
415 (const :tag "Use overlay arrow" arrow) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
416 (const :tag "Highlight with face" face) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
417 (const :tag "Face or arrow." t))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
418 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
419 (defcustom idlwave-shell-overlay-arrow ">" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
420 "*The overlay arrow to display at source lines where execution halts. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
421 We use a single character by default, since the main block of IDL procedures |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
422 often has no indentation. Where possible, IDLWAVE will use overlays to |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
423 display the stop-lines. The arrow is only used on character-based terminals. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
424 See also `idlwave-shell-use-overlay-arrow'." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
425 :group 'idlwave-shell-highlighting-and-faces |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
426 :type 'string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
427 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
428 (defcustom idlwave-shell-stop-line-face 'highlight |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
429 "*The face for `idlwave-shell-stop-line-overlay'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
430 Allows you to choose the font, color and other properties for |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
431 line where IDL is stopped. See also `idlwave-shell-mark-stop-line'." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
432 :group 'idlwave-shell-highlighting-and-faces |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
433 :type 'symbol) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
434 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
435 (defcustom idlwave-shell-mark-breakpoints t |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
436 "*Non-nil means, mark breakpoints in the source files. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
437 Legal values are: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
438 nil Do not mark breakpoints. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
439 'face Highlight line with `idlwave-shell-breakpoint-face'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
440 'glyph Red dot at the beginning of line. If the display does not |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
441 support glyphs, will use 'face instead. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
442 t Glyph when possible, otherwise face (same effect as 'glyph)." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
443 :group 'idlwave-shell-highlighting-and-faces |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
444 :type '(choice |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
445 (const :tag "No marking" nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
446 (const :tag "Highlight with face" face) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
447 (const :tag "Display glyph (red dot)" glyph) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
448 (const :tag "Glyph or face." t))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
449 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
450 (defvar idlwave-shell-use-breakpoint-glyph t |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
451 "Obsolete variable. See `idlwave-shell-mark-breakpoints.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
452 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
453 (defcustom idlwave-shell-breakpoint-face 'idlwave-shell-bp-face |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
454 "*The face for breakpoint lines in the source code. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
455 Allows you to choose the font, color and other properties for |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
456 lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
457 :group 'idlwave-shell-highlighting-and-faces |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
458 :type 'symbol) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
459 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
460 (if idlwave-shell-have-new-custom |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
461 ;; We have the new customize - use it to define a customizable face |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
462 (defface idlwave-shell-bp-face |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
463 '((((class color)) (:foreground "Black" :background "Pink")) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
464 (t (:underline t))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
465 "Face for highlighting lines-with-breakpoints." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
466 :group 'idlwave-shell-highlighting-and-faces) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
467 ;; Just copy the underline face to be on the safe side. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
468 (copy-face 'underline 'idlwave-shell-bp-face)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
469 |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
470 (defcustom idlwave-shell-expression-face 'secondary-selection |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
471 "*The face for `idlwave-shell-expression-overlay'. |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
472 Allows you to choose the font, color and other properties for |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
473 the expression printed by IDL." |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
474 :group 'idlwave-shell-highlighting-and-faces |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
475 :type 'symbol) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
476 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
477 (defcustom idlwave-shell-output-face 'secondary-selection |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
478 "*The face for `idlwave-shell-output-overlay'. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
479 Allows you to choose the font, color and other properties for |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
480 the expression output by IDL." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
481 :group 'idlwave-shell-highlighting-and-faces |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
482 :type 'symbol) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
483 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
484 ;;; End user customization variables |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
485 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
486 ;;; External variables |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
487 (defvar comint-last-input-start) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
488 (defvar comint-last-input-end) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
489 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
490 (defun idlwave-shell-temp-file (type) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
491 "Return a temp file, creating it if necessary. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
492 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
493 TYPE is either 'pro or 'rinfo, and idlwave-shell-temp-pro-file or |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
494 idlwave-shell-temp-rinfo-save-file is set (respectively)." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
495 (cond |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
496 ((eq type 'rinfo) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
497 (or idlwave-shell-temp-rinfo-save-file |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
498 (setq idlwave-shell-temp-rinfo-save-file |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
499 (idlwave-shell-make-temp-file idlwave-shell-temp-pro-prefix)))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
500 ((eq type 'pro) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
501 (or idlwave-shell-temp-pro-file |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
502 (setq idlwave-shell-temp-pro-file |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
503 (idlwave-shell-make-temp-file idlwave-shell-temp-pro-prefix)))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
504 (t (error "Wrong argument (idlwave-shell-temp-file): %s" |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
505 (symbol-name type))))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
506 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
507 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
508 (defun idlwave-shell-make-temp-file (prefix) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
509 "Create a temporary file." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
510 ; Hard coded make-temp-file for Emacs<21 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
511 (if (fboundp 'make-temp-file) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
512 (make-temp-file prefix) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
513 (let (file |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
514 (temp-file-dir (if (boundp 'temporary-file-directory) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
515 temporary-file-directory |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
516 "/tmp"))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
517 (while (condition-case () |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
518 (progn |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
519 (setq file |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
520 (make-temp-name |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
521 (expand-file-name prefix temp-file-dir))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
522 (if (featurep 'xemacs) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
523 (write-region "" nil file nil 'silent nil) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
524 (write-region "" nil file nil 'silent nil 'excl)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
525 nil) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
526 (file-already-exists t)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
527 ;; the file was somehow created by someone else between |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
528 ;; `make-temp-name' and `write-region', let's try again. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
529 nil) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
530 file))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
531 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
532 ;; Other variables |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
533 (defvar idlwave-shell-temp-pro-file |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
534 nil |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
535 "Absolute pathname for temporary IDL file for compiling regions") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
536 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
537 (defvar idlwave-shell-temp-rinfo-save-file |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
538 nil |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
539 "Absolute pathname for temporary IDL file save file for routine_info. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
540 This is used to speed up the reloading of the routine info procedure |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
541 before use by the shell.") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
542 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
543 (defvar idlwave-shell-dirstack-query "printd" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
544 "Command used by `idlwave-shell-resync-dirs' to query IDL for |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
545 the directory stack.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
546 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
547 (defvar idlwave-shell-wd-is-synched nil) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
548 |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
549 (defvar idlwave-shell-path-query "__pa=expand_path(!path,/array)&for i=0,n_elements(__pa)-1 do print,'PATH:<'+__pa[i]+'>'&print,'SYSDIR:<'+!dir+'>'" |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
550 "The command which gets !PATH and !DIR infor from the shell.") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
551 |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
552 (defvar idlwave-shell-mode-line-info nil |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
553 "Additional info displayed in the mode line") |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
554 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
555 (defvar idlwave-shell-default-directory nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
556 "The default directory in the idlwave-shell buffer, of outside use.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
557 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
558 (defvar idlwave-shell-last-save-and-action-file nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
559 "The last file which was compiled with `idlwave-shell-save-and-...'.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
560 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
561 ;; Highlighting uses overlays. When necessary, require the emulation. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
562 (if (not (fboundp 'make-overlay)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
563 (condition-case nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
564 (require 'overlay) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
565 (error nil))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
566 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
567 (defvar idlwave-shell-stop-line-overlay nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
568 "The overlay for where IDL is currently stopped.") |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
569 (defvar idlwave-shell-is-stopped nil) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
570 (defvar idlwave-shell-expression-overlay nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
571 "The overlay for where IDL is currently stopped.") |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
572 (defvar idlwave-shell-output-overlay nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
573 "The overlay for the last IDL output.") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
574 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
575 ;; If these were already overlays, delete them. This probably means that we |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
576 ;; are reloading this file. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
577 (if (overlayp idlwave-shell-stop-line-overlay) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
578 (delete-overlay idlwave-shell-stop-line-overlay)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
579 (if (overlayp idlwave-shell-expression-overlay) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
580 (delete-overlay idlwave-shell-expression-overlay)) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
581 (if (overlayp idlwave-shell-output-overlay) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
582 (delete-overlay idlwave-shell-output-overlay)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
583 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
584 ;; Set to nil initially |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
585 (setq idlwave-shell-stop-line-overlay nil |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
586 idlwave-shell-expression-overlay nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
587 idlwave-shell-output-overlay nil) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
588 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
589 ;; Define the shell stop overlay. When left nil, the arrow will be used. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
590 (cond |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
591 ((or (null idlwave-shell-mark-stop-line) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
592 (eq idlwave-shell-mark-stop-line 'arrow)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
593 ;; Leave the overlay nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
594 nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
595 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
596 ((eq idlwave-shell-mark-stop-line 'face) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
597 ;; Try to use a face. If not possible, arrow will be used anyway |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
598 ;; So who can display faces? |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
599 (when (or (featurep 'xemacs) ; XEmacs can do also ttys |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
600 (fboundp 'tty-defined-colors) ; Emacs 21 as well |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
601 window-system) ; Window systems always |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
602 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
603 (setq idlwave-shell-stop-line-overlay (make-overlay 1 1)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
604 (overlay-put idlwave-shell-stop-line-overlay |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
605 'face idlwave-shell-stop-line-face)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
606 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
607 (t |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
608 ;; IDLWAVE may decide. Will use a face on window systems, arrow elsewhere |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
609 (if window-system |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
610 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
611 (setq idlwave-shell-stop-line-overlay (make-overlay 1 1)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
612 (overlay-put idlwave-shell-stop-line-overlay |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
613 'face idlwave-shell-stop-line-face))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
614 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
615 ;; Now the expression and output overlays |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
616 (setq idlwave-shell-expression-overlay (make-overlay 1 1)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
617 (overlay-put idlwave-shell-expression-overlay |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
618 'face idlwave-shell-expression-face) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
619 (setq idlwave-shell-output-overlay (make-overlay 1 1)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
620 (overlay-put idlwave-shell-output-overlay |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
621 'face idlwave-shell-output-face) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
622 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
623 (defvar idlwave-shell-bp-query "help,/breakpoints" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
624 "Command to obtain list of breakpoints") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
625 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
626 (defvar idlwave-shell-command-output nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
627 "String for accumulating current command output.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
628 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
629 (defvar idlwave-shell-post-command-hook nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
630 "Lisp list expression or function to run when an IDL command is finished. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
631 The current command is finished when the IDL prompt is displayed. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
632 This is evaluated if it is a list or called with funcall.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
633 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
634 (defvar idlwave-shell-sentinel-hook nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
635 "Hook run when the idl process exits.") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
636 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
637 (defvar idlwave-shell-hide-output nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
638 "If non-nil the process output is not inserted into the output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
639 buffer.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
640 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
641 (defvar idlwave-shell-accumulation nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
642 "Accumulate last line of output.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
643 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
644 (defvar idlwave-shell-command-line-to-execute nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
645 (defvar idlwave-shell-cleanup-hook nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
646 "List of functions to do cleanup when the shell exits.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
647 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
648 (defvar idlwave-shell-pending-commands nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
649 "List of commands to be sent to IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
650 Each element of the list is list of \(CMD PCMD HIDE\), where CMD is a |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
651 string to be sent to IDL and PCMD is a post-command to be placed on |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
652 `idlwave-shell-post-command-hook'. If HIDE is non-nil, hide the output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
653 from command CMD. PCMD and HIDE are optional.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
654 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
655 (defun idlwave-shell-buffer () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
656 "Name of buffer associated with IDL process. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
657 The name of the buffer is made by surrounding `idlwave-shell-process-name |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
658 with `*'s." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
659 (concat "*" idlwave-shell-process-name "*")) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
660 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
661 (defvar idlwave-shell-ready nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
662 "If non-nil can send next command to IDL process.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
663 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
664 ;;; The following are the types of messages we attempt to catch to |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
665 ;;; resync our idea of where IDL execution currently is. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
666 ;;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
667 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
668 (defvar idlwave-shell-halt-frame nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
669 "The frame associated with halt/breakpoint messages.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
670 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
671 (defvar idlwave-shell-step-frame nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
672 "The frame associated with step messages.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
673 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
674 (defvar idlwave-shell-trace-frame nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
675 "The frame associated with trace messages.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
676 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
677 (defconst idlwave-shell-halt-messages |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
678 '("^% Execution halted at" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
679 "^% Interrupted at:" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
680 "^% Stepped to:" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
681 "^% At " |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
682 "^% Stop encountered:" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
683 ) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
684 "*A list of regular expressions matching IDL messages. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
685 These are the messages containing file and line information where |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
686 IDL is currently stopped.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
687 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
688 (defconst idlwave-shell-halt-messages-re |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
689 (mapconcat 'identity idlwave-shell-halt-messages "\\|") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
690 "The regular expression computed from idlwave-shell-halt-messages") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
691 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
692 (defconst idlwave-shell-trace-messages |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
693 '("^% At " ;; First line of a trace message |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
694 ) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
695 "*A list of regular expressions matching IDL trace messages. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
696 These are the messages containing file and line information where |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
697 IDL will begin looking for the next statement to execute.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
698 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
699 (defconst idlwave-shell-step-messages |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
700 '("^% Stepped to:" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
701 ) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
702 "*A list of regular expressions matching stepped execution messages. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
703 These are IDL messages containing file and line information where |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
704 IDL has currently stepped.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
705 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
706 (defvar idlwave-shell-break-message "^% Breakpoint at:" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
707 "*Regular expression matching an IDL breakpoint message line.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
708 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
709 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
710 (defvar idlwave-shell-bp-alist) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
711 ;(defvar idlwave-shell-post-command-output) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
712 (defvar idlwave-shell-sources-alist) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
713 (defvar idlwave-shell-menu-def) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
714 (defvar idlwave-shell-mode-menu) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
715 (defvar idlwave-shell-initial-commands) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
716 (defvar idlwave-shell-syntax-error) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
717 (defvar idlwave-shell-other-error) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
718 (defvar idlwave-shell-error-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
719 (defvar idlwave-shell-error-last) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
720 (defvar idlwave-shell-bp-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
721 (defvar idlwave-shell-sources-query) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
722 (defvar idlwave-shell-mode-map) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
723 (defvar idlwave-shell-calling-stack-index) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
724 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
725 (defun idlwave-shell-mode () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
726 "Major mode for interacting with an inferior IDL process. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
727 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
728 1. Shell Interaction |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
729 ----------------- |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
730 RET after the end of the process' output sends the text from the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
731 end of process to the end of the current line. RET before end of |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
732 process output copies the current line (except for the prompt) to the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
733 end of the buffer. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
734 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
735 Command history, searching of previous commands, command line |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
736 editing are available via the comint-mode key bindings, by default |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
737 mostly on the key `C-c'. Command history is also available with |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
738 the arrow keys UP and DOWN. |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
739 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
740 2. Completion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
741 ---------- |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
742 TAB and M-TAB do completion of IDL routines, classes and keywords - |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
743 similar to M-TAB in `idlwave-mode'. In executive commands and |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
744 strings, it completes file names. Abbreviations are also expanded |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
745 like in `idlwave-mode'. |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
746 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
747 3. Routine Info |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
748 ------------ |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
749 `\\[idlwave-routine-info]' displays information about an IDL routine near point, |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
750 just like in `idlwave-mode'. The module used is the one at point or |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
751 the one whose argument list is being edited. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
752 To update IDLWAVE's knowledge about compiled or edited modules, use |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
753 \\[idlwave-update-routine-info]. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
754 \\[idlwave-find-module] find the source of a module. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
755 \\[idlwave-resolve] tells IDL to compile an unresolved module. |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
756 \\[idlwave-context-help] shows the online help on the item at |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
757 point, if online help has been installed. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
758 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
759 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
760 4. Debugging |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
761 --------- |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
762 A complete set of commands for compiling and debugging IDL programs |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
763 is available from the menu. Also keybindings starting with a |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
764 `C-c C-d' prefix are available for most commands in the *idl* buffer |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
765 and also in source buffers. The best place to learn about the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
766 keybindings is again the menu. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
767 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
768 On Emacs versions where this is possible, a debugging toolbar is |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
769 installed. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
770 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
771 When IDL is halted in the middle of a procedure, the corresponding |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
772 line of that procedure file is displayed with an overlay in another |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
773 window. Breakpoints are also highlighted in the source. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
774 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
775 \\[idlwave-shell-resync-dirs] queries IDL in order to change Emacs current directory |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
776 to correspond to the IDL process current directory. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
777 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
778 5. Hooks |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
779 ----- |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
780 Turning on `idlwave-shell-mode' runs `comint-mode-hook' and |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
781 `idlwave-shell-mode-hook' (in that order). |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
782 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
783 6. Documentation and Customization |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
784 ------------------------------- |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
785 Info documentation for this package is available. Use \\[idlwave-info] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
786 to display (complain to your sysadmin if that does not work). |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
787 For Postscript and HTML versions of the documentation, check IDLWAVE's |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
788 homepage at `http://idlwave.org'. |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
789 IDLWAVE has customize support - see the group `idlwave'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
790 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
791 7. Keybindings |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
792 ----------- |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
793 \\{idlwave-shell-mode-map}" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
794 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
795 (interactive) |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
796 ;; We don't do `kill-all-local-variables' here, because this is done by |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
797 ;; comint - idlwave-shell-mode only add on top of that. |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
798 (setq comint-prompt-regexp idlwave-shell-prompt-pattern) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
799 (setq comint-process-echoes t) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
800 ;; Can not use history expansion because "!" is used for system variables. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
801 (setq comint-input-autoexpand nil) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
802 ; (setq comint-input-ring-size 64) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
803 (make-local-variable 'comint-completion-addsuffix) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
804 (set (make-local-variable 'completion-ignore-case) t) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
805 (setq comint-completion-addsuffix '("/" . "")) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
806 (setq comint-input-ignoredups t) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
807 (setq major-mode 'idlwave-shell-mode) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
808 (setq mode-name "IDL-Shell") |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
809 (setq idlwave-shell-mode-line-info nil) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
810 (setq mode-line-format |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
811 '("" |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
812 mode-line-modified |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
813 mode-line-buffer-identification |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
814 " " |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
815 global-mode-string |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
816 " %[(" |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
817 mode-name |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
818 mode-line-process |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
819 minor-mode-alist |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
820 "%n" |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
821 ")%]-" |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
822 idlwave-shell-mode-line-info |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
823 "---" |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
824 (line-number-mode "L%l--") |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
825 (column-number-mode "C%c--") |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
826 (-3 . "%p") |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
827 "-%-")) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
828 ;; (make-local-variable 'idlwave-shell-bp-alist) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
829 (setq idlwave-shell-halt-frame nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
830 idlwave-shell-trace-frame nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
831 idlwave-shell-command-output nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
832 idlwave-shell-step-frame nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
833 (idlwave-shell-display-line nil) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
834 (setq idlwave-shell-calling-stack-index 0) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
835 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
836 ;; Make sure comint-last-input-end does not go to beginning of |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
837 ;; buffer (in case there were other processes already in this buffer). |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
838 (set-marker comint-last-input-end (point)) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
839 (setq idlwave-idlwave_routine_info-compiled nil) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
840 (setq idlwave-shell-ready nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
841 (setq idlwave-shell-bp-alist nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
842 (idlwave-shell-update-bp-overlays) ; Throw away old overlays |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
843 (setq idlwave-shell-sources-alist nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
844 (setq idlwave-shell-default-directory default-directory) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
845 (setq idlwave-shell-hide-output nil) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
846 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
847 ;; NB: `make-local-hook' needed for older/alternative Emacs compatibility |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
848 (make-local-hook 'kill-buffer-hook) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
849 (add-hook 'kill-buffer-hook 'idlwave-shell-kill-shell-buffer-confirm |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
850 nil 'local) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
851 (add-hook 'kill-buffer-hook 'idlwave-shell-delete-temp-files nil 'local) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
852 (add-hook 'kill-emacs-hook 'idlwave-shell-delete-temp-files) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
853 (use-local-map idlwave-shell-mode-map) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
854 (easy-menu-add idlwave-shell-mode-menu idlwave-shell-mode-map) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
855 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
856 ;; Set the optional comint variables |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
857 (when idlwave-shell-comint-settings |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
858 (let ((list idlwave-shell-comint-settings) entry) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
859 (while (setq entry (pop list)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
860 (set (make-local-variable (car entry)) (cdr entry))))) |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
861 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
862 ;; IDLWAVE syntax, and turn on abbreviations |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
863 (setq local-abbrev-table idlwave-mode-abbrev-table) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
864 (set-syntax-table idlwave-mode-syntax-table) |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
865 (set (make-local-variable 'comment-start) ";") |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
866 (setq abbrev-mode t) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
867 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
868 ;; NB: `make-local-hook' needed for older/alternative Emacs compatibility |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
869 (make-local-hook 'post-command-hook) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
870 (add-hook 'post-command-hook 'idlwave-command-hook nil t) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
871 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
872 ;; Read the command history? |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
873 (when (and idlwave-shell-save-command-history |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
874 (stringp idlwave-shell-command-history-file)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
875 (set (make-local-variable 'comint-input-ring-file-name) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
876 idlwave-shell-command-history-file) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
877 (if (file-regular-p idlwave-shell-command-history-file) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
878 (comint-read-input-ring))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
879 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
880 ;; Run the hooks. |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
881 (run-hooks 'idlwave-shell-mode-hook) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
882 (idlwave-shell-send-command idlwave-shell-initial-commands nil 'hide) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
883 ;; Define a system variable which knows the version of IDLWAVE |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
884 (idlwave-shell-send-command |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
885 (format "defsysv,'!idlwave_version','%s',1" idlwave-mode-version) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
886 nil 'hide) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
887 (if (and (not idlwave-path-alist) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
888 (not idlwave-sys-dir)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
889 (idlwave-shell-send-command idlwave-shell-path-query |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
890 'idlwave-shell-get-path-info |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
891 'hide))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
892 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
893 (defun idlwave-shell-get-path-info () |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
894 (let* ((rpl (idlwave-shell-path-filter)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
895 (sysdir (car rpl)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
896 (dirs (cdr rpl))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
897 (setq idlwave-sys-dir sysdir) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
898 (setq idlwave-path-alist (mapcar (lambda(x) (cons x nil)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
899 dirs)))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
900 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
901 (if (not (fboundp 'idl-shell)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
902 (fset 'idl-shell 'idlwave-shell)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
903 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
904 (defvar idlwave-shell-idl-wframe nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
905 "Frame for displaying the idl shell window.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
906 (defvar idlwave-shell-display-wframe nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
907 "Frame for displaying the idl source files.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
908 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
909 (defvar idlwave-shell-calling-stack-index 0) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
910 (defvar idlwave-shell-calling-stack-routine nil) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
911 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
912 (defun idlwave-shell-source-frame () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
913 "Return the frame to be used for source display." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
914 (if idlwave-shell-use-dedicated-frame |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
915 ;; We want separate frames for source and shell |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
916 (if (frame-live-p idlwave-shell-display-wframe) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
917 ;; The frame exists, so we use it. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
918 idlwave-shell-display-wframe |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
919 ;; The frame does not exist. We use the current frame. |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
920 ;; However, if the current is the shell frame, we make a new frame, |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
921 ;; or recycle the first existing visible frame |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
922 (setq idlwave-shell-display-wframe |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
923 (if (eq (selected-frame) idlwave-shell-idl-wframe) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
924 (or |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
925 (let ((flist (visible-frame-list)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
926 (frame (selected-frame))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
927 (catch 'exit |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
928 (while flist |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
929 (if (not (eq (car flist) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
930 idlwave-shell-idl-wframe)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
931 (throw 'exit (car flist)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
932 (setq flist (cdr flist)))))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
933 (make-frame)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
934 (selected-frame)))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
935 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
936 (defun idlwave-shell-shell-frame () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
937 "Return the frame to be used for the shell buffer." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
938 (if idlwave-shell-use-dedicated-frame |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
939 ;; We want a dedicated frame |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
940 (if (frame-live-p idlwave-shell-idl-wframe) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
941 ;; It does exist, so we use it. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
942 idlwave-shell-idl-wframe |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
943 ;; It does not exist. Check if we have a source frame. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
944 (if (not (frame-live-p idlwave-shell-display-wframe)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
945 ;; We do not have a source frame, so we use this one. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
946 (setq idlwave-shell-display-wframe (selected-frame))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
947 ;; Return a new frame |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
948 (setq idlwave-shell-idl-wframe |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
949 (make-frame idlwave-shell-frame-parameters))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
950 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
951 ;;;###autoload |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
952 (defun idlwave-shell (&optional arg quick) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
953 "Run an inferior IDL, with I/O through buffer `(idlwave-shell-buffer)'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
954 If buffer exists but shell process is not running, start new IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
955 If buffer exists and shell process is running, just switch to the buffer. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
956 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
957 When called with a prefix ARG, or when `idlwave-shell-use-dedicated-frame' |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
958 is non-nil, the shell buffer and the source buffers will be in |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
959 separate frames. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
960 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
961 The command to run comes from variable `idlwave-shell-explicit-file-name', |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
962 with options taken from `idlwave-shell-command-line-options'. |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
963 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
964 The buffer is put in `idlwave-shell-mode', providing commands for sending |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
965 input and controlling the IDL job. See help on `idlwave-shell-mode'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
966 See also the variable `idlwave-shell-prompt-pattern'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
967 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
968 \(Type \\[describe-mode] in the shell buffer for a list of commands.)" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
969 (interactive "P") |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
970 (if (eq arg 'quick) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
971 (progn |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
972 (let ((idlwave-shell-use-dedicated-frame nil)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
973 (idlwave-shell nil) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
974 (delete-other-windows)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
975 (and idlwave-shell-use-dedicated-frame |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
976 (setq idlwave-shell-idl-wframe (selected-frame))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
977 (add-hook 'idlwave-shell-sentinel-hook |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
978 'save-buffers-kill-emacs t)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
979 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
980 ;; A non-nil arg means, we want a dedicated frame. This will last |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
981 ;; for the current editing session. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
982 (if arg (setq idlwave-shell-use-dedicated-frame t)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
983 (if (equal arg '(16)) (setq idlwave-shell-use-dedicated-frame nil)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
984 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
985 ;; Check if the process still exists. If not, create it. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
986 (unless (comint-check-proc (idlwave-shell-buffer)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
987 (let* ((prg (or idlwave-shell-explicit-file-name "idl")) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
988 (buf (apply 'make-comint |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
989 idlwave-shell-process-name prg nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
990 (if (stringp idlwave-shell-command-line-options) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
991 (idlwave-split-string |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
992 idlwave-shell-command-line-options) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
993 idlwave-shell-command-line-options))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
994 (process (get-buffer-process buf))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
995 (setq idlwave-idlwave_routine_info-compiled nil) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
996 (set-process-filter process 'idlwave-shell-filter) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
997 (set-process-sentinel process 'idlwave-shell-sentinel) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
998 (set-buffer buf) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
999 (idlwave-shell-mode))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1000 (let ((window (idlwave-display-buffer (idlwave-shell-buffer) nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1001 (idlwave-shell-shell-frame))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1002 (current-window (selected-window))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1003 (select-window window) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1004 (goto-char (point-max)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1005 (select-window current-window) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1006 (if idlwave-shell-ready |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1007 (raise-frame (window-frame window))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1008 (if (eq (selected-frame) (window-frame window)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1009 (select-window window)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1010 ))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1011 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1012 (defun idlwave-shell-recenter-shell-window (&optional arg) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1013 "Run `idlwave-shell', but make sure the current window stays selected." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1014 (interactive "P") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1015 (let ((window (selected-window))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1016 (idlwave-shell arg) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1017 (select-window window))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1018 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1019 (defun idlwave-shell-send-command (&optional cmd pcmd hide preempt) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1020 "Send a command to IDL process. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1021 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1022 \(CMD PCMD HIDE\) are placed at the end of `idlwave-shell-pending-commands'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1023 If IDL is ready the first command, CMD, in |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1024 `idlwave-shell-pending-commands' is sent to the IDL process. If optional |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1025 second argument PCMD is non-nil it will be placed on |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1026 `idlwave-shell-post-command-hook' when CMD is executed. If the optional |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1027 third argument HIDE is non-nil, then hide output from CMD. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1028 If optional fourth argument PREEMPT is non-nil CMD is put at front of |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1029 `idlwave-shell-pending-commands'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1030 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1031 IDL is considered ready if the prompt is present |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1032 and if `idlwave-shell-ready' is non-nil." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1033 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1034 ;(setq hide nil) ; FIXME: turn this on for debugging only |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1035 ; (message "SENDING %s|||%s" cmd pcmd) ;?????????????????????? |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1036 (let (buf proc) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1037 ;; Get or make the buffer and its process |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1038 (if (or (not (setq buf (get-buffer (idlwave-shell-buffer)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1039 (not (setq proc (get-buffer-process buf)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1040 (if (not idlwave-shell-automatic-start) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1041 (error |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1042 (substitute-command-keys |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1043 "You need to first start an IDL shell with \\[idlwave-shell]")) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1044 (idlwave-shell-recenter-shell-window) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1045 (setq buf (get-buffer (idlwave-shell-buffer))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1046 (if (or (not (setq buf (get-buffer (idlwave-shell-buffer)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1047 (not (setq proc (get-buffer-process buf)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1048 ;; Still nothing |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1049 (error "Problem with autostarting IDL shell")))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1050 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1051 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1052 (set-buffer buf) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1053 (goto-char (process-mark proc)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1054 ;; To make this easy, always push CMD onto pending commands |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1055 (if cmd |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1056 (setq idlwave-shell-pending-commands |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1057 (if preempt |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1058 ;; Put at front. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1059 (append (list (list cmd pcmd hide)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1060 idlwave-shell-pending-commands) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1061 ;; Put at end. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1062 (append idlwave-shell-pending-commands |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1063 (list (list cmd pcmd hide)))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1064 ;; Check if IDL ready |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1065 (if (and idlwave-shell-ready |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1066 ;; Check for IDL prompt |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1067 (save-excursion |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1068 (forward-line 0) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1069 ;; (beginning-of-line) ; Changed for Emacs 21 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1070 (looking-at idlwave-shell-prompt-pattern))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1071 ;; IDL ready for command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1072 (if idlwave-shell-pending-commands |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1073 ;; execute command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1074 (let* ((lcmd (car idlwave-shell-pending-commands)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1075 (cmd (car lcmd)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1076 (pcmd (nth 1 lcmd)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1077 (hide (nth 2 lcmd))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1078 ;; If this is an executive command, reset the stack pointer |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1079 (if (eq (string-to-char cmd) ?.) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1080 (setq idlwave-shell-calling-stack-index 0)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1081 ;; Set post-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1082 (setq idlwave-shell-post-command-hook pcmd) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1083 ;; Output hiding |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1084 ;;; Debug code |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1085 ;;; (setq idlwave-shell-hide-output nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1086 (setq idlwave-shell-hide-output hide) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1087 ;; Pop command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1088 (setq idlwave-shell-pending-commands |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1089 (cdr idlwave-shell-pending-commands)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1090 ;; Send command for execution |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1091 (set-marker comint-last-input-start (point)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1092 (set-marker comint-last-input-end (point)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1093 (comint-simple-send proc cmd) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1094 (setq idlwave-shell-ready nil))))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1095 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1096 (defun idlwave-shell-send-char (c &optional no-error) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1097 "Send one character to the shell, without a newline." |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1098 (interactive "cChar to send to IDL: ") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1099 (let ((errf (if (interactive-p) 'error 'message)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1100 buf proc) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1101 (if (or (not (setq buf (get-buffer (idlwave-shell-buffer)))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1102 (not (setq proc (get-buffer-process buf)))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1103 (funcall errf "Shell is not running")) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1104 (if (equal c ?\C-g) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1105 (funcall errf "Abort") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1106 (comint-send-string proc (char-to-string c))))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1107 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1108 (defvar idlwave-shell-char-mode-active) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1109 (defun idlwave-shell-input-mode-magic (string) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1110 "Check STRING for magic words and toggle character input mode. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1111 See also the variable `idlwave-shell-input-mode-spells'." |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1112 (cond |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1113 ((string-match (car idlwave-shell-input-mode-spells) string) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1114 (call-interactively 'idlwave-shell-send-char)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1115 ((and (boundp 'idlwave-shell-char-mode-active) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1116 (string-match (nth 2 idlwave-shell-input-mode-spells) string)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1117 (setq idlwave-shell-char-mode-active 'exit)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1118 ((string-match (nth 1 idlwave-shell-input-mode-spells) string) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1119 ;; Set a timer which will soon start the character loop |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1120 (if (fboundp 'start-itimer) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1121 (start-itimer "IDLWAVE Char Mode" 'idlwave-shell-char-mode-loop 0.5 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1122 nil nil t 'no-error) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1123 (run-at-time 0.5 nil 'idlwave-shell-char-mode-loop 'no-error))))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1124 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1125 (defvar keyboard-quit) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1126 (defun idlwave-shell-char-mode-loop (&optional no-error) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1127 "Enter a loop which accepts single characters and sends them to IDL. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1128 Characters are sent one by one, without newlines. The loop is blocking |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1129 and intercepts all input events to Emacs. You can use this command |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1130 to interact with the IDL command GET_KBRD. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1131 The loop can be aborted by typing `C-g'. The loop also exits automatically |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1132 when the IDL prompt gets displayed again after the current IDL command." |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1133 (interactive) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1134 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1135 ;; First check if there is a shell waiting for input |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1136 (let ((idlwave-shell-char-mode-active t) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1137 (errf (if no-error 'message 'error)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1138 buf proc c) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1139 (if (or (not (setq buf (get-buffer (idlwave-shell-buffer)))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1140 (not (setq proc (get-buffer-process buf)))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1141 (funcall errf "Shell is not running")) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1142 (if idlwave-shell-ready |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1143 (funcall errf "No IDL program seems to be waiting for input")) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1144 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1145 ;; OK, start the loop |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1146 (message "Character mode on: Sending single chars (`C-g' to exit)") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1147 (message |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1148 (catch 'exit |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1149 (while t |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1150 ;; Wait for input |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1151 ;; FIXME: Is it too dangerous to inhibit quit here? |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1152 (let ((inhibit-quit t)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1153 ;; We wait and check frequently if we should abort |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1154 (while (sit-for 0.3) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1155 (and idlwave-shell-ready |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1156 (throw 'exit "Character mode off (prompt displayed)")) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1157 (and (eq idlwave-shell-char-mode-active 'exit) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1158 (throw 'exit "Character mode off (closing spell incantation)"))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1159 ;; Interpret input as a character - ignore non-char input |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1160 (condition-case nil |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1161 (setq c (read-char)) |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1162 (error (ding) (throw 'exit "Character mode off"))) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1163 (cond |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1164 ((null c) ; Non-char event: ignore |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1165 (ding)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1166 ((equal c ?\C-g) ; Abort the loop |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1167 (setq keyboard-quit nil) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1168 (ding) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1169 (throw 'exit "Character mode off (keyboard quit)")) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1170 (t ; Send the character and continue the loop |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1171 (comint-send-string proc (char-to-string c)))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1172 (and (eq idlwave-shell-char-mode-active 'exit) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1173 (throw 'exit "Single char loop exited")))))))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1174 |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1175 (defun idlwave-shell-up-or-history (&optional arg) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1176 "When in last line of process buffer, do `comint-previous-input'. |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1177 Otherwise just do `previous-line'." |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1178 (interactive "p") |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1179 (if (eq t idlwave-shell-arrows-do-history) (goto-char (point-max))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1180 (if (and idlwave-shell-arrows-do-history |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1181 (>= (1+ (save-excursion (end-of-line) (point))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1182 (marker-position |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1183 (process-mark (get-buffer-process (current-buffer)))))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1184 (progn |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1185 (and (not (eolp)) (kill-line nil)) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1186 (comint-previous-input arg)) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1187 (previous-line arg))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1188 |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1189 (defun idlwave-shell-down-or-history (&optional arg) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1190 "When in last line of process buffer, do `comint-next-input'. |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1191 Otherwise just do `next-line'." |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1192 (interactive "p") |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1193 (if (eq t idlwave-shell-arrows-do-history) (goto-char (point-max))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1194 (if (and idlwave-shell-arrows-do-history |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1195 (>= (1+ (save-excursion (end-of-line) (point))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1196 (marker-position |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1197 (process-mark (get-buffer-process (current-buffer)))))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1198 (progn |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1199 (and (not (eolp)) (kill-line nil)) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1200 (comint-next-input arg)) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1201 (next-line arg))) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1202 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1203 ;; There was a report that a newer version of comint.el changed the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1204 ;; name of comint-filter to comint-output-filter. Unfortunately, we |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1205 ;; have yet to upgrade. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1206 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1207 (defun idlwave-shell-comint-filter (process string) nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1208 (if (fboundp 'comint-output-filter) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1209 (fset 'idlwave-shell-comint-filter (symbol-function 'comint-output-filter)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1210 (fset 'idlwave-shell-comint-filter (symbol-function 'comint-filter))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1211 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1212 (defun idlwave-shell-is-running () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1213 "Return t if the shell process is running." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1214 (eq (process-status idlwave-shell-process-name) 'run)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1215 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1216 (defvar idlwave-shell-hidden-output-buffer " *idlwave-shell-hidden-output*" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1217 "Buffer containing hidden output from IDL commands.") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1218 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1219 (defun idlwave-shell-filter (proc string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1220 "Replace Carriage returns in output. Watch for prompt. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1221 When the IDL prompt is received executes `idlwave-shell-post-command-hook' |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1222 and then calls `idlwave-shell-send-command' for any pending commands." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1223 ;; We no longer do the cleanup here - this is done by the process sentinel |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1224 (when (eq (process-status idlwave-shell-process-name) 'run) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1225 ;; OK, process is still running, so we can use it. |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1226 (setq idlwave-shell-wd-is-synched nil) ;; something might have changed cwd |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1227 (let ((data (match-data)) p) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1228 (unwind-protect |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1229 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1230 ;; May change the original match data. |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1231 (while (setq p (string-match "\C-M" string)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1232 (aset string p ?\ )) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1233 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1234 ;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1235 ;; Keep output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1236 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1237 ; Should not keep output because the concat is costly. If hidden put |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1238 ; the output in a hide-buffer. Then when the output is needed in post |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1239 ; processing can access either the hide buffer or the idlwave-shell |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1240 ; buffer. Then watching for the prompt is easier. Furthermore, if it |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1241 ; is hidden and there is no post command, could throw away output. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1242 ; (setq idlwave-shell-command-output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1243 ; (concat idlwave-shell-command-output string)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1244 ;; Insert the string. Do this before getting the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1245 ;; state. |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1246 (while (setq p (string-match "\C-G" string)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1247 (ding) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1248 (aset string p ?\C-j )) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1249 (if idlwave-shell-hide-output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1250 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1251 (set-buffer |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1252 (get-buffer-create idlwave-shell-hidden-output-buffer)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1253 (goto-char (point-max)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1254 (insert string)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1255 (idlwave-shell-comint-filter proc string)) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1256 ;; Watch for magic - need to accumulate the current line |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1257 ;; since it may not be sent all at once. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1258 (if (string-match "\n" string) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1259 (progn |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1260 (if idlwave-shell-use-input-mode-magic |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1261 (idlwave-shell-input-mode-magic |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1262 (concat idlwave-shell-accumulation string))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1263 (setq idlwave-shell-accumulation |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1264 (substring string |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1265 (progn (string-match "\\(.*\n\\)*" string) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1266 (match-end 0))))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1267 (setq idlwave-shell-accumulation |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1268 (concat idlwave-shell-accumulation string))) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1269 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1270 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1271 ;;; Test/Debug code |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1272 ; (save-excursion (set-buffer |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1273 ; (get-buffer-create "*idlwave-shell-output*")) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1274 ; (goto-char (point-max)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1275 ; (insert "\nSTRING===>\n" string "\n<====\n")) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1276 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1277 ;; Check for prompt in current accumulating line |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1278 (if (setq idlwave-shell-ready |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1279 (string-match idlwave-shell-prompt-pattern |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1280 idlwave-shell-accumulation)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1281 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1282 (if idlwave-shell-hide-output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1283 (save-excursion |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1284 (set-buffer idlwave-shell-hidden-output-buffer) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1285 ; (goto-char (point-min)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1286 ; (re-search-forward idlwave-shell-prompt-pattern nil t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1287 (goto-char (point-max)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1288 (re-search-backward idlwave-shell-prompt-pattern nil t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1289 (goto-char (match-end 0)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1290 (setq idlwave-shell-command-output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1291 (buffer-substring (point-min) (point))) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1292 ;; Test/Debug |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1293 ; (save-excursion (set-buffer |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1294 ; (get-buffer-create "*idlwave-shell-output*")) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1295 ; (goto-char (point-max)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1296 ; (insert "\nOUPUT===>\n" idlwave-shell-command-output "\n<===\n")) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1297 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1298 (delete-region (point-min) (point))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1299 (setq idlwave-shell-command-output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1300 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1301 (set-buffer |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1302 (process-buffer proc)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1303 (buffer-substring |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1304 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1305 (goto-char (process-mark proc)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1306 (beginning-of-line nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1307 (point)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1308 comint-last-input-end)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1309 ;; Scan for state and do post command - bracket them |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1310 ;; with idlwave-shell-ready=nil since they |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1311 ;; may call idlwave-shell-send-command. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1312 (let ((idlwave-shell-ready nil)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1313 (idlwave-shell-scan-for-state) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1314 ;; Unset idlwave-shell-ready to prevent sending |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1315 ;; commands to IDL while running hook. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1316 (if (listp idlwave-shell-post-command-hook) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1317 (eval idlwave-shell-post-command-hook) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1318 (funcall idlwave-shell-post-command-hook)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1319 ;; Reset to default state for next command. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1320 ;; Also we do not want to find this prompt again. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1321 (setq idlwave-shell-accumulation nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1322 idlwave-shell-command-output nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1323 idlwave-shell-post-command-hook nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1324 idlwave-shell-hide-output nil)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1325 ;; Done with post command. Do pending command if |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1326 ;; any. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1327 (idlwave-shell-send-command)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1328 (store-match-data data))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1329 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1330 (defun idlwave-shell-sentinel (process event) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1331 "The sentinel function for the IDLWAVE shell process." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1332 (let* ((buf (idlwave-shell-buffer)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1333 (win (get-buffer-window buf))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1334 (when (get-buffer buf) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1335 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1336 (set-buffer (idlwave-shell-buffer)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1337 (goto-char (point-max)) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1338 (insert (format "\n\n Process %s %s" process event)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1339 (if (and idlwave-shell-save-command-history |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1340 (stringp idlwave-shell-command-history-file)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1341 (condition-case nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1342 (comint-write-input-ring) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1343 (error nil))))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1344 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1345 (when (and (> (length (frame-list)) 1) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1346 (frame-live-p idlwave-shell-idl-wframe)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1347 (delete-frame idlwave-shell-idl-wframe) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1348 (setq idlwave-shell-idl-wframe nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1349 idlwave-shell-display-wframe nil)) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1350 (when (and (window-live-p win) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1351 (not (one-window-p 'nomini))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1352 (delete-window win)) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1353 (idlwave-shell-cleanup) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1354 ;; Run the hook, if possible in the shell buffer. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1355 (if (get-buffer buf) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1356 (save-excursion |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1357 (set-buffer buf) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1358 (run-hooks 'idlwave-shell-sentinel-hook)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1359 (run-hooks 'idlwave-shell-sentinel-hook)))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1360 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1361 (defun idlwave-shell-scan-for-state () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1362 "Scan for state info. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1363 Looks for messages in output from last IDL command indicating where |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1364 IDL has stopped. The types of messages we are interested in are |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1365 execution halted, stepped, breakpoint, interrupted at and trace |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1366 messages. We ignore error messages otherwise. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1367 For breakpoint messages process any attached count or command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1368 parameters. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1369 Update the windows if a message is found." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1370 (let (update) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1371 (cond |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1372 ;; Make sure we have output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1373 ((not idlwave-shell-command-output)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1374 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1375 ;; Various types of HALT messages. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1376 ((string-match idlwave-shell-halt-messages-re |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1377 idlwave-shell-command-output) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1378 ;; Grab the file and line state info. |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1379 (setq idlwave-shell-calling-stack-index 0) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1380 (setq idlwave-shell-halt-frame |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1381 (idlwave-shell-parse-line |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1382 (substring idlwave-shell-command-output (match-end 0))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1383 update t)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1384 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1385 ;; Handle breakpoints separately |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1386 ((string-match idlwave-shell-break-message |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1387 idlwave-shell-command-output) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1388 (setq idlwave-shell-calling-stack-index 0) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1389 (setq idlwave-shell-halt-frame |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1390 (idlwave-shell-parse-line |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1391 (substring idlwave-shell-command-output (match-end 0))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1392 update t) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1393 ;; We used to to counting hits on breakpoints |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1394 ;; this is no longer supported since IDL breakpoints |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1395 ;; have learned counting. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1396 ;; Do breakpoint command processing |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1397 (let ((bp (assoc |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1398 (list |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1399 (nth 0 idlwave-shell-halt-frame) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1400 (nth 1 idlwave-shell-halt-frame)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1401 idlwave-shell-bp-alist))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1402 (if bp |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1403 (let ((cmd (idlwave-shell-bp-get bp 'cmd))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1404 (if cmd |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1405 ;; Execute command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1406 (if (listp cmd) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1407 (eval cmd) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1408 (funcall cmd)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1409 ;; A breakpoint that we did not know about - perhaps it was |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1410 ;; set by the user or IDL isn't reporting breakpoints like |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1411 ;; we expect. Lets update our list. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1412 (idlwave-shell-bp-query))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1413 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1414 ;; Handle compilation errors in addition to the above |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1415 (if (and idlwave-shell-command-output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1416 (or (string-match |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1417 idlwave-shell-syntax-error idlwave-shell-command-output) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1418 (string-match |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1419 idlwave-shell-other-error idlwave-shell-command-output))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1420 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1421 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1422 (set-buffer |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1423 (get-buffer-create idlwave-shell-error-buffer)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1424 (erase-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1425 (insert idlwave-shell-command-output) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1426 (goto-char (point-min)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1427 (setq idlwave-shell-error-last (point))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1428 (idlwave-shell-goto-next-error))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1429 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1430 ;; Do update |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1431 (when update |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1432 (idlwave-shell-display-line (idlwave-shell-pc-frame))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1433 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1434 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1435 (defvar idlwave-shell-error-buffer " *idlwave-shell-errors*" |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1436 "Buffer containing syntax errors from IDL compilations.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1437 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1438 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1439 ;; FIXME: the following two variables do not currently allow line breaks |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1440 ;; in module and file names. I am not sure if it will be necessary to |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1441 ;; change this. Currently it seems to work the way it is. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1442 (defvar idlwave-shell-syntax-error |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1443 "^% Syntax error.\\s-*\n\\s-*At:\\s-*\\(.*\\),\\s-*Line\\s-*\\(.*\\)" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1444 "A regular expression to match an IDL syntax error. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1445 The first \(..\) pair should match the file name. The second pair |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1446 should match the line number.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1447 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1448 (defvar idlwave-shell-other-error |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1449 "^% .*\n\\s-*At:\\s-*\\(.*\\),\\s-*Line\\s-*\\(.*\\)" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1450 "A regular expression to match any IDL error. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1451 The first \(..\) pair should match the file name. The second pair |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1452 should match the line number.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1453 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1454 (defvar idlwave-shell-file-line-message |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1455 (concat |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1456 "\\(" ; program name group (1) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1457 "\\<[a-zA-Z][a-zA-Z0-9_$:]*" ; start with a letter, followed by [..] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1458 "\\([ \t]*\n[ \t]*[a-zA-Z0-9_$:]+\\)*"; continuation lines program name (2) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1459 "\\)" ; end program name group (1) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1460 "[ \t\n]+" ; white space |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1461 "\\(" ; line number group (3) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1462 "[0-9]+" ; the line number (the fix point) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1463 "\\([ \t]*\n[ \t]*[0-9]+\\)*" ; continuation lines number (4) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1464 "\\)" ; end line number group (3) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1465 "[ \t\n]+" ; white space |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1466 "\\(" ; file name group (5) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1467 "[^ \t\n]+" ; file names can contain any non-white |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1468 "\\([ \t]*\n[ \t]*[^ \t\n]+\\)*" ; continuation lines file name (6) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1469 "\\)" ; end line number group (5) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1470 ) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1471 "*A regular expression to parse out the file name and line number. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1472 The 1st group should match the subroutine name. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1473 The 3rd group is the line number. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1474 The 5th group is the file name. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1475 All parts may contain linebreaks surrounded by spaces. This is important |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1476 in IDL5 which inserts random linebreaks in long module and file names.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1477 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1478 (defun idlwave-shell-parse-line (string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1479 "Parse IDL message for the subroutine, file name and line number. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1480 We need to work hard here to remove the stupid line breaks inserted by |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1481 IDL5. These line breaks can be right in the middle of procedure |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1482 or file names. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1483 It is very difficult to come up with a robust solution. This one seems |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1484 to be pretty good though. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1485 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1486 Here is in what ways it improves over the previous solution: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1487 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1488 1. The procedure name can be split and will be restored. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1489 2. The number can be split. I have never seen this, but who knows. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1490 3. We do not require the `.pro' extension for files. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1491 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1492 This function can still break when the file name ends on a end line |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1493 and the message line contains an additional line with garbage. Then |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1494 the first part of that garbage will be added to the file name. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1495 However, the function checks the existence of the files with and |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1496 without this last part - thus the function only breaks if file name |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1497 plus garbage match an existing regular file. This is hopefully very |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1498 unlikely." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1499 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1500 (let (number procedure file) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1501 (when (string-match idlwave-shell-file-line-message string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1502 (setq procedure (match-string 1 string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1503 number (match-string 3 string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1504 file (match-string 5 string)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1505 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1506 ;; Repair the strings |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1507 (setq procedure (idlwave-shell-repair-string procedure)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1508 (setq number (idlwave-shell-repair-string number)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1509 (setq file (idlwave-shell-repair-file-name file)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1510 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1511 ;; If we have a file, return the frame list |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1512 (if file |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1513 (list (idlwave-shell-file-name file) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1514 (string-to-int number) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1515 procedure) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1516 ;; No success finding a file |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1517 nil)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1518 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1519 (defun idlwave-shell-repair-string (string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1520 "Repair a string by taking out all linebreaks. This is destructive!" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1521 (while (string-match "[ \t]*\n[ \t]*" string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1522 (setq string (replace-match "" t t string))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1523 string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1524 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1525 (defun idlwave-shell-repair-file-name (file) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1526 "Repair a file name string by taking out all linebreaks. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1527 The last line of STRING may be garbage - we check which one makes a valid |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1528 file name." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1529 (let ((file1 "") (file2 "") (start 0)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1530 ;; We scan no further than to the next "^%" line |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1531 (if (string-match "^%" file) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1532 (setq file (substring file 0 (match-beginning 0)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1533 ;; Take out the line breaks |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1534 (while (string-match "[ \t]*\n[ \t]*" file start) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1535 (setq file1 (concat file1 (substring file start (match-beginning 0))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1536 start (match-end 0))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1537 (setq file2 (concat file1 (substring file start))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1538 (cond |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1539 ((file-regular-p file2) file2) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1540 ((file-regular-p file1) file1) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1541 ;; If we cannot veryfy the existence of the file, we return the shorter |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1542 ;; name. The idea behind this is that this may be a relative file name |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1543 ;; and our idea about the current working directory may be wrong. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1544 ;; If it is a relative file name, it hopefully is short. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1545 ((not (string= "" file1)) file1) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1546 ((not (string= "" file2)) file2) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1547 (t nil)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1548 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1549 (defun idlwave-shell-cleanup () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1550 "Do necessary cleanup for a terminated IDL process." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1551 (setq idlwave-shell-step-frame nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1552 idlwave-shell-halt-frame nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1553 idlwave-shell-pending-commands nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1554 idlwave-shell-command-line-to-execute nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1555 idlwave-shell-bp-alist nil |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1556 idlwave-shell-calling-stack-index 0 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1557 idlwave-idlwave_routine_info-compiled nil) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1558 (idlwave-shell-delete-temp-files) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1559 (idlwave-shell-display-line nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1560 (idlwave-shell-update-bp-overlays) ; kill old overlays |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1561 (idlwave-shell-kill-buffer idlwave-shell-hidden-output-buffer) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1562 (idlwave-shell-kill-buffer idlwave-shell-bp-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1563 (idlwave-shell-kill-buffer idlwave-shell-error-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1564 ;; (idlwave-shell-kill-buffer (idlwave-shell-buffer)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1565 (and (get-buffer (idlwave-shell-buffer)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1566 (bury-buffer (get-buffer (idlwave-shell-buffer)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1567 (run-hooks 'idlwave-shell-cleanup-hook)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1568 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1569 (defun idlwave-shell-kill-buffer (buf) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1570 "Kill buffer BUF if it exists." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1571 (if (setq buf (get-buffer buf)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1572 (kill-buffer buf))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1573 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1574 (defun idlwave-shell-kill-shell-buffer-confirm () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1575 (when (idlwave-shell-is-running) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1576 (ding) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1577 (unless (y-or-n-p "IDL shell is running. Are you sure you want to kill the buffer? ") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1578 (error "Abort")) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1579 (message "Killing buffer *idl* and the associated process"))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1580 |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1581 (defun idlwave-shell-window (n) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1582 "Issue a `window,N' command to IDL, with special window size. |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1583 The size is given by `idlwave-shell-graphics-window-size'." |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1584 (interactive "P") |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1585 (let ((n (if n (prefix-numeric-value n) 0))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1586 (idlwave-shell-send-command |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1587 (apply 'format "window,%d,xs=%d,ys=%d" |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1588 n idlwave-shell-graphics-window-size)))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1589 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1590 (defun idlwave-shell-resync-dirs () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1591 "Resync the buffer's idea of the current directory stack. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1592 This command queries IDL with the command bound to |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1593 `idlwave-shell-dirstack-query' (default \"printd\"), reads the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1594 output for the new directory stack." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1595 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1596 (idlwave-shell-send-command idlwave-shell-dirstack-query |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1597 'idlwave-shell-filter-directory |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1598 'hide)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1599 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1600 (defun idlwave-shell-retall (&optional arg) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1601 "Return from the entire calling stack." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1602 (interactive "P") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1603 (idlwave-shell-send-command "retall")) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1604 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1605 (defun idlwave-shell-closeall (&optional arg) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1606 "Close all open files." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1607 (interactive "P") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1608 (idlwave-shell-send-command "close,/all")) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1609 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1610 (defun idlwave-shell-quit (&optional arg) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1611 "Exit the idl process after confirmation. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1612 With prefix ARG, exit without confirmation." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1613 (interactive "P") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1614 (if (not (idlwave-shell-is-running)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1615 (error "Shell is not running") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1616 (if (or arg (y-or-n-p "Exit the IDLWAVE Shell? ")) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1617 (condition-case nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1618 (idlwave-shell-send-command "exit") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1619 (error nil))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1620 |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1621 (defun idlwave-shell-reset (&optional hidden) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1622 "Reset IDL. Return to main level and destroy the leaftover variables. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1623 This issues the following commands: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1624 RETALL |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1625 WIDGET_CONTROL,/RESET |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1626 CLOSE, /ALL |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1627 HEAP_GC, /VERBOSE" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1628 ;; OBJ_DESTROY, OBJ_VALID() FIXME: should this be added? |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1629 (interactive "P") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1630 (message "Resetting IDL") |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1631 (setq idlwave-shell-calling-stack-index 0) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1632 (idlwave-shell-send-command "retall" nil hidden) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1633 (idlwave-shell-send-command "widget_control,/reset" nil hidden) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1634 (idlwave-shell-send-command "close,/all" nil hidden) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1635 ;; (idlwave-shell-send-command "obj_destroy, obj_valid()" nil hidden) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1636 (idlwave-shell-send-command "heap_gc,/verbose" nil hidden) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1637 (idlwave-shell-display-line nil)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1638 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1639 (defun idlwave-shell-path-filter () |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1640 ;; Convert the output of the path query into a list of directories |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1641 (let ((path-string idlwave-shell-command-output) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1642 (case-fold-search t) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1643 (start 0) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1644 dirs sysdir) |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1645 (while (string-match "^PATH:[ \t]*<\\(.*\\)>[ \t]*\n" path-string start) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1646 (push (match-string 1 path-string) dirs) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1647 (setq start (match-end 0))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1648 (setq dirs (mapcar 'file-name-as-directory dirs)) |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
1649 (if (string-match "^SYSDIR:[ \t]*<\\(.*\\)>[ \t]*\n" path-string) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1650 (setq sysdir (file-name-as-directory |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1651 (match-string 1 path-string)))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1652 (cons sysdir (nreverse dirs)))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1653 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1654 (defun idlwave-shell-routine-info-filter () |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1655 "Function which parses the special output from idlwave_routine_info.pro." |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1656 (let ((text idlwave-shell-command-output) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1657 (start 0) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1658 sep sep-re file type spec specs name cs key keys class entry) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1659 ; (message "GOT: %s" text) ;?????????????????????? |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1660 ;; Initialize variables |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1661 (setq idlwave-compiled-routines nil |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1662 idlwave-unresolved-routines nil) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1663 ;; Cut out the correct part of the output. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1664 (if (string-match |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1665 "^>>>BEGIN OF IDLWAVE ROUTINE INFO (\"\\(.+\\)\" IS THE SEPARATOR.*" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1666 text) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1667 (setq sep (match-string 1 text) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1668 sep-re (concat (regexp-quote sep) " *") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1669 text (substring text (match-end 0))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1670 ;; Set dummy values and kill the text |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1671 (setq sep "@" sep-re "@ *" text "") |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1672 (message "Routine Info warning: No match for BEGIN line in \n>>>>\n%s\n<<<<\n" |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1673 idlwave-shell-command-output)) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1674 (if (string-match "^>>>END OF IDLWAVE ROUTINE INFO.*" text) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1675 (setq text (substring text 0 (match-beginning 0))) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1676 (message "Routine Info warning: No match for END line in \n>>>>\n%s\n<<<<\n" |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1677 idlwave-shell-command-output)) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1678 (if (string-match "\\S-" text) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1679 ;; Obviously, the pro worked. Make a note that we have it now. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1680 (setq idlwave-idlwave_routine_info-compiled t)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1681 ;; Match the output lines |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1682 (while (string-match "^IDLWAVE-\\(PRO\\|FUN\\): \\(.*\\)" text start) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1683 (setq start (match-end 0)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1684 (setq type (match-string 1 text) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1685 spec (match-string 2 text) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1686 specs (idlwave-split-string spec sep-re) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1687 name (nth 0 specs) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1688 class (if (equal (nth 1 specs) "") nil (nth 1 specs)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1689 file (nth 2 specs) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1690 cs (nth 3 specs) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1691 key (nth 4 specs) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1692 keys (if (and (stringp key) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1693 (not (string-match "\\` *\\'" key))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1694 (mapcar 'list |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1695 (delete "" (idlwave-split-string key " +"))))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1696 (setq name (idlwave-sintern-routine-or-method name class t) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1697 class (idlwave-sintern-class class t) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1698 file (if (equal file "") nil file) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1699 keys (mapcar (lambda (x) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1700 (list (idlwave-sintern-keyword (car x) t))) keys)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1701 ;; Make sure we use the same string object for the same file |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1702 (setq file (idlwave-sintern-file file t)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1703 ;; FIXME: What should I do with routines from the temp file??? |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1704 ;; Maybe just leave it in - there is a chance that the |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1705 ;; routine is still in there. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1706 ;; (if (equal file idlwave-shell-temp-pro-file) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1707 ;; (setq file nil)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1708 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1709 ;; In the following ignore routines already defined in buffers, |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1710 ;; assuming that if the buffer stuff differs, it is a "new" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1711 ;; version. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1712 ;; We could do the same for the library to avoid duplicates - |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1713 ;; but I think frequently a user might have several versions of |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1714 ;; the same function in different programs, and in this case the |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1715 ;; compiled one will be the best guess of all version. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1716 ;; Therefore, we leave duplicates of library routines in. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1717 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1718 (cond ((string= name "$MAIN$")) ; ignore this one |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1719 ((and (string= type "PRO") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1720 ;; FIXME: is it OK to make the buffer routines dominate? |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1721 (or t (null file) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1722 (not (idlwave-rinfo-assq name 'pro class |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1723 idlwave-buffer-routines))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1724 ;; FIXME: is it OK to make the library routines dominate? |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1725 ;;(not (idlwave-rinfo-assq name 'pro class |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1726 ;; idlwave-library-routines)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1727 ) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1728 (setq entry (list name 'pro class (cons 'compiled file) cs keys)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1729 (if file |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1730 (push entry idlwave-compiled-routines) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1731 (push entry idlwave-unresolved-routines))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1732 |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1733 ((and (string= type "FUN") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1734 ;; FIXME: is it OK to make the buffer routines dominate? |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1735 (or t (not file) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1736 (not (idlwave-rinfo-assq name 'fun class |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1737 idlwave-buffer-routines))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1738 ;; FIXME: is it OK to make the library routines dominate? |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1739 ;; (not (idlwave-rinfo-assq name 'fun class |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1740 ;; idlwave-library-routines)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1741 ) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1742 (setq entry (list name 'fun class (cons 'compiled file) cs keys)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1743 (if file |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1744 (push entry idlwave-compiled-routines) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1745 (push entry idlwave-unresolved-routines)))))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1746 ;; Reverse the definitions so that they are alphabetically sorted. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1747 (setq idlwave-compiled-routines (nreverse idlwave-compiled-routines) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1748 idlwave-unresolved-routines (nreverse idlwave-unresolved-routines))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1749 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1750 (defun idlwave-shell-filter-directory () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1751 "Get the current directory from `idlwave-shell-command-output'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1752 Change the default directory for the process buffer to concur." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1753 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1754 (set-buffer (idlwave-shell-buffer)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1755 (if (string-match "Current Directory: *\\(\\S-*\\) *$" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1756 idlwave-shell-command-output) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1757 (let ((dir (substring idlwave-shell-command-output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1758 (match-beginning 1) (match-end 1)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1759 (message "Setting Emacs wd to %s" dir) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1760 (setq idlwave-shell-default-directory dir) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1761 (setq default-directory (file-name-as-directory dir)))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1762 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1763 (defun idlwave-shell-complete (&optional arg) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1764 "Do completion in the idlwave-shell buffer. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1765 Calls `idlwave-shell-complete-filename' after some executive commands or |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1766 in strings. Otherwise, calls `idlwave-complete' to complete modules and |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1767 keywords." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1768 ;;FIXME: batch files? |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1769 (interactive "P") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1770 (let (cmd) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1771 (cond |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1772 ((setq cmd (idlwave-shell-executive-command)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1773 ;; We are in a command line with an executive command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1774 (if (member (upcase cmd) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1775 '(".R" ".RU" ".RUN" ".RN" ".RNE" ".RNEW" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1776 ".COM" ".COMP" ".COMPI" ".COMPIL" ".COMPILE")) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1777 ;; This command expects file names |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1778 (idlwave-shell-complete-filename))) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1779 ((and (idlwave-shell-filename-string) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1780 (save-excursion |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1781 (beginning-of-line) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1782 (let ((case-fold-search t)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1783 (not (looking-at ".*obj_new")))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1784 ;; In a string, could be a file name to here |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1785 (idlwave-shell-complete-filename))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1786 (t |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1787 ;; Default completion of modules and keywords |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1788 (idlwave-complete arg))))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1789 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1790 (defun idlwave-shell-complete-filename (&optional arg) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1791 "Complete a file name at point if after a file name. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1792 We assume that we are after a file name when completing one of the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1793 args of an executive .run, .rnew or .compile. Also, in a string |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1794 constant we complete file names. Otherwise return nil, so that |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1795 other completion functions can do their work." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1796 ;; Comint does something funny with the default directory, |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1797 ;; so we set it here from out safe own variable |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1798 (setq default-directory |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1799 (file-name-as-directory idlwave-shell-default-directory)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1800 (if (not idlwave-shell-wd-is-synched) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1801 ;; Some IDL stuff has been executed since last update, so we need to |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1802 ;; do it again. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1803 (idlwave-shell-send-command |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1804 idlwave-shell-dirstack-query |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1805 `(progn |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1806 (idlwave-shell-filter-directory) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1807 (setq idlwave-shell-wd-is-synched t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1808 (switch-to-buffer (idlwave-shell-buffer)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1809 (goto-char ,(point)) ;; This is necesary on Emacs, don't know why |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1810 ;; after the update, we immediately redo the completion, so the |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1811 ;; user will hardly notice we did the update. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1812 (idlwave-shell-complete-filename)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1813 'hide) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1814 (let* ((comint-file-name-chars idlwave-shell-file-name-chars) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1815 (completion-ignore-case (default-value 'completion-ignore-case))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
1816 (comint-dynamic-complete-filename)))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1817 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1818 (defun idlwave-shell-executive-command () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1819 "Return the name of the current executive command, if any." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1820 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1821 (idlwave-beginning-of-statement) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1822 (if (looking-at "[ \t]*\\([.][^ \t\n\r]*\\)") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1823 (match-string 1)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1824 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1825 (defun idlwave-shell-filename-string () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1826 "Return t if in a string and after what could be a file name." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1827 (let ((limit (save-excursion (beginning-of-line) (point)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1828 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1829 ;; Skip backwards over file name chars |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1830 (skip-chars-backward idlwave-shell-file-name-chars limit) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1831 ;; Check of the next char is a string delimiter |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1832 (memq (preceding-char) '(?\' ?\"))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1833 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1834 ;;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1835 ;;; This section contains code for debugging IDL programs. -------------------- |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1836 ;;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1837 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1838 (defun idlwave-shell-redisplay (&optional hide) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1839 "Tries to resync the display with where execution has stopped. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1840 Issues a \"help,/trace\" command followed by a call to |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1841 `idlwave-shell-display-line'. Also updates the breakpoint |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1842 overlays." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1843 (interactive) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1844 (setq idlwave-shell-calling-stack-index 0) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1845 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1846 "help,/trace" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1847 '(idlwave-shell-display-line |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1848 (idlwave-shell-pc-frame)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1849 hide) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1850 (idlwave-shell-bp-query)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1851 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1852 (defun idlwave-shell-display-level-in-calling-stack (&optional hide) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1853 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1854 "help,/trace" |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1855 `(progn |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1856 ;; scanning for the state will reset the stack level - restore it |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1857 (setq idlwave-shell-calling-stack-index |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1858 ,idlwave-shell-calling-stack-index) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1859 ;; parse the stack and visit the selected frame |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1860 (idlwave-shell-parse-stack-and-display)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1861 hide)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1862 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1863 (defun idlwave-shell-parse-stack-and-display () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1864 (let* ((lines (delete "" (idlwave-split-string |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1865 idlwave-shell-command-output "^%"))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1866 (stack (delq nil (mapcar 'idlwave-shell-parse-line lines))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1867 (nmax (1- (length stack))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1868 (nmin 0) message) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1869 (cond |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1870 ((< nmax nmin) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1871 (setq idlwave-shell-calling-stack-index 0) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1872 (ding) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1873 (message "Problem with calling stack")) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1874 ((> idlwave-shell-calling-stack-index nmax) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1875 (ding) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1876 (setq idlwave-shell-calling-stack-index nmax |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1877 message (format "%d is the highest calling stack level - can't go further up" |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1878 (- nmax)))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1879 ((< idlwave-shell-calling-stack-index nmin) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1880 (ding) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1881 (setq idlwave-shell-calling-stack-index nmin |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1882 message (format "%d is the current calling stack level - can't go further down" |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1883 (- nmin))))) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1884 (setq idlwave-shell-calling-stack-routine |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1885 (nth 2 (nth idlwave-shell-calling-stack-index stack))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1886 (idlwave-shell-display-line |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1887 (nth idlwave-shell-calling-stack-index stack)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1888 (message (or message |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1889 (format "In routine %s (stack level %d)" |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1890 idlwave-shell-calling-stack-routine |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1891 (- idlwave-shell-calling-stack-index)))))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1892 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1893 (defun idlwave-shell-stack-up () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1894 "Display the source code one step up the calling stack." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1895 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1896 (incf idlwave-shell-calling-stack-index) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1897 (idlwave-shell-display-level-in-calling-stack 'hide)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1898 (defun idlwave-shell-stack-down () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1899 "Display the source code one step down the calling stack." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1900 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1901 (decf idlwave-shell-calling-stack-index) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1902 (idlwave-shell-display-level-in-calling-stack 'hide)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1903 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1904 (defun idlwave-shell-goto-frame (&optional frame) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1905 "Set buffer to FRAME with point at the frame line. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1906 If the optional argument FRAME is nil then idlwave-shell-pc-frame is |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1907 used. Does nothing if the resulting frame is nil." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1908 (if frame () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1909 (setq frame (idlwave-shell-pc-frame))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1910 (cond |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1911 (frame |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1912 (set-buffer (idlwave-find-file-noselect (car frame) 'shell)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1913 (widen) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1914 (goto-line (nth 1 frame))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1915 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1916 (defun idlwave-shell-pc-frame () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1917 "Returns the frame for IDL execution." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1918 (and idlwave-shell-halt-frame |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1919 (list (nth 0 idlwave-shell-halt-frame) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1920 (nth 1 idlwave-shell-halt-frame) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1921 (nth 2 idlwave-shell-halt-frame)))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1922 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1923 (defun idlwave-shell-valid-frame (frame) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1924 "Check that frame is for an existing file." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1925 (file-readable-p (car frame))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1926 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1927 (defun idlwave-shell-display-line (frame &optional col) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1928 "Display FRAME file in other window with overlay arrow. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1929 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1930 FRAME is a list of file name, line number, and subroutine name. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1931 If FRAME is nil then remove overlay." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1932 (if (not frame) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1933 ;; Remove stop-line overlay from old position |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1934 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1935 (setq overlay-arrow-string nil) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1936 (setq idlwave-shell-mode-line-info nil) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1937 (setq idlwave-shell-is-stopped nil) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1938 (if idlwave-shell-stop-line-overlay |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1939 (delete-overlay idlwave-shell-stop-line-overlay))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1940 (if (not (idlwave-shell-valid-frame frame)) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1941 ;; FIXME: errors are dangerous in shell filters. But I think I |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1942 ;; have never encountered this one. |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1943 (error (concat "Invalid frame - unable to access file: " (car frame))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1944 ;;; |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1945 ;;; buffer : the buffer to display a line in. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1946 ;;; select-shell: current buffer is the shell. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1947 ;;; |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1948 (setq idlwave-shell-mode-line-info |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1949 (if (nth 2 frame) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1950 (format "[%d:%s]" |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1951 (- idlwave-shell-calling-stack-index) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
1952 (nth 2 frame)))) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1953 (let* ((buffer (idlwave-find-file-noselect (car frame) 'shell)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1954 (select-shell (equal (buffer-name) (idlwave-shell-buffer))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1955 window pos) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1956 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1957 ;; First make sure the shell window is visible |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1958 (idlwave-display-buffer (idlwave-shell-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1959 nil (idlwave-shell-shell-frame)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1960 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1961 ;; Now display the buffer and remember which window it is. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1962 (setq window (idlwave-display-buffer buffer |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1963 nil (idlwave-shell-source-frame))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1964 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1965 ;; Enter the buffer and mark the line |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1966 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1967 (set-buffer buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1968 (save-restriction |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1969 (widen) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1970 (goto-line (nth 1 frame)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1971 (setq pos (point)) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
1972 (setq idlwave-shell-is-stopped t) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1973 (if idlwave-shell-stop-line-overlay |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1974 ;; Move overlay |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1975 (move-overlay idlwave-shell-stop-line-overlay |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1976 (point) (save-excursion (end-of-line) (point)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1977 (current-buffer)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1978 ;; Use the arrow instead, but only if marking is wanted. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1979 (if idlwave-shell-mark-stop-line |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1980 (setq overlay-arrow-string idlwave-shell-overlay-arrow)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1981 (or overlay-arrow-position ; create the marker if necessary |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1982 (setq overlay-arrow-position (make-marker))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1983 (set-marker overlay-arrow-position (point) buffer))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1984 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1985 ;; If the point is outside the restriction, widen the buffer. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1986 (if (or (< pos (point-min)) (> pos (point-max))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1987 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1988 (widen) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1989 (goto-char pos))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1990 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1991 ;; If we have the column of the error, move the cursor there. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1992 (if col (move-to-column col)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1993 (setq pos (point))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1994 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1995 ;; Make sure pos is really displayed in the window. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1996 (set-window-point window pos) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1997 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1998 ;; If we came from the shell, go back there. Otherwise select |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
1999 ;; the window where the error is displayed. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2000 (if (and (equal (buffer-name) (idlwave-shell-buffer)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2001 (not select-shell)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2002 (select-window window)))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2003 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2004 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2005 (defun idlwave-shell-step (arg) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2006 "Step one source line. If given prefix argument ARG, step ARG source lines." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2007 (interactive "p") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2008 (or (not arg) (< arg 1) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2009 (setq arg 1)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2010 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2011 (concat ".s " (if (integerp arg) (int-to-string arg) arg)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2012 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2013 (defun idlwave-shell-stepover (arg) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2014 "Stepover one source line. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2015 If given prefix argument ARG, step ARG source lines. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2016 Uses IDL's stepover executive command which does not enter called functions." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2017 (interactive "p") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2018 (or (not arg) (< arg 1) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2019 (setq arg 1)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2020 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2021 (concat ".so " (if (integerp arg) (int-to-string arg) arg)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2022 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2023 (defun idlwave-shell-break-here (&optional count cmd) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2024 "Set breakpoint at current line. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2025 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2026 If Count is nil then an ordinary breakpoint is set. We treat a count |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2027 of 1 as a temporary breakpoint using the ONCE keyword. Counts greater |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2028 than 1 use the IDL AFTER=count keyword to break only after reaching |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2029 the statement count times. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2030 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2031 Optional argument CMD is a list or function to evaluate upon reaching |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2032 the breakpoint." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2033 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2034 (interactive "P") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2035 (if (listp count) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2036 (setq count nil)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2037 (idlwave-shell-set-bp |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2038 ;; Create breakpoint |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2039 (idlwave-shell-bp (idlwave-shell-current-frame) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2040 (list count cmd) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2041 (idlwave-shell-current-module)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2042 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2043 (defun idlwave-shell-set-bp-check (bp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2044 "Check for failure to set breakpoint. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2045 This is run on `idlwave-shell-post-command-hook'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2046 Offers to recompile the procedure if we failed. This usually fixes |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2047 the problem with not being able to set the breakpoint." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2048 ;; Scan for message |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2049 (if (and idlwave-shell-command-output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2050 (string-match "% BREAKPOINT: *Unable to find code" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2051 idlwave-shell-command-output)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2052 ;; Offer to recompile |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2053 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2054 (if (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2055 (beep) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2056 (y-or-n-p |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2057 (concat "Okay to recompile file " |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2058 (idlwave-shell-bp-get bp 'file) " "))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2059 ;; Recompile |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2060 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2061 ;; Clean up before retrying |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2062 (idlwave-shell-command-failure) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2063 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2064 (concat ".run " (idlwave-shell-bp-get bp 'file)) nil nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2065 ;; Try setting breakpoint again |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2066 (idlwave-shell-set-bp bp)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2067 (beep) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2068 (message "Unable to set breakpoint.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2069 (idlwave-shell-command-failure) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2070 ) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2071 ;; return non-nil if no error found |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2072 nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2073 'okay)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2074 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2075 (defun idlwave-shell-command-failure () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2076 "Do any necessary clean up when an IDL command fails. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2077 Call this from a function attached to `idlwave-shell-post-command-hook' |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2078 that detects the failure of a command. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2079 For example, this is called from `idlwave-shell-set-bp-check' when a |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2080 breakpoint can not be set." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2081 ;; Clear pending commands |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2082 (setq idlwave-shell-pending-commands nil)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2083 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2084 (defun idlwave-shell-cont () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2085 "Continue executing." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2086 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2087 (idlwave-shell-send-command ".c" '(idlwave-shell-redisplay 'hide))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2088 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2089 (defun idlwave-shell-go () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2090 "Run .GO. This starts the main program of the last compiled file." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2091 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2092 (idlwave-shell-send-command ".go" '(idlwave-shell-redisplay 'hide))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2093 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2094 (defun idlwave-shell-return () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2095 "Run .RETURN (continue to next return, but stay in subprogram)." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2096 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2097 (idlwave-shell-send-command ".return" '(idlwave-shell-redisplay 'hide))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2098 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2099 (defun idlwave-shell-skip () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2100 "Run .SKIP (skip one line, then step)." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2101 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2102 (idlwave-shell-send-command ".skip" '(idlwave-shell-redisplay 'hide))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2103 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2104 (defun idlwave-shell-clear-bp (bp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2105 "Clear breakpoint BP. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2106 Clears in IDL and in `idlwave-shell-bp-alist'." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2107 (let ((index (idlwave-shell-bp-get bp))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2108 (if index |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2109 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2110 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2111 (concat "breakpoint,/clear," |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2112 (if (integerp index) (int-to-string index) index))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2113 (idlwave-shell-bp-query))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2114 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2115 (defun idlwave-shell-current-frame () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2116 "Return a list containing the current file name and line point is in. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2117 If in the IDL shell buffer, returns `idlwave-shell-pc-frame'." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2118 (if (eq (current-buffer) (get-buffer (idlwave-shell-buffer))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2119 ;; In IDL shell |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2120 (idlwave-shell-pc-frame) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2121 ;; In source |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2122 (list (idlwave-shell-file-name (buffer-file-name)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2123 (save-restriction |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2124 (widen) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2125 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2126 (beginning-of-line) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2127 (1+ (count-lines 1 (point)))))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2128 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2129 (defun idlwave-shell-current-module () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2130 "Return the name of the module for the current file. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2131 Returns nil if unable to obtain a module name." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2132 (if (eq (current-buffer) (get-buffer (idlwave-shell-buffer))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2133 ;; In IDL shell |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2134 (nth 2 idlwave-shell-halt-frame) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2135 ;; In pro file |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2136 (save-restriction |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2137 (widen) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2138 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2139 (if (idlwave-prev-index-position) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2140 (upcase (idlwave-unit-name))))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2141 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2142 (defun idlwave-shell-clear-current-bp () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2143 "Remove breakpoint at current line. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2144 This command can be called from the shell buffer if IDL is currently stopped |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2145 at a breakpoint." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2146 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2147 (let ((bp (idlwave-shell-find-bp (idlwave-shell-current-frame)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2148 (if bp (idlwave-shell-clear-bp bp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2149 ;; Try moving to beginning of statement |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2150 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2151 (idlwave-shell-goto-frame) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2152 (idlwave-beginning-of-statement) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2153 (setq bp (idlwave-shell-find-bp (idlwave-shell-current-frame))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2154 (if bp (idlwave-shell-clear-bp bp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2155 (beep) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2156 (message "Cannot identify breakpoint for this line")))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2157 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2158 (defun idlwave-shell-to-here () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2159 "Set a breakpoint with count 1 then continue." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2160 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2161 (idlwave-shell-break-here 1) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2162 (idlwave-shell-cont)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2163 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2164 (defun idlwave-shell-break-in (&optional module) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2165 "Look for a module name near point and set a break point for it. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2166 The command looks for an identifier near point and sets a breakpoint |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2167 for the first line of the corresponding module." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2168 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2169 ;; get the identifier |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2170 (let (module) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2171 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2172 (skip-chars-backward "a-zA-Z0-9_$") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2173 (if (looking-at idlwave-identifier) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2174 (setq module (match-string 0)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2175 (error "No identifier at point"))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2176 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2177 idlwave-shell-sources-query |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2178 `(progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2179 (idlwave-shell-sources-filter) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2180 (idlwave-shell-set-bp-in-module ,module)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2181 'hide))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2182 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2183 (defun idlwave-shell-set-bp-in-module (module) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2184 "Set breakpoint in module. Assumes that `idlwave-shell-sources-alist' |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2185 contains an entry for that module." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2186 (let ((source-file (car-safe |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2187 (cdr-safe |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2188 (assoc (upcase module) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2189 idlwave-shell-sources-alist)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2190 buf) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2191 (if (or (not source-file) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2192 (not (file-regular-p source-file)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2193 (not (setq buf |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2194 (or (idlwave-get-buffer-visiting source-file) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2195 (find-file-noselect source-file))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2196 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2197 (message "The source file for module %s is probably not compiled" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2198 module) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2199 (beep)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2200 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2201 (set-buffer buf) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2202 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2203 (goto-char (point-min)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2204 (let ((case-fold-search t)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2205 (if (re-search-forward |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2206 (concat "^[ \t]*\\(pro\\|function\\)[ \t]+" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2207 (downcase module) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2208 "[ \t\n,]") nil t) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2209 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2210 (goto-char (match-beginning 1)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2211 (message "Setting breakpoint for module %s" module) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2212 (idlwave-shell-break-here)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2213 (message "Cannot find module %s in file %s" module source-file) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2214 (beep)))))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2215 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2216 (defun idlwave-shell-up () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2217 "Run to end of current block. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2218 Sets a breakpoint with count 1 at end of block, then continues." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2219 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2220 (if (idlwave-shell-pc-frame) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2221 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2222 (idlwave-shell-goto-frame) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2223 ;; find end of subprogram |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2224 (let ((eos (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2225 (idlwave-beginning-of-subprogram) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2226 (idlwave-forward-block) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2227 (point)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2228 (idlwave-backward-up-block -1) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2229 ;; move beyond end block line - IDL will not break there. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2230 ;; That is, you can put a breakpoint there but when IDL does |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2231 ;; break it will report that it is at the next line. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2232 (idlwave-next-statement) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2233 (idlwave-end-of-statement) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2234 ;; Make sure we are not beyond subprogram |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2235 (if (< (point) eos) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2236 ;; okay |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2237 () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2238 ;; Move back inside subprogram |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2239 (goto-char eos) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2240 (idlwave-previous-statement)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2241 (idlwave-shell-to-here))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2242 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2243 (defun idlwave-shell-out () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2244 "Attempt to run until this procedure exits. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2245 Runs to the last statement and then steps 1 statement. Use the .out command." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2246 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2247 (idlwave-shell-send-command (concat ".o"))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2248 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2249 (defun idlwave-shell-help-expression (arg) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2250 "Print help on current expression. See `idlwave-shell-print'." |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2251 (interactive "P") |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2252 (idlwave-shell-print arg 'help)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2253 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2254 (defmacro idlwave-shell-mouse-examine (help &optional ev) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2255 "Create a function for generic examination of expressions." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2256 `(lambda (event) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2257 "Expansion function for expression examination." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2258 (interactive "e") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2259 (let ((transient-mark-mode t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2260 (zmacs-regions t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2261 (tracker (if (featurep 'xemacs) 'mouse-track |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2262 'mouse-drag-region))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2263 (funcall tracker event) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2264 (idlwave-shell-print (if (idlwave-region-active-p) '(16) nil) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2265 ,help ,ev)))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2266 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2267 (defun idlwave-shell-mouse-print (event) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2268 "Print value of variable at the mouse position, with `help'" |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2269 (interactive "e") |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2270 (funcall (idlwave-shell-mouse-examine nil) event)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2271 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2272 (defun idlwave-shell-mouse-help (event) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2273 "Print value of variable at the mouse position, with `print'." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2274 (interactive "e") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2275 (funcall (idlwave-shell-mouse-examine 'help) event)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2276 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2277 (defun idlwave-shell-examine-select (event) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2278 "Pop-up a list to select from for examining the expression" |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2279 (interactive "e") |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2280 (funcall (idlwave-shell-mouse-examine nil event) event)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2281 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2282 (defmacro idlwave-shell-examine (help) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2283 "Create a function for key-driven expression examination." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2284 `(lambda () |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2285 (interactive) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2286 (idlwave-shell-print nil ,help))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2287 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2288 (defun idlwave-shell-define-key-both (key hook) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2289 "Define a key in both the shell and buffer mode maps." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2290 (define-key idlwave-mode-map key hook) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2291 (define-key idlwave-shell-mode-map key hook)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2292 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2293 (defvar idlwave-shell-examine-label nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2294 "Label to include with examine text if separate.") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2295 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2296 (defun idlwave-shell-print (arg &optional help ev) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2297 "Print current expression. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2298 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2299 With HELP non-nil, show help on expression. If HELP is a string, |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2300 the expression will be put in place of ___, e.g.: |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2301 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2302 print,size(___,/DIMENSIONS) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2303 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2304 Otherwise, print is called on the expression. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2305 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2306 An expression is an identifier plus 1 pair of matched parentheses |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2307 directly following the identifier - an array or function call. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2308 Alternatively, an expression is the contents of any matched |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2309 parentheses when the open parenthesis is not directly preceded by an |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2310 identifier. If point is at the beginning or within an expression |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2311 return the inner-most containing expression, otherwise, return the |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2312 preceding expression. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2313 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2314 With prefix arg ARG prompt for an expression. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2315 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2316 With double prefix arg, use the current region. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2317 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2318 If EV is a valid event passed, pop-up a list from |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2319 idlw-shell-examine-alist from which to select the help command text." |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2320 (interactive "P") |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2321 (save-excursion |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2322 (let* ((process (get-buffer-process (current-buffer))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2323 (process-mark (if process (process-mark process))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2324 (stack-label |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2325 (if (and (integerp idlwave-shell-calling-stack-index) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2326 (> idlwave-shell-calling-stack-index 0)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2327 (format " [-%d:%s]" |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2328 idlwave-shell-calling-stack-index |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2329 idlwave-shell-calling-stack-routine))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2330 expr beg end cmd examine-hook) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2331 (cond |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2332 ((and (equal arg '(16)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2333 (< (- (region-end) (region-beginning)) 2000)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2334 (setq beg (region-beginning) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2335 end (region-end))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2336 (arg |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2337 (setq expr (read-string "Expression: "))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2338 (t |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2339 (idlwave-with-special-syntax1 |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2340 ;; Move to beginning of current or previous expression |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2341 (if (looking-at "\\<\\|(") |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2342 ;; At beginning of expression, don't move backwards unless |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2343 ;; this is at the end of an indentifier. |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2344 (if (looking-at "\\>") |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2345 (backward-sexp)) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2346 (backward-sexp)) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2347 (if (looking-at "\\>") |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2348 ;; Move to beginning of identifier - must be an array or |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2349 ;; function expression. |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2350 (backward-sexp)) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2351 ;; Move to end of expression |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2352 (setq beg (point)) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2353 (forward-sexp) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2354 (while (looking-at "\\>[[(]\\|\\.") |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2355 ;; an array |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
2356 (forward-sexp)) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2357 (setq end (point))))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2358 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2359 ;; Get expression, but first move the begin mark if a |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2360 ;; process-mark is inside the region, to keep the overlay from |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2361 ;; wandering in the Shell. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2362 (when (and beg end) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2363 (if (and process-mark (> process-mark beg) (< process-mark end)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2364 (setq beg (marker-position process-mark))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2365 (setq expr (buffer-substring beg end))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2366 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2367 ;; Show the overlay(s) and attach any necessary hooks and filters |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2368 (when (and beg end idlwave-shell-expression-overlay) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2369 (move-overlay idlwave-shell-expression-overlay beg end |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2370 (current-buffer)) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2371 (add-hook 'pre-command-hook |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2372 'idlwave-shell-delete-expression-overlay)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2373 (setq examine-hook |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2374 (if idlwave-shell-separate-examine-output |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2375 'idlwave-shell-examine-display |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2376 'idlwave-shell-examine-highlight)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2377 (add-hook 'pre-command-hook |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2378 'idlwave-shell-delete-output-overlay) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2379 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2380 ;; Remove empty or comment-only lines |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2381 (while (string-match "\n[ \t]*\\(;.*\\)?\r*\n" expr) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2382 (setq expr (replace-match "\n" t t expr))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2383 ;; Concatenate continuation lines |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2384 (while (string-match "[ \t]*\\$.*\\(;.*\\)?\\(\n[ \t]*\\|$\\)" expr) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2385 (setq expr (replace-match "" t t expr))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2386 ;; Remove final newline |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2387 (if (string-match "\n[ \t\r]*\\'" expr) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2388 (setq expr (replace-match "" t t expr))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2389 ;; Pop-up the examine selection list, if appropriate |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2390 (if (and ev idlwave-shell-examine-alist) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2391 (let* ((help-cons |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2392 (assoc |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2393 (idlwave-popup-select |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2394 ev (mapcar 'car idlwave-shell-examine-alist) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2395 "Examine with") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2396 idlwave-shell-examine-alist))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2397 (setq help (cdr help-cons)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2398 (if idlwave-shell-separate-examine-output |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2399 (setq idlwave-shell-examine-label |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2400 (concat |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2401 (format "==>%s<==\n%s:" expr (car help-cons)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2402 stack-label "\n")))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2403 (setq idlwave-shell-examine-label |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2404 (concat |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2405 (format "==>%s<==\n%s:" expr |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2406 (cond ((null help) "print") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2407 ((stringp help) help) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2408 (t (symbol-name help)))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2409 stack-label "\n"))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2410 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2411 ;; Send the command |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2412 (if stack-label |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2413 (setq cmd (idlwave-retrieve-expression-from-level |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2414 expr |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2415 idlwave-shell-calling-stack-index |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2416 idlwave-shell-calling-stack-routine |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2417 help)) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2418 (setq cmd (idlwave-shell-help-statement help expr))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2419 ;(idlwave-shell-recenter-shell-window) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2420 (idlwave-shell-send-command |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2421 cmd |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2422 examine-hook |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2423 (if idlwave-shell-separate-examine-output 'hide))))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2424 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2425 (defvar idlwave-shell-examine-window-alist nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2426 "Variable to hold the win/height pairs for all *Examine* windows.") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2427 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2428 (defun idlwave-shell-examine-display () |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2429 "View the examine command output in a separate buffer." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2430 (let (win cur-beg cur-end) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2431 (save-excursion |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2432 (set-buffer (get-buffer-create "*Examine*")) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2433 (use-local-map idlwave-shell-examine-map) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2434 (setq buffer-read-only nil) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2435 (goto-char (point-max)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2436 (save-restriction |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2437 (narrow-to-region (point) (point)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2438 (if (string-match "^% Syntax error." idlwave-shell-command-output) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2439 (insert "% Syntax error.\n") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2440 (insert idlwave-shell-command-output) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2441 ;; Just take the last bit between the prompts (if more than one). |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2442 (let* ((end (or |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2443 (re-search-backward idlwave-shell-prompt-pattern nil t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2444 (point-max))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2445 (beg (progn |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2446 (goto-char |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2447 (or (progn (if (re-search-backward |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2448 idlwave-shell-prompt-pattern nil t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2449 (match-end 0))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2450 (point-min))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2451 (re-search-forward "\n"))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2452 (str (buffer-substring beg end))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2453 (delete-region (point-min) (point-max)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2454 (insert str) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2455 (if idlwave-shell-examine-label |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2456 (progn (goto-char (point-min)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2457 (insert idlwave-shell-examine-label) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2458 (setq idlwave-shell-examine-label nil))))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2459 (setq cur-beg (point-min) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2460 cur-end (point-max)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2461 (setq buffer-read-only t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2462 (move-overlay idlwave-shell-output-overlay cur-beg cur-end |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2463 (current-buffer)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2464 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2465 ;; Look for the examine buffer in all windows. If one is |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2466 ;; found in a frame all by itself, use that, otherwise, switch |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2467 ;; to or create an examine window in this frame, and resize if |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2468 ;; it's a newly created window |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2469 (let* ((winlist (get-buffer-window-list "*Examine*" nil 'visible))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2470 (setq win (idlwave-display-buffer |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2471 "*Examine*" |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2472 nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2473 (let ((list winlist) thiswin) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2474 (catch 'exit |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2475 (save-selected-window |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2476 (while (setq thiswin (pop list)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2477 (select-window thiswin) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2478 (if (one-window-p) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2479 (throw 'exit (window-frame thiswin))))))))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2480 (set-window-start win (point-min)) ; Ensure the point is visible. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2481 (save-selected-window |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2482 (select-window win) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2483 (let ((elt (assoc win idlwave-shell-examine-window-alist))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2484 (when (and (not (one-window-p)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2485 (or (not (memq win winlist)) ;a newly created window |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2486 (eq (window-height) (cdr elt)))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2487 ;; Autosize it. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2488 (enlarge-window (- (/ (frame-height) 2) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2489 (window-height))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2490 (shrink-window-if-larger-than-buffer) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2491 ;; Clean the window list of dead windows |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2492 (setq idlwave-shell-examine-window-alist |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2493 (delq nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2494 (mapcar (lambda (x) (if (window-live-p (car x)) x)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2495 idlwave-shell-examine-window-alist))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2496 ;; And add the new value. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2497 (if (setq elt (assoc win idlwave-shell-examine-window-alist)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2498 (setcdr elt (window-height)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2499 (add-to-list 'idlwave-shell-examine-window-alist |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2500 (cons win (window-height))))))))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2501 ;; Recenter for maximum output, after widened |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2502 (save-selected-window |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2503 (select-window win) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2504 (goto-char (point-max)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2505 (skip-chars-backward "\n") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2506 (recenter -1))))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2507 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2508 (defvar idlwave-shell-examine-map (make-sparse-keymap)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2509 (define-key idlwave-shell-examine-map "q" 'idlwave-shell-examine-display-quit) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2510 (define-key idlwave-shell-examine-map "c" 'idlwave-shell-examine-display-clear) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2511 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2512 (defun idlwave-shell-examine-display-quit () |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2513 (interactive) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2514 (let ((win (selected-window))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2515 (if (one-window-p) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2516 (delete-frame (window-frame win)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2517 (delete-window win)))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2518 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2519 (defun idlwave-shell-examine-display-clear () |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2520 (interactive) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2521 (save-excursion |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2522 (let ((buf (get-buffer "*Examine*"))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2523 (when (bufferp buf) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2524 (set-buffer buf) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2525 (setq buffer-read-only nil) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2526 (erase-buffer) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2527 (setq buffer-read-only t))))) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2528 |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2529 (defun idlwave-retrieve-expression-from-level (expr level routine help) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2530 "Return IDL command to print the expression EXPR from stack level LEVEL. |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2531 |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2532 It does not seem possible to evaluate an expression on a differnt |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2533 level than the current. Therefore, this function retrieves *copies* of |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2534 the variables involved in the expression from the desired level in the |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2535 calling stack. The copies are given some unlikely names on the |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2536 *current* level, and the expression is then evaluated on the *current* |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2537 level. |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2538 |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2539 Since this function depends upon the undocumented IDL routine routine_names, |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2540 there is no guarantee that this will work with future versions of IDL." |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2541 (let ((prefix "___") ;; No real variables should starts with this. |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2542 (fetch (- 0 level)) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2543 (start 0) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2544 var tvar fetch-vars pre post) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2545 |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2546 ;; FIXME: In the following we try to find the variables in expression |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2547 ;; This is quite empirical - I don't know in what situations this will |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2548 ;; break. We will look for identifiers and exclude cases where we |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2549 ;; know it is not a variable. To distinguish array references from |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2550 ;; function calls, we require that arrays use [] instead of () |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2551 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2552 (while (string-match |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2553 "\\(\\`\\|[^a-zA-Z0-9$_]\\)\\([a-zA-Z][a-zA-Z0-9$_]*\\)\\([^a-zA-Z0-9$_]\\|\\'\\)" expr start) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2554 (setq var (match-string 2 expr) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2555 tvar (concat prefix var) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2556 start (match-beginning 2) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2557 pre (substring expr 0 (match-beginning 2)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2558 post (substring expr (match-end 2))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2559 (cond |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2560 ;; Exclude identifiers which are not variables |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2561 ((string-match ",[ \t]*/\\'" pre)) ;; a `/' KEYWORD |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2562 ((and (string-match "[,(][ \t]*\\'" pre) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2563 (string-match "\\`[ \t]*=" post))) ;; a `=' KEYWORD |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2564 ((string-match "\\`(" post)) ;; a function |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2565 ((string-match "->[ \t]*\\'" pre)) ;; a method |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2566 ((string-match "\\.\\'" pre)) ;; structure member |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2567 (t ;; seems to be a variable - arrange to get it and replace |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2568 ;; its name in the expression with the temproary name. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2569 (push (cons var tvar) fetch-vars) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2570 (setq expr (concat pre tvar post)))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2571 (if (= start 0) (setq start 1))) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2572 ;; Make a command line that first copies the relevant variables |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2573 ;; and then prints the expression. |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2574 (concat |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2575 (mapconcat |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2576 (lambda (x) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2577 (format "%s = routine_names('%s',fetch=%d)" (cdr x) (car x) fetch)) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2578 (nreverse fetch-vars) |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2579 " & ") |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2580 "\n" |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2581 (idlwave-shell-help-statement help expr) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2582 (format " ; [-%d:%s]" level routine)))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2583 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2584 (defun idlwave-shell-help-statement (help expr) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2585 "Construct a help statement for printing expression EXPR. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2586 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2587 HELP can be non-nil for `help,', nil for 'print,' or any string into which |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2588 to insert expression in place of the marker ___, e.g.: print, |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2589 size(___,/DIMENSIONS)" |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2590 (cond |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2591 ((null help) (concat "print, " expr)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2592 ((stringp help) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2593 (if (string-match "\\(^\\|[^_]\\)\\(___\\)\\([^_]\\|$\\)" help) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2594 (concat (substring help 0 (match-beginning 2)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2595 expr |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2596 (substring help (match-end 2))))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2597 (t (concat "help, " expr)))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2598 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2599 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2600 (defun idlwave-shell-examine-highlight () |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2601 "Highlight the most recent IDL output." |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2602 (let* ((buffer (get-buffer (idlwave-shell-buffer))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2603 (process (get-buffer-process buffer)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2604 (process-mark (if process (process-mark process))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2605 output-begin output-end) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2606 (save-excursion |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2607 (set-buffer buffer) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2608 (goto-char process-mark) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2609 (beginning-of-line) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2610 (setq output-end (point)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2611 (re-search-backward idlwave-shell-prompt-pattern nil t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2612 (beginning-of-line 2) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2613 (setq output-begin (point))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2614 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2615 ;; First make sure the shell window is visible |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2616 (idlwave-display-buffer (idlwave-shell-buffer) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2617 nil (idlwave-shell-shell-frame)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2618 (if (and idlwave-shell-output-overlay process-mark) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2619 (move-overlay idlwave-shell-output-overlay |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2620 output-begin output-end buffer)))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2621 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2622 (defun idlwave-shell-delete-output-overlay () |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2623 (if (eq this-command 'idlwave-shell-mouse-nop) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2624 nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2625 (condition-case nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2626 (if idlwave-shell-output-overlay |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2627 (delete-overlay idlwave-shell-output-overlay)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2628 (error nil)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2629 (remove-hook 'pre-command-hook 'idlwave-shell-delete-output-overlay))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2630 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2631 (defun idlwave-shell-delete-expression-overlay () |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2632 (if (eq this-command 'idlwave-shell-mouse-nop) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2633 nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2634 (condition-case nil |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2635 (if idlwave-shell-expression-overlay |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2636 (delete-overlay idlwave-shell-expression-overlay)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2637 (error nil)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2638 (remove-hook 'pre-command-hook 'idlwave-shell-delete-expression-overlay))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2639 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2640 (defvar idlwave-shell-bp-alist nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2641 "Alist of breakpoints. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2642 A breakpoint is a cons cell \(\(file line\) . \(\(index module\) data\)\) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2643 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2644 The car is the frame for the breakpoint: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2645 file - full path file name. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2646 line - line number of breakpoint - integer. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2647 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2648 The first element of the cdr is a list of internal IDL data: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2649 index - the index number of the breakpoint internal to IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2650 module - the module for breakpoint internal to IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2651 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2652 Remaining elements of the cdr: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2653 data - Data associated with the breakpoint by idlwave-shell currently |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2654 contains two items: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2655 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2656 count - number of times to execute breakpoint. When count reaches 0 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2657 the breakpoint is cleared and removed from the alist. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2658 command - command to execute when breakpoint is reached, either a |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2659 lisp function to be called with `funcall' with no arguments or a |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2660 list to be evaluated with `eval'.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2661 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2662 (defun idlwave-shell-run-region (beg end &optional n) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2663 "Compile and run the region using the IDL process. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2664 Copies the region to a temporary file `idlwave-shell-temp-pro-file' |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2665 and issues the IDL .run command for the file. Because the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2666 region is compiled and run as a main program there is no |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2667 problem with begin-end blocks extending over multiple |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2668 lines - which would be a problem if `idlwave-shell-evaluate-region' |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2669 was used. An END statement is appended to the region if necessary. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2670 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2671 If there is a prefix argument, display IDL process." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2672 (interactive "r\nP") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2673 (let ((oldbuf (current-buffer))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2674 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2675 (set-buffer (idlwave-find-file-noselect |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2676 (idlwave-shell-temp-file 'pro) 'tmp)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2677 (set (make-local-variable 'comment-start-skip) ";+[ \t]*") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2678 (set (make-local-variable 'comment-start) ";") |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2679 (erase-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2680 (insert-buffer-substring oldbuf beg end) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2681 (if (not (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2682 (idlwave-previous-statement) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2683 (idlwave-look-at "\\<end\\>"))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2684 (insert "\nend\n")) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2685 (save-buffer 0))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2686 (idlwave-shell-send-command (concat ".run " idlwave-shell-temp-pro-file)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2687 (if n |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2688 (idlwave-display-buffer (idlwave-shell-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2689 nil (idlwave-shell-shell-frame)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2690 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2691 (defun idlwave-shell-evaluate-region (beg end &optional n) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2692 "Send region to the IDL process. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2693 If there is a prefix argument, display IDL process. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2694 Does not work for a region with multiline blocks - use |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2695 `idlwave-shell-run-region' for this." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2696 (interactive "r\nP") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2697 (idlwave-shell-send-command (buffer-substring beg end)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2698 (if n |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2699 (idlwave-display-buffer (idlwave-shell-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2700 nil (idlwave-shell-shell-frame)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2701 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2702 (defun idlwave-shell-delete-temp-files () |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2703 "Delete the temporary files and kill associated buffers." |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2704 (if (stringp idlwave-shell-temp-pro-file) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2705 (condition-case nil |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2706 (let ((buf (idlwave-get-buffer-visiting |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2707 idlwave-shell-temp-pro-file))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2708 (if (buffer-live-p buf) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2709 (kill-buffer buf)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2710 (delete-file idlwave-shell-temp-pro-file)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2711 (error nil))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2712 (if (stringp idlwave-shell-temp-rinfo-save-file) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2713 (condition-case nil |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2714 (delete-file idlwave-shell-temp-rinfo-save-file) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2715 (error nil)))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2716 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2717 (defun idlwave-display-buffer (buf not-this-window-p &optional frame) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2718 (if (not (frame-live-p frame)) (setq frame nil)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2719 (display-buffer buf not-this-window-p frame)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2720 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2721 (defvar idlwave-shell-bp-buffer " *idlwave-shell-bp*" |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2722 "Scratch buffer for parsing IDL breakpoint lists and other stuff.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2723 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2724 (defun idlwave-shell-bp-query () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2725 "Reconcile idlwave-shell's breakpoint list with IDL's. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2726 Queries IDL using the string in `idlwave-shell-bp-query'." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2727 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2728 (idlwave-shell-send-command idlwave-shell-bp-query |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2729 'idlwave-shell-filter-bp |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2730 'hide)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2731 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2732 (defun idlwave-shell-bp-get (bp &optional item) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2733 "Get a value for a breakpoint. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2734 BP has the form of elements in idlwave-shell-bp-alist. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2735 Optional second arg ITEM is the particular value to retrieve. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2736 ITEM can be 'file, 'line, 'index, 'module, 'count, 'cmd, or 'data. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2737 'data returns a list of 'count and 'cmd. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2738 Defaults to 'index." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2739 (cond |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2740 ;; Frame |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2741 ((eq item 'line) (nth 1 (car bp))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2742 ((eq item 'file) (nth 0 (car bp))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2743 ;; idlwave-shell breakpoint data |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2744 ((eq item 'data) (cdr (cdr bp))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2745 ((eq item 'count) (nth 0 (cdr (cdr bp)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2746 ((eq item 'cmd) (nth 1 (cdr (cdr bp)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2747 ;; IDL breakpoint info |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2748 ((eq item 'module) (nth 1 (car (cdr bp)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2749 ;; index - default |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2750 (t (nth 0 (car (cdr bp)))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2751 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2752 (defun idlwave-shell-filter-bp () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2753 "Get the breakpoints from `idlwave-shell-command-output'. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2754 Create `idlwave-shell-bp-alist' updating breakpoint count and command data |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2755 from previous breakpoint list." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2756 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2757 (set-buffer (get-buffer-create idlwave-shell-bp-buffer)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2758 (erase-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2759 (insert idlwave-shell-command-output) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2760 (goto-char (point-min)) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2761 (let ((old-bp-alist idlwave-shell-bp-alist) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2762 ;; Searching the breakpoints |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2763 ;; In IDL 5.5, the breakpoint reporting format changed. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2764 (bp-re54 "^[ \t]*\\([0-9]+\\)[ \t]+\\(\\S-+\\)?[ \t]+\\([0-9]+\\)[ \t]+\\(\\S-+\\)") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2765 (bp-re55 "^\\s-*\\([0-9]+\\)\\s-+\\([0-9]+\\)\\s-+\\(Uncompiled\\|Func=\\|Pro=\\)\\(\\S-+\\)?\\s-+\\(\\S-+\\)") |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2766 file line index module |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2767 bp-re indmap) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2768 (setq idlwave-shell-bp-alist (list nil)) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2769 ;; Search for either header type, and set the correct regexp |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2770 (when (or |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2771 (if (re-search-forward "^\\s-*Index.*\n\\s-*-" nil t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2772 (setq bp-re bp-re54 ; versions <= 5.4 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2773 indmap '(1 2 3 4))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2774 (if (re-search-forward |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2775 "^\\s-*Index\\s-*Line\\s-*Attributes\\s-*File" nil t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2776 (setq bp-re bp-re55 ; versions >= 5.5 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2777 indmap '(1 4 2 5)))) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2778 ;; There seems to be a breakpoint listing here. |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2779 ;; Parse breakpoint lines. |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2780 ;; Breakpoints have the form |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2781 ;; for IDL<=v5.4: |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2782 ;; Index Module Line File |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2783 ;; All separated by whitespace. |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2784 ;; Module may be missing if the file is not compiled. |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2785 ;; for IDL>=v5.5: |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2786 ;; Index Line Attributes File |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2787 ;; (attributes replaces module, "Uncompiled" included) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2788 (while (re-search-forward bp-re nil t) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2789 (setq index (match-string (nth 0 indmap)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2790 module (match-string (nth 1 indmap)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2791 line (string-to-int (match-string (nth 2 indmap))) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2792 file (idlwave-shell-file-name (match-string (nth 3 indmap)))) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2793 ;; Add the breakpoint info to the list |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2794 (nconc idlwave-shell-bp-alist |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2795 (list (cons (list file line) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2796 (list |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2797 (list index module) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2798 ;; idlwave-shell data: count, command |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2799 nil nil)))))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2800 (setq idlwave-shell-bp-alist (cdr idlwave-shell-bp-alist)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2801 ;; Update count, commands of breakpoints |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2802 (mapcar 'idlwave-shell-update-bp old-bp-alist))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2803 ;; Update the breakpoint overlays |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2804 (idlwave-shell-update-bp-overlays) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2805 ;; Return the new list |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2806 idlwave-shell-bp-alist) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2807 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2808 (defun idlwave-shell-update-bp (bp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2809 "Update BP data in breakpoint list. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2810 If BP frame is in `idlwave-shell-bp-alist' updates the breakpoint data." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2811 (let ((match (assoc (car bp) idlwave-shell-bp-alist))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2812 (if match (setcdr (cdr match) (cdr (cdr bp)))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2813 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2814 (defun idlwave-shell-set-bp-data (bp data) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2815 "Set the data of BP to DATA." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2816 (setcdr (cdr bp) data)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2817 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2818 (defun idlwave-shell-bp (frame &optional data module) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2819 "Create a breakpoint structure containing FRAME and DATA. Second |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2820 and third args, DATA and MODULE, are optional. Returns a breakpoint |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2821 of the format used in `idlwave-shell-bp-alist'. Can be used in commands |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2822 attempting match a breakpoint in `idlwave-shell-bp-alist'." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2823 (cons frame (cons (list nil module) data))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2824 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2825 (defvar idlwave-shell-old-bp nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2826 "List of breakpoints previous to setting a new breakpoint.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2827 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2828 (defun idlwave-shell-sources-bp (bp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2829 "Check `idlwave-shell-sources-alist' for source of breakpoint using BP. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2830 If an equivalency is found, return the IDL internal source name. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2831 Otherwise return the filename in bp." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2832 (let* |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2833 ((bp-file (idlwave-shell-bp-get bp 'file)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2834 (bp-module (idlwave-shell-bp-get bp 'module)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2835 (internal-file-list (cdr (assoc bp-module idlwave-shell-sources-alist)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2836 (if (and internal-file-list |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2837 (equal bp-file (nth 0 internal-file-list))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2838 (nth 1 internal-file-list) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2839 bp-file))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2840 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2841 (defun idlwave-shell-set-bp (bp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2842 "Try to set a breakpoint BP. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2843 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2844 The breakpoint will be placed at the beginning of the statement on the |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2845 line specified by BP or at the next IDL statement if that line is not |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2846 a statement. |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2847 Determines IDL's internal representation for the breakpoint, which may |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2848 have occurred at a different line than used with the breakpoint |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2849 command." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2850 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2851 ;; Get and save the old breakpoints |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2852 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2853 idlwave-shell-bp-query |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2854 '(progn |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2855 (idlwave-shell-filter-bp) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2856 (setq idlwave-shell-old-bp idlwave-shell-bp-alist)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2857 'hide) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2858 ;; Get sources for IDL compiled procedures followed by setting |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2859 ;; breakpoint. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2860 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2861 idlwave-shell-sources-query |
41608
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
38436
diff
changeset
|
2862 `(progn |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2863 (idlwave-shell-sources-filter) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
2864 (idlwave-shell-set-bp2 (quote ,bp))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2865 'hide)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2866 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2867 (defun idlwave-shell-set-bp2 (bp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2868 "Use results of breakpoint and sources query to set bp. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2869 Use the count argument with IDLs breakpoint command. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2870 We treat a count of 1 as a temporary breakpoint. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2871 Counts greater than 1 use the IDL AFTER=count keyword to break |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2872 only after reaching the statement count times." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2873 (let* |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2874 ((arg (idlwave-shell-bp-get bp 'count)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2875 (key (cond |
41608
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
38436
diff
changeset
|
2876 ((not (and arg (numberp arg))) "") |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
38436
diff
changeset
|
2877 ((= arg 1) |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
38436
diff
changeset
|
2878 ",/once") |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
38436
diff
changeset
|
2879 ((> arg 1) |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
38436
diff
changeset
|
2880 (format ",after=%d" arg)))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2881 (line (idlwave-shell-bp-get bp 'line))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2882 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2883 (concat "breakpoint,'" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2884 (idlwave-shell-sources-bp bp) "'," |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2885 (if (integerp line) (setq line (int-to-string line))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2886 key) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2887 ;; Check for failure and look for breakpoint in IDL's list |
41608
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
38436
diff
changeset
|
2888 `(progn |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
38436
diff
changeset
|
2889 (if (idlwave-shell-set-bp-check (quote ,bp)) |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
38436
diff
changeset
|
2890 (idlwave-shell-set-bp3 (quote ,bp)))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2891 ;; do not hide output |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2892 nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2893 'preempt))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2894 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2895 (defun idlwave-shell-set-bp3 (bp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2896 "Find the breakpoint in IDL's internal list of breakpoints." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2897 (idlwave-shell-send-command idlwave-shell-bp-query |
41608
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
38436
diff
changeset
|
2898 `(progn |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
38436
diff
changeset
|
2899 (idlwave-shell-filter-bp) |
45db352a0971
Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents:
38436
diff
changeset
|
2900 (idlwave-shell-new-bp (quote ,bp))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2901 'hide |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2902 'preempt)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2903 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2904 (defun idlwave-shell-find-bp (frame) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2905 "Return breakpoint from `idlwave-shell-bp-alist' for frame. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2906 Returns nil if frame not found." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2907 (assoc frame idlwave-shell-bp-alist)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2908 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2909 (defun idlwave-shell-new-bp (bp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2910 "Find the new breakpoint in IDL's list and update with DATA. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2911 The actual line number for a breakpoint in IDL may be different than |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2912 the line number used with the IDL breakpoint command. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2913 Looks for a new breakpoint index number in the list. This is |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2914 considered the new breakpoint if the file name of frame matches." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2915 (let ((obp-index (mapcar 'idlwave-shell-bp-get idlwave-shell-old-bp)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2916 (bpl idlwave-shell-bp-alist)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2917 (while (and (member (idlwave-shell-bp-get (car bpl)) obp-index) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2918 (setq bpl (cdr bpl)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2919 (if (and |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2920 (not bpl) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2921 ;; No additional breakpoint. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2922 ;; Need to check if we are just replacing a breakpoint. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2923 (setq bpl (assoc (car bp) idlwave-shell-bp-alist))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2924 (setq bpl (list bpl))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2925 (if (and bpl |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2926 (equal (idlwave-shell-bp-get (setq bpl (car bpl)) 'file) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2927 (idlwave-shell-bp-get bp 'file))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2928 ;; Got the breakpoint - add count, command to it. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2929 ;; This updates `idlwave-shell-bp-alist' because a deep copy was |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2930 ;; not done for bpl. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2931 (idlwave-shell-set-bp-data bpl (idlwave-shell-bp-get bp 'data)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2932 (beep) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2933 (message "Failed to identify breakpoint in IDL")))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2934 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2935 (defvar idlwave-shell-bp-overlays nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2936 "List of overlays marking breakpoints") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2937 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2938 (defun idlwave-shell-update-bp-overlays () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2939 "Update the overlays which mark breakpoints in the source code. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2940 Existing overlays are recycled, in order to minimize consumption." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2941 (when idlwave-shell-mark-breakpoints |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2942 (let ((bp-list idlwave-shell-bp-alist) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2943 (ov-list idlwave-shell-bp-overlays) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2944 ov bp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2945 ;; Delete the old overlays from their buffers |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2946 (while (setq ov (pop ov-list)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2947 (delete-overlay ov)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2948 (setq ov-list idlwave-shell-bp-overlays |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2949 idlwave-shell-bp-overlays nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2950 (while (setq bp (pop bp-list)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2951 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2952 (idlwave-shell-goto-frame (car bp)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2953 (let* ((end (progn (end-of-line 1) (point))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2954 (beg (progn (beginning-of-line 1) (point))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2955 (ov (or (pop ov-list) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2956 (idlwave-shell-make-new-bp-overlay)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2957 (move-overlay ov beg end) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2958 (push ov idlwave-shell-bp-overlays))))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2959 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2960 (defvar idlwave-shell-bp-glyph) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2961 (defun idlwave-shell-make-new-bp-overlay () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2962 "Make a new overlay for highlighting breakpoints. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2963 This stuff is stringly dependant upon the version of Emacs." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2964 (let ((ov (make-overlay 1 1))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2965 (if (featurep 'xemacs) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2966 ;; This is XEmacs |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2967 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2968 (cond |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2969 ((eq (console-type) 'tty) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2970 ;; tty's cannot display glyphs |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2971 (set-extent-property ov 'face idlwave-shell-breakpoint-face)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2972 ((and (memq idlwave-shell-mark-breakpoints '(t glyph)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2973 idlwave-shell-bp-glyph) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2974 ;; use the glyph |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2975 (set-extent-property ov 'begin-glyph idlwave-shell-bp-glyph)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2976 (idlwave-shell-mark-breakpoints |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2977 ;; use the face |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2978 (set-extent-property ov 'face idlwave-shell-breakpoint-face)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2979 (t |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2980 ;; no marking |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2981 nil)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2982 (set-extent-priority ov -1)) ; make stop line face prevail |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2983 ;; This is Emacs |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2984 (cond |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2985 (window-system |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2986 (if (and (memq idlwave-shell-mark-breakpoints '(t glyph)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2987 idlwave-shell-bp-glyph) ; this var knows if glyph's possible |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2988 ;; use a glyph |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2989 (let ((string "@")) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2990 (put-text-property 0 1 |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
2991 'display idlwave-shell-bp-glyph |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2992 string) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2993 (overlay-put ov 'before-string string)) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2994 (overlay-put ov 'face idlwave-shell-breakpoint-face))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2995 (idlwave-shell-mark-breakpoints |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2996 ;; use a face |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
2997 (overlay-put ov 'face idlwave-shell-breakpoint-face)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2998 (t |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
2999 ;; No marking |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3000 nil))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3001 ov)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3002 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3003 (defun idlwave-shell-edit-default-command-line (arg) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3004 "Edit the current execute command." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3005 (interactive "P") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3006 (setq idlwave-shell-command-line-to-execute |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3007 (read-string "IDL> " idlwave-shell-command-line-to-execute))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3008 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3009 (defun idlwave-shell-execute-default-command-line (arg) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3010 "Execute a command line. On first use, ask for the command. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3011 Also with prefix arg, ask for the command. You can also uase the command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3012 `idlwave-shell-edit-default-command-line' to edit the line." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3013 (interactive "P") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3014 (if (or (not idlwave-shell-command-line-to-execute) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3015 arg) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3016 (setq idlwave-shell-command-line-to-execute |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3017 (read-string "IDL> " idlwave-shell-command-line-to-execute))) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
3018 (idlwave-shell-reset 'hidden) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3019 (idlwave-shell-send-command idlwave-shell-command-line-to-execute |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3020 '(idlwave-shell-redisplay 'hide))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3021 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3022 (defun idlwave-shell-save-and-run () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3023 "Save file and run it in IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3024 Runs `save-buffer' and sends a '.RUN' command for the associated file to IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3025 When called from the shell buffer, re-run the file which was last handled by |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3026 one of the save-and-.. commands." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3027 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3028 (idlwave-shell-save-and-action 'run)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3029 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3030 (defun idlwave-shell-save-and-compile () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3031 "Save file and run it in IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3032 Runs `save-buffer' and sends '.COMPILE' command for the associated file to IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3033 When called from the shell buffer, re-compile the file which was last handled by |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3034 one of the save-and-.. commands." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3035 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3036 (idlwave-shell-save-and-action 'compile)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3037 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3038 (defun idlwave-shell-save-and-batch () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3039 "Save file and batch it in IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3040 Runs `save-buffer' and sends a '@file' command for the associated file to IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3041 When called from the shell buffer, re-batch the file which was last handled by |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3042 one of the save-and-.. commands." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3043 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3044 (idlwave-shell-save-and-action 'batch)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3045 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3046 (defun idlwave-shell-save-and-action (action) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3047 "Save file and compile it in IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3048 Runs `save-buffer' and sends a '.RUN' command for the associated file to IDL. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3049 When called from the shell buffer, re-compile the file which was last |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3050 handled by this command." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3051 ;; Remove the stop overlay. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3052 (if idlwave-shell-stop-line-overlay |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3053 (delete-overlay idlwave-shell-stop-line-overlay)) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3054 (setq idlwave-shell-is-stopped nil) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3055 (setq overlay-arrow-string nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3056 (let (buf) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3057 (cond |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3058 ((eq major-mode 'idlwave-mode) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3059 (save-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3060 (setq idlwave-shell-last-save-and-action-file (buffer-file-name))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3061 (idlwave-shell-last-save-and-action-file |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3062 (if (setq buf (idlwave-get-buffer-visiting |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3063 idlwave-shell-last-save-and-action-file)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3064 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3065 (set-buffer buf) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3066 (save-buffer)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3067 (t (setq idlwave-shell-last-save-and-action-file |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3068 (read-file-name "File: "))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3069 (if (file-regular-p idlwave-shell-last-save-and-action-file) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3070 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3071 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3072 (concat (cond ((eq action 'run) ".run ") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3073 ((eq action 'compile) ".compile ") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3074 ((eq action 'batch) "@") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3075 (t (error "Unknown action %s" action))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3076 idlwave-shell-last-save-and-action-file) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3077 'idlwave-shell-maybe-update-routine-info |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3078 nil) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3079 (idlwave-shell-bp-query)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3080 (let ((msg (format "No such file %s" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3081 idlwave-shell-last-save-and-action-file))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3082 (setq idlwave-shell-last-save-and-action-file nil) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3083 (error msg)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3084 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3085 (defun idlwave-shell-maybe-update-routine-info () |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3086 "Update the routine info if the shell is not stopped at an error." |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3087 (if (and (not idlwave-shell-is-stopped) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3088 (or (eq t idlwave-auto-routine-info-updates) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3089 (memq 'compile-buffer idlwave-auto-routine-info-updates)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3090 idlwave-query-shell-for-routine-info |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3091 idlwave-routines) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3092 (idlwave-shell-update-routine-info t))) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3093 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3094 (defvar idlwave-shell-sources-query "help,/source,/full" |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3095 "IDL command to obtain source files for compiled procedures.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3096 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3097 (defvar idlwave-shell-sources-alist nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3098 "Alist of IDL procedure names and compiled source files. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3099 Elements of the alist have the form: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3100 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3101 (module name . (source-file-truename idlwave-internal-filename)).") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3102 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3103 (defun idlwave-shell-sources-query () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3104 "Determine source files for IDL compiled procedures. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3105 Queries IDL using the string in `idlwave-shell-sources-query'." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3106 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3107 (idlwave-shell-send-command idlwave-shell-sources-query |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3108 'idlwave-shell-sources-filter |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3109 'hide)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3110 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3111 (defun idlwave-shell-sources-filter () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3112 "Get source files from `idlwave-shell-sources-query' output. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3113 Create `idlwave-shell-sources-alist' consisting of |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3114 list elements of the form: |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3115 (module name . (source-file-truename idlwave-internal-filename))." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3116 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3117 (set-buffer (get-buffer-create idlwave-shell-bp-buffer)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3118 (erase-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3119 (insert idlwave-shell-command-output) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3120 (goto-char (point-min)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3121 (let (cpro cfun) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3122 (if (re-search-forward "Compiled Procedures:" nil t) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3123 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3124 (forward-line) ; Skip $MAIN$ |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3125 (setq cpro (point)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3126 (if (re-search-forward "Compiled Functions:" nil t) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3127 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3128 (setq cfun (point)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3129 (setq idlwave-shell-sources-alist |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3130 (append |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3131 ;; compiled procedures |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3132 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3133 (beginning-of-line) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3134 (narrow-to-region cpro (point)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3135 (goto-char (point-min)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3136 (idlwave-shell-sources-grep)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3137 ;; compiled functions |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3138 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3139 (widen) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3140 (goto-char cfun) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3141 (idlwave-shell-sources-grep))))))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3142 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3143 (defun idlwave-shell-sources-grep () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3144 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3145 (let ((al (list nil))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3146 (while (and |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3147 (not (progn (forward-line) (eobp))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3148 (re-search-forward |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3149 "\\s-*\\(\\S-+\\)\\s-+\\(\\S-+\\)" nil t)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3150 (nconc al |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3151 (list |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3152 (cons |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3153 (buffer-substring ; name |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3154 (match-beginning 1) (match-end 1)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3155 (let ((internal-filename |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3156 (buffer-substring ; source |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3157 (match-beginning 2) (match-end 2)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3158 (list |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3159 (idlwave-shell-file-name internal-filename) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3160 internal-filename)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3161 )))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3162 (cdr al)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3163 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3164 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3165 (defun idlwave-shell-clear-all-bp () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3166 "Remove all breakpoints in IDL." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3167 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3168 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3169 idlwave-shell-bp-query |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3170 '(progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3171 (idlwave-shell-filter-bp) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3172 (mapcar 'idlwave-shell-clear-bp idlwave-shell-bp-alist)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3173 'hide)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3174 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3175 (defun idlwave-shell-list-all-bp () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3176 "List all breakpoints in IDL." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3177 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3178 (idlwave-shell-send-command |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3179 idlwave-shell-bp-query)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3180 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3181 (defvar idlwave-shell-error-last 0 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3182 "Position of last syntax error in `idlwave-shell-error-buffer'.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3183 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3184 (defun idlwave-shell-goto-next-error () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3185 "Move point to next IDL syntax error." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3186 (interactive) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3187 (let (frame col) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3188 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3189 (set-buffer idlwave-shell-error-buffer) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3190 (goto-char idlwave-shell-error-last) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3191 (if (or (re-search-forward idlwave-shell-syntax-error nil t) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3192 (re-search-forward idlwave-shell-other-error nil t)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3193 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3194 (setq frame |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3195 (list |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3196 (save-match-data |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3197 (idlwave-shell-file-name |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3198 (buffer-substring (match-beginning 1) (match-end 1)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3199 (string-to-int |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3200 (buffer-substring (match-beginning 2) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3201 (match-end 2))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3202 ;; Try to find the column of the error |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3203 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3204 (setq col |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3205 (if (re-search-backward "\\^" nil t) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3206 (current-column) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3207 0))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3208 (setq idlwave-shell-error-last (point))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3209 (if frame |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3210 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3211 (idlwave-shell-display-line frame col)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3212 (beep) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3213 (message "No more errors.")))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3214 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3215 (defun idlwave-shell-file-name (name) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3216 "If `idlwave-shell-use-truename' is non-nil, convert file name to true name. |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3217 Otherwise, just expand the file name." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3218 (let ((def-dir (if (eq major-mode 'idlwave-shell-mode) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3219 default-directory |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3220 idlwave-shell-default-directory))) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3221 (if idlwave-shell-use-truename |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3222 (file-truename name def-dir) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3223 (expand-file-name name def-dir)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3224 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3225 ;; Keybindings -------------------------------------------------------------- |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3226 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3227 (defvar idlwave-shell-mode-map (copy-keymap comint-mode-map) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3228 "Keymap for idlwave-mode.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3229 (defvar idlwave-shell-mode-prefix-map (make-sparse-keymap)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3230 (fset 'idlwave-shell-mode-prefix-map idlwave-shell-mode-prefix-map) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3231 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3232 ;(define-key idlwave-shell-mode-map "\M-?" 'comint-dynamic-list-completions) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3233 ;(define-key idlwave-shell-mode-map "\t" 'comint-dynamic-complete) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3234 (define-key idlwave-shell-mode-map "\t" 'idlwave-shell-complete) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3235 (define-key idlwave-shell-mode-map "\M-\t" 'idlwave-shell-complete) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3236 (define-key idlwave-shell-mode-map "\C-c\C-s" 'idlwave-shell) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3237 (define-key idlwave-shell-mode-map "\C-c?" 'idlwave-routine-info) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3238 (define-key idlwave-shell-mode-map "\M-?" 'idlwave-context-help) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3239 (define-key idlwave-shell-mode-map "\C-c\C-i" 'idlwave-update-routine-info) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3240 (define-key idlwave-shell-mode-map "\C-c\C-y" 'idlwave-shell-char-mode-loop) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3241 (define-key idlwave-shell-mode-map "\C-c\C-x" 'idlwave-shell-send-char) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3242 (define-key idlwave-shell-mode-map "\C-c=" 'idlwave-resolve) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3243 (define-key idlwave-shell-mode-map "\C-c\C-v" 'idlwave-find-module) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3244 (define-key idlwave-shell-mode-map "\C-c\C-k" 'idlwave-kill-autoloaded-buffers) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3245 (define-key idlwave-shell-mode-map idlwave-shell-prefix-key |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3246 'idlwave-shell-debug-map) |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3247 (define-key idlwave-shell-mode-map [(up)] 'idlwave-shell-up-or-history) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3248 (define-key idlwave-shell-mode-map [(down)] 'idlwave-shell-down-or-history) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3249 (define-key idlwave-mode-map "\C-c\C-y" 'idlwave-shell-char-mode-loop) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3250 (define-key idlwave-mode-map "\C-c\C-x" 'idlwave-shell-send-char) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3251 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3252 ;; The mouse bindings for PRINT and HELP |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3253 (idlwave-shell-define-key-both |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3254 (if (featurep 'xemacs) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3255 [(shift button2)] |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3256 [(shift down-mouse-2)]) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3257 'idlwave-shell-mouse-print) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3258 (idlwave-shell-define-key-both |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3259 (if (featurep 'xemacs) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3260 [(control meta button2)] |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3261 [(control meta down-mouse-2)]) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3262 'idlwave-shell-mouse-help) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3263 (idlwave-shell-define-key-both |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3264 (if (featurep 'xemacs) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3265 [(control shift button2)] |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3266 [(control shift down-mouse-2)]) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3267 'idlwave-shell-examine-select) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3268 ;; Add this one from the idlwave-mode-map |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3269 (define-key idlwave-shell-mode-map |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3270 (if (featurep 'xemacs) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3271 [(shift button3)] |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3272 [(shift mouse-3)]) |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3273 'idlwave-mouse-context-help) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3274 |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3275 ;; For Emacs, we need to turn off the button release events. |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3276 (defun idlwave-shell-mouse-nop (event) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3277 (interactive "e")) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3278 (unless (featurep 'xemacs) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3279 (idlwave-shell-define-key-both |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3280 [(shift mouse-2)] 'idlwave-shell-mouse-nop) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3281 (idlwave-shell-define-key-both |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3282 [(shift control mouse-2)] 'idlwave-shell-mouse-nop) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3283 (idlwave-shell-define-key-both |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3284 [(control meta mouse-2)] 'idlwave-shell-mouse-nop)) |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3285 |
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3286 |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3287 ;; The following set of bindings is used to bind the debugging keys. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3288 ;; If `idlwave-shell-activate-prefix-keybindings' is non-nil, the first key |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3289 ;; in the list gets bound the C-c C-d prefix map. |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3290 ;; If `idlwave-shell-debug-modifiers' is non-nil, the second key |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3291 ;; in the list gets bound with the specified modifiers in both |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3292 ;; `idlwave-mode-map' and `idlwave-shell-mode-map'. |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3293 |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3294 ;; Used keys: abcdef hi klmnopqrs u wxyz |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3295 ;; Unused keys: g j t v |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3296 (let* ((specs |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3297 '(([(control ?b)] ?b idlwave-shell-break-here) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3298 ([(control ?i)] ?i idlwave-shell-break-in) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3299 ([(control ?d)] ?d idlwave-shell-clear-current-bp) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3300 ([(control ?a)] ?a idlwave-shell-clear-all-bp) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3301 ([(control ?s)] ?s idlwave-shell-step) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3302 ([(control ?n)] ?n idlwave-shell-stepover) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3303 ([(control ?k)] ?k idlwave-shell-skip) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3304 ([(control ?u)] ?u idlwave-shell-up) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3305 ([(control ?o)] ?o idlwave-shell-out) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3306 ([(control ?m)] ?m idlwave-shell-return) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3307 ([(control ?h)] ?h idlwave-shell-to-here) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3308 ([(control ?r)] ?r idlwave-shell-cont) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3309 ([(control ?y)] ?y idlwave-shell-execute-default-command-line) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3310 ([(control ?z)] ?z idlwave-shell-reset) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3311 ([(control ?q)] ?q idlwave-shell-quit) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3312 ([(control ?p)] ?p idlwave-shell-print) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3313 ([(??)] ?? idlwave-shell-help-expression) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3314 ([(control ?c)] ?c idlwave-shell-save-and-run) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3315 ([( ?@)] ?@ idlwave-shell-save-and-batch) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3316 ([(control ?x)] ?x idlwave-shell-goto-next-error) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3317 ([(control ?e)] ?e idlwave-shell-run-region) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3318 ([(control ?w)] ?w idlwave-shell-resync-dirs) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3319 ([(control ?l)] ?l idlwave-shell-redisplay) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3320 ([(control ?t)] ?t idlwave-shell-toggle-toolbar) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3321 ([(control up)] up idlwave-shell-stack-up) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3322 ([(control down)] down idlwave-shell-stack-down) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3323 ([(control ?f)] ?f idlwave-shell-window))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3324 (mod (cond ((and idlwave-shell-debug-modifiers |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3325 (listp idlwave-shell-debug-modifiers) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3326 (not (equal '() idlwave-shell-debug-modifiers))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3327 idlwave-shell-debug-modifiers) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3328 (idlwave-shell-activate-alt-keybindings |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3329 '(alt)))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3330 (shift (memq 'shift mod)) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3331 (mod-noshift (delete 'shift (copy-sequence mod))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3332 s k1 c2 k2 cmd) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3333 (while (setq s (pop specs)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3334 (setq k1 (nth 0 s) |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3335 c2 (nth 1 s) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3336 cmd (nth 2 s)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3337 (when idlwave-shell-activate-prefix-keybindings |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3338 (and k1 (define-key idlwave-shell-mode-prefix-map k1 cmd))) |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3339 (when (and mod window-system) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3340 (if (char-or-string-p c2) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3341 (setq k2 (vector (append mod-noshift |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3342 (list (if shift (upcase c2) c2))))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3343 (setq k2 (vector (append mod (list c2))))) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3344 (define-key idlwave-mode-map k2 cmd) |
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3345 (define-key idlwave-shell-mode-map k2 cmd)))) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3346 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3347 ;; Enter the prefix map at the two places. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3348 (fset 'idlwave-debug-map idlwave-shell-mode-prefix-map) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3349 (fset 'idlwave-shell-debug-map idlwave-shell-mode-prefix-map) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3350 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3351 ;; The Menus -------------------------------------------------------------- |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3352 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3353 (defvar idlwave-shell-menu-def |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3354 '("Debug" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3355 ["Save and .RUN" idlwave-shell-save-and-run |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3356 (or (eq major-mode 'idlwave-mode) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3357 idlwave-shell-last-save-and-action-file)] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3358 ["Save and .COMPILE" idlwave-shell-save-and-compile |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3359 (or (eq major-mode 'idlwave-mode) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3360 idlwave-shell-last-save-and-action-file)] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3361 ["Save and @Batch" idlwave-shell-save-and-batch |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3362 (or (eq major-mode 'idlwave-mode) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3363 idlwave-shell-last-save-and-action-file)] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3364 ["Goto Next Error" idlwave-shell-goto-next-error t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3365 "--" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3366 ["Execute Default Cmd" idlwave-shell-execute-default-command-line t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3367 ["Edit Default Cmd" idlwave-shell-edit-default-command-line t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3368 "--" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3369 ["Set Breakpoint" idlwave-shell-break-here |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3370 (eq major-mode 'idlwave-mode)] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3371 ["Break in Module" idlwave-shell-break-in t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3372 ["Clear Breakpoint" idlwave-shell-clear-current-bp t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3373 ["Clear All Breakpoints" idlwave-shell-clear-all-bp t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3374 ["List All Breakpoints" idlwave-shell-list-all-bp t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3375 "--" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3376 ["Step (into)" idlwave-shell-step t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3377 ["Step (over)" idlwave-shell-stepover t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3378 ["Skip One Statement" idlwave-shell-skip t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3379 ["Continue" idlwave-shell-cont t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3380 ("Continue to" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3381 ["End of Block" idlwave-shell-up t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3382 ["End of Subprog" idlwave-shell-return t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3383 ["End of Subprog+1" idlwave-shell-out t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3384 ["Here (Cursor Line)" idlwave-shell-to-here |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3385 (eq major-mode 'idlwave-mode)]) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3386 "--" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3387 ["Print expression" idlwave-shell-print t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3388 ["Help on expression" idlwave-shell-help-expression t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3389 ["Evaluate Region" idlwave-shell-evaluate-region |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3390 (eq major-mode 'idlwave-mode)] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3391 ["Run Region" idlwave-shell-run-region (eq major-mode 'idlwave-mode)] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3392 "--" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3393 ["Redisplay" idlwave-shell-redisplay t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3394 ["Stack Up" idlwave-shell-stack-up t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3395 ["Stack Down" idlwave-shell-stack-down t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3396 "--" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3397 ["Update Working Dir" idlwave-shell-resync-dirs t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3398 ["Reset IDL" idlwave-shell-reset t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3399 "--" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3400 ["Toggle Toolbar" idlwave-shell-toggle-toolbar t] |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3401 ["Exit IDL" idlwave-shell-quit t])) |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3402 |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3403 (setq idlwave-shell-menu-def |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3404 '("Debug" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3405 ("Compile & Run" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3406 ["Save and .RUN" idlwave-shell-save-and-run |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3407 (or (eq major-mode 'idlwave-mode) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3408 idlwave-shell-last-save-and-action-file)] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3409 ["Save and .COMPILE" idlwave-shell-save-and-compile |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3410 (or (eq major-mode 'idlwave-mode) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3411 idlwave-shell-last-save-and-action-file)] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3412 ["Save and @Batch" idlwave-shell-save-and-batch |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3413 (or (eq major-mode 'idlwave-mode) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3414 idlwave-shell-last-save-and-action-file)] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3415 ["Goto Next Error" idlwave-shell-goto-next-error t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3416 "--" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3417 ["Run Region" idlwave-shell-run-region (eq major-mode 'idlwave-mode)] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3418 "--" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3419 ["Execute Default Cmd" idlwave-shell-execute-default-command-line t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3420 ["Edit Default Cmd" idlwave-shell-edit-default-command-line t]) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3421 ("Breakpoints" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3422 ["Set Breakpoint" idlwave-shell-break-here |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3423 (eq major-mode 'idlwave-mode)] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3424 ["Break in Module" idlwave-shell-break-in t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3425 ["Clear Breakpoint" idlwave-shell-clear-current-bp t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3426 ["Clear All Breakpoints" idlwave-shell-clear-all-bp t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3427 ["List All Breakpoints" idlwave-shell-list-all-bp t]) |
34433
31e98a1ac98f
Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents:
34342
diff
changeset
|
3428 ("Continue/Step" |
29774
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3429 ["Step (into)" idlwave-shell-step t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3430 ["Step (over)" idlwave-shell-stepover t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3431 ["Skip One Statement" idlwave-shell-skip t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3432 ["Continue" idlwave-shell-cont t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3433 ["... to End of Block" idlwave-shell-up t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3434 ["... to End of Subprog" idlwave-shell-return t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3435 ["... to End of Subprog+1" idlwave-shell-out t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3436 ["... to Here (Cursor Line)" idlwave-shell-to-here |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3437 (eq major-mode 'idlwave-mode)]) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3438 ("Print Expression" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3439 ["Print expression" idlwave-shell-print t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3440 ["Help on expression" idlwave-shell-help-expression t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3441 ["Evaluate Region" idlwave-shell-evaluate-region |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3442 (eq major-mode 'idlwave-mode)] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3443 "--" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3444 ["Redisplay" idlwave-shell-redisplay t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3445 ["Stack Up" idlwave-shell-stack-up t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3446 ["Stack Down" idlwave-shell-stack-down t]) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3447 ("Input Mode" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3448 ["Send one char" idlwave-shell-send-char t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3449 ["Temporary Character Mode" idlwave-shell-char-mode-loop t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3450 "--" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3451 ["Use Input Mode Magic" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3452 (setq idlwave-shell-use-input-mode-magic |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3453 (not idlwave-shell-use-input-mode-magic)) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3454 :style toggle :selected idlwave-shell-use-input-mode-magic]) |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3455 "--" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3456 ["Update Working Dir" idlwave-shell-resync-dirs t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3457 ["Reset IDL" idlwave-shell-reset t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3458 "--" |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3459 ["Toggle Toolbar" idlwave-shell-toggle-toolbar t] |
8eff9cc9cbae
Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents:
27607
diff
changeset
|
3460 ["Exit IDL" idlwave-shell-quit t])) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3461 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3462 (if (or (featurep 'easymenu) (load "easymenu" t)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3463 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3464 (easy-menu-define |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3465 idlwave-shell-mode-menu idlwave-shell-mode-map "IDL shell menus" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3466 idlwave-shell-menu-def) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3467 (easy-menu-define |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3468 idlwave-mode-debug-menu idlwave-mode-map "IDL debugging menus" |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3469 idlwave-shell-menu-def) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3470 (save-excursion |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3471 (mapcar (lambda (buf) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3472 (set-buffer buf) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3473 (if (eq major-mode 'idlwave-mode) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3474 (progn |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3475 (easy-menu-remove idlwave-mode-debug-menu) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3476 (easy-menu-add idlwave-mode-debug-menu)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3477 (buffer-list))))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3478 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3479 ;; The Breakpoint Glyph ------------------------------------------------------- |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3480 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3481 (defvar idlwave-shell-bp-glyph nil |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3482 "The glyph to mark breakpoint lines in the source code.") |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3483 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3484 (let ((image-string "/* XPM */ |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3485 static char * file[] = { |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3486 \"14 12 3 1\", |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3487 \" c None s backgroundColor\", |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3488 \". c #4B4B4B4B4B4B\", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3489 \"R c #FFFF00000000\", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3490 \" \", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3491 \" \", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3492 \" RRRR \", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3493 \" RRRRRR \", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3494 \" RRRRRRRR \", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3495 \" RRRRRRRR \", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3496 \" RRRRRRRR \", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3497 \" RRRRRRRR \", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3498 \" RRRRRR \", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3499 \" RRRR \", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3500 \" \", |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3501 \" \"};")) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3502 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3503 (setq idlwave-shell-bp-glyph |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3504 (cond ((and (featurep 'xemacs) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3505 (featurep 'xpm)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3506 (make-glyph image-string)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3507 ((and (not (featurep 'xemacs)) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3508 (fboundp 'image-type-available-p) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3509 (image-type-available-p 'xpm)) |
46529
148f4d9a8905
Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents:
46289
diff
changeset
|
3510 (list 'image :type 'xpm :data image-string :ascent 'center)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3511 (t nil)))) |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3512 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3513 (provide 'idlw-shell) |
27166
b2d17f0c1668
Also provide idlwave.shell, not only idlw-shell.
Carsten Dominik <dominik@science.uva.nl>
parents:
27108
diff
changeset
|
3514 (provide 'idlwave-shell) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3515 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3516 ;;; Load the toolbar when wanted by the user. |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3517 |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
3518 (autoload 'idlwave-toolbar-toggle "idlw-toolbar" |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
3519 "Toggle the IDLWAVE toolbar") |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
3520 (autoload 'idlwave-toolbar-add-everywhere "idlw-toolbar" |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
3521 "Add IDLWAVE toolbar") |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3522 (defun idlwave-shell-toggle-toolbar () |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3523 "Toggle the display of the debugging toolbar." |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3524 (interactive) |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
3525 (idlwave-toolbar-toggle)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3526 |
27607
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
3527 (if idlwave-shell-use-toolbar |
527d42ebb15e
(idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents:
27185
diff
changeset
|
3528 (add-hook 'idlwave-shell-mode-hook 'idlwave-toolbar-add-everywhere)) |
27107
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3529 |
7b2b73f13427
Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff
changeset
|
3530 ;;; idlw-shell.el ends here |