annotate lisp/progmodes/idlw-shell.el @ 64466:24be77ee0c97

(GTK styles): Delete duplicate words.
author Juri Linkov <juri@jurta.org>
date Mon, 18 Jul 2005 16:20:32 +0000
parents 18a818a2ee7c
children 629afbe74e61 6c13700d1c13 f9a65d7ebd29
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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.
60925
a9c571ede913 * progmodes/cperl-mode.el, progmodes/idlw-shell.el,
Werner LEMBERG <wl@gnu.org>
parents: 58948
diff changeset
2 ;; Copyright (c) 1999,2000,2001,2002,2003,2004,2005 Free Software Foundation
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4 ;; Authors: J.D. Smith <jdsmith@as.arizona.edu>
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
5 ;; Carsten Dominik <dominik@astro.uva.nl>
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
6 ;; Chris Chase <chase@att.com>
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
7 ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
8 ;; Version: 5.7_22
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
64085
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 64001
diff changeset
25 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 64001
diff changeset
26 ;; Boston, MA 02110-1301, USA.
27107
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 ;; =============
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
48 ;;
27107
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.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
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
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
63 ;;
27107
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 ;; 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
76 ;; 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
77 ;; it is a bug in XEmacs.
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
78 ;; 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
79 ;;
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
80 ;;
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
81 ;; CUSTOMIZATION VARIABLES
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
82 ;; =======================
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
83 ;;
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
84 ;; 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
85 ;; 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
86 ;; `M-x idlwave-customize'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
87 ;;
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
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
91 ;;; Code:
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
92
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
93 (require 'comint)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
94 (require 'idlwave)
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 (eval-when-compile (require 'cl))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
97
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
98 (defvar idlwave-shell-have-new-custom nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
99 (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
100 ;; 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
101 (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
102 (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
103 (fboundp 'custom-declare-variable)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
104 (fboundp 'defface))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
105 ;; 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
106 (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
107 ;; 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
108 (defmacro defgroup (&rest args) nil)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
109 (defmacro defcustom (var value doc &rest args)
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
110 `(defvar ,var ,value ,doc))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
111
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
112 ;;; Customizations: idlwave-shell group
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
113
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
114 ;; General/Misc. customizations
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
115 (defgroup idlwave-shell-general-setup nil
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
116 "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
117 :prefix "idlwave-shell"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
118 :group 'idlwave)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
119
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
120 (defcustom idlwave-shell-prompt-pattern "^\r? ?IDL> "
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
121 "*Regexp to match IDL prompt at beginning of a line.
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
122 For example, \"^\r?IDL> \" or \"^\r?WAVE> \".
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
123 The \"^\r?\" is needed, to indicate the beginning of the line, with
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
124 optional return character (which IDL seems to output randomly).
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
125 This variable is used to initialize `comint-prompt-regexp' in the
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
126 process buffer.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
127
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
128 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
129 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
130 :type 'regexp)
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 (defcustom idlwave-shell-process-name "idl"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
133 "*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
134 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
135 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
136 :type 'string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
137
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
138 ;; (defcustom idlwave-shell-automatic-start...) See idlwave.el
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
139
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
140 (defcustom idlwave-shell-use-dedicated-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
141 "*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
142 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
143 :type 'boolean)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
144
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
145 (defcustom idlwave-shell-frame-parameters
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
146 '((height . 30) (unsplittable . nil))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
147 "The frame parameters for a dedicated idlwave-shell frame.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
148 See also `idlwave-shell-use-dedicated-frame'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
149 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
150 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
151 :type '(repeat
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
152 (cons symbol sexp)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
153
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
154 (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
155 "*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
156 :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
157 :type 'boolean)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
158
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
159 (defcustom idlwave-shell-arrows-do-history t
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
160 "*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
161 This variable can have 3 values:
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
162 nil Arrows just move the cursor
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
163 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
164 walk the history
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
165 '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
166 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
167 :group 'idlwave-shell-general-setup
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
168 :type '(choice
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
169 (const :tag "never" nil)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
170 (const :tag "everywhere" t)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
171 (const :tag "in command line only" cmdline)))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
172
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
173 ;; 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
174
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
175 (defcustom idlwave-shell-use-toolbar t
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
176 "*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
177 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
178 Exiting the shell will removed everywhere.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
179 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
180 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
181 `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
182 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
183 :type 'boolean)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
184
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
185 (defcustom idlwave-shell-temp-pro-prefix "/tmp/idltemp"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
186 "*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
187 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
188 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
189 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
190 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
191 :type 'string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
192
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
193 (defvar idlwave-shell-fix-inserted-breaks nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
194 "*OBSOLETE VARIABLE, is no longer used.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
195
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
196 The documentation of this variable used to be:
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
197 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
198
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
199 (defcustom idlwave-shell-prefix-key "\C-c\C-d"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
200 "*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
201 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
202 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
203 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
204 :type 'string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
205
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
206 (defcustom idlwave-shell-activate-prefix-keybindings t
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
207 "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
208 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
209 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
210 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
211 :type 'boolean)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
212
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
213 (defcustom idlwave-shell-automatic-electric-debug 'breakpoint
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
214 "Enter the electric-debug minor mode automatically.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
215 This occurs at a breakpoint or any other halt. The mode is exited
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
216 upon return to the main level. Can be set to 'breakpoint to enter
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
217 electric debug mode only when breakpoints are tripped."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
218 :group 'idlwave-shell-general-setup
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
219 :type '(choice
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
220 (const :tag "never" nil)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
221 (const :tag "always" t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
222 (const :tag "for breakpoints only" breakpoint)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
223
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
224 (defcustom idlwave-shell-electric-zap-to-file t
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
225 "When entering electric debug mode, select the window displaying the
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
226 file at which point is stopped. This takes point away from the shell
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
227 window, but is useful for stepping, etc."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
228 :group 'idlwave-shell-general-setup
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
229 :type 'boolean)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
230
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
231 ;; (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
232
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
233 (defvar idlwave-shell-activate-alt-keybindings nil
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
234 "Obsolete variable. See `idlwave-shell-debug-modifiers'.")
27107
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 (defcustom idlwave-shell-use-truename nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
237 "*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
238 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
239 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
240 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
241 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
242 reuse that buffer.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
243 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
244 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
245 to set this option to nil."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
246 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
247 :type 'boolean)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
248
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
249 (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
250 "The characters allowed in file names, as a string.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
251 Used for file name completion. Must not contain `'', `,' and `\"'
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
252 because these are used as separators by IDL."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
253 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
254 :type 'string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
255
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
256 (defcustom idlwave-shell-mode-hook '()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
257 "*Hook for customising `idlwave-shell-mode'."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
258 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
259 :type 'hook)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
260
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
261 (defcustom idlwave-shell-graphics-window-size '(500 400)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
262 "Size of IDL graphics windows popped up by special IDLWAVE command.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
263 The command is `C-c C-d C-f' and accepts as a prefix the window nr.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
264 A command like `WINDOW,N,xsize=XX,ysize=YY' is sent to IDL."
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
265 :group 'idlwave-shell-general-setup
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
266 :type '(list
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
267 (integer :tag "x size")
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
268 (integer :tag "y size")))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
269
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
270
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
271 ;; Commands Sent to Shell... etc.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
272 (defgroup idlwave-shell-command-setup nil
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
273 "Setup for command parameters of the Shell interaction for IDLWAVE."
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
274 :prefix "idlwave-shell"
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
275 :group 'idlwave)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
276
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
277 (defcustom idlwave-shell-initial-commands "!more=0 & defsysv,'!ERROR_STATE',EXISTS=__e & if __e then begin & !ERROR_STATE.MSG_PREFIX=\"% \" & delvar,__e & endif"
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
278 "Initial commands, separated by newlines, to send to IDL.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
279 This string is sent to the IDL process by `idlwave-shell-mode' which is
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
280 invoked by `idlwave-shell'."
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
281 :group 'idlwave-shell-command-setup
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
282 :type 'string)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
283
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
284 (defcustom idlwave-shell-save-command-history t
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
285 "Non-nil means preserve command history between sessions.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
286 The file `idlwave-shell-command-history-file' is used to save and restore
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
287 the history."
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
288 :group 'idlwave-shell-command-setup
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
289 :type 'boolean)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
290
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
291 (defcustom idlwave-shell-command-history-file "idlwhist"
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
292 "The file in which the command history of the idlwave shell is saved.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
293 In order to change the size of the history, see the variable
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
294 `comint-input-ring-size'.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
295 The history is only saved if the variable `idlwave-shell-save-command-history'
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
296 is non-nil."
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
297 :group 'idlwave-shell-command-setup
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
298 :type 'file)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
299
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
300 (defcustom idlwave-shell-show-commands
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
301 '(run misc breakpoint)
47915
f1ce118178c3 (idlwave-shell-set-bp): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents: 47453
diff changeset
302 "*A list of command types to show output from in the shell.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
303 Possibilities are 'run, 'debug, 'breakpoint, and 'misc. Unselected
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
304 types are not displayed in the shell. The type 'everything causes all
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
305 the copious shell traffic to be displayed."
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
306 :group 'idlwave-shell-command-setup
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
307 :type '(choice
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
308 (const everything)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
309 (set :tag "Checklist" :greedy t
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
310 (const :tag "All .run and .compile commands" run)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
311 (const :tag "All breakpoint commands" breakpoint)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
312 (const :tag "All debug and stepping commands" debug)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
313 (const :tag "Close, window, retall, etc. commands" misc))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
314
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
315 (defcustom idlwave-shell-examine-alist
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
316 '(("Print" . "print,___")
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
317 ("Help" . "help,___")
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
318 ("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
319 ("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
320 ("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
321 ("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
322 ("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
323 ("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
324 ("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
325 ("Widget Geometry" . "help,widget_info(___,/GEOMETRY)"))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
326 "Alist of special examine commands for popup selection.
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
327 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
328 `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
329 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
330 expression being examined."
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
331 :group 'idlwave-shell-command-setup
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
332 :type '(repeat
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
333 (cons
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
334 (string :tag "Label ")
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
335 (string :tag "Command"))))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
336
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
337 (defvar idlwave-shell-print-expression-function nil
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
338 "*OBSOLETE VARIABLE, is no longer used.")
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
339
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
340 (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
341 "*Non-nil mean, put output of examine commands in their own buffer."
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
342 :group 'idlwave-shell-command-setup
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
343 :type 'boolean)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
344
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
345 (defcustom idlwave-shell-comint-settings
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
346 '((comint-scroll-to-bottom-on-input . t)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
347 (comint-scroll-to-bottom-on-output . t)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
348 (comint-scroll-show-maximum-output . nil)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
349 (comint-prompt-read-only . t))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
350
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
351 "Alist of special settings for the comint variables in the IDLWAVE Shell.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
352 Each entry is a cons cell with the name of a variable and a value.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
353 The function `idlwave-shell-mode' will make local variables out of each entry.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
354 Changes to this variable will only be active when the shell buffer is
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
355 newly created."
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
356 :group 'idlwave-shell-command-setup
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
357 :type '(repeat
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
358 (cons variable sexp)))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
359
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
360 (defcustom idlwave-shell-query-for-class t
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
361 "*Non-nil means query the shell for object class on object completions."
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
362 :group 'idlwave-shell-command-setup
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
363 :type 'boolean)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
364
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
365 (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
366 "*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
367 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
368 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
369 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
370 back, respectively. See `idlwave-shell-input-mode-spells' for details."
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
371 :group 'idlwave-shell-command-setup
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
372 :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
373
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
374 (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
375 '("^<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
376 "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
377
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
378 When the first regexp matches in the output stream of IDL, IDLWAVE
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
379 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
380 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
381
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
382 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
383 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
384 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
385 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
386 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
387
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
388 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
389 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
390 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
391
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
392 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
393 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
394 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
395
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
396 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
397 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
398 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
399 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
400 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
401 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
402
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
403 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
404 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
405 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
406
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
407 Since the IDLWAVE shell defines the system variable `!IDLWAVE_VERSION',
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
408 you could actually check if you are running under Emacs before printing
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
409 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
410
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
411 Usage:
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
412 ======
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
413 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
414 idlwave_char_input,/on ; Start the loop to send characters
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
415 idlwave_char_input,/off ; End the loop to send characters
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
416
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
417
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
418 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
419 ;; 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
420 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
421 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
422 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
423 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
424 else print,'<onechar>'
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
425 endif
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
426 end"
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
427 :group 'idlwave-shell-command-setup
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
428 :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
429 (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
430 (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
431 (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
432
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
433 (defcustom idlwave-shell-breakpoint-popup-menu t
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
434 "*If non-nil, provide a menu on mouse-3 on breakpoint lines, and
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
435 popup help text on the line."
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
436 :group 'idlwave-shell-command-setup
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
437 :type 'boolean)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
438
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
439 ;; Breakpoint Overlays etc
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
440 (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
441 "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
442 :prefix "idlwave-shell"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
443 :group 'idlwave)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
444
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
445 (defcustom idlwave-shell-mark-stop-line t
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
446 "*Non-nil means, mark the source code line where IDL is currently stopped.
60925
a9c571ede913 * progmodes/cperl-mode.el, progmodes/idlw-shell.el,
Werner LEMBERG <wl@gnu.org>
parents: 58948
diff changeset
447 Value decides about the method which is used to mark the line. Valid values
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
448 are:
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 nil Do not mark the line
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
451 'arrow Use the overlay arrow
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
452 '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
453 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
454 otherwise the overlay arrow.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
455 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
456 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
457 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
458 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
459 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
460 :group 'idlwave-shell-highlighting-and-faces
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
461 :type '(choice
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
462 (const :tag "No marking" nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
463 (const :tag "Use overlay arrow" arrow)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
464 (const :tag "Highlight with face" face)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
465 (const :tag "Face or arrow." t)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
466
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
467 (defcustom idlwave-shell-overlay-arrow ">"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
468 "*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
469 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
470 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
471 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
472 See also `idlwave-shell-use-overlay-arrow'."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
473 :group 'idlwave-shell-highlighting-and-faces
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
474 :type 'string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
475
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
476 (defcustom idlwave-shell-stop-line-face 'highlight
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
477 "*The face for `idlwave-shell-stop-line-overlay'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
478 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
479 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
480 :group 'idlwave-shell-highlighting-and-faces
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
481 :type 'symbol)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
482
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
483 (defcustom idlwave-shell-electric-stop-color "Violet"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
484 "*The color for the default face or overlay arrow when stopped."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
485 :group 'idlwave-shell-highlighting-and-faces
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
486 :type 'string)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
487
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
488 (defcustom idlwave-shell-electric-stop-line-face
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
489 (prog1
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
490 (copy-face 'modeline 'idlwave-shell-electric-stop-line-face)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
491 (set-face-background 'idlwave-shell-electric-stop-line-face
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
492 idlwave-shell-electric-stop-color)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
493 (condition-case nil
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
494 (set-face-foreground 'idlwave-shell-electric-stop-line-face nil)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
495 (error nil)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
496 "*The face for `idlwave-shell-stop-line-overlay' when in electric debug mode.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
497 Allows you to choose the font, color and other properties for the line
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
498 where IDL is stopped, when in Electric Debug Mode."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
499 :group 'idlwave-shell-highlighting-and-faces
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
500 :type 'symbol)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
501
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
502 (defcustom idlwave-shell-mark-breakpoints t
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
503 "*Non-nil means, mark breakpoints in the source files.
60925
a9c571ede913 * progmodes/cperl-mode.el, progmodes/idlw-shell.el,
Werner LEMBERG <wl@gnu.org>
parents: 58948
diff changeset
504 Valid values are:
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
505 nil Do not mark breakpoints.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
506 'face Highlight line with `idlwave-shell-breakpoint-face'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
507 '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
508 support glyphs, will use 'face instead.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
509 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
510 :group 'idlwave-shell-highlighting-and-faces
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
511 :type '(choice
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
512 (const :tag "No marking" nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
513 (const :tag "Highlight with face" face)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
514 (const :tag "Display glyph (red dot)" glyph)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
515 (const :tag "Glyph or face." t)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
516
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
517 (defvar idlwave-shell-use-breakpoint-glyph t
47262
1c1d47728dc8 (idlwave-shell-use-breakpoint-glyph): Fix spacing.
Juanma Barranquero <lekktu@gmail.com>
parents: 46529
diff changeset
518 "Obsolete variable. See `idlwave-shell-mark-breakpoints.")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
519
63450
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
520 (defcustom idlwave-shell-breakpoint-face 'idlwave-shell-bp
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
521 "*The face for breakpoint lines in the source code.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
522 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
523 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
524 :group 'idlwave-shell-highlighting-and-faces
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
525 :type 'symbol)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
526
63450
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
527 (if (not idlwave-shell-have-new-custom)
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
528 ;; Just copy the underline face to be on the safe side.
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
529 (copy-face 'underline 'idlwave-shell-bp)
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
530 ;; We have the new customize - use it to define a customizable face
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
531 (defface idlwave-shell-bp
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
532 '((((class color)) (:foreground "Black" :background "Pink"))
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
533 (t (:underline t)))
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
534 "Face for highlighting lines with breakpoints."
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
535 :group 'idlwave-shell-highlighting-and-faces)
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
536 ;; backward-compatibility alias
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
537 (put 'idlwave-shell-bp-face 'face-alias 'idlwave-shell-bp))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
538
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
539 (defcustom idlwave-shell-disabled-breakpoint-face
63450
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
540 'idlwave-shell-disabled-bp
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
541 "*The face for disabled breakpoint lines in the source code.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
542 Allows you to choose the font, color and other properties for
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
543 lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
544 :group 'idlwave-shell-highlighting-and-faces
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
545 :type 'symbol)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
546
63450
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
547 (if (not idlwave-shell-have-new-custom)
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
548 ;; Just copy the underline face to be on the safe side.
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
549 (copy-face 'underline 'idlwave-shell-disabled-bp)
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
550 ;; We have the new customize - use it to define a customizable face
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
551 (defface idlwave-shell-disabled-bp
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
552 '((((class color)) (:foreground "Black" :background "gray"))
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
553 (t (:underline t)))
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
554 "Face for highlighting lines with breakpoints."
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
555 :group 'idlwave-shell-highlighting-and-faces)
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
556 ;; backward-compatibility alias
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
557 (put 'idlwave-shell-disabled-bp-face 'face-alias 'idlwave-shell-disabled-bp))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
558
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
559
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
560 (defcustom idlwave-shell-expression-face 'secondary-selection
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
561 "*The face for `idlwave-shell-expression-overlay'.
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
562 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
563 the expression printed by IDL."
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
564 :group 'idlwave-shell-highlighting-and-faces
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
565 :type 'symbol)
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
566
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
567 (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
568 "*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
569 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
570 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
571 :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
572 :type 'symbol)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
573
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
574 ;;; End user customization variables
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
575
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
576 ;;; External variables
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
577 (defvar comint-last-input-start)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
578 (defvar comint-last-input-end)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
579
58307
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
580 ;; Other variables
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
581 (defvar idlwave-shell-temp-pro-file nil
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
582 "Absolute pathname for temporary IDL file for compiling regions")
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
583
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
584 (defvar idlwave-shell-temp-rinfo-save-file nil
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
585 "Absolute pathname for temporary IDL file save file for routine_info.
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
586 This is used to speed up the reloading of the routine info procedure
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
587 before use by the shell.")
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
588
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
589 (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
590 "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
591
58307
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
592 TYPE is either 'pro' or 'rinfo', and `idlwave-shell-temp-pro-file' or
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
593 `idlwave-shell-temp-rinfo-save-file' is set (respectively)."
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
594 (cond
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
595 ((eq type 'rinfo)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
596 (or idlwave-shell-temp-rinfo-save-file
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
597 (setq 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
598 (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
599 ((eq type 'pro)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
600 (or idlwave-shell-temp-pro-file
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
601 (setq idlwave-shell-temp-pro-file
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
602 (idlwave-shell-make-temp-file idlwave-shell-temp-pro-prefix))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
603 (t (error "Wrong argument (idlwave-shell-temp-file): %s"
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
604 (symbol-name type)))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
605
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
606
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
607 (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
608 "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
609 ; 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
610 (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
611 (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
612 (let (file
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
613 (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
614 temporary-file-directory
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
615 "/tmp")))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
616 (while (condition-case ()
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
617 (progn
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
618 (setq file
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
619 (make-temp-name
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
620 (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
621 (if (featurep 'xemacs)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
622 (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
623 (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
624 nil)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
625 (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
626 ;; 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
627 ;; `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
628 nil)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
629 file)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
630
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
631
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
632 (defvar idlwave-shell-dirstack-query "cd,current=___cur & print,___cur"
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
633 "Command used by `idlwave-shell-resync-dirs' to query IDL for
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
634 the directory stack.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
635
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
636 (defvar idlwave-shell-path-query "print,'PATH:<'+transpose(expand_path(!PATH,/ARRAY))+'>' & print,'SYSDIR:<'+!dir+'>'"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
637
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
638 "The command which gets !PATH and !DIR info from the shell.")
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
639
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
640 (defvar idlwave-shell-mode-line-info nil
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
641 "Additional info displayed in the mode line")
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
642
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
643 (defvar idlwave-shell-default-directory nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
644 "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
645
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
646 (defvar idlwave-shell-last-save-and-action-file nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
647 "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
648
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
649 ;; Highlighting uses overlays. When necessary, require the emulation.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
650 (if (not (fboundp 'make-overlay))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
651 (condition-case nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
652 (require 'overlay)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
653 (error nil)))
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 (defvar idlwave-shell-stop-line-overlay nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
656 "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
657 (defvar idlwave-shell-is-stopped nil)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
658 (defvar idlwave-shell-expression-overlay nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
659 "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
660 (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
661 "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
662
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
663 ;; 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
664 ;; are reloading this file.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
665 (if (overlayp idlwave-shell-stop-line-overlay)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
666 (delete-overlay idlwave-shell-stop-line-overlay))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
667 (if (overlayp idlwave-shell-expression-overlay)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
668 (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
669 (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
670 (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
671
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
672 ;; Set to nil initially
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
673 (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
674 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
675 idlwave-shell-output-overlay nil)
27107
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 ;; 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
678 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
679 ((or (null idlwave-shell-mark-stop-line)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
680 (eq idlwave-shell-mark-stop-line 'arrow))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
681 ;; Leave the overlay nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
682 nil)
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 ((eq idlwave-shell-mark-stop-line 'face)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
685 ;; 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
686 ;; So who can display faces?
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
687 (when (or (featurep 'xemacs) ; XEmacs can do also ttys
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
688 (fboundp 'tty-defined-colors) ; Emacs 21 as well
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
689 window-system) ; Window systems always
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
690 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
691 (setq idlwave-shell-stop-line-overlay (make-overlay 1 1))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
692 (overlay-put idlwave-shell-stop-line-overlay
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
693 'face idlwave-shell-stop-line-face))))
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 (t
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
696 ;; 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
697 (if window-system
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
698 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
699 (setq idlwave-shell-stop-line-overlay (make-overlay 1 1))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
700 (overlay-put idlwave-shell-stop-line-overlay
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
701 'face idlwave-shell-stop-line-face)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
702
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
703 ;; Now the expression and output overlays
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
704 (setq idlwave-shell-expression-overlay (make-overlay 1 1))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
705 (overlay-put idlwave-shell-expression-overlay
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
706 '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
707 (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
708 (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
709 '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
710
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
711 (defvar idlwave-shell-bp-query "help,/breakpoints"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
712 "Command to obtain list of breakpoints")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
713
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
714 (defvar idlwave-shell-command-output nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
715 "String for accumulating current command output.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
716
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
717 (defvar idlwave-shell-post-command-hook nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
718 "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
719 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
720 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
721
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
722 (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
723 "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
724
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
725 (defvar idlwave-shell-hide-output nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
726 "If non-nil the process output is not inserted into the output
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
727 buffer.")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
728
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
729 (defvar idlwave-shell-show-if-error nil
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
730 "If non-nil the process output is inserted into the output buffer if
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
731 it contains an error message, even if hide-output is non-nil.")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
732
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
733 (defvar idlwave-shell-accumulation nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
734 "Accumulate last line of output.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
735
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
736 (defvar idlwave-shell-command-line-to-execute nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
737 (defvar idlwave-shell-cleanup-hook nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
738 "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
739
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
740 (defvar idlwave-shell-pending-commands nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
741 "List of commands to be sent to IDL.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
742 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
743 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
744 `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
745 from command CMD. PCMD and HIDE are optional.")
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 (defun idlwave-shell-buffer ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
748 "Name of buffer associated with IDL process.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
749 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
750 with `*'s."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
751 (concat "*" idlwave-shell-process-name "*"))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
752
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
753 (defvar idlwave-shell-ready nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
754 "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
755
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
756 ;;; 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
757 ;;; resync our idea of where IDL execution currently is.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
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 (defvar idlwave-shell-halt-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
761 "The frame associated with halt/breakpoint messages.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
762
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
763 (defvar idlwave-shell-step-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
764 "The frame associated with step messages.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
765
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
766 (defvar idlwave-shell-trace-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
767 "The frame associated with trace messages.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
768
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
769 (defconst idlwave-shell-halt-messages
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
770 '("^% Interrupted at:"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
771 "^% Stepped to:"
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
772 "^% Skipped to:"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
773 "^% Stop encountered:"
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 "*A list of regular expressions matching IDL messages.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
776 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
777 IDL is currently stopped.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
778
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
779
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
780 (defconst idlwave-shell-halt-messages-re
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
781 (mapconcat 'identity idlwave-shell-halt-messages "\\|")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
782 "The regular expression computed from idlwave-shell-halt-messages")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
783
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
784 (defconst idlwave-shell-trace-message-re
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
785 "^% At " ;; First line of a trace message
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
786 "*A regular expression matching IDL trace messages. These are the
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
787 messages containing file and line information of a current
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
788 traceback.")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
789
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
790 (defconst idlwave-shell-step-messages
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
791 '("^% Stepped to:"
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 "*A list of regular expressions matching stepped execution messages.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
794 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
795 IDL has currently stepped.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
796
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
797 (defvar idlwave-shell-break-message "^% Breakpoint at:"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
798 "*Regular expression matching an IDL breakpoint message line.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
799
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
800 (defconst idlwave-shell-electric-debug-help
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
801 " ==> IDLWAVE Electric Debug Mode Help <==
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
802
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
803 Break Point Setting and Clearing:
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
804 b Set breakpoint ([C-u b] for conditional, [C-n b] nth hit, etc.).
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
805 d Clear nearby breakpoint.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
806 a Clear all breakpoints.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
807 i Set breakpoint in routine named here.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
808 j Set breakpoint at beginning of containing routine.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
809 \\ Toggle breakpoint disable
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
810 ] Go to next breakpoint in file.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
811 [ Go to previous breakpoint in file.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
812
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
813 Stepping, Continuing, and the Stack:
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
814 s or SPACE Step, into function calls.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
815 n Step, over function calls.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
816 k Skip one statement.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
817 m Continue to end of function.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
818 o Continue past end of function.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
819 u Continue to end of block.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
820 h Continue to line at cursor position.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
821 r Continue execution to next breakpoint, if any.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
822 + or = Show higher level in calling stack.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
823 - or _ Show lower level in calling stack.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
824
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
825 Examining Expressions (with prefix for examining the region):
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
826 p Print expression near point or in region ([C-u p]).
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
827 ? Help on expression near point or in region ([C-u ?]).
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
828 x Examine expression near point or in region ([C-u x]) with
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
829 letter completion of the examine type.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
830
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
831 Miscellaneous:
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
832 q Quit - end debugging session and return to the Shell's main level.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
833 v Turn Electric Debugging Mode off (C-c C-d C-v to return).
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
834 t Print a calling-level traceback in the shell.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
835 z Reset IDL.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
836 C-? Show this help menu.")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
837
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
838 (defvar idlwave-shell-bp-alist)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
839 ;(defvar idlwave-shell-post-command-output)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
840 (defvar idlwave-shell-sources-alist)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
841 (defvar idlwave-shell-menu-def)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
842 (defvar idlwave-shell-mode-menu)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
843 (defvar idlwave-shell-initial-commands)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
844 (defvar idlwave-shell-syntax-error)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
845 (defvar idlwave-shell-other-error)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
846 (defvar idlwave-shell-error-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
847 (defvar idlwave-shell-error-last)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
848 (defvar idlwave-shell-bp-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
849 (defvar idlwave-shell-sources-query)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
850 (defvar idlwave-shell-mode-map)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
851 (defvar idlwave-shell-calling-stack-index)
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
852 (defvar idlwave-shell-only-prompt-pattern nil)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
853 (defvar tool-bar-map)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
854
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
855 (defun idlwave-shell-mode ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
856 "Major mode for interacting with an inferior IDL process.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
857
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
858 1. Shell Interaction
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
859 -----------------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
860 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
861 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
862 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
863 end of the buffer.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
864
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
865 Command history, searching of previous commands, command line
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
866 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
867 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
868 the arrow keys UP and DOWN.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
869
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
870 2. Completion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
871 ----------
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
872 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
873 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
874 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
875 like in `idlwave-mode'.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
876
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
877 3. Routine Info
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
878 ------------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
879 `\\[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
880 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
881 the one whose argument list is being edited.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
882 To update IDLWAVE's knowledge about compiled or edited modules, use
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
883 \\[idlwave-update-routine-info].
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
884 \\[idlwave-find-module] find the source of a module.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
885 \\[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
886 \\[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
887 point, if online help has been installed.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
888
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
889
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
890 4. Debugging
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
891 ---------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
892 A complete set of commands for compiling and debugging IDL programs
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
893 is available from the menu. Also keybindings starting with a
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
894 `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
895 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
896 keybindings is again the menu.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
897
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
898 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
899 installed.
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 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
902 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
903 window. Breakpoints are also highlighted in the source.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
904
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
905 \\[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
906 to correspond to the IDL process current directory.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
907
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
908 5. Expression Examination
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
909 ----------------------
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
910
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
911 Expressions near point can be examined with print,
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
912 \\[idlwave-shell-print] or \\[idlwave-shell-mouse-print] with the
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
913 mouse, help, \\[idlwave-shell-help-expression] or
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
914 \\[idlwave-shell-mouse-help] with the mouse, or with a
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
915 configureable set of custom examine commands using
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
916 \\[idlwave-shell-examine-select]. The mouse examine commands can
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
917 also work by click and drag, to select an expression for
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
918 examination.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
919
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
920 6. Hooks
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
921 -----
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
922 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
923 `idlwave-shell-mode-hook' (in that order).
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
924
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
925 7. Documentation and Customization
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
926 -------------------------------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
927 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
928 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
929 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
930 homepage at `http://idlwave.org'.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
931 IDLWAVE has customize support - see the group `idlwave'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
932
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
933 8. Keybindings
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
934 -----------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
935 \\{idlwave-shell-mode-map}"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
936
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
937 (interactive)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
938 (idlwave-setup) ; Make sure config files and paths, etc. are available.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
939 (unless (file-name-absolute-p idlwave-shell-command-history-file)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
940 (setq idlwave-shell-command-history-file
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
941 (expand-file-name idlwave-shell-command-history-file
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
942 idlwave-config-directory)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
943
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
944 ;; We don't do `kill-all-local-variables' here, because this is done by
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
945 ;; comint
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
946 (setq comint-prompt-regexp idlwave-shell-prompt-pattern)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
947 (setq comint-process-echoes t)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
948
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
949 ;; 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
950 (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
951 ; (setq comint-input-ring-size 64)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
952 (make-local-variable 'comint-completion-addsuffix)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
953 (set (make-local-variable 'completion-ignore-case) t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
954 (setq comint-completion-addsuffix '("/" . ""))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
955 (setq comint-input-ignoredups t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
956 (setq major-mode 'idlwave-shell-mode)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
957 (setq mode-name "IDL-Shell")
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
958 (setq idlwave-shell-mode-line-info nil)
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
959 (setq mode-line-format
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
960 '(""
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
961 mode-line-modified
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
962 mode-line-buffer-identification
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
963 " "
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
964 global-mode-string
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
965 " %[("
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
966 mode-name
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
967 mode-line-process
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
968 minor-mode-alist
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
969 "%n"
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
970 ")%]-"
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
971 idlwave-shell-mode-line-info
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
972 "---"
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
973 (line-number-mode "L%l--")
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
974 (column-number-mode "C%c--")
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
975 (-3 . "%p")
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
976 "-%-"))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
977 ;; (make-local-variable 'idlwave-shell-bp-alist)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
978 (setq idlwave-shell-halt-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
979 idlwave-shell-trace-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
980 idlwave-shell-command-output nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
981 idlwave-shell-step-frame nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
982 (idlwave-shell-display-line nil)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
983 (setq idlwave-shell-calling-stack-index 0)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
984 (setq idlwave-shell-only-prompt-pattern
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
985 (concat "\\`[ \t\n]*"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
986 (substring idlwave-shell-prompt-pattern 1)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
987 "[ \t\n]*\\'"))
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
988
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
989 (when idlwave-shell-query-for-class
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
990 (add-to-list (make-local-variable 'idlwave-determine-class-special)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
991 'idlwave-shell-get-object-class)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
992 (setq idlwave-store-inquired-class t))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
993
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
994 ;; 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
995 ;; 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
996 (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
997 (setq idlwave-idlwave_routine_info-compiled nil)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
998 (setq idlwave-shell-ready nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
999 (setq idlwave-shell-bp-alist nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1000 (idlwave-shell-update-bp-overlays) ; Throw away old overlays
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1001 (setq idlwave-shell-sources-alist nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1002 (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
1003 (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
1004
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1005 (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
1006 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
1007 (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
1008 (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
1009 (use-local-map idlwave-shell-mode-map)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1010 (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
1011
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1012 ;; 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
1013 (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
1014 (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
1015 (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
1016 (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
1017
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1018
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1019 (unless (memq 'comint-carriage-motion
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1020 (default-value 'comint-output-filter-functions))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1021 ;; Strip those pesky ctrl-m's.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1022 (add-hook 'comint-output-filter-functions
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1023 (lambda (string)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1024 (when (string-match "\r" string)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1025 (let ((pmark (process-mark (get-buffer-process
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1026 (current-buffer)))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1027 (save-excursion
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1028 ;; bare CR -> delete preceding line
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1029 (goto-char comint-last-output-start)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1030 (while (search-forward "\r" pmark t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1031 (delete-region (point) (line-beginning-position)))))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1032 'append 'local)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1033 (add-hook 'comint-output-filter-functions 'comint-strip-ctrl-m nil 'local))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1034
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1035 ;; Python-mode, bundled with many Emacs installs, quite cavalierly
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1036 ;; adds this function to the global default hook. It interferes
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1037 ;; with overlay-arrows.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1038 (remove-hook 'comint-output-filter-functions 'py-pdbtrack-track-stack-file)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1039
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1040
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1041 ;; 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
1042 (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
1043 (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
1044 (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
1045 (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
1046
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1047 (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
1048
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1049 ;; 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
1050 (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
1051 (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
1052 (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
1053 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
1054 (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
1055 (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
1056
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1057 ;; Turn off the non-debug toolbar buttons (open,save,etc.)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1058 (set (make-local-variable 'tool-bar-map) nil)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1059
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1060 ;; Run the hooks.
62772
f2892faa87d4 * progmodes/ada-mode.el (ada-mode):
Lute Kamstra <lute@gnu.org>
parents: 62402
diff changeset
1061 (run-mode-hooks 'idlwave-shell-mode-hook)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1062 (idlwave-shell-send-command idlwave-shell-initial-commands nil 'hide)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1063 ;; Turn off IDL's ^d interpreting, and define a system
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1064 ;; variable which knows the version of IDLWAVE
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1065 (idlwave-shell-send-command
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1066 (format "defsysv,'!idlwave_version','%s',1" idlwave-mode-version)
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1067 nil 'hide)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1068 ;; Get the paths if they weren't read in from 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
1069 (if (and (not idlwave-path-alist)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1070 (or (not (stringp idlwave-system-directory))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1071 (eq (length idlwave-system-directory) 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
1072 (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
1073 '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
1074 'hide)))
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1075
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1076 (defun idlwave-shell-get-path-info (&optional no-write)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1077 "Get the path lists, writing to file unless NO-WRITE is set."
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1078 (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
1079 (sysdir (car rpl))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1080 (dirs (cdr rpl))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1081 (old-path-alist idlwave-path-alist))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1082 (when sysdir
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1083 (setq idlwave-system-directory sysdir)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1084 (put 'idlwave-system-directory 'from-shell t))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1085 ;; Preserve any existing flags
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1086 (setq idlwave-path-alist
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1087 (mapcar (lambda (x)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1088 (let ((old-entry (assoc x old-path-alist)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1089 (if old-entry
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1090 (cons x (cdr old-entry))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1091 (list x))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1092 dirs))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1093 (put 'idlwave-path-alist 'from-shell t)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1094 (if idlwave-path-alist
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1095 (if (and idlwave-auto-write-paths
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1096 (not idlwave-library-path)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1097 (not no-write) )
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1098 (idlwave-write-paths))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1099 ;; Fall back
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1100 (setq idlwave-path-alist old-path-alist))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1101
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1102 (if (not (fboundp 'idl-shell))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1103 (fset 'idl-shell 'idlwave-shell))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1104
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1105 (defvar idlwave-shell-idl-wframe nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1106 "Frame for displaying the idl shell window.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1107 (defvar idlwave-shell-display-wframe nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1108 "Frame for displaying the idl source files.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1109
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1110 (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
1111 (defvar idlwave-shell-calling-stack-routine nil)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1112
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1113 (defun idlwave-shell-source-frame ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1114 "Return the frame to be used for source display."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1115 (if idlwave-shell-use-dedicated-frame
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1116 ;; We want separate frames for source and shell
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1117 (if (frame-live-p idlwave-shell-display-wframe)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1118 ;; The frame exists, so we use it.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1119 idlwave-shell-display-wframe
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1120 ;; 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
1121 ;; 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
1122 ;; or recycle the first existing visible frame
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1123 (setq idlwave-shell-display-wframe
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1124 (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
1125 (or
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1126 (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
1127 (frame (selected-frame)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1128 (catch 'exit
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1129 (while flist
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1130 (if (not (eq (car flist)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1131 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
1132 (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
1133 (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
1134 (make-frame))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1135 (selected-frame))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1136
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1137 (defun idlwave-shell-shell-frame ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1138 "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
1139 (if idlwave-shell-use-dedicated-frame
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1140 ;; We want a dedicated frame
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1141 (if (frame-live-p idlwave-shell-idl-wframe)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1142 ;; It does exist, so we use it.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1143 idlwave-shell-idl-wframe
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1144 ;; 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
1145 (if (not (frame-live-p idlwave-shell-display-wframe))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1146 ;; 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
1147 (setq idlwave-shell-display-wframe (selected-frame)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1148 ;; Return a new frame
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1149 (setq idlwave-shell-idl-wframe
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1150 (make-frame idlwave-shell-frame-parameters)))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1151
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1152 ;;;###autoload
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1153 (defun idlwave-shell (&optional arg quick)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1154 "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
1155 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
1156 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
1157
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1158 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
1159 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
1160 separate frames.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1161
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1162 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
1163 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
1164
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1165 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
1166 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
1167 See also the variable `idlwave-shell-prompt-pattern'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1168
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1169 \(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
1170 (interactive "P")
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1171 (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
1172 (progn
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1173 (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
1174 (idlwave-shell nil)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1175 (delete-other-windows))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1176 (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
1177 (setq idlwave-shell-idl-wframe (selected-frame)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1178 (add-hook 'idlwave-shell-sentinel-hook
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1179 '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
1180
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1181 ;; 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
1182 ;; 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
1183 (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
1184 (if (equal arg '(16)) (setq idlwave-shell-use-dedicated-frame nil))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1185
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1186 ;; 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
1187 (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
1188 (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
1189 (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
1190 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
1191 (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
1192 (idlwave-split-string
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1193 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
1194 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
1195 (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
1196 (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
1197 (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
1198 (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
1199 (set-buffer buf)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1200 (idlwave-shell-mode)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1201 (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
1202 (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
1203 (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
1204 (select-window window)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1205 (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
1206 (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
1207 (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
1208 (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
1209 (if (eq (selected-frame) (window-frame window))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1210 (select-window window))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1211 ;; Save the paths at the end
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1212 (add-hook 'idlwave-shell-sentinel-hook
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1213 (lambda ()
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1214 (if (and
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1215 idlwave-auto-write-paths
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1216 idlwave-path-alist
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1217 (not idlwave-library-path)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1218 (get 'idlwave-path-alist 'from-shell))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1219 (idlwave-write-paths)))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1220
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1221 (defun idlwave-shell-recenter-shell-window (&optional arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1222 "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
1223 (interactive "P")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1224 (let ((window (selected-window)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1225 (idlwave-shell arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1226 (select-window window)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1227
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1228 (defun idlwave-shell-hide-p (type &optional list)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1229 "Whether to hide this type of command.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1230 Return either nil or 'hide."
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1231 (let ((list (or list idlwave-shell-show-commands)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1232 (if (listp list)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1233 (if (not (memq type list)) 'hide))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1234
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1235 (defun idlwave-shell-add-or-remove-show (type)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1236 "Add or remove a show command from the list."
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1237 (if (listp idlwave-shell-show-commands)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1238 (setq idlwave-shell-show-commands
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1239 (if (memq type idlwave-shell-show-commands)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1240 (delq type idlwave-shell-show-commands)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1241 (add-to-list'idlwave-shell-show-commands type)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1242 (setq idlwave-shell-show-commands (list type))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1243
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1244
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1245 (defun idlwave-shell-send-command (&optional cmd pcmd hide preempt
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1246 show-if-error)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1247 "Send a command to IDL process.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1248
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1249 \(CMD PCMD HIDE\) are placed at the end of `
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1250 idlwave-shell-pending-commands'. If IDL is ready the first command,
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1251 CMD, in `idlwave-shell-pending-commands' is sent to the IDL process.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1252
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1253 If optional second argument PCMD is non-nil it will be placed on
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1254 `idlwave-shell-post-command-hook' when CMD is executed.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1255
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1256 If the optional third argument HIDE is non-nil, then hide output from
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1257 CMD, unless it is the symbol 'mostly, in which case only output
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1258 beginning with \"%\" is hidden, and all other output (i.e., the
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1259 results of a PRINT command), is shown. This helps with, e.g.,
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1260 stepping through code with output.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1261
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1262 If optional fourth argument PREEMPT is non-nil CMD is put at front of
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1263 `idlwave-shell-pending-commands'. If PREEMPT is 'wait, wait for all
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1264 output to complete and the next prompt to arrive before returning
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1265 \(useful if you need an answer now\). IDL is considered ready if the
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1266 prompt is present and if `idlwave-shell-ready' is non-nil.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1267
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1268 If SHOW-IF-ERROR is non-nil, show the output it it contains an error
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1269 message, independent of what HIDE is set to."
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1270
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1271 ; (setq hide nil) ; FIXME: turn this on for debugging only
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1272 ; (if (null cmd)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1273 ; (progn
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1274 ; (message "SENDING Pending commands: %s"
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1275 ; (prin1-to-string idlwave-shell-pending-commands)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1276 ; (message "SENDING %s|||%s" cmd pcmd))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1277 (if (and (symbolp idlwave-shell-show-commands)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1278 (eq idlwave-shell-show-commands 'everything))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1279 (setq hide nil))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1280 (let ((save-buffer (current-buffer))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1281 buf proc)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1282 ;; Get or make the buffer and its process
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1283 (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
1284 (not (setq proc (get-buffer-process buf))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1285 (if (not idlwave-shell-automatic-start)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1286 (error
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1287 (substitute-command-keys
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1288 "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
1289 (idlwave-shell-recenter-shell-window)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1290 (setq buf (get-buffer (idlwave-shell-buffer)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1291 (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
1292 (not (setq proc (get-buffer-process buf))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1293 ;; Still nothing
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1294 (error "Problem with autostarting IDL shell"))))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1295 (when (or cmd idlwave-shell-pending-commands)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1296 (set-buffer buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1297 ;; 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
1298 (if cmd
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1299 (setq idlwave-shell-pending-commands
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1300 (if preempt
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1301 ;; Put at front.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1302 (append (list (list cmd pcmd hide show-if-error))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1303 idlwave-shell-pending-commands)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1304 ;; Put at end.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1305 (append idlwave-shell-pending-commands
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1306 (list (list cmd pcmd hide show-if-error))))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1307 ;; Check if IDL ready
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1308 (let ((save-point (point-marker)))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1309 (goto-char (process-mark proc))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1310 (if (and idlwave-shell-ready
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1311 ;; Check for IDL prompt
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1312 (prog2
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1313 (forward-line 0)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1314 ;; (beginning-of-line) ; Changed for Emacs 21
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1315 (looking-at idlwave-shell-prompt-pattern)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1316 (goto-char (process-mark proc))))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1317 ;; IDL ready for command, execute it
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1318 (let* ((lcmd (car idlwave-shell-pending-commands))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1319 (cmd (car lcmd))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1320 (pcmd (nth 1 lcmd))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1321 (hide (nth 2 lcmd))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1322 (show-if-error (nth 3 lcmd)))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1323 ;; If this is an executive command, reset the stack pointer
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1324 (if (eq (string-to-char cmd) ?.)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1325 (setq idlwave-shell-calling-stack-index 0))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1326 ;; Set post-command
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1327 (setq idlwave-shell-post-command-hook pcmd)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1328 ;; Output hiding
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1329 (setq idlwave-shell-hide-output hide)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1330 ;;Showing errors
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1331 (setq idlwave-shell-show-if-error show-if-error)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1332 ;; Pop command
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1333 (setq idlwave-shell-pending-commands
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1334 (cdr idlwave-shell-pending-commands))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1335 ;; Send command for execution
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1336 (set-marker comint-last-input-start (point))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1337 (set-marker comint-last-input-end (point))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1338 (comint-simple-send proc cmd)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1339 (setq idlwave-shell-ready nil)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1340 (if (equal preempt 'wait) ; Get all the output at once
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1341 (while (not idlwave-shell-ready)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1342 (when (not (accept-process-output proc 6)) ; long wait
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1343 (setq idlwave-shell-pending-commands nil)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1344 (error "Process timed out"))))))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1345 (goto-char save-point))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1346 (set-buffer save-buffer))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1347
57822
7cda0787d8cd (idlwave-shell-send-char): Don't use interactive-p.
Richard M. Stallman <rms@gnu.org>
parents: 55729
diff changeset
1348 (defun idlwave-shell-send-char (c &optional error)
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1349 "Send one character to the shell, without a newline."
57822
7cda0787d8cd (idlwave-shell-send-char): Don't use interactive-p.
Richard M. Stallman <rms@gnu.org>
parents: 55729
diff changeset
1350 (interactive "cChar to send to IDL: \np")
7cda0787d8cd (idlwave-shell-send-char): Don't use interactive-p.
Richard M. Stallman <rms@gnu.org>
parents: 55729
diff changeset
1351 (let ((errf (if error 'error 'message))
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1352 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
1353 (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
1354 (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
1355 (funcall errf "Shell is not running"))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1356 (if (equal c ?\C-g)
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1357 (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
1358 (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
1359
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1360 (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
1361 (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
1362 "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
1363 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
1364 (cond
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1365 ((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
1366 (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
1367 ((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
1368 (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
1369 (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
1370 ((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
1371 ;; 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
1372 (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
1373 (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
1374 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
1375 (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
1376
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1377 (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
1378 (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
1379 "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
1380 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
1381 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
1382 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
1383 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
1384 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
1385 (interactive)
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1386
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1387 ;; 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
1388 (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
1389 (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
1390 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
1391 (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
1392 (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
1393 (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
1394 (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
1395 (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
1396
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1397 ;; OK, start the loop
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1398 (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
1399 (message
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1400 (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
1401 (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
1402 ;; 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
1403 ;; 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
1404 (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
1405 ;; 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
1406 (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
1407 (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
1408 (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
1409 (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
1410 (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
1411 ;; 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
1412 (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
1413 (setq c (read-char))
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1414 (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
1415 (cond
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1416 ((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
1417 (ding))
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1418 ((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
1419 (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
1420 (ding)
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1421 (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
1422 (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
1423 (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
1424 (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
1425 (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
1426
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1427 (defun idlwave-shell-move-or-history (up &optional arg)
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1428 "When in last line of process buffer, do `comint-previous-input'.
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1429 Otherwise just move the line. Move down unless UP is non-nil."
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1430 (let* ((proc-pos (marker-position
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1431 (process-mark (get-buffer-process (current-buffer)))))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1432 (arg (or arg 1))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1433 (arg (if up arg (- arg))))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1434 (if (eq t idlwave-shell-arrows-do-history) (goto-char proc-pos))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1435 (if (and idlwave-shell-arrows-do-history
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1436 (>= (1+ (save-excursion (end-of-line) (point))) proc-pos))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1437 (progn
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1438 ;;(goto-char proc-pos)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1439 (goto-char (point-max))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1440 ;;(and (not (eolp)) (kill-line nil))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1441 (comint-previous-input arg))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1442 (previous-line arg))))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1443
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1444 (defun idlwave-shell-up-or-history (&optional arg)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1445 "When in last line of process buffer, move to previous input.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1446 Otherwise just go up one line."
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1447 (interactive "p")
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1448 (idlwave-shell-move-or-history t arg))
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1449
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1450 (defun idlwave-shell-down-or-history (&optional arg)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1451 "When in last line of process buffer, move to next input.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1452 Otherwise just go down one line."
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1453 (interactive "p")
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1454 (idlwave-shell-move-or-history nil arg))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1455
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1456 ;; Newer versions of comint.el changed the name of comint-filter to
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1457 ;; comint-output-filter.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1458 (defun idlwave-shell-comint-filter (process string) nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1459 (if (fboundp 'comint-output-filter)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1460 (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
1461 (fset 'idlwave-shell-comint-filter (symbol-function 'comint-filter)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1462
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1463 (defun idlwave-shell-is-running ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1464 "Return t if the shell process is running."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1465 (eq (process-status idlwave-shell-process-name) 'run))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1466
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1467 (defun idlwave-shell-filter-hidden-output (output)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1468 "Filter hidden output, leaving the good stuff.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1469
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1470 Remove everything to the first newline, and all lines with % in front
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1471 of them, with optional follow-on lines starting with two spaces. This
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1472 works well enough, since any print output typically arrives before
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1473 error messages, etc."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1474 (setq output (substring output (string-match "\n" output)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1475 (while (string-match "\\(\n\\|\\`\\)%.*\\(\n .*\\)*" output)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1476 (setq output (replace-match "" nil t output)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1477 (unless
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1478 (string-match idlwave-shell-only-prompt-pattern output)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1479 output))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1480
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1481 (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
1482 "Buffer containing hidden output from IDL commands.")
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1483 (defvar idlwave-shell-current-state nil)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1484
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1485 (defun idlwave-shell-filter (proc string)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1486 "Watch for IDL prompt and filter incoming text.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1487 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
1488 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
1489 ;; We no longer do the cleanup here - this is done by the process sentinel
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1490 (if (eq (process-status idlwave-shell-process-name) 'run)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1491 ;; OK, process is still running, so we can use it.
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1492 (let ((data (match-data)) p full-output)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1493 (unwind-protect
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1494 (progn
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1495 ;; Ring the bell if necessary
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1496 (while (setq p (string-match "\C-G" string))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1497 (ding)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1498 (aset string p ?\C-j ))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1499 (if idlwave-shell-hide-output
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1500 (save-excursion
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1501 (while (setq p (string-match "\C-M" string))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1502 (aset string p ?\ ))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1503 (set-buffer
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1504 (get-buffer-create idlwave-shell-hidden-output-buffer))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1505 (goto-char (point-max))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1506 (insert string))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1507 (idlwave-shell-comint-filter proc string))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1508 ;; Watch for magic - need to accumulate the current line
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1509 ;; since it may not be sent all at once.
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1510 (if (string-match "\n" string)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1511 (progn
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1512 (if idlwave-shell-use-input-mode-magic
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1513 (idlwave-shell-input-mode-magic
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1514 (concat idlwave-shell-accumulation string)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1515 (setq idlwave-shell-accumulation
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1516 (substring string
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1517 (progn (string-match "\\(.*[\n\r]+\\)*"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1518 string)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1519 (match-end 0)))))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1520 (setq idlwave-shell-accumulation
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1521 (concat idlwave-shell-accumulation string)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1522
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1523
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1524 ;;; Test/Debug code
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1525 ; (save-excursion (set-buffer
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1526 ; (get-buffer-create "*idlwave-shell-output*"))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1527 ; (goto-char (point-max))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1528 ; (insert "\nSTRING===>\n" string "\n<====\n"))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1529
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1530 ;; Check for prompt in current accumulating output
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1531 (when (setq idlwave-shell-ready
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1532 (string-match idlwave-shell-prompt-pattern
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1533 idlwave-shell-accumulation))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1534 ;; Gather the command output
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1535 (if idlwave-shell-hide-output
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1536 (save-excursion
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1537 (set-buffer idlwave-shell-hidden-output-buffer)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1538 (setq full-output (buffer-string))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1539 (goto-char (point-max))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1540 (re-search-backward idlwave-shell-prompt-pattern nil t)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1541 (goto-char (match-end 0))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1542 (setq idlwave-shell-command-output
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1543 (buffer-substring (point-min) (point)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1544 (delete-region (point-min) (point)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1545 (setq idlwave-shell-command-output
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1546 (with-current-buffer (process-buffer proc)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1547 (buffer-substring
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1548 (save-excursion
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1549 (goto-char (process-mark proc))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1550 (forward-line 0)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1551 (point))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1552 comint-last-input-end))))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1553
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1554 ;; Scan for state and do post commands - bracket
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1555 ;; them with idlwave-shell-ready=nil since they may
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1556 ;; call idlwave-shell-send-command themselves.
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1557 (let ((idlwave-shell-ready nil))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1558 (idlwave-shell-scan-for-state)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1559 ;; Show the output in the shell if it contains an error
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1560 (if idlwave-shell-hide-output
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1561 (if (and idlwave-shell-show-if-error
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1562 (eq idlwave-shell-current-state 'error))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1563 (idlwave-shell-comint-filter proc full-output)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1564 ;; If it's only *mostly* hidden, filter % lines,
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1565 ;; and show anything that remains
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1566 (if (eq idlwave-shell-hide-output 'mostly)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1567 (let ((filtered
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1568 (idlwave-shell-filter-hidden-output
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1569 full-output)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1570 (if filtered
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1571 (idlwave-shell-comint-filter
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1572 proc filtered))))))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1573
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1574 ;; Call the post-command hook
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1575 (if (listp idlwave-shell-post-command-hook)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1576 (progn
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1577 ;(message "Calling list")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1578 ;(prin1 idlwave-shell-post-command-hook)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1579 (eval idlwave-shell-post-command-hook))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1580 ;(message "Calling command function")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1581 (funcall idlwave-shell-post-command-hook))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1582
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1583 ;; Reset to default state for next command.
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1584 ;; Also we do not want to find this prompt again.
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1585 (setq idlwave-shell-accumulation nil
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1586 idlwave-shell-command-output nil
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1587 idlwave-shell-post-command-hook nil
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1588 idlwave-shell-hide-output nil
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1589 idlwave-shell-show-if-error nil))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1590 ;; Done with post command. Do pending command if
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1591 ;; any.
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1592 (idlwave-shell-send-command)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1593 (store-match-data data)))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1594
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1595 (defun idlwave-shell-sentinel (process event)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1596 "The sentinel function for the IDLWAVE shell process."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1597 (let* ((buf (idlwave-shell-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1598 (win (get-buffer-window buf)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1599 (when (get-buffer buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1600 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1601 (set-buffer (idlwave-shell-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1602 (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
1603 (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
1604 (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
1605 (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
1606 (condition-case nil
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1607 (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
1608 (error nil)))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1609
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1610 (when (and (> (length (frame-list)) 1)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1611 (frame-live-p idlwave-shell-idl-wframe))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1612 (delete-frame idlwave-shell-idl-wframe)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1613 (setq idlwave-shell-idl-wframe nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1614 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
1615 (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
1616 (not (one-window-p 'nomini)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1617 (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
1618 (idlwave-shell-cleanup)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1619 ;; 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
1620 (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
1621 (save-excursion
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1622 (set-buffer buf)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1623 (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
1624 (run-hooks 'idlwave-shell-sentinel-hook))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1625
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1626 (defvar idlwave-shell-error-buffer " *idlwave-shell-errors*"
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1627 "Buffer containing syntax errors from IDL compilations.")
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1628
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1629 ;; FIXME: the following two variables do not currently allow line breaks
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1630 ;; in module and file names. I am not sure if it will be necessary to
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1631 ;; change this. Currently it seems to work the way it is.
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1632 (defvar idlwave-shell-syntax-error
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1633 "^% Syntax error.\\s-*\n\\s-*At:\\s-*\\(.*\\),\\s-*Line\\s-*\\(.*\\)"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1634 "A regular expression to match an IDL syntax error.
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1635 The 1st pair matches the file name, the second pair matches the line
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1636 number.")
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1637
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1638 (defvar idlwave-shell-other-error
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1639 "^% .*\n\\s-*At:\\s-*\\(.*\\),\\s-*Line\\s-*\\(.*\\)"
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1640 "A regular expression to match any IDL error.")
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1641
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1642 (defvar idlwave-shell-halting-error
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1643 "^% .*\n\\([^%].*\n\\)*% Execution halted at:\\(\\s-*\\S-+\\s-*[0-9]+\\s-*.*\\)\n"
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1644 "A regular expression to match errors which halt execution.")
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1645
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1646 (defvar idlwave-shell-cant-continue-error
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1647 "^% Can't continue from this point.\n"
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1648 "A regular expression to match errors stepping errors.")
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1649
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1650 (defvar idlwave-shell-file-line-message
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1651 (concat
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1652 "\\(" ; program name group (1)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1653 "\\$MAIN\\$\\|" ; main level routine
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1654 "\\<[a-zA-Z][a-zA-Z0-9_$:]*" ; start with a letter followed by [..]
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1655 "\\([ \t]*\n[ \t]*[a-zA-Z0-9_$:]+\\)*"; continuation lines program name (2)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1656 "\\)" ; end program name group (1)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1657 "[ \t\n]+" ; white space
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1658 "\\(" ; line number group (3)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1659 "[0-9]+" ; the line number (the fix point)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1660 "\\([ \t]*\n[ \t]*[0-9]+\\)*" ; continuation lines number (4)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1661 "\\)" ; end line number group (3)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1662 "[ \t\n]+" ; white space
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1663 "\\(" ; file name group (5)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1664 "[^ \t\n]+" ; file names can contain any non-white
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1665 "\\([ \t]*\n[ \t]*[^ \t\n]+\\)*" ; continuation lines file name (6)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1666 "\\)" ; end line number group (5)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1667 )
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1668 "*A regular expression to parse out the file name and line number.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1669 The 1st group should match the subroutine name.
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1670 The 3rd group is the line number.
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1671 The 5th group is the file name.
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1672 All parts may contain linebreaks surrounded by spaces. This is important
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1673 in IDL5 which inserts random linebreaks in long module and file names.")
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1674
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1675 (defun idlwave-shell-scan-for-state ()
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1676 "Scan for state info. Looks for messages in output from last IDL
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1677 command indicating where IDL has stopped. The types of messages we are
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1678 interested in are execution halted, stepped, breakpoint, interrupted
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1679 at and trace messages. For breakpoint messages process any attached
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1680 count or command parameters. Update the stop line if a message is
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1681 found. The variable `idlwave-shell-current-state' is set to 'error,
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1682 'halt, or 'breakpoint, which describes the status, or nil for none of
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1683 the above."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1684 (let (trace)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1685 (cond
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1686 ;; Make sure we have output
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1687 ((not idlwave-shell-command-output))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1688
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1689 ;; First Priority: Syntax and other errors
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1690 ((or
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1691 (string-match idlwave-shell-syntax-error
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1692 idlwave-shell-command-output)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1693 (string-match idlwave-shell-other-error
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1694 idlwave-shell-command-output))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1695 (save-excursion
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1696 (set-buffer
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1697 (get-buffer-create idlwave-shell-error-buffer))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1698 (erase-buffer)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1699 (insert idlwave-shell-command-output)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1700 (goto-char (point-min))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1701 (setq idlwave-shell-error-last (point)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1702 (setq idlwave-shell-current-state 'error)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1703 (idlwave-shell-goto-next-error))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1704
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1705 ;; Second Priority: Halting errors
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1706 ((string-match idlwave-shell-halting-error
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1707 idlwave-shell-command-output)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1708 ;; Grab the file and line state info.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1709 (setq idlwave-shell-calling-stack-index 0)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1710 (setq idlwave-shell-halt-frame
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1711 (idlwave-shell-parse-line
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1712 (substring idlwave-shell-command-output
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1713 (match-beginning 2)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1714 idlwave-shell-current-state 'error)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1715 (idlwave-shell-display-line (idlwave-shell-pc-frame)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1716
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1717 ;; Third Priority: Various types of innocuous HALT and
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1718 ;; TRACEBACK messages.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1719 ((or (setq trace (string-match idlwave-shell-trace-message-re
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1720 idlwave-shell-command-output))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1721 (string-match idlwave-shell-halt-messages-re
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1722 idlwave-shell-command-output))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1723 ;; Grab the file and line state info.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1724 (setq idlwave-shell-calling-stack-index 0)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1725 (setq idlwave-shell-halt-frame
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1726 (idlwave-shell-parse-line
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1727 (substring idlwave-shell-command-output (match-end 0))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1728 (setq idlwave-shell-current-state 'halt)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1729 ;; Don't debug trace messages
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1730 (idlwave-shell-display-line (idlwave-shell-pc-frame) nil
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1731 (if trace 'no-debug)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1732
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1733 ;; Fourth Priority: Breakpoints
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1734 ((string-match idlwave-shell-break-message
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1735 idlwave-shell-command-output)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1736 (setq idlwave-shell-calling-stack-index 0)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1737 (setq idlwave-shell-halt-frame
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1738 (idlwave-shell-parse-line
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1739 (substring idlwave-shell-command-output (match-end 0))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1740 ;; We used to count hits on breakpoints
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1741 ;; this is no longer supported since IDL breakpoints
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1742 ;; have learned counting.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1743 ;; Do breakpoint command processing
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1744 (let ((bp (assoc
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1745 (list
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1746 (nth 0 idlwave-shell-halt-frame)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1747 (nth 1 idlwave-shell-halt-frame))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1748 idlwave-shell-bp-alist)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1749 ;(message "Scanning with %s" bp)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1750 (if bp
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1751 (let ((cmd (idlwave-shell-bp-get bp 'cmd)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1752 (if cmd ;; Execute any breakpoint command
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1753 (if (listp cmd) (eval cmd) (funcall cmd))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1754 ;; A breakpoint that we did not know about - perhaps it was
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1755 ;; set by the user... Let's update our list.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1756 (idlwave-shell-bp-query)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1757 (setq idlwave-shell-current-state 'breakpoint)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1758 (idlwave-shell-display-line (idlwave-shell-pc-frame)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1759
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1760 ;; Last Priority: Can't Step errors
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1761 ((string-match idlwave-shell-cant-continue-error
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1762 idlwave-shell-command-output)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1763 (setq idlwave-shell-current-state 'breakpoint))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1764
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1765 ;; Otherwise, no particular state
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1766 (t (setq idlwave-shell-current-state nil)))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1767
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1768
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1769 (defun idlwave-shell-parse-line (string &optional skip-main)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1770 "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
1771 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
1772 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
1773 or file names.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1774 It is very difficult to come up with a robust solution. This one seems
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1775 to be pretty good though.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1776
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1777 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
1778
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1779 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
1780 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
1781 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
1782
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1783 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
1784 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
1785 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
1786 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
1787 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
1788 plus garbage match an existing regular file. This is hopefully very
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1789 unlikely.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1790
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1791 If optional arg SKIP-MAIN is non-nil, don't parse $MAIN$ routine stop
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1792 statements."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1793
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1794 (let (number procedure file)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1795 (when (and (not (if skip-main (string-match ":\\s-*\\$MAIN" string)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1796 (string-match idlwave-shell-file-line-message string))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1797 (setq procedure (match-string 1 string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1798 number (match-string 3 string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1799 file (match-string 5 string))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1800
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1801 ;; Repair the strings
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1802 (setq procedure (idlwave-shell-repair-string procedure))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1803 (setq number (idlwave-shell-repair-string number))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1804 (setq file (idlwave-shell-repair-file-name file))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1805
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1806 ;; If we have a file, return the frame list
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1807 (if file
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1808 (list (idlwave-shell-file-name file)
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 60925
diff changeset
1809 (string-to-number number)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1810 procedure)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1811 ;; No success finding a file
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1812 nil))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1813
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1814 (defun idlwave-shell-repair-string (string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1815 "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
1816 (while (string-match "[ \t]*\n[ \t]*" string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1817 (setq string (replace-match "" t t string)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1818 string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1819
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1820 (defun idlwave-shell-repair-file-name (file)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1821 "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
1822 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
1823 file name."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1824 (let ((file1 "") (file2 "") (start 0))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1825 ;; We scan no further than to the next "^%" line
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1826 (if (string-match "^%" file)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1827 (setq file (substring file 0 (match-beginning 0))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1828 ;; Take out the line breaks
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1829 (while (string-match "[ \t]*\n[ \t]*" file start)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1830 (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
1831 start (match-end 0)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1832 (setq file2 (concat file1 (substring file start)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1833 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1834 ((file-regular-p file2) file2)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1835 ((file-regular-p file1) file1)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1836 ;; 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
1837 ;; 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
1838 ;; 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
1839 ;; 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
1840 ((not (string= "" file1)) file1)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1841 ((not (string= "" file2)) file2)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1842 (t nil))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1843
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1844 (defun idlwave-shell-cleanup ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1845 "Do necessary cleanup for a terminated IDL process."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1846 (setq idlwave-shell-step-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1847 idlwave-shell-halt-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1848 idlwave-shell-pending-commands nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1849 idlwave-shell-command-line-to-execute nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1850 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
1851 idlwave-shell-calling-stack-index 0
47453
2e596fc1fdac (idlwave-shell-cleanup): Fix reference to `idlwave-idlwave_routine_info-compiled'.
Juanma Barranquero <lekktu@gmail.com>
parents: 47440
diff changeset
1852 idlwave-idlwave_routine_info-compiled 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
1853 (idlwave-shell-delete-temp-files)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1854 (idlwave-shell-display-line nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1855 (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
1856 (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
1857 (idlwave-shell-kill-buffer idlwave-shell-bp-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1858 (idlwave-shell-kill-buffer idlwave-shell-error-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1859 ;; (idlwave-shell-kill-buffer (idlwave-shell-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1860 (and (get-buffer (idlwave-shell-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1861 (bury-buffer (get-buffer (idlwave-shell-buffer))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1862 (run-hooks 'idlwave-shell-cleanup-hook))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1863
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1864 (defun idlwave-shell-kill-buffer (buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1865 "Kill buffer BUF if it exists."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1866 (if (setq buf (get-buffer buf))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1867 (kill-buffer buf)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1868
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1869 (defun idlwave-shell-kill-shell-buffer-confirm ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1870 (when (idlwave-shell-is-running)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1871 (ding)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1872 (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
1873 (error "Abort"))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1874 (message "Killing buffer *idl* and the associated process")))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1875
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1876 (defun idlwave-shell-window (n)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1877 "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
1878 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
1879 (interactive "P")
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1880 (let ((n (if n (prefix-numeric-value n) 0)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1881 (idlwave-shell-send-command
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1882 (apply 'format "window,%d,xs=%d,ys=%d"
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1883 n idlwave-shell-graphics-window-size)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1884 nil (idlwave-shell-hide-p 'misc) nil t)))
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1885
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1886 (defun idlwave-shell-resync-dirs ()
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1887 "Resync the buffer's idea of the current directory.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1888 This command queries IDL with the command bound to
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1889 `idlwave-shell-dirstack-query', reads the output for the new
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1890 directory."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1891 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1892 (idlwave-shell-send-command idlwave-shell-dirstack-query
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1893 'idlwave-shell-filter-directory
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1894 'hide 'wait))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1895
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1896 (defun idlwave-shell-retall (&optional arg)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1897 "Return from the entire calling stack.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1898 Also get rid of widget events in the queue."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1899 (interactive "P")
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1900 (save-selected-window
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1901 ;;if (widget_info(/MANAGED))[0] gt 0 then for i=0,n_elements(widget_info(/MANAGED))-1 do widget_control,(widget_info(/MANAGED))[i],/clear_events &
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1902 (idlwave-shell-send-command "retall" nil
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1903 (if (idlwave-shell-hide-p 'misc) 'mostly)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1904 nil t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1905 (idlwave-shell-display-line nil)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1906
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1907 (defun idlwave-shell-closeall (&optional arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1908 "Close all open files."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1909 (interactive "P")
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1910 (idlwave-shell-send-command "close,/all" nil
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1911 (idlwave-shell-hide-p 'misc) nil t))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1912
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1913 (defun idlwave-shell-quit (&optional arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1914 "Exit the idl process after confirmation.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1915 With prefix ARG, exit without confirmation."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1916 (interactive "P")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1917 (if (not (idlwave-shell-is-running))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1918 (error "Shell is not running")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1919 (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
1920 (condition-case nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1921 (idlwave-shell-send-command "exit")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1922 (error nil)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1923
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
1924 (defun idlwave-shell-reset (&optional hidden)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1925 "Reset IDL. Return to main level and destroy the leftover variables.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1926 This issues the following commands:
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1927 RETALL
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1928 WIDGET_CONTROL,/RESET
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1929 CLOSE, /ALL
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1930 HEAP_GC, /VERBOSE"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1931 ;; OBJ_DESTROY, OBJ_VALID() FIXME: should this be added?
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1932 (interactive "P")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1933 (message "Resetting IDL")
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
1934 (setq idlwave-shell-calling-stack-index 0)
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
1935 (idlwave-shell-send-command "retall" nil hidden)
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
1936 (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
1937 (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
1938 ;; (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
1939 (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
1940 (idlwave-shell-display-line nil))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1941
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1942 (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
1943 ;; 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
1944 (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
1945 (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
1946 (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
1947 dirs sysdir)
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1948 (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
1949 (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
1950 (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
1951 (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
1952 (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
1953 (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
1954 (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
1955 (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
1956
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1957 (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
1958 "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
1959 (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
1960 (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
1961 sep sep-re file type spec specs name cs key keys class entry)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1962 ;; (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
1963 ;; 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
1964 (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
1965 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
1966 ;; 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
1967 (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
1968 "^>>>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
1969 text)
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1970 (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
1971 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
1972 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
1973 ;; 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
1974 (setq sep "@" sep-re "@ *" text "")
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1975 (if idlwave-idlwave_routine_info-compiled
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1976 (message
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1977 "Routine Info warning: No match for BEGIN line in \n>>>\n%s\n<<<\n"
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1978 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
1979 (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
1980 (setq text (substring text 0 (match-beginning 0)))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1981 (if idlwave-idlwave_routine_info-compiled
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1982 (message
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1983 "Routine Info warning: No match for END line in \n>>>\n%s\n<<<\n"
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1984 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
1985 (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
1986 ;; 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
1987 (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
1988 ;; 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
1989 (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
1990 (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
1991 (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
1992 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
1993 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
1994 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
1995 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
1996 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
1997 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
1998 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
1999 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
2000 (not (string-match "\\` *\\'" key)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2001 (mapcar 'list
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2002 (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
2003 (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
2004 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
2005 file (if (equal file "") nil file)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2006 keys (mapcar (lambda (x)
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2007 (list (idlwave-sintern-keyword (car x) t))) keys))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2008
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2009 ;; 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
2010 ;; assuming that if the buffer stuff differs, it is a "new"
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2011 ;; version, not yet compiled, and should take precedence.
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2012 ;; 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
2013 ;; but I think frequently a user might have several versions of
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2014 ;; the same function in different programs, and in this case the
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2015 ;; compiled one will be the best guess of all versions.
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2016 ;; 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
2017 (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
2018 ((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
2019 ;; 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
2020 (or t (null file)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2021 (not (idlwave-rinfo-assq name 'pro class
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2022 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
2023 ;; FIXME: is it OK to make the library routines dominate?
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2024 ;;(not (idlwave-rinfo-assq name 'pro class
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2025 ;; 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
2026 )
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2027 (setq entry (list name 'pro class
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2028 (cons 'compiled
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2029 (if file
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2030 (list
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2031 (file-name-nondirectory file)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2032 (idlwave-sintern-dir
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2033 (file-name-directory file)))))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2034 cs (cons nil keys)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2035 (if file
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2036 (push entry idlwave-compiled-routines)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2037 (push entry idlwave-unresolved-routines)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2038
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2039 ((and (string= type "FUN")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2040 ;; FIXME: is it OK to make the buffer routines dominate?
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2041 (or t (not file)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2042 (not (idlwave-rinfo-assq name 'fun class
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2043 idlwave-buffer-routines)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2044 ;; FIXME: is it OK to make the library routines dominate?
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2045 ;; (not (idlwave-rinfo-assq name 'fun class
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2046 ;; idlwave-library-routines))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2047 )
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2048 (setq entry (list name 'fun class
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2049 (cons 'compiled
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2050 (if file
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2051 (list
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2052 (file-name-nondirectory file)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2053 (idlwave-sintern-dir
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2054 (file-name-directory file)))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2055 cs (cons nil keys)))
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2056 (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
2057 (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
2058 (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
2059 ;; 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
2060 (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
2061 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
2062
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2063 (defun idlwave-shell-filter-directory ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2064 "Get the current directory from `idlwave-shell-command-output'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2065 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
2066 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2067 (set-buffer (idlwave-shell-buffer))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2068 (if (string-match ",___cur[\n\r]\\(\\S-*\\) *[\n\r]"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2069 idlwave-shell-command-output)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2070 (let ((dir (substring idlwave-shell-command-output
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2071 (match-beginning 1) (match-end 1))))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2072 ; (message "Setting Emacs working dir to %s" dir)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2073 (setq idlwave-shell-default-directory dir)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2074 (setq default-directory (file-name-as-directory dir))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2075
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2076 (defvar idlwave-shell-get-object-class nil)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2077 (defun idlwave-shell-get-object-class (apos)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2078 "Query the shell for the class of the object before point."
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2079 (let ((bos (save-excursion (idlwave-start-of-substatement 'pre) (point)))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2080 (bol (save-excursion (forward-line 0) (point)))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2081 expression)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2082 (save-excursion
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2083 (goto-char apos)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2084 (setq expression (buffer-substring
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2085 (catch 'exit
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2086 (while t
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2087 (if (not (re-search-backward
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2088 "[^][.A-Za-z0-9_() ]" bos t))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2089 (throw 'exit bos)) ;ran into bos
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2090 (if (not (idlwave-is-pointer-dereference bol))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2091 (throw 'exit (1+ (point))))))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2092 apos)))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2093 (when (not (string= expression ""))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2094 (setq idlwave-shell-get-object-class nil)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2095 (idlwave-shell-send-command
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2096 (concat "if obj_valid(" expression ") then print,obj_class("
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2097 expression ")")
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2098 'idlwave-shell-parse-object-class
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2099 'hide 'wait)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2100 ;; If we don't know anything about the class, update shell routines
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2101 (if (and idlwave-shell-get-object-class
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
2102 (not (assoc-string idlwave-shell-get-object-class
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
2103 (idlwave-class-alist) t)))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2104 (idlwave-shell-maybe-update-routine-info))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2105 idlwave-shell-get-object-class)))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2106
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2107 (defun idlwave-shell-parse-object-class ()
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2108 "Parse the output of the obj_class command."
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2109 (let ((match "obj_class([^\n\r]+[\n\r ]"))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2110 (if (string-match (concat match "\\([A-Za-z_0-9]+\\) *[\n\r]\\("
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2111 idlwave-shell-prompt-pattern "\\)")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2112 idlwave-shell-command-output)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2113 (setq idlwave-shell-get-object-class
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2114 (match-string 1 idlwave-shell-command-output)))))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2115
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2116 (defvar idlwave-sint-sysvars nil)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2117 (idlwave-new-sintern-type 'execcomm)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2118
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2119 (defun idlwave-shell-complete (&optional arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2120 "Do completion in the idlwave-shell buffer.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2121 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
2122 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
2123 keywords."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2124 (interactive "P")
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2125 (let (exec-cmd)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2126 (cond
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2127 ((and
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2128 (setq exec-cmd (idlwave-shell-executive-command))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2129 (cdr exec-cmd)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2130 (member (upcase (cdr exec-cmd))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2131 '(".R" ".RU" ".RUN" ".RN" ".RNE" ".RNEW"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2132 ".COM" ".COMP" ".COMPI" ".COMPIL" ".COMPILE")))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2133 ;; We are in a command line with an executive command
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2134 (idlwave-shell-complete-filename))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2135
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2136 ((car-safe exec-cmd)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2137 (setq idlwave-completion-help-info
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2138 '(idlwave-shell-complete-execcomm-help))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2139 (idlwave-complete-in-buffer 'execcomm 'execcomm
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2140 idlwave-executive-commands-alist nil
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2141 "Select an executive command"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2142 "system variable"))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2143
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2144 ((idlwave-shell-batch-command)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2145 (idlwave-shell-complete-filename))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2146
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2147 ((idlwave-shell-shell-command)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2148 (idlwave-shell-complete-filename))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2149
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2150 ((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
2151 (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
2152 (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
2153 (let ((case-fold-search t))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2154 (not (looking-at ".*obj_new")))))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2155 (idlwave-shell-complete-filename))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2156
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2157 (t
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2158 ;; 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
2159 (idlwave-complete arg)))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2160
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2161 ;; Get rid of opaque dynamic variable passing of link?
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
2162 (defvar link) ;dynamic variable
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2163 (defun idlwave-shell-complete-execcomm-help (mode word)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2164 (let ((word (or (nth 1 idlwave-completion-help-info) word))
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
2165 (entry (assoc-string word idlwave-executive-commands-alist t)))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2166 (cond
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2167 ((eq mode 'test)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2168 (and (stringp word) entry (cdr entry)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2169 ((eq mode 'set)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2170 (if entry (setq link (cdr entry)))) ;; setting dynamic variable!!!
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2171 (t (error "This should not happen")))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2172
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2173 (defun idlwave-shell-complete-filename (&optional arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2174 "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
2175 We assume that we are after a file name when completing one of the
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2176 args of an executive .run, .rnew or .compile."
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2177 ;; CWD might have changed, resync, to set default directory
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2178 (idlwave-shell-resync-dirs)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2179 (let ((comint-file-name-chars idlwave-shell-file-name-chars))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2180 (comint-dynamic-complete-as-filename)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2181
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2182 (defun idlwave-shell-executive-command ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2183 "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
2184 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2185 (idlwave-beginning-of-statement)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2186 (cons (looking-at "[ \t]*\\.")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2187 (if (looking-at "[ \t]*[.]\\([^ \t\n\r]+\\)[ \t]")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2188 (match-string 1)))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2189
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2190 (defun idlwave-shell-filename-string ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2191 "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
2192 (let ((limit (save-excursion (beginning-of-line) (point))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2193 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2194 ;; Skip backwards over file name chars
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2195 (skip-chars-backward idlwave-shell-file-name-chars limit)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2196 ;; Check of the next char is a string delimiter
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2197 (memq (preceding-char) '(?\' ?\")))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2198
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2199 (defun idlwave-shell-batch-command ()
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2200 "Returns t if we're in a batch command statement like @foo"
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2201 (let ((limit (save-excursion (beginning-of-line) (point))))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2202 (save-excursion
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2203 ;; Skip backwards over filename
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2204 (skip-chars-backward idlwave-shell-file-name-chars limit)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2205 (skip-chars-backward " \t" limit)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2206 (and (eq (preceding-char) ?@) (not (idlwave-in-quote))))))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2207
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2208 (defun idlwave-shell-shell-command ()
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2209 "Returns t if we're in a shell command statement like $ls"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2210 (save-excursion
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2211 (idlwave-beginning-of-statement)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2212 (looking-at "\\$")))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2213
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2214 ;; Debugging Commands ------------------------------------------------------
58948
841fbaef56de Variable move.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58947
diff changeset
2215 (defvar idlwave-shell-electric-debug-mode) ; defined by easy-mmode
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2216
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2217 (defun idlwave-shell-redisplay (&optional hide)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2218 "Tries to resync the display with where execution has stopped.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2219 Issues a \"help,/trace\" command followed by a call to
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2220 `idlwave-shell-display-line'. Also updates the breakpoint
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2221 overlays."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2222 (interactive)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2223 (setq idlwave-shell-calling-stack-index 0)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2224 (idlwave-shell-send-command
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2225 "help,/trace"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2226 '(idlwave-shell-display-line
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2227 (idlwave-shell-pc-frame))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2228 hide)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2229 (idlwave-shell-bp-query))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2230
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2231 (defun idlwave-shell-display-level-in-calling-stack (&optional hide)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2232 (idlwave-shell-send-command
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2233 "help,/trace"
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2234 `(progn
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2235 ;; 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
2236 (setq idlwave-shell-calling-stack-index
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2237 ,idlwave-shell-calling-stack-index)
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2238 ;; 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
2239 (idlwave-shell-parse-stack-and-display))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2240 hide))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2241
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2242 (defun idlwave-shell-parse-stack-and-display ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2243 (let* ((lines (delete "" (idlwave-split-string
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2244 idlwave-shell-command-output "^%")))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2245 (stack (delq nil (mapcar 'idlwave-shell-parse-line lines)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2246 (nmax (1- (length stack)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2247 (nmin 0) message)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2248 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2249 ((< 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
2250 (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
2251 (ding)
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2252 (message "Problem with calling stack"))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2253 ((> idlwave-shell-calling-stack-index nmax)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2254 (ding)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2255 (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
2256 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
2257 (- nmax))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2258 ((< idlwave-shell-calling-stack-index nmin)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2259 (ding)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2260 (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
2261 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
2262 (- nmin)))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2263 (setq idlwave-shell-calling-stack-routine
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2264 (nth 2 (nth idlwave-shell-calling-stack-index stack)))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2265
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2266 ;; only edebug if in that mode already
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2267 (idlwave-shell-display-line
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2268 (nth idlwave-shell-calling-stack-index stack) nil
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2269 (unless idlwave-shell-electric-debug-mode 'no-debug))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2270 (message (or message
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2271 (format "In routine %s (stack level %d)"
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2272 idlwave-shell-calling-stack-routine
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2273 (- idlwave-shell-calling-stack-index))))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2274
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2275 (defun idlwave-shell-stack-up ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2276 "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
2277 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2278 (incf idlwave-shell-calling-stack-index)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2279 (idlwave-shell-display-level-in-calling-stack 'hide))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2280 (defun idlwave-shell-stack-down ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2281 "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
2282 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2283 (decf idlwave-shell-calling-stack-index)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2284 (idlwave-shell-display-level-in-calling-stack 'hide))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2285
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2286 (defun idlwave-shell-goto-frame (&optional frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2287 "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
2288 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
2289 used. Does nothing if the resulting frame is nil."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2290 (if frame ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2291 (setq frame (idlwave-shell-pc-frame)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2292 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2293 (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
2294 (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
2295 (widen)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2296 (goto-line (nth 1 frame)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2297
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2298 (defun idlwave-shell-pc-frame ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2299 "Returns the frame for IDL execution."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2300 (and idlwave-shell-halt-frame
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2301 (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
2302 (nth 1 idlwave-shell-halt-frame)
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2303 (nth 2 idlwave-shell-halt-frame))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2304
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2305 (defun idlwave-shell-valid-frame (frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2306 "Check that frame is for an existing file."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2307 (file-readable-p (car frame)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2308
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2309 (defvar idlwave-shell-suppress-electric-debug nil)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2310 (defun idlwave-shell-display-line (frame &optional col no-debug)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2311 "Display FRAME file in other window with overlay arrow.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2312
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2313 FRAME is a list of file name, line number, and subroutine name. If
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2314 FRAME is nil then remove overlay. If COL is set, move point to that
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2315 column in the line. If NO-DEBUG is non-nil, do *not* toggle the electric
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2316 debug mode."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2317 (if (not frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2318 ;; Remove stop-line overlay from old position
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2319 (progn
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2320 (setq overlay-arrow-string nil)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2321 (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
2322 (setq idlwave-shell-is-stopped nil)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2323 (if idlwave-shell-stop-line-overlay
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2324 (delete-overlay idlwave-shell-stop-line-overlay))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2325 ;; Turn off electric debug everywhere, if it's on
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2326 (if (and (not no-debug)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2327 idlwave-shell-automatic-electric-debug)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2328 (idlwave-shell-electric-debug-all-off)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2329 (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
2330 ;; 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
2331 ;; have never encountered this one.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2332 (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
2333 ;;;
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2334 ;;; buffer : the buffer to display a line in.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2335 ;;; select-shell: current buffer is the shell.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2336 ;;;
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2337 (setq idlwave-shell-mode-line-info
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2338 (if (nth 2 frame)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2339 (format "[%d:%s]"
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2340 (- idlwave-shell-calling-stack-index)
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2341 (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
2342 (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
2343 (select-shell (equal (buffer-name) (idlwave-shell-buffer)))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2344 window pos electric)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2345
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2346 ;; First make sure the shell window is visible
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2347 (idlwave-display-buffer (idlwave-shell-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2348 nil (idlwave-shell-shell-frame))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2349
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2350 ;; 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
2351 (setq window (idlwave-display-buffer buffer
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2352 nil (idlwave-shell-source-frame)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2353
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2354 ;; Enter the buffer and mark the line
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2355 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2356 (set-buffer buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2357 (save-restriction
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2358 (widen)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2359 (goto-line (nth 1 frame))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2360 (forward-line 0)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2361 (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
2362 (setq idlwave-shell-is-stopped t)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2363
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2364 (if idlwave-shell-stop-line-overlay
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2365 ;; Move overlay
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2366 (move-overlay idlwave-shell-stop-line-overlay
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2367 (point) (save-excursion (end-of-line) (point))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2368 (current-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2369 ;; 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
2370 (if idlwave-shell-mark-stop-line
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2371 (setq overlay-arrow-string idlwave-shell-overlay-arrow))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2372 (or overlay-arrow-position ; create the marker if necessary
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2373 (setq overlay-arrow-position (make-marker)))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2374 (set-marker overlay-arrow-position (point) buffer)))
47915
f1ce118178c3 (idlwave-shell-set-bp): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents: 47453
diff changeset
2375
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2376 ;; 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
2377 (if (or (< pos (point-min)) (> pos (point-max)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2378 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2379 (widen)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2380 (goto-char pos)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2381
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2382 ;; 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
2383 (if col (move-to-column col))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2384 (setq pos (point))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2385
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2386 ;; Enter electric debug mode, if not prohibited and not in
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2387 ;; it already
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2388 (when (and (or
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2389 (eq idlwave-shell-automatic-electric-debug t)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2390 (and
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2391 (eq idlwave-shell-automatic-electric-debug 'breakpoint)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2392 (not (eq idlwave-shell-current-state 'error))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2393 (not no-debug)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2394 (not idlwave-shell-suppress-electric-debug)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2395 (not idlwave-shell-electric-debug-mode))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2396 (idlwave-shell-electric-debug-mode)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2397 (setq electric t)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2398
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2399 ;; Make sure pos is really displayed in the window.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2400 (set-window-point window pos)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2401
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2402 ;; If we came from the shell, go back there. Otherwise select
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2403 ;; the window where the error is displayed.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2404 (if (or (and idlwave-shell-electric-zap-to-file electric)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2405 (and (equal (buffer-name) (idlwave-shell-buffer))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2406 (not select-shell)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2407 (select-window window))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2408
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2409
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2410 (defun idlwave-shell-step (arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2411 "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
2412 (interactive "p")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2413 (or (not arg) (< arg 1)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2414 (setq arg 1))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2415 (idlwave-shell-send-command
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2416 (concat ".s " (if (integerp arg) (int-to-string arg) arg))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2417 nil (if (idlwave-shell-hide-p 'debug) 'mostly) nil t))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2418
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2419 (defun idlwave-shell-stepover (arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2420 "Stepover one source line.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2421 If given prefix argument ARG, step ARG source lines.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2422 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
2423 (interactive "p")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2424 (or (not arg) (< arg 1)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2425 (setq arg 1))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2426 (idlwave-shell-send-command
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2427 (concat ".so " (if (integerp arg) (int-to-string arg) arg))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2428 nil (if (idlwave-shell-hide-p 'debug) 'mostly) nil t))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2429
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2430 (defun idlwave-shell-break-here (&optional count cmd condition disabled
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2431 no-show)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2432 "Set breakpoint at current line.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2433
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2434 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
2435 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
2436 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
2437 the statement count times.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2438
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 60925
diff changeset
2439 Optional argument CMD is a list or function to evaluate upon reaching
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2440 the breakpoint. CONDITION is a break condition, and DISABLED, if
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2441 non-nil disables the breakpoint"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2442 (interactive "P")
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2443 (when (listp count)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2444 (if (equal (car count) 4)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2445 (setq condition (read-string "Break Condition: ")))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2446 (setq count nil))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2447 (idlwave-shell-set-bp
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2448 ;; Create breakpoint
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2449 (idlwave-shell-bp (idlwave-shell-current-frame)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2450 (list count cmd condition disabled)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2451 (idlwave-shell-current-module))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2452 no-show))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2453
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2454 (defun idlwave-shell-set-bp-check (bp)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2455 "Check for failure to set breakpoint.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2456 This is run on `idlwave-shell-post-command-hook'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2457 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
2458 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
2459 ;; Scan for message
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2460 (if idlwave-shell-command-output
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2461 (cond
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2462 ((string-match "% BREAKPOINT: *Unable to find code"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2463 idlwave-shell-command-output)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2464 ;; Offer to recompile
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2465 (if (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2466 (beep)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2467 (y-or-n-p
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2468 (concat "Okay to recompile file "
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2469 (idlwave-shell-bp-get bp 'file) " ")))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2470 ;; Recompile
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2471 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2472 ;; Clean up before retrying
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2473 (idlwave-shell-command-failure)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2474 (idlwave-shell-send-command
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2475 (concat ".run " (idlwave-shell-bp-get bp 'file)) nil
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2476 (if (idlwave-shell-hide-p 'run) 'mostly) nil t)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2477 ;; Try setting breakpoint again
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2478 (idlwave-shell-set-bp bp))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2479 (beep)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2480 (message "Unable to set breakpoint.")
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2481 (idlwave-shell-command-failure))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2482 nil)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2483
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2484 ((string-match "% Syntax error" idlwave-shell-command-output)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2485 (message "Syntax error in condition.")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2486 (idlwave-shell-command-failure)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2487 nil)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2488
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2489 (t 'okay))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2490
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2491 (defun idlwave-shell-command-failure ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2492 "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
2493 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
2494 that detects the failure of a command.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2495 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
2496 breakpoint can not be set."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2497 ;; Clear pending commands
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2498 (setq idlwave-shell-pending-commands nil))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2499
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2500 (defun idlwave-shell-cont (&optional no-show)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2501 "Continue executing."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2502 (interactive)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2503 (idlwave-shell-send-command ".c" (unless no-show
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2504 '(idlwave-shell-redisplay 'hide))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2505 (if (idlwave-shell-hide-p 'debug) 'mostly)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2506 nil t))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2507
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2508 (defun idlwave-shell-go ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2509 "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
2510 (interactive)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2511 (idlwave-shell-send-command ".go" '(idlwave-shell-redisplay 'hide)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2512 (if (idlwave-shell-hide-p 'debug) 'mostly)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2513 nil t))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2514
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2515 (defun idlwave-shell-return ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2516 "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
2517 (interactive)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2518 (idlwave-shell-send-command ".return" '(idlwave-shell-redisplay 'hide)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2519 (if (idlwave-shell-hide-p 'debug) 'mostly)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2520 nil t))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2521
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2522 (defun idlwave-shell-skip ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2523 "Run .SKIP (skip one line, then step)."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2524 (interactive)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2525 (idlwave-shell-send-command ".skip" '(idlwave-shell-redisplay 'hide)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2526 (if (idlwave-shell-hide-p 'debug) 'mostly)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2527 nil t))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2528
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2529 (defun idlwave-shell-clear-bp (bp)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2530 "Clear breakpoint BP.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2531 Clears in IDL and in `idlwave-shell-bp-alist'."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2532 (let ((index (idlwave-shell-bp-get bp)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2533 (if index
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2534 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2535 (idlwave-shell-send-command
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2536 (concat "breakpoint,/clear," (int-to-string index))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2537 nil (idlwave-shell-hide-p 'breakpoint) nil t)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2538 (idlwave-shell-bp-query)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2539
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2540 (defun idlwave-shell-current-frame ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2541 "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
2542 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
2543 (if (eq (current-buffer) (get-buffer (idlwave-shell-buffer)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2544 ;; In IDL shell
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2545 (idlwave-shell-pc-frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2546 ;; In source
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2547 (list (idlwave-shell-file-name (buffer-file-name))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2548 (save-restriction
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2549 (widen)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2550 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2551 (beginning-of-line)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2552 (1+ (count-lines 1 (point))))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2553
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2554 (defun idlwave-shell-current-module ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2555 "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
2556 Returns nil if unable to obtain a module name."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2557 (if (eq (current-buffer) (get-buffer (idlwave-shell-buffer)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2558 ;; In IDL shell
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2559 (nth 2 idlwave-shell-halt-frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2560 ;; In pro file
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2561 (save-restriction
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2562 (widen)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2563 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2564 (if (idlwave-prev-index-position)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2565 (upcase (idlwave-unit-name)))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2566
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2567 (defun idlwave-shell-clear-current-bp ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2568 "Remove breakpoint at current line.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2569 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
2570 at a breakpoint."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2571 (interactive)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2572 (let ((bp (idlwave-shell-find-current-bp)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2573 (if bp (idlwave-shell-clear-bp bp))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2574
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2575
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2576 (defun idlwave-shell-toggle-enable-current-bp (&optional bp force
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2577 no-update)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2578 "Disable or enable current bp."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2579 (interactive)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2580 (let* ((bp (or bp (idlwave-shell-find-current-bp)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2581 (disabled (idlwave-shell-bp-get bp 'disabled)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2582 (cond ((eq force 'disable) (setq disabled nil))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2583 ((eq force 'enable) (setq disabled t)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2584 (when bp
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2585 (setf (nth 3 (cdr (cdr bp))) (not disabled))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2586 (idlwave-shell-send-command
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2587 (concat "breakpoint,"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2588 (if disabled "/enable," "/disable,")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2589 (int-to-string (idlwave-shell-bp-get bp)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2590 nil (idlwave-shell-hide-p 'breakpoint) nil t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2591 (unless no-update (idlwave-shell-bp-query)))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2592
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2593 (defun idlwave-shell-enable-all-bp (&optional enable no-update bpl)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2594 "Disable all breakpoints we know about which need disabling.
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2595 If ENABLE is non-nil, enable them instead."
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2596 (let ((bpl (or bpl idlwave-shell-bp-alist)) disabled modified)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2597 (while bpl
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2598 (setq disabled (idlwave-shell-bp-get (car bpl) 'disabled))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2599 (when (idlwave-xor (not disabled) (eq enable 'enable))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2600 (idlwave-shell-toggle-enable-current-bp
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2601 (car bpl) (if (eq enable 'enable) 'enable 'disable) no-update)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2602 (push (car bpl) modified))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2603 (setq bpl (cdr bpl)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2604 (unless no-update (idlwave-shell-bp-query))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2605 modified))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2606
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2607 (defun idlwave-shell-to-here ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2608 "Set a breakpoint with count 1 then continue."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2609 (interactive)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2610 (let ((disabled (idlwave-shell-enable-all-bp 'disable 'no-update)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2611 (idlwave-shell-break-here 1 nil nil nil 'no-show)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2612 (idlwave-shell-cont 'no-show)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2613 (idlwave-shell-enable-all-bp 'enable 'no-update disabled))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2614 (idlwave-shell-redisplay)) ; sync up everything at the end
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2615
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2616 (defun idlwave-shell-break-this-module (&optional arg)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2617 (interactive "P")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2618 (save-excursion
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2619 (idlwave-beginning-of-subprogram)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2620 (idlwave-shell-break-here arg)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2621
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2622 (defun idlwave-shell-break-in ()
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2623 "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
2624 The command looks for an identifier near point and sets a breakpoint
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2625 for the first line of the corresponding module. If MODULE is `t', set
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2626 in the current routine."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2627 (interactive)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2628 (let ((module (idlwave-fix-module-if-obj_new (idlwave-what-module))))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2629 (if module
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2630 (progn
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2631 (setq module (idlwave-make-full-name (nth 2 module) (car module)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2632 (idlwave-shell-module-source-query module)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2633 (idlwave-shell-set-bp-in-module module))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2634 (error "No identifier at point"))))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2635
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2636
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2637 (defun idlwave-shell-set-bp-in-module (module)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2638 "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
2639 contains an entry for that module."
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2640 (let ((source-file (car-safe
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2641 (cdr-safe
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2642 (assoc (upcase module)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2643 idlwave-shell-sources-alist))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2644 buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2645 (if (or (not source-file)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2646 (not (file-regular-p source-file))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2647 (not (setq buf
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2648 (or (idlwave-get-buffer-visiting source-file)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2649 (find-file-noselect source-file)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2650 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2651 (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
2652 module)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2653 (beep))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2654 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2655 (set-buffer buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2656 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2657 (goto-char (point-min))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2658 (let ((case-fold-search t))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2659 (if (re-search-forward
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2660 (concat "^[ \t]*\\(pro\\|function\\)[ \t]+"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2661 (downcase module)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2662 "[ \t\n,]") nil t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2663 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2664 (goto-char (match-beginning 1))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2665 (message "Setting breakpoint for module %s" module)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2666 (idlwave-shell-break-here))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2667 (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
2668 (beep))))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2669
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2670 (defun idlwave-shell-up ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2671 "Run to end of current block.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2672 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
2673 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2674 (if (idlwave-shell-pc-frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2675 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2676 (idlwave-shell-goto-frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2677 ;; find end of subprogram
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2678 (let ((eos (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2679 (idlwave-beginning-of-subprogram)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2680 (idlwave-forward-block)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2681 (point))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2682 (idlwave-backward-up-block -1)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2683 ;; 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
2684 ;; 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
2685 ;; 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
2686 (idlwave-next-statement)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2687 (idlwave-end-of-statement)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2688 ;; Make sure we are not beyond subprogram
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2689 (if (< (point) eos)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2690 ;; okay
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2691 ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2692 ;; Move back inside subprogram
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2693 (goto-char eos)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2694 (idlwave-previous-statement))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2695 (idlwave-shell-to-here)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2696
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2697 (defun idlwave-shell-out ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2698 "Attempt to run until this procedure exits.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2699 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
2700 (interactive)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2701 (idlwave-shell-send-command ".o" nil
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2702 (if (idlwave-shell-hide-p 'debug) 'mostly)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2703 nil t))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2704
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2705 (defun idlwave-shell-goto-previous-bp ()
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2706 "Move to the previous breakpoint in the buffer."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2707 (interactive)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2708 (idlwave-shell-move-to-bp -1))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2709 (defun idlwave-shell-goto-next-bp ()
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2710 "Move to the next breakpoint in the buffer."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2711 (interactive)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2712 (idlwave-shell-move-to-bp 1))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2713
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2714 (defun idlwave-shell-move-to-bp (dir)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2715 "Move to the next or previous breakpoint, depending on direction DIR."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2716 (let* ((frame (idlwave-shell-current-frame))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2717 (file (car frame))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2718 (orig-bp-line (nth 1 frame))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2719 (bp-alist idlwave-shell-bp-alist)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2720 (orig-func (if (> dir 0) '> '<))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2721 (closer-func (if (> dir 0) '< '>))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2722 bp got-bp bp-line cur-line)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2723 (while (setq bp (pop bp-alist))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2724 (when (string= file (car (car bp)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2725 (setq got-bp 1)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2726 (setq cur-line (nth 1 (car bp)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2727 (if (and
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2728 (funcall orig-func cur-line orig-bp-line)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2729 (or (not bp-line) (funcall closer-func cur-line bp-line)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2730 (setq bp-line cur-line))))
63426
1fca8244172a (idlwave-shell-move-to-bp): Follow error conventions.
Juanma Barranquero <lekktu@gmail.com>
parents: 62772
diff changeset
2731 (unless bp-line (error "No further breakpoints"))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2732 (goto-line bp-line)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2733
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2734 ;; Examine Commands ------------------------------------------------------
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2735
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2736 (defun idlwave-shell-help-expression (arg)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2737 "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
2738 (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
2739 (idlwave-shell-print arg 'help))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2740
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2741 (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
2742 "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
2743 `(lambda (event)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2744 "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
2745 (interactive "e")
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2746 (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
2747 (zmacs-regions t)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2748 (tracker (if (featurep 'xemacs)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2749 (if (fboundp 'default-mouse-track-event-is-with-button)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2750 'idlwave-xemacs-hack-mouse-track
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2751 'mouse-track)
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2752 'mouse-drag-region)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2753 (funcall tracker event)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2754 (idlwave-shell-print (if (idlwave-region-active-p) '(4) nil)
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2755 ,help ,ev))))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2756
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2757 ;;; Begin terrible hack section -- XEmacs tests for button2 explicitly
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2758 ;;; on drag events, calling drag-n-drop code if detected. Ughhh...
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2759 (defun idlwave-default-mouse-track-event-is-with-button (event n)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2760 t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2761
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2762 (defun idlwave-xemacs-hack-mouse-track (event)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2763 (let ((oldfunc (symbol-function 'default-mouse-track-event-is-with-button)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2764 (unwind-protect
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2765 (progn
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2766 (fset 'default-mouse-track-event-is-with-button
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2767 'idlwave-default-mouse-track-event-is-with-button)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2768 (mouse-track event))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2769 (fset 'default-mouse-track-event-is-with-button oldfunc))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2770 ;;; End terrible hack section
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2771
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2772 (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
2773 "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
2774 (interactive "e")
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2775 (funcall (idlwave-shell-mouse-examine nil) event))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2776
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2777 (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
2778 "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
2779 (interactive "e")
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2780 (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
2781
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2782 (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
2783 "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
2784 (interactive "e")
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2785 (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
2786
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2787 (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
2788 "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
2789 `(lambda ()
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2790 (interactive)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2791 (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
2792
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2793 (defvar idlwave-shell-examine-label nil
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2794 "Label to include with examine text if in a separate buffer.")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2795 (defvar idlwave-shell-examine-completion-list nil)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2796
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2797 (defun idlwave-shell-print (arg &optional help ev complete-help-type)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2798 "Print current expression.
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2799
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2800 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
2801 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
2802
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2803 print,size(___,/DIMENSIONS)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2804
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2805 HELP can also be a cons cell ( NAME . STRING ) in which case NAME will
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2806 be used to label the help print-out.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2807
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2808 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
2809
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2810 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
2811 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
2812 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
2813 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
2814 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
2815 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
2816 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
2817
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2818 With prefix arg, or if transient mode set and the region is defined,
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2819 use the current region as the expression.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2820
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2821 With double prefix arg ARG prompt for an expression.
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2822
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2823 If EV is a valid event passed, pop-up a list from
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2824 idlw-shell-examine-alist from which to select the help command text.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2825 If instead COMPLETE-HELP-TYPE is non-nil, choose from
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2826 idlw-shell-examine-alist via mini-buffer shortcut key."
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2827 (interactive "P")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2828 (save-excursion
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2829 (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
2830 (process-mark (if process (process-mark process)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2831 (stack-label
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2832 (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
2833 (> idlwave-shell-calling-stack-index 0))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2834 (format " [-%d:%s]"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2835 idlwave-shell-calling-stack-index
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2836 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
2837 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
2838 (cond
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2839 ((equal arg '(16))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2840 (setq expr (read-string "Expression: ")))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2841 ((and (or arg (idlwave-region-active-p))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2842 (< (- (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
2843 (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
2844 end (region-end)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2845 (t
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2846 (idlwave-with-special-syntax
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2847 ;; 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
2848 (if (looking-at "\\<\\|(")
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2849 ;; 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
2850 ;; 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
2851 (if (looking-at "\\>")
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2852 (backward-sexp))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2853 (backward-sexp))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2854 (if (looking-at "\\>")
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2855 ;; 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
2856 ;; function expression.
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2857 (backward-sexp))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2858 ;; Move to end of expression
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2859 (setq beg (point))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2860 (forward-sexp)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2861 (while (looking-at "\\>[[(]\\|\\.")
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2862 ;; an array
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2863 (forward-sexp))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2864 (setq end (point)))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2865
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2866 ;; 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
2867 ;; 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
2868 ;; 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
2869 (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
2870 (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
2871 (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
2872 (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
2873
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2874 ;; 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
2875 (when (and beg end idlwave-shell-expression-overlay)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2876 (move-overlay idlwave-shell-expression-overlay beg end
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2877 (current-buffer))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2878 (add-hook 'pre-command-hook
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2879 'idlwave-shell-delete-expression-overlay))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2880 (setq examine-hook
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2881 (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
2882 '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
2883 '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
2884 (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
2885 'idlwave-shell-delete-output-overlay)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2886
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2887 ;; 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
2888 (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
2889 (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
2890 ;; Concatenate continuation lines
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2891 (while (string-match "[ \t]*\\$[ \t]*\\(;.*\\)?\\(\n[ \t]*\\|$\\)" expr)
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2892 (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
2893 ;; Remove final newline
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2894 (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
2895 (setq expr (replace-match "" t t expr)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2896
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2897 (catch 'exit
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2898 ;; Pop-up or complete on the examine selection list, if appropriate
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2899 (if (or
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2900 complete-help-type
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2901 (and ev idlwave-shell-examine-alist)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2902 (consp help))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2903 (let ((help-cons
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2904 (if (consp help) help
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2905 (assoc
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2906 ;; A cons from either a pop-up or mini-buffer completion
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2907 (if complete-help-type
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2908 (idlwave-one-key-select 'idlwave-shell-examine-alist
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2909 "Examine with: " 1.5)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2910 ;; (idlwave-completing-read
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2911 ;; "Examine with: "
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2912 ;; idlwave-shell-examine-alist nil nil nil
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2913 ;; 'idlwave-shell-examine-completion-list
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2914 ;; "Print")
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2915 (idlwave-popup-select
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2916 ev
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2917 (mapcar 'car idlwave-shell-examine-alist)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2918 "Examine with"))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2919 idlwave-shell-examine-alist))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2920 (setq help (cdr help-cons))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2921 (if (null help) (throw 'exit nil))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2922 (if idlwave-shell-separate-examine-output
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2923 (setq idlwave-shell-examine-label
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2924 (concat
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2925 (format "==>%s<==\n%s:" expr (car help-cons))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2926 stack-label "\n"))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2927 ;; The regular help label (no popups, cons cells, etc.)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2928 (setq idlwave-shell-examine-label
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2929 (concat
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2930 (format "==>%s<==\n%s:" expr
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2931 (cond ((null help) "print")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2932 ((stringp help) help)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2933 (t (symbol-name help))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2934 stack-label "\n")))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2935
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2936 ;; Send the command
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2937 (if stack-label
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2938 (setq expr (idlwave-retrieve-expression-from-level
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2939 expr
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2940 idlwave-shell-calling-stack-index)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2941 (setq cmd (idlwave-shell-help-statement help expr))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2942 ;;(idlwave-shell-recenter-shell-window)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2943 (idlwave-shell-send-command
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2944 cmd
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2945 examine-hook
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2946 (if idlwave-shell-separate-examine-output 'hide))))))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2947
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2948 (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
2949 "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
2950
58307
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
2951 (defvar idlwave-shell-examine-map (make-sparse-keymap))
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
2952 (define-key idlwave-shell-examine-map "q" 'idlwave-shell-examine-display-quit)
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
2953 (define-key idlwave-shell-examine-map "c" 'idlwave-shell-examine-display-clear)
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
2954
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2955 (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
2956 "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
2957 (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
2958 (save-excursion
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2959 (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
2960 (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
2961 (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
2962 (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
2963 (save-restriction
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2964 (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
2965 (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
2966 (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
2967 (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
2968 ;; 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
2969 (let* ((end (or
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2970 (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
2971 (point-max)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2972 (beg (progn
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2973 (goto-char
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2974 (or (progn (if (re-search-backward
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2975 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
2976 (match-end 0)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2977 (point-min)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2978 (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
2979 (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
2980 (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
2981 (insert str)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2982 (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
2983 (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
2984 (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
2985 (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
2986 (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
2987 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
2988 (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
2989 (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
2990 (current-buffer))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2991
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2992 ;; 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
2993 ;; 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
2994 ;; 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
2995 ;; 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
2996 (let* ((winlist (get-buffer-window-list "*Examine*" nil 'visible)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2997 (setq win (idlwave-display-buffer
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2998 "*Examine*"
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2999 nil
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3000 (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
3001 (catch 'exit
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3002 (save-selected-window
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3003 (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
3004 (select-window thiswin)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3005 (if (one-window-p)
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3006 (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
3007 (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
3008 (save-selected-window
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3009 (select-window win)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3010 (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
3011 (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
3012 (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
3013 (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
3014 ;; Autosize it.
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3015 (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
3016 (window-height)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3017 (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
3018 ;; 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
3019 (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
3020 (delq nil
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3021 (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
3022 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
3023 ;; 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
3024 (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
3025 (setcdr elt (window-height))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3026 (add-to-list 'idlwave-shell-examine-window-alist
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3027 (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
3028 ;; 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
3029 (save-selected-window
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3030 (select-window win)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3031 (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
3032 (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
3033 (recenter -1)))))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3034
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3035 (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
3036 (interactive)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3037 (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
3038 (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
3039 (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
3040 (delete-window win))))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3041
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3042 (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
3043 (interactive)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3044 (save-excursion
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3045 (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
3046 (when (bufferp buf)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3047 (set-buffer buf)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3048 (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
3049 (erase-buffer)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3050 (setq buffer-read-only t)))))
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
3051
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3052 (defun idlwave-retrieve-expression-from-level (expr level)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
3053 "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
3054
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3055 It does not seem possible to evaluate an expression on a different
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3056 level than the current. Therefore, this function retrieves variables
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3057 by reference from other levels, and then includes that variable in
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3058 place of the chosen one.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3059
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3060 Since this function depends upon the undocumented IDL routine
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3061 routine_names, there is no guarantee that this will work with future
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3062 versions of IDL."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3063 (let ((fetch (- 0 level))
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
3064 (start 0)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3065 var fetch-start fetch-end pre post)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3066
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3067 ;; 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
3068 ;; 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
3069 ;; 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
3070 ;; 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
3071 ;; function calls, we require that arrays use [] instead of ()
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3072
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3073 (while (string-match
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3074 "\\(\\`\\|[^a-zA-Z0-9$_][ \t]*\\)\\([a-zA-Z][a-zA-Z0-9$_]*\\)\\([ \t]*[^a-zA-Z0-9$_]\\|\\'\\)" expr start)
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3075 (setq var (match-string 2 expr)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3076 start (match-end 2)
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3077 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
3078 post (substring expr (match-end 2)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3079 (cond
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3080 ((or
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3081 ;; Exclude identifiers which are not variables
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3082 (string-match ",[ \t$\n]*/\\'" pre) ;; a `/' KEYWORD
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3083 (and (string-match "[,(][ \t\n]*\\'" pre)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3084 (string-match "\\`[ \t]*=" post)) ;; a `=' KEYWORD
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3085 (string-match "\\`(" post) ;; a function
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3086 (string-match "->[ \t]*\\'" pre) ;; a method
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3087 (string-match "\\.\\'" pre))) ;; structure member
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3088
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3089 ;; Skip over strings
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3090 ((and (string-match "\\([\"\']\\)[^\1]*$" pre)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3091 (string-match (concat "^[^" (match-string 1 pre) "]*"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3092 (match-string 1 pre)) post))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3093 (setq start (+ start (match-end 0))))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3094
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3095
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3096 ;; seems to be a variable - delimit its name
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3097 (t
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3098 (put-text-property start (- start (length var)) 'fetch t expr))))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3099
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3100 (setq start 0)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3101 (while (setq fetch-start
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3102 (next-single-property-change start 'fetch expr))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3103 (if (get-text-property start 'fetch expr) ; it's on in range
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3104 (setq fetch-end fetch-start ;it's off in range
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3105 fetch-start start)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3106 (setq fetch-end (next-single-property-change fetch-start 'fetch expr)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3107 (unless fetch-end (setq fetch-end (length expr)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3108 (remove-text-properties fetch-start fetch-end '(fetch) expr)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3109 (setq expr (concat (substring expr 0 fetch-start)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3110 (format "(routine_names('%s',fetch=%d))"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3111 (substring expr fetch-start fetch-end)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3112 fetch)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3113 (substring expr fetch-end)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3114 (setq start fetch-end))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3115 (if (get-text-property 0 'fetch expr) ; Full expression, left over
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3116 (setq expr (format "(routine_names('%s',fetch=%d))" expr fetch)))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3117 expr))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3118
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3119
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3120 (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
3121 "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
3122
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3123 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
3124 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
3125 size(___,/DIMENSIONS)"
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3126 (cond
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3127 ((null help) (concat "print, " expr))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3128 ((stringp help)
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3129 (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
3130 (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
3131 expr
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3132 (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
3133 (t (concat "help, " expr))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3134
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3135
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3136 (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
3137 "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
3138 (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
3139 (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
3140 (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
3141 output-begin output-end)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3142 (save-excursion
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3143 (set-buffer buffer)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3144 (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
3145 (beginning-of-line)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3146 (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
3147 (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
3148 (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
3149 (setq output-begin (point)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3150
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3151 ;; 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
3152 (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
3153 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
3154 (if (and idlwave-shell-output-overlay process-mark)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3155 (move-overlay idlwave-shell-output-overlay
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3156 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
3157
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3158 (defun idlwave-shell-delete-output-overlay ()
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3159 (unless (or (eq this-command 'idlwave-shell-mouse-nop)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3160 (eq this-command 'handle-switch-frame))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3161 (condition-case nil
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3162 (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
3163 (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
3164 (error nil))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3165 (remove-hook 'pre-command-hook 'idlwave-shell-delete-output-overlay)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3166
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3167 (defun idlwave-shell-delete-expression-overlay ()
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3168 (unless (or (eq this-command 'idlwave-shell-mouse-nop)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3169 (eq this-command 'handle-switch-frame))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3170 (condition-case nil
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3171 (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
3172 (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
3173 (error nil))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3174 (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
3175
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3176 (defvar idlwave-shell-bp-alist nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3177 "Alist of breakpoints.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3178 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
3179
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3180 The car is the `frame' for the breakpoint:
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3181 file - full path file name.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3182 line - line number of breakpoint - integer.
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 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
3185 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
3186 module - the module for breakpoint internal to IDL.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3187
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3188 Remaining elements of the cdr:
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3189 data - Data associated with the breakpoint by idlwave-shell currently
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3190 contains four items:
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3191
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3192 count - number of times to execute breakpoint. When count reaches 0
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3193 the breakpoint is cleared and removed from the alist.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3194
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3195 command - command to execute when breakpoint is reached, either a
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3196 lisp function to be called with `funcall' with no arguments or a
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3197 list to be evaluated with `eval'.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3198
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3199 condition - any condition to apply to the breakpoint.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3200
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3201 disabled - whether the bp is disabled")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3202
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3203 (defun idlwave-shell-run-region (beg end &optional n)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3204 "Compile and run the region using the IDL process.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3205 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
3206 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
3207 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
3208 problem with begin-end blocks extending over multiple
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3209 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
3210 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
3211
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3212 If there is a prefix argument, display IDL process."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3213 (interactive "r\nP")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3214 (let ((oldbuf (current-buffer)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3215 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3216 (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
3217 (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
3218 (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
3219 (set (make-local-variable 'comment-start) ";")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3220 (erase-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3221 (insert-buffer-substring oldbuf beg end)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3222 (if (not (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3223 (idlwave-previous-statement)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3224 (idlwave-look-at "\\<end\\>")))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3225 (insert "\nend\n"))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3226 (save-buffer 0)))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3227 (idlwave-shell-send-command (concat ".run " idlwave-shell-temp-pro-file)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3228 nil
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3229 (if (idlwave-shell-hide-p 'run) 'mostly)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3230 nil t)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3231 (if n
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3232 (idlwave-display-buffer (idlwave-shell-buffer)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3233 nil (idlwave-shell-shell-frame))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3234
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3235 (defun idlwave-shell-evaluate-region (beg end &optional n)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3236 "Send region to the IDL process.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3237 If there is a prefix argument, display IDL process.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3238 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
3239 `idlwave-shell-run-region' for this."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3240 (interactive "r\nP")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3241 (idlwave-shell-send-command (buffer-substring beg end))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3242 (if n
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3243 (idlwave-display-buffer (idlwave-shell-buffer)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3244 nil (idlwave-shell-shell-frame))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3245
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
3246 (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
3247 "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
3248 (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
3249 (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
3250 (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
3251 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
3252 (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
3253 (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
3254 (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
3255 (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
3256 (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
3257 (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
3258 (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
3259 (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
3260
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3261 (defun idlwave-display-buffer (buf not-this-window-p &optional frame)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3262 (if (featurep 'xemacs)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3263 ;; The XEmacs version enforces the frame
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3264 (display-buffer buf not-this-window-p frame)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3265 ;; For Emacs, we need to force the frame ourselves.
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3266 (let ((this-frame (selected-frame)))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3267 (save-excursion ;; make sure we end up in the same buffer
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3268 (if (frame-live-p frame)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3269 (select-frame frame))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3270 (if (eq this-frame (selected-frame))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3271 ;; same frame: use display buffer, to make sure the current
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3272 ;; window stays.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3273 (display-buffer buf)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3274 ;; different frame
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3275 (if (one-window-p)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3276 ;; only window: switch
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3277 (progn
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3278 (switch-to-buffer buf)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3279 (selected-window)) ; must return the window.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3280 ;; several windows - use display-buffer
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3281 (display-buffer buf not-this-window-p)))))))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3282 ; (if (not (frame-live-p frame)) (setq frame nil))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3283 ; (display-buffer buf not-this-window-p frame))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3284
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
3285 (defvar idlwave-shell-bp-buffer " *idlwave-shell-bp*"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3286 "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
3287
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3288 (defun idlwave-shell-bp-query (&optional no-show)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3289 "Reconcile idlwave-shell's breakpoint list with IDL's.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3290 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
3291 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3292 (idlwave-shell-send-command idlwave-shell-bp-query
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3293 `(progn
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3294 (idlwave-shell-filter-bp (quote ,no-show)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3295 'hide))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3296
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3297 (defun idlwave-shell-bp-get (bp &optional item)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3298 "Get a value for a breakpoint.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3299 BP has the form of elements in idlwave-shell-bp-alist. Optional
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3300 second arg ITEM is the particular value to retrieve. ITEM can be
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3301 'file, 'line, 'index, 'module, 'count, 'cmd, 'condition, 'disabled or
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3302 'data. 'data returns a list of 'count, 'cmd and 'condition. Defaults
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3303 to 'index."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3304 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3305 ;; Frame
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3306 ((eq item 'line) (nth 1 (car bp)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3307 ((eq item 'file) (nth 0 (car bp)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3308 ;; idlwave-shell breakpoint data
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3309 ((eq item 'data) (cdr (cdr bp)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3310 ((eq item 'count) (nth 0 (cdr (cdr bp))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3311 ((eq item 'cmd) (nth 1 (cdr (cdr bp))))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3312 ((eq item 'condition) (nth 2 (cdr (cdr bp))))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3313 ((eq item 'disabled) (nth 3 (cdr (cdr bp))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3314 ;; IDL breakpoint info
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3315 ((eq item 'module) (nth 1 (car (cdr bp))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3316 ;; index - default
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3317 (t (nth 0 (car (cdr bp))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3318
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3319 (defun idlwave-shell-filter-bp (&optional no-show)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3320 "Get the breakpoints from `idlwave-shell-command-output'. Create
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3321 `idlwave-shell-bp-alist' updating breakpoint count and command data
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3322 from previous breakpoint list. If NO-SHOW is set, don't update the
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3323 breakpoint overlays."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3324 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3325 (set-buffer (get-buffer-create idlwave-shell-bp-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3326 (erase-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3327 (insert idlwave-shell-command-output)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3328 (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
3329 (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
3330 ;; Searching the breakpoints
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3331 ;; 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
3332 (bp-re54 "^[ \t]*\\([0-9]+\\)[ \t]+\\(\\S-+\\)?[ \t]+\\([0-9]+\\)[ \t]+\\(\\S-+\\)")
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3333 (bp-re55
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3334 (concat
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3335 "^\\s-*\\([0-9]+\\)" ; 1 index
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3336 "\\s-+\\([0-9]+\\)" ; 2 line number
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3337 "\\s-+\\(Uncompiled\\|" ; 3-6 either uncompiled or routine name
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3338 "\\(\\(Func=\\|Pro=\\)\\(\\$?[a-zA-Z][a-zA-Z0-9$_:]*\\$?\\)\\)\\)"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3339 "\\(\\s-*,\\s-*After=[0-9]+/\\([0-9]+\\)?\\)?" ; 7-8 After part
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3340 "\\(\\s-*,\\s-*\\(BreakOnce\\)\\)?" ; 9-10 BreakOnce
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3341 "\\(\\s-*,\\s-*\\(Condition='\\(.*\\)'\\)\n?\\)?" ; 11-13 Condition
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3342 "\\(\\s-*,\\s-*\\(Disabled\\)\n?\\)?" ; 14-15 Disabled
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3343 "\\s-+\\(\\S-+\\)")) ; 16 File name
47915
f1ce118178c3 (idlwave-shell-set-bp): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents: 47453
diff changeset
3344 file line index module
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3345 count condition disabled
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3346 bp-re indmap)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3347 (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
3348 ;; Search for either header type, and set the correct regexp
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3349 (when (or
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3350 (if (re-search-forward "^\\s-*Index.*\n\\s-*-" nil t)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3351 (setq bp-re bp-re54 ; versions <= 5.4
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3352 indmap '(1 2 3 4))) ;index module line file
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3353 (if (re-search-forward
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3354 "^\\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
3355 (setq bp-re bp-re55 ; versions >= 5.5
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3356 indmap '(1 6 2 16)))) ; index module line file
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3357 ;; There seems to be a breakpoint listing here, 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
3358 (while (re-search-forward bp-re nil t)
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 60925
diff changeset
3359 (setq index (string-to-number (match-string (nth 0 indmap)))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3360 module (match-string (nth 1 indmap))
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 60925
diff changeset
3361 line (string-to-number (match-string (nth 2 indmap)))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3362 file (idlwave-shell-file-name (match-string (nth 3 indmap))))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3363 (if (eq bp-re bp-re55)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3364 (setq count (if (match-string 10) 1
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3365 (if (match-string 8)
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 60925
diff changeset
3366 (string-to-number (match-string 8))))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3367 condition (match-string 13)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3368 disabled (not (null (match-string 15)))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3369
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
3370 ;; 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
3371 (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
3372 (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
3373 (list
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
3374 (list index module)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3375 ;; bp data: count, command, condition, disabled
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3376 count nil condition disabled))))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3377 (setq idlwave-shell-bp-alist (cdr idlwave-shell-bp-alist))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3378 ;; Update breakpoint data
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3379 (if (eq bp-re bp-re54)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3380 (mapcar 'idlwave-shell-update-bp old-bp-alist)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3381 (mapcar 'idlwave-shell-update-bp-command-only old-bp-alist))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3382 ;; Update the breakpoint overlays
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3383 (unless no-show (idlwave-shell-update-bp-overlays))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3384 ;; Return the new list
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3385 idlwave-shell-bp-alist)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3386
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3387 (defun idlwave-shell-update-bp-command-only (bp)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3388 (idlwave-shell-update-bp bp t))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3389
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3390 (defun idlwave-shell-update-bp (bp &optional command-only)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3391 "Update BP data in breakpoint list.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3392 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
3393 (let ((match (assoc (car bp) idlwave-shell-bp-alist)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3394 (if match
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3395 (if command-only
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3396 (setf (nth 1 (cdr (cdr match))) (nth 1 (cdr (cdr match))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3397 (setcdr (cdr match) (cdr (cdr bp)))))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3398
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3399 (defun idlwave-shell-set-bp-data (bp data)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3400 "Set the data of BP to DATA."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3401 (setcdr (cdr bp) data))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3402
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3403 (defun idlwave-shell-bp (frame &optional data module)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3404 "Create a breakpoint structure containing FRAME and DATA. Second
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3405 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
3406 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
3407 attempting match a breakpoint in `idlwave-shell-bp-alist'."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3408 (cons frame (cons (list nil module) data)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3409
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3410 (defvar idlwave-shell-old-bp nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3411 "List of breakpoints previous to setting a new breakpoint.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3412
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3413 (defun idlwave-shell-sources-bp (bp)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3414 "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
3415 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
3416 Otherwise return the filename in bp."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3417 (let*
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3418 ((bp-file (idlwave-shell-bp-get bp 'file))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3419 (bp-module (idlwave-shell-bp-get bp 'module))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3420 (internal-file-list
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3421 (if bp-module
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3422 (cdr (assoc bp-module idlwave-shell-sources-alist)))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3423 (if (and internal-file-list
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3424 (equal bp-file (nth 0 internal-file-list)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3425 (nth 1 internal-file-list)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3426 bp-file)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3427
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3428 (defun idlwave-shell-set-bp (bp &optional no-show)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3429 "Try to set a breakpoint BP.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3430 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
3431 line specified by BP or at the next IDL statement if that line is not
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3432 a statement. Determines IDL's internal representation for the
58307
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
3433 breakpoint, which may have occurred at a different line than
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3434 specified. If NO-SHOW is non-nil, don't do any updating."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3435 ;; Get and save the old breakpoints
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3436 (idlwave-shell-send-command
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3437 idlwave-shell-bp-query
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3438 `(progn
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3439 (idlwave-shell-filter-bp (quote ,no-show))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3440 (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
3441 'hide)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3442
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3443 ;; Get sources for this routine in the sources list
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3444 (idlwave-shell-module-source-query (idlwave-shell-bp-get bp 'module))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3445 (let*
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3446 ((arg (idlwave-shell-bp-get bp 'count))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3447 (key (cond
41608
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 38436
diff changeset
3448 ((not (and arg (numberp arg))) "")
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 38436
diff changeset
3449 ((= arg 1)
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 38436
diff changeset
3450 ",/once")
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 38436
diff changeset
3451 ((> arg 1)
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 38436
diff changeset
3452 (format ",after=%d" arg))))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3453 (condition (idlwave-shell-bp-get bp 'condition))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3454 (disabled (idlwave-shell-bp-get bp 'disabled))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3455 (key (concat key
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3456 (if condition (concat ",CONDITION=\"" condition "\""))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3457 (key (concat key (if disabled ",/DISABLE")))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3458 (line (idlwave-shell-bp-get bp 'line)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3459 (idlwave-shell-send-command
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3460 (concat "breakpoint,'"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3461 (idlwave-shell-sources-bp bp) "',"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3462 (if (integerp line) (setq line (int-to-string line)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3463 key)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3464 ;; Check for failure and adjust breakpoint to match IDL's list
41608
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 38436
diff changeset
3465 `(progn
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3466 (if (idlwave-shell-set-bp-check (quote ,bp))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3467 (idlwave-shell-set-bp-adjust (quote ,bp) (quote ,no-show))))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3468 ;; hide output?
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3469 (idlwave-shell-hide-p 'breakpoint)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3470 'preempt t)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3471
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3472 (defun idlwave-shell-set-bp-adjust (bp &optional no-show)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3473 "Find the breakpoint in IDL's internal list of breakpoints."
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3474 (idlwave-shell-send-command
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3475 idlwave-shell-bp-query
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3476 `(progn
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3477 (idlwave-shell-filter-bp 'no-show)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3478 (idlwave-shell-new-bp (quote ,bp))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3479 (unless (quote ,no-show)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3480 (idlwave-shell-update-bp-overlays)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3481 'hide
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3482 'preempt))
27107
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 (defun idlwave-shell-find-bp (frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3485 "Return breakpoint from `idlwave-shell-bp-alist' for frame.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3486 Returns nil if frame not found."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3487 (assoc frame idlwave-shell-bp-alist))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3488
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3489 (defun idlwave-shell-find-current-bp ()
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3490 "Find breakpoint here, or at halt location."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3491 (let ((bp (idlwave-shell-find-bp (idlwave-shell-current-frame))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3492 (when (not bp)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3493 ;; Try moving to beginning of halted-at statement
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3494 (save-excursion
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3495 (idlwave-shell-goto-frame)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3496 (idlwave-beginning-of-statement)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3497 (setq bp (idlwave-shell-find-bp (idlwave-shell-current-frame))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3498 (unless bp
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3499 (beep)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3500 (message "Cannot identify breakpoint for this line")))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3501 bp))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3502
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3503 (defun idlwave-shell-new-bp (bp)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3504 "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
3505 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
3506 the line number used with the IDL breakpoint command.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3507 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
3508 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
3509 (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
3510 (bpl idlwave-shell-bp-alist))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3511 (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
3512 (setq bpl (cdr bpl))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3513 (if (and
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3514 (not bpl)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3515 ;; No additional breakpoint.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3516 ;; 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
3517 (setq bpl (assoc (car bp) idlwave-shell-bp-alist)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3518 (setq bpl (list bpl)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3519 (if (and bpl
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3520 (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
3521 (idlwave-shell-bp-get bp 'file)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3522 ;; Got the breakpoint - add count, command to it.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3523 ;; 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
3524 ;; not done for bpl.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3525 (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
3526 (beep)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3527 (message "Failed to identify breakpoint in IDL"))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3528
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3529 (defvar idlwave-shell-bp-overlays nil
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3530 "Alist of overlays marking breakpoints")
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
3531 (defvar idlwave-shell-bp-glyph)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3532
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3533 (defvar idlwave-shell-debug-line-map (make-sparse-keymap))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3534 (define-key idlwave-shell-debug-line-map
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3535 (if (featurep 'xemacs) [button3] [mouse-3])
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3536 'idlwave-shell-mouse-active-bp)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3537
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3538 (defun idlwave-shell-update-bp-overlays ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3539 "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
3540 Existing overlays are recycled, in order to minimize consumption."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3541 (when idlwave-shell-mark-breakpoints
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3542 (let ((ov-alist (copy-alist idlwave-shell-bp-overlays))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3543 (bp-list idlwave-shell-bp-alist)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3544 (use-glyph (and (memq idlwave-shell-mark-breakpoints '(t glyph))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3545 idlwave-shell-bp-glyph))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3546 ov ov-list bp buf old-buffers win)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3547
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3548 ;; Delete the old overlays from their buffers
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3549 (if ov-alist
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3550 (while (setq ov-list (pop ov-alist))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3551 (while (setq ov (pop (cdr ov-list)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3552 (add-to-list 'old-buffers (overlay-buffer ov))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3553 (delete-overlay ov))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3554
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3555 (setq ov-alist idlwave-shell-bp-overlays
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3556 idlwave-shell-bp-overlays
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3557 (if idlwave-shell-bp-glyph
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3558 (mapcar 'list (mapcar 'car idlwave-shell-bp-glyph))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3559 (list (list 'bp))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3560 (while (setq bp (pop bp-list))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3561 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3562 (idlwave-shell-goto-frame (car bp))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3563 (let* ((end (progn (end-of-line 1) (point)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3564 (beg (progn (beginning-of-line 1) (point)))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3565 (condition (idlwave-shell-bp-get bp 'condition))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3566 (count (idlwave-shell-bp-get bp 'count))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3567 (disabled (idlwave-shell-bp-get bp 'disabled))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3568 (type (if idlwave-shell-bp-glyph
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3569 (cond
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3570 (condition 'bp-cond )
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3571 (count
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3572 (cond
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3573 ((<= count 0) 'bp)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3574 ((<= count 4)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3575 (intern
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3576 (concat "bp-" (number-to-string count))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3577 (t 'bp-n)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3578 (t 'bp))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3579 'bp))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3580 (help-list
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3581 (delq nil
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3582 (list
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3583 (if count
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3584 (concat "after:" (int-to-string count)))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3585 (if condition
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3586 (concat "condition:" condition))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3587 (if disabled "disabled"))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3588 (help-text (concat
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3589 "BP "
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3590 (int-to-string (idlwave-shell-bp-get bp))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3591 (if help-list
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3592 (concat
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3593 " - "
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3594 (mapconcat 'identity help-list ", ")))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3595 (if (and (not count) (not condition))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3596 " (use mouse-3 for breakpoint actions)")))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3597 (full-type (if disabled
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3598 (intern (concat (symbol-name type)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3599 "-disabled"))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3600 type))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3601 (ov-existing (assq full-type ov-alist))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3602 (ov (or (and (cdr ov-existing)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3603 (pop (cdr ov-existing)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3604 (idlwave-shell-make-new-bp-overlay type disabled)))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3605 match)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3606 (if idlwave-shell-breakpoint-popup-menu
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3607 (overlay-put ov 'help-echo help-text))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3608 (move-overlay ov beg end)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3609 (if (setq match (assq full-type idlwave-shell-bp-overlays))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3610 (push ov (cdr match))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3611 (nconc idlwave-shell-bp-overlays
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3612 (list (list full-type ov)))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3613 ;; Take care of margins if using a glyph
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3614 (when use-glyph
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3615 (if old-buffers
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3616 (setq old-buffers (delq (current-buffer) old-buffers)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3617 (if (fboundp 'set-specifier) ;; XEmacs
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3618 (set-specifier left-margin-width (cons (current-buffer) 2))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3619 (setq left-margin-width 2))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3620 (if (setq win (get-buffer-window (current-buffer) t))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3621 (set-window-buffer win (current-buffer))))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3622 (if use-glyph
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3623 (while (setq buf (pop old-buffers))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3624 (with-current-buffer buf
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3625 (if (fboundp 'set-specifier) ;; XEmacs
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3626 (set-specifier left-margin-width (cons (current-buffer) 0))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3627 (setq left-margin-width 0))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3628 (if (setq win (get-buffer-window buf t))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3629 (set-window-buffer win buf))))))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3630
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3631 (defun idlwave-shell-make-new-bp-overlay (&optional type disabled)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3632 "Make a new overlay for highlighting breakpoints.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3633
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3634 This stuff is strongly dependant upon the version of Emacs. If TYPE
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3635 is passed, make an overlay of that type ('bp or 'bp-cond, currently
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3636 only for glyphs)."
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3637 (let ((ov (make-overlay 1 1))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3638 (use-glyph (and (memq idlwave-shell-mark-breakpoints '(t glyph))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3639 idlwave-shell-bp-glyph))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3640 (type (or type 'bp))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3641 (face (if disabled
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3642 idlwave-shell-disabled-breakpoint-face
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3643 idlwave-shell-breakpoint-face)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3644 (if (featurep 'xemacs)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3645 ;; This is XEmacs
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3646 (progn
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3647 (when idlwave-shell-breakpoint-popup-menu
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3648 (set-extent-property ov 'mouse-face 'highlight)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3649 (set-extent-property ov 'keymap idlwave-shell-debug-line-map))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3650
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3651 (cond
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3652 ;; tty's cannot display glyphs
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3653 ((eq (console-type) 'tty)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3654 (set-extent-property ov 'face face))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3655
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3656 ;; use the glyph
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3657 (use-glyph
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3658 (let ((glyph (cdr (assq type idlwave-shell-bp-glyph))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3659 (if disabled (setq glyph (car glyph)) (setq glyph (nth 1 glyph)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3660 (set-extent-property ov 'begin-glyph glyph)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3661 (set-extent-property ov 'begin-glyph-layout 'outside-margin)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3662
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3663 ;; use the face
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3664 (idlwave-shell-mark-breakpoints
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3665 (set-extent-property ov 'face face))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3666
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3667 ;; no marking
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3668 (t nil))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3669 (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
3670 ;; This is Emacs
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3671 (when idlwave-shell-breakpoint-popup-menu
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3672 (overlay-put ov 'mouse-face 'highlight)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3673 (overlay-put ov 'keymap idlwave-shell-debug-line-map))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3674 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3675 (window-system
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3676 (if use-glyph
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3677 (let ((image-props (cdr (assq type idlwave-shell-bp-glyph)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3678 string)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3679
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3680 (if disabled (setq image-props
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3681 (append image-props
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3682 (list :conversion 'disabled))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3683 (setq string
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3684 (propertize "@"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3685 'display
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3686 (list (list 'margin 'left-margin)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3687 image-props)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3688 (overlay-put ov 'before-string string))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3689 ;; just the face
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3690 (overlay-put ov 'face face)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3691
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3692 ;; use a face
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3693 (idlwave-shell-mark-breakpoints
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3694 (overlay-put ov 'face face))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3695
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3696 ;; No marking
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3697 (t nil)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3698 ov))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3699
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3700 (defun idlwave-shell-mouse-active-bp (ev)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3701 "Does right-click mouse action on breakpoint lines."
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3702 (interactive "e")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3703 (if ev (mouse-set-point ev))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3704 (let ((bp (idlwave-shell-find-bp (idlwave-shell-current-frame)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3705 index condition count select cmd disabled)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3706 (unless bp
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3707 (error "Breakpoint not found"))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3708 (setq index (int-to-string (idlwave-shell-bp-get bp))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3709 condition (idlwave-shell-bp-get bp 'condition)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3710 cmd (idlwave-shell-bp-get bp 'cmd)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3711 count (idlwave-shell-bp-get bp 'count)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3712 disabled (idlwave-shell-bp-get bp 'disabled))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3713 (setq select (idlwave-popup-select
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3714 ev
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3715 (delq nil
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3716 (list (if disabled "Enable" "Disable")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3717 "Clear"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3718 "Clear All"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3719 (if condition "Remove Condition" "Add Condition")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3720 (if condition "Change Condition")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3721 (if count "Remove Repeat Count"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3722 "Add Repeat Count")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3723 (if count "Change Repeat Count")))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3724 (concat "BreakPoint " index)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3725 (if select
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3726 (cond
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3727 ((string-equal select "Clear All")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3728 (idlwave-shell-clear-all-bp))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3729 ((string-equal select "Clear")
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3730 (idlwave-shell-clear-current-bp))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3731 ((string-match "Condition" select)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3732 (idlwave-shell-break-here count cmd
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3733 (if (or (not condition)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3734 (string-match "Change" select))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3735 (read-string "Break Condition: "))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3736 disabled))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3737 ((string-match "Count" select)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3738 (idlwave-shell-break-here (if (or (not count)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3739 (string-match "Change" select))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3740 (string-to-number
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3741 (read-string "Break After Count: ")))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3742 cmd condition disabled))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3743 ((string-match "able$" select)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3744 (idlwave-shell-toggle-enable-current-bp))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3745 (t
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3746 (message "Unimplemented: %s" select))))))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3747
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3748 (defun idlwave-shell-edit-default-command-line (arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3749 "Edit the current execute command."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3750 (interactive "P")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3751 (setq idlwave-shell-command-line-to-execute
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3752 (read-string "IDL> " idlwave-shell-command-line-to-execute)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3753
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3754 (defun idlwave-shell-execute-default-command-line (arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3755 "Execute a command line. On first use, ask for the command.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3756 Also with prefix arg, ask for the command. You can also use the command
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3757 `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
3758 (interactive "P")
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3759 (cond
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3760 ((equal arg '(16))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3761 (setq idlwave-shell-command-line-to-execute nil))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3762 ((equal arg '(4))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3763 (setq idlwave-shell-command-line-to-execute
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3764 (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
3765 (idlwave-shell-reset 'hidden)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3766 (idlwave-shell-send-command
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3767 (or idlwave-shell-command-line-to-execute
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3768 (with-current-buffer (idlwave-shell-buffer)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3769 (ring-ref comint-input-ring 0)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3770 '(idlwave-shell-redisplay 'hide)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3771
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3772 (defun idlwave-shell-save-and-run ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3773 "Save file and run it in IDL.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3774 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
3775 When called from the shell buffer, re-run the file which was last handled by
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3776 one of the save-and-.. commands."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3777 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3778 (idlwave-shell-save-and-action 'run))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3779
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3780 (defun idlwave-shell-save-and-compile ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3781 "Save file and run it in IDL.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3782 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
3783 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
3784 one of the save-and-.. commands."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3785 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3786 (idlwave-shell-save-and-action 'compile))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3787
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3788 (defun idlwave-shell-save-and-batch ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3789 "Save file and batch it in IDL.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3790 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
3791 When called from the shell buffer, re-batch the file which was last handled by
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3792 one of the save-and-.. commands."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3793 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3794 (idlwave-shell-save-and-action 'batch))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3795
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3796 (defun idlwave-shell-save-and-action (action)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3797 "Save file and compile it in IDL.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3798 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
3799 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
3800 handled by this command."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3801 ;; Remove the stop overlay.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3802 (if idlwave-shell-stop-line-overlay
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3803 (delete-overlay idlwave-shell-stop-line-overlay))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3804 (if idlwave-shell-is-stopped
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3805 (idlwave-shell-electric-debug-all-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
3806 (setq idlwave-shell-is-stopped nil)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3807 (setq overlay-arrow-string nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3808 (let (buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3809 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3810 ((eq major-mode 'idlwave-mode)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3811 (save-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3812 (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
3813 (idlwave-shell-last-save-and-action-file
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3814 (if (setq buf (idlwave-get-buffer-visiting
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3815 idlwave-shell-last-save-and-action-file))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3816 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3817 (set-buffer buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3818 (save-buffer))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3819 (t (setq idlwave-shell-last-save-and-action-file
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3820 (read-file-name "File: ")))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3821 (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
3822 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3823 (idlwave-shell-send-command
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3824 (concat (cond ((eq action 'run) ".run ")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3825 ((eq action 'compile) ".compile ")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3826 ((eq action 'batch) "@")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3827 (t (error "Unknown action %s" action)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3828 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
3829 'idlwave-shell-maybe-update-routine-info
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3830 (if (idlwave-shell-hide-p 'run) 'mostly) nil t)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3831 (idlwave-shell-bp-query))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3832 (let ((msg (format "No such file %s"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3833 idlwave-shell-last-save-and-action-file)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3834 (setq idlwave-shell-last-save-and-action-file nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3835 (error msg))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3836
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3837 (defun idlwave-shell-maybe-update-routine-info (&optional wait)
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
3838 "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
3839 (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
3840 (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
3841 (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
3842 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
3843 idlwave-routines)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3844 (idlwave-shell-update-routine-info t nil wait)))
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
3845
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3846 (defvar idlwave-shell-sources-query "help,/source,/full"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3847 "IDL command to obtain source files for compiled procedures.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3848
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3849 (defvar idlwave-shell-sources-alist nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3850 "Alist of IDL procedure names and compiled source files.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3851 Elements of the alist have the form:
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3852
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3853 (module name . (source-file-truename idlwave-internal-filename)).")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3854
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3855 (defun idlwave-shell-module-source-query (module)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3856 "Determine the source file for a given module."
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3857 (if module
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3858 (idlwave-shell-send-command
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3859 (format "print,(routine_info('%s',/SOURCE)).PATH" module)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3860 `(idlwave-shell-module-source-filter ,module)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3861 'hide)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3862
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3863 (defun idlwave-shell-module-source-filter (module)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3864 "Get module source, and update idlwave-shell-sources-alist."
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3865 (let ((old (assoc (upcase module) idlwave-shell-sources-alist))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3866 filename)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3867 (if (string-match "\.PATH *[\n\r]\\([^\r\n]+\\)[\n\r]"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3868 idlwave-shell-command-output)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3869 (setq filename (substring idlwave-shell-command-output
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3870 (match-beginning 1) (match-end 1)))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3871 (error "No file matching module found."))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3872 (if old
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3873 (setcdr old (list (idlwave-shell-file-name filename) filename))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3874 (setq idlwave-shell-sources-alist
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3875 (append idlwave-shell-sources-alist
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3876 (list (cons (upcase module)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3877 (list (idlwave-shell-file-name filename)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3878 filename))))))))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3879
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3880 (defun idlwave-shell-sources-query ()
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3881 "Determine source files for all IDL compiled procedures.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3882 Queries IDL using the string in `idlwave-shell-sources-query'."
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3883 (interactive)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3884 (idlwave-shell-send-command idlwave-shell-sources-query
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3885 'idlwave-shell-sources-filter
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3886 'hide))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3887
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3888 (defun idlwave-shell-sources-filter ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3889 "Get source files from `idlwave-shell-sources-query' output.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3890 Create `idlwave-shell-sources-alist' consisting of
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3891 list elements of the form:
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3892 (module name . (source-file-truename idlwave-internal-filename))."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3893 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3894 (set-buffer (get-buffer-create idlwave-shell-bp-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3895 (erase-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3896 (insert idlwave-shell-command-output)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3897 (goto-char (point-min))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3898 (let (cpro cfun)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3899 (if (re-search-forward "Compiled Procedures:" nil t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3900 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3901 (forward-line) ; Skip $MAIN$
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3902 (setq cpro (point))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3903 (if (re-search-forward "Compiled Functions:" nil t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3904 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3905 (setq cfun (point))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3906 (setq idlwave-shell-sources-alist
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3907 (append
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3908 ;; compiled procedures
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3909 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3910 (beginning-of-line)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3911 (narrow-to-region cpro (point))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3912 (goto-char (point-min))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3913 (idlwave-shell-sources-grep))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3914 ;; compiled functions
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3915 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3916 (widen)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3917 (goto-char cfun)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3918 (idlwave-shell-sources-grep)))))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3919
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3920 (defun idlwave-shell-sources-grep ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3921 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3922 (let ((al (list nil)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3923 (while (and
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3924 (not (progn (forward-line) (eobp)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3925 (re-search-forward
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3926 "\\s-*\\(\\S-+\\)\\s-+\\(\\S-+\\)" nil t))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3927 (nconc al
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3928 (list
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3929 (cons
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3930 (buffer-substring ; name
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3931 (match-beginning 1) (match-end 1))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3932 (let ((internal-filename
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3933 (buffer-substring ; source
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3934 (match-beginning 2) (match-end 2))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3935 (list
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3936 (idlwave-shell-file-name internal-filename)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3937 internal-filename))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3938 ))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3939 (cdr al))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3940
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3941 (defun idlwave-shell-clear-all-bp ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3942 "Remove all breakpoints in IDL."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3943 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3944 (idlwave-shell-send-command
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3945 idlwave-shell-bp-query
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3946 '(progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3947 (idlwave-shell-filter-bp)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3948 (mapcar 'idlwave-shell-clear-bp idlwave-shell-bp-alist))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3949 'hide))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3950
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3951 (defun idlwave-shell-list-all-bp ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3952 "List all breakpoints in IDL."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3953 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3954 (idlwave-shell-send-command
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3955 idlwave-shell-bp-query))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3956
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3957 (defvar idlwave-shell-error-last 0
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3958 "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
3959
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3960 (defun idlwave-shell-goto-next-error ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3961 "Move point to next IDL syntax error."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3962 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3963 (let (frame col)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3964 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3965 (set-buffer idlwave-shell-error-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3966 (goto-char idlwave-shell-error-last)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3967 (if (or
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3968 (re-search-forward idlwave-shell-syntax-error nil t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3969 (re-search-forward idlwave-shell-other-error nil t))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3970 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3971 (setq frame
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3972 (list
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3973 (save-match-data
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3974 (idlwave-shell-file-name
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3975 (buffer-substring (match-beginning 1 )
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3976 (match-end 1))))
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 60925
diff changeset
3977 (string-to-number
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3978 (buffer-substring (match-beginning 2)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3979 (match-end 2)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3980 ;; Try to find the column of the error
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3981 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3982 (setq col
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3983 (if (re-search-backward "\\^" nil t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3984 (current-column)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3985 0)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3986 (setq idlwave-shell-error-last (point)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3987 (if frame
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3988 (progn
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3989 (idlwave-shell-display-line frame col 'no-debug))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3990 (beep)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3991 (message "No more errors."))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3992
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3993 (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
3994 "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
3995 Otherwise, just expand the file name."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3996 (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
3997 default-directory
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3998 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
3999 (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
4000 (file-truename name def-dir)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4001 (expand-file-name name def-dir))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4002
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4003 ;; Keybindings ------------------------------------------------------------
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4004
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4005 (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
4006 "Keymap for idlwave-mode.")
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4007 (defvar idlwave-shell-electric-debug-mode-map (make-sparse-keymap))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4008 (defvar idlwave-shell-mode-prefix-map (make-sparse-keymap))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4009 (fset 'idlwave-shell-mode-prefix-map idlwave-shell-mode-prefix-map)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4010 (defvar idlwave-mode-prefix-map (make-sparse-keymap))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4011 (fset 'idlwave-mode-prefix-map idlwave-mode-prefix-map)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4012
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4013 (defun idlwave-shell-define-key-both (key hook)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4014 "Define a key in both the shell and buffer mode maps."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4015 (define-key idlwave-mode-map key hook)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4016 (define-key idlwave-shell-mode-map key hook))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4017
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4018 ;(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
4019 ;(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
4020 (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
4021 (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
4022 (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
4023 (define-key idlwave-shell-mode-map "\C-c?" 'idlwave-routine-info)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
4024 (define-key idlwave-shell-mode-map "\C-g" 'idlwave-keyboard-quit)
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4025 (define-key idlwave-shell-mode-map "\M-?" 'idlwave-context-help)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
4026 (define-key idlwave-shell-mode-map [(control meta ?\?)] 'idlwave-online-help)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4027 (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
4028 (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
4029 (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
4030 (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
4031 (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
4032 (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
4033 (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
4034 'idlwave-shell-debug-map)
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4035 (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
4036 (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
4037 (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
4038 (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
4039
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4040 ;; 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
4041 (idlwave-shell-define-key-both
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4042 (if (featurep 'xemacs)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4043 [(shift button2)]
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4044 [(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
4045 '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
4046 (idlwave-shell-define-key-both
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4047 (if (featurep 'xemacs)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4048 [(control meta button2)]
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4049 [(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
4050 '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
4051 (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
4052 (if (featurep 'xemacs)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4053 [(control shift button2)]
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4054 [(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
4055 '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
4056 ;; Add this one from the idlwave-mode-map
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4057 (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
4058 (if (featurep 'xemacs)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4059 [(shift button3)]
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4060 [(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
4061 '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
4062
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4063 ;; For Emacs, we need to turn off the button release events.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4064 (defun idlwave-shell-mouse-nop (event)
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4065 (interactive "e"))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4066 (unless (featurep 'xemacs)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4067 (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
4068 [(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
4069 (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
4070 [(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
4071 (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
4072 [(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
4073
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4074
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4075 ;; The following set of bindings is used to bind the debugging keys.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4076 ;; If `idlwave-shell-activate-prefix-keybindings' is non-nil, the
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4077 ;; first key in the list gets bound the C-c C-d prefix map. If
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4078 ;; `idlwave-shell-debug-modifiers' is non-nil, the second key in the
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4079 ;; list gets bound with the specified modifiers in both
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4080 ;; `idlwave-mode-map' and `idlwave-shell-mode-map'. The next list
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4081 ;; item, if non-nil, means to bind this as a single key in the
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4082 ;; electric-debug-mode-map.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4083 ;;
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4084 ;; [C-c C-d]-binding debug-modifier-key command bind-electric-debug buf-only
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4085 ;; Used keys: abcdef hijklmnopqrstuvwxyz
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4086 ;; Unused keys: g
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4087 (let* ((specs
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4088 '(([(control ?b)] ?b idlwave-shell-break-here t t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4089 ([(control ?i)] ?i idlwave-shell-break-in t t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4090 ([(control ?j)] ?j idlwave-shell-break-this-module t t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4091 ([(control ?d)] ?d idlwave-shell-clear-current-bp t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4092 ([(control ?a)] ?a idlwave-shell-clear-all-bp t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4093 ([(control ?\\)] ?\\ idlwave-shell-toggle-enable-current-bp t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4094 ([(control ?s)] ?s idlwave-shell-step t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4095 ([(control ?n)] ?n idlwave-shell-stepover t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4096 ([(control ?k)] ?k idlwave-shell-skip t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4097 ([(control ?u)] ?u idlwave-shell-up t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4098 ([(control ?o)] ?o idlwave-shell-out t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4099 ([(control ?m)] ?m idlwave-shell-return t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4100 ([(control ?h)] ?h idlwave-shell-to-here t t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4101 ([(control ?r)] ?r idlwave-shell-cont t)
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4102 ([(control ?y)] ?y idlwave-shell-execute-default-command-line)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4103 ([(control ?z)] ?z idlwave-shell-reset t)
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4104 ([(control ?q)] ?q idlwave-shell-quit)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4105 ([(control ?p)] ?p idlwave-shell-print t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4106 ([( ??)] ?? idlwave-shell-help-expression t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4107 ([(control ?v)] ?v idlwave-shell-toggle-electric-debug-mode t t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4108 ([(control ?x)] ?x idlwave-shell-goto-next-error)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4109 ([(control ?c)] ?c idlwave-shell-save-and-run t)
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4110 ([( ?@)] ?@ idlwave-shell-save-and-batch)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4111 ([(control ?e)] ?e idlwave-shell-run-region)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4112 ([(control ?w)] ?w idlwave-shell-resync-dirs)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4113 ([(control ?l)] ?l idlwave-shell-redisplay t)
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4114 ([(control ?t)] ?t idlwave-shell-toggle-toolbar)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4115 ([(control up)] up idlwave-shell-stack-up)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4116 ([(control down)] down idlwave-shell-stack-down)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4117 ([( ?[)] ?[ idlwave-shell-goto-previous-bp t t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4118 ([( ?])] ?] idlwave-shell-goto-next-bp t t)
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4119 ([(control ?f)] ?f idlwave-shell-window)))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4120 (mod (cond ((and idlwave-shell-debug-modifiers
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4121 (listp idlwave-shell-debug-modifiers)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4122 (not (equal '() idlwave-shell-debug-modifiers)))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4123 idlwave-shell-debug-modifiers)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4124 (idlwave-shell-activate-alt-keybindings
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4125 '(alt))))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4126 (shift (memq 'shift mod))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4127 (mod-noshift (delete 'shift (copy-sequence mod)))
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
4128 s k1 c2 k2 cmd electric only-buffer cannotshift)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4129 (while (setq s (pop specs))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4130 (setq k1 (nth 0 s)
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4131 c2 (nth 1 s)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4132 cmd (nth 2 s)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4133 electric (nth 3 s)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4134 only-buffer (nth 4 s)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4135 cannotshift (and shift (char-valid-p c2) (eq c2 (upcase c2))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4136
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4137 ;; The regular prefix keymap.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4138 (when (and idlwave-shell-activate-prefix-keybindings k1)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4139 (unless only-buffer
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4140 (define-key idlwave-shell-mode-prefix-map k1 cmd))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4141 (define-key idlwave-mode-prefix-map k1 cmd))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4142 ;; The debug modifier map
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4143 (when (and mod window-system)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4144 (if (char-or-string-p c2)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4145 (setq k2 (vector (append mod-noshift
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4146 (list (if shift (upcase c2) c2)))))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4147 (setq k2 (vector (append mod (list c2)))))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4148 (unless cannotshift
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4149 (define-key idlwave-mode-map k2 cmd)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4150 (unless only-buffer (define-key idlwave-shell-mode-map k2 cmd))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4151 ;; The electric debug single-keystroke map
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4152 (if (and electric (char-or-string-p c2))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4153 (define-key idlwave-shell-electric-debug-mode-map (char-to-string c2)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4154 cmd))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4155
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4156 ;; A few extras in the electric debug map
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4157 (define-key idlwave-shell-electric-debug-mode-map " " 'idlwave-shell-step)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4158 (define-key idlwave-shell-electric-debug-mode-map "+" 'idlwave-shell-stack-up)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4159 (define-key idlwave-shell-electric-debug-mode-map "=" 'idlwave-shell-stack-up)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4160 (define-key idlwave-shell-electric-debug-mode-map "-"
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4161 'idlwave-shell-stack-down)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4162 (define-key idlwave-shell-electric-debug-mode-map "_"
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4163 'idlwave-shell-stack-down)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4164 (define-key idlwave-shell-electric-debug-mode-map "q" 'idlwave-shell-retall)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4165 (define-key idlwave-shell-electric-debug-mode-map "t"
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4166 '(lambda () (interactive) (idlwave-shell-send-command "help,/TRACE")))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4167 (define-key idlwave-shell-electric-debug-mode-map [(control ??)]
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4168 'idlwave-shell-electric-debug-help)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4169 (define-key idlwave-shell-electric-debug-mode-map "x"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4170 '(lambda (arg) (interactive "P")
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4171 (idlwave-shell-print arg nil nil t)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4172
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4173
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4174 ; Enter the prefix map in two places.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4175 (fset 'idlwave-debug-map idlwave-mode-prefix-map)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4176 (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
4177
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4178 ;; The Electric Debug Minor Mode --------------------------------------------
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4179
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4180 (defun idlwave-shell-toggle-electric-debug-mode ()
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4181 "Toggle electric-debug-mode, suppressing re-entry into mode if turned off."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4182 (interactive)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4183 ;; If turning it off, make sure it stays off throughout the debug
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4184 ;; session until we return or hit $MAIN$. Cancel this suppression
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4185 ;; if it's explicitly turned on.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4186 (if idlwave-shell-electric-debug-mode
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4187 (setq idlwave-shell-suppress-electric-debug t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4188 (setq idlwave-shell-suppress-electric-debug nil))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4189 (idlwave-shell-electric-debug-mode))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4190
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4191 (defvar idlwave-shell-electric-debug-read-only)
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
4192 (defvar idlwave-shell-electric-debug-buffers nil)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
4193
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4194 (easy-mmode-define-minor-mode idlwave-shell-electric-debug-mode
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4195 "Toggle Electric Debug mode.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4196 With no argument, this command toggles the mode.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4197 Non-null prefix argument turns on the mode.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4198 Null prefix argument turns off the mode.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4199
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4200 When Electric Debug mode is enabled, the many debugging commands are
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4201 available as single key sequences."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4202 nil
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4203 " *Debugging*"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4204 idlwave-shell-electric-debug-mode-map)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4205
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4206 (add-hook
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4207 'idlwave-shell-electric-debug-mode-on-hook
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4208 (lambda ()
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4209 (set (make-local-variable 'idlwave-shell-electric-debug-read-only)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4210 buffer-read-only)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4211 (setq buffer-read-only t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4212 (add-to-list 'idlwave-shell-electric-debug-buffers (current-buffer))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4213 (if idlwave-shell-stop-line-overlay
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4214 (overlay-put idlwave-shell-stop-line-overlay 'face
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4215 idlwave-shell-electric-stop-line-face))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4216 (if (facep 'fringe)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4217 (set-face-foreground 'fringe idlwave-shell-electric-stop-color
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4218 (selected-frame)))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4219
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4220 (add-hook
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4221 'idlwave-shell-electric-debug-mode-off-hook
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4222 (lambda ()
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4223 ;; Return to previous read-only state
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4224 (setq buffer-read-only (if (boundp 'idlwave-shell-electric-debug-read-only)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4225 idlwave-shell-electric-debug-read-only))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4226 (setq idlwave-shell-electric-debug-buffers
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4227 (delq (current-buffer) idlwave-shell-electric-debug-buffers))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4228 (if idlwave-shell-stop-line-overlay
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4229 (overlay-put idlwave-shell-stop-line-overlay 'face
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4230 idlwave-shell-stop-line-face)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4231 (if (facep 'fringe)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4232 (set-face-foreground 'fringe (face-foreground 'default))))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4233
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4234 ;; easy-mmode defines electric-debug-mode for us, so we need to advise it.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4235 (defadvice idlwave-shell-electric-debug-mode (after print-enter activate)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4236 "Print out an entrance message"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4237 (when idlwave-shell-electric-debug-mode
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4238 (message
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4239 "Electric Debugging mode entered. Press [C-?] for help, [q] to quit"))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4240 (force-mode-line-update))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4241
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4242 ;; Turn it off in all relevant buffers
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4243 (defvar idlwave-shell-electric-debug-buffers nil)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4244 (defun idlwave-shell-electric-debug-all-off ()
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4245 (setq idlwave-shell-suppress-electric-debug nil)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4246 (let ((buffers idlwave-shell-electric-debug-buffers)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4247 buf)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4248 (save-excursion
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4249 (while (setq buf (pop buffers))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4250 (when (buffer-live-p buf)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4251 (set-buffer buf)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4252 (when (and (eq major-mode 'idlwave-mode)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4253 buffer-file-name
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4254 idlwave-shell-electric-debug-mode)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4255 (idlwave-shell-electric-debug-mode))))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4256 (setq idlwave-shell-electric-debug-buffers nil))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4257
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4258 ;; Show the help text
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4259 (defun idlwave-shell-electric-debug-help ()
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4260 (interactive)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4261 (with-output-to-temp-buffer "*IDLWAVE Electric Debug Help*"
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4262 (princ idlwave-shell-electric-debug-help))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4263 (let* ((current-window (selected-window))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4264 (window (get-buffer-window "*IDLWAVE Electric Debug Help*"))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4265 (window-lines (window-height window)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4266 (select-window window)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4267 (enlarge-window (1+ (- (count-lines 1 (point-max)) window-lines)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4268 (select-window current-window)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4269
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4270
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4271 ;; The Menus --------------------------------------------------------------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4272 (defvar idlwave-shell-menu-def
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4273 `("Debug"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4274 ["Electric Debug Mode"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4275 idlwave-shell-electric-debug-mode
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4276 :style toggle :selected idlwave-shell-electric-debug-mode
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4277 :included (eq major-mode 'idlwave-mode) :keys "C-c C-d C-v"]
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4278 "--"
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4279 ("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
4280 ["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
4281 (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
4282 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
4283 ["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
4284 (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
4285 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
4286 ["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
4287 (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
4288 idlwave-shell-last-save-and-action-file)]
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4289 "--"
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4290 ["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
4291 "--"
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4292 ["Compile and Run Region" idlwave-shell-run-region
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4293 (eq major-mode 'idlwave-mode)]
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4294 ["Evaluate Region" idlwave-shell-evaluate-region
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4295 (eq major-mode 'idlwave-mode)]
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4296 "--"
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4297 ["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
4298 ["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
4299 ("Breakpoints"
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4300 ["Set Breakpoint" idlwave-shell-break-here
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4301 :keys "C-c C-d C-c" :active (eq major-mode 'idlwave-mode)]
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4302 ("Set Special Breakpoint"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4303 ["Set After Count Breakpoint"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4304 (progn
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 60925
diff changeset
4305 (let ((count (string-to-number (read-string "Break after count: "))))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4306 (if (integerp count) (idlwave-shell-break-here count))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4307 :active (eq major-mode 'idlwave-mode)]
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4308 ["Set Condition Breakpoint"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4309 (idlwave-shell-break-here '(4))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4310 :active (eq major-mode 'idlwave-mode)])
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4311 ["Break in Module" idlwave-shell-break-in
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4312 :keys "C-c C-d C-i" :active (eq major-mode 'idlwave-mode)]
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4313 ["Break in this Module" idlwave-shell-break-this-module
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4314 :keys "C-c C-d C-j" :active (eq major-mode 'idlwave-mode)]
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4315 ["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
4316 ["Clear All Breakpoints" idlwave-shell-clear-all-bp t]
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4317 ["Disable/Enable Breakpoint" idlwave-shell-toggle-enable-current-bp t]
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4318 ["Goto Previous Breakpoint" idlwave-shell-goto-previous-bp
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4319 :keys "C-c C-d [" :active (eq major-mode 'idlwave-mode)]
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4320 ["Goto Next Breakpoint" idlwave-shell-goto-next-bp
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4321 :keys "C-c C-d ]" :active (eq major-mode 'idlwave-mode)]
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4322 ["List All Breakpoints" idlwave-shell-list-all-bp t]
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4323 ["Resync Breakpoints" idlwave-shell-bp-query t])
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4324 ("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
4325 ["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
4326 ["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
4327 ["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
4328 ["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
4329 ["... 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
4330 ["... 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
4331 ["... 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
4332 ["... to Here (Cursor Line)" idlwave-shell-to-here
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4333 :keys "C-c C-d C-h" :active (eq major-mode 'idlwave-mode)])
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4334 ("Examine Expressions"
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4335 ["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
4336 ["Help on expression" idlwave-shell-help-expression t]
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4337 ("Examine nearby expression with"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4338 ,@(mapcar (lambda(x)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4339 `[ ,(car x) (idlwave-shell-print nil ',x) t ])
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4340 idlwave-shell-examine-alist))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4341 ("Examine region with"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4342 ,@(mapcar (lambda(x)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4343 `[ ,(car x) (idlwave-shell-print '(4) ',x) t ])
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4344 idlwave-shell-examine-alist)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4345 ("Call Stack"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4346 ["Stack Up" idlwave-shell-stack-up t]
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4347 ["Stack Down" idlwave-shell-stack-down t]
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4348 "--"
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4349 ["Redisplay and Sync" idlwave-shell-redisplay t])
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4350 ("Show Commands"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4351 ["Everything" (if (eq idlwave-shell-show-commands 'everything)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4352 (progn
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4353 (setq idlwave-shell-show-commands
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4354 (get 'idlwave-shell-show-commands 'last-val))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4355 (put 'idlwave-shell-show-commands 'last-val nil))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4356 (put 'idlwave-shell-show-commands 'last-val
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4357 idlwave-shell-show-commands)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4358 (setq idlwave-shell-show-commands 'everything))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4359 :style toggle :selected (and (not (listp idlwave-shell-show-commands))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4360 (eq idlwave-shell-show-commands
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4361 'everything))]
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4362 "--"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4363 ["Compiling Commands" (idlwave-shell-add-or-remove-show 'run)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4364 :style toggle
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4365 :selected (not (idlwave-shell-hide-p
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4366 'run
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4367 (get 'idlwave-shell-show-commands 'last-val)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4368 :active (not (eq idlwave-shell-show-commands 'everything))]
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4369 ["Breakpoint Commands" (idlwave-shell-add-or-remove-show 'breakpoint)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4370 :style toggle
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4371 :selected (not (idlwave-shell-hide-p
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4372 'breakpoint
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4373 (get 'idlwave-shell-show-commands 'last-val)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4374 :active (not (eq idlwave-shell-show-commands 'everything))]
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4375 ["Debug Commands" (idlwave-shell-add-or-remove-show 'debug)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4376 :style toggle
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4377 :selected (not (idlwave-shell-hide-p
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4378 'debug
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4379 (get 'idlwave-shell-show-commands 'last-val)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4380 :active (not (eq idlwave-shell-show-commands 'everything))]
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4381 ["Miscellaneous Commands" (idlwave-shell-add-or-remove-show 'misc)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4382 :style toggle
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4383 :selected (not (idlwave-shell-hide-p
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4384 'misc
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4385 (get 'idlwave-shell-show-commands 'last-val)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4386 :active (not (eq idlwave-shell-show-commands 'everything))])
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4387 ("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
4388 ["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
4389 ["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
4390 "--"
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4391 ["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
4392 (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
4393 (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
4394 :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
4395 "--"
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4396 ["Update Working Dir" idlwave-shell-resync-dirs t]
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4397 ["Save Path Info"
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4398 (idlwave-shell-send-command idlwave-shell-path-query
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4399 'idlwave-shell-get-path-info
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4400 'hide)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4401 t]
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4402 ["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
4403 "--"
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4404 ["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
4405 ["Exit IDL" idlwave-shell-quit t]))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4406
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4407 (if (or (featurep 'easymenu) (load "easymenu" t))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4408 (progn
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4409 (easy-menu-define
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4410 idlwave-mode-debug-menu idlwave-mode-map "IDL debugging menus"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4411 idlwave-shell-menu-def)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4412 (easy-menu-define
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4413 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
4414 idlwave-shell-menu-def)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4415 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4416 (mapcar (lambda (buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4417 (set-buffer buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4418 (if (eq major-mode 'idlwave-mode)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4419 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4420 (easy-menu-remove idlwave-mode-debug-menu)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4421 (easy-menu-add idlwave-mode-debug-menu))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4422 (buffer-list)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4423
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4424 ;; The Breakpoint Glyph -------------------------------------------------------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4425
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4426 (defvar idlwave-shell-bp-glyph nil
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4427 "The glyphs to mark breakpoint lines in the source code.")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4428
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4429 (let ((image-alist
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4430 '((bp . "/* XPM */
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4431 static char * file[] = {
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4432 \"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
4433 \" c None s backgroundColor\",
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4434 \". c #4B4B4B4B4B4B\",
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4435 \"R c #FFFF00000000\",
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4436 \" \",
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4437 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4438 \" .RRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4439 \" .RRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4440 \" .RRRRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4441 \" .RRRRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4442 \" .RRRRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4443 \" .RRRRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4444 \" .RRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4445 \" .RRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4446 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4447 \" \"};")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4448 (bp-cond . "/* XPM */
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4449 static char * file[] = {
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4450 \"14 12 4 1\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4451 \" c None s backgroundColor\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4452 \". c #4B4B4B4B4B4B\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4453 \"R c #FFFF00000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4454 \"B c #000000000000\",
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4455 \" \",
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4456 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4457 \" .RRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4458 \" .RRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4459 \" .RRRRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4460 \" .RRBBBBRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4461 \" .RRRRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4462 \" .RRBBBBRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4463 \" .RRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4464 \" .RRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4465 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4466 \" \"};")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4467 (bp-1 . "/* XPM */
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4468 static char * file[] = {
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4469 \"14 12 4 1\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4470 \" c None s backgroundColor\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4471 \". c #4B4B4B4B4B4B\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4472 \"X c #FFFF00000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4473 \"o c #000000000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4474 \" \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4475 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4476 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4477 \" .XXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4478 \" .XXoooXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4479 \" .XXXooXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4480 \" .XXXooXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4481 \" .XXooooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4482 \" .XooooX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4483 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4484 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4485 \" \"};")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4486 (bp-2 . "/* XPM */
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4487 static char * file[] = {
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4488 \"14 12 4 1\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4489 \" c None s backgroundColor\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4490 \". c #4B4B4B4B4B4B\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4491 \"X c #FFFF00000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4492 \"o c #000000000000\",
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4493 \" \",
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4494 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4495 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4496 \" .XoooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4497 \" .XXoXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4498 \" .XXXXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4499 \" .XXXooXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4500 \" .XXooXXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4501 \" .XooooX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4502 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4503 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4504 \" \"};")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4505 (bp-3 . "/* XPM */
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4506 static char * file[] = {
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4507 \"14 12 4 1\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4508 \" c None s backgroundColor\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4509 \". c #4B4B4B4B4B4B\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4510 \"X c #FFFF00000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4511 \"o c #000000000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4512 \" \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4513 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4514 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4515 \" .XoooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4516 \" .XXXXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4517 \" .XXXooXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4518 \" .XXXXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4519 \" .XXoXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4520 \" .XoooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4521 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4522 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4523 \" \"};")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4524 (bp-4 . "/* XPM */
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4525 static char * file[] = {
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4526 \"14 12 4 1\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4527 \" c None s backgroundColor\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4528 \". c #4B4B4B4B4B4B\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4529 \"X c #FFFF00000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4530 \"o c #000000000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4531 \" \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4532 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4533 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4534 \" .XoXXoX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4535 \" .XXoXXoXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4536 \" .XXooooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4537 \" .XXXXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4538 \" .XXXXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4539 \" .XXXooX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4540 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4541 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4542 \" \"};")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4543 (bp-n . "/* XPM */
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4544 static char * file[] = {
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4545 \"14 12 4 1\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4546 \" c None s backgroundColor\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4547 \". c #4B4B4B4B4B4B\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4548 \"X c #FFFF00000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4549 \"o c #000000000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4550 \" \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4551 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4552 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4553 \" .XXXXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4554 \" .XXoXoXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4555 \" .XXooXoXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4556 \" .XXoXXoXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4557 \" .XXoXXoXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4558 \" .XoXXoX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4559 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4560 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4561 \" \"};"))) im-cons im)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4562
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4563 (while (setq im-cons (pop image-alist))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4564 (setq im (cond ((and (featurep 'xemacs)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4565 (featurep 'xpm))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4566 (list
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4567 (let ((data (cdr im-cons)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4568 (string-match "#FFFF00000000" data)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4569 (setq data (replace-match "#8F8F8F8F8F8F" t t data))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4570 (make-glyph data))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4571 (make-glyph (cdr im-cons))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4572 ((and (not (featurep 'xemacs))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4573 (fboundp 'image-type-available-p)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4574 (image-type-available-p 'xpm))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4575 (list 'image :type 'xpm :data (cdr im-cons)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4576 :ascent 'center))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4577 (t nil)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4578 (if im (push (cons (car im-cons) im) idlwave-shell-bp-glyph))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4579
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4580 (provide 'idlw-shell)
27166
b2d17f0c1668 Also provide idlwave.shell, not only idlw-shell.
Carsten Dominik <dominik@science.uva.nl>
parents: 27108
diff changeset
4581 (provide 'idlwave-shell)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4582
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4583 ;;; Load the toolbar when wanted by the user.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4584
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4585 (autoload 'idlwave-toolbar-toggle "idlw-toolbar"
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
4586 "Toggle the IDLWAVE toolbar")
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
4587 (autoload 'idlwave-toolbar-add-everywhere "idlw-toolbar"
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
4588 "Add IDLWAVE toolbar")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4589 (defun idlwave-shell-toggle-toolbar ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4590 "Toggle the display of the debugging toolbar."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4591 (interactive)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
4592 (idlwave-toolbar-toggle))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4593
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
4594 (if idlwave-shell-use-toolbar
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
4595 (add-hook 'idlwave-shell-mode-hook 'idlwave-toolbar-add-everywhere))
58296
4773953f1a10 Restore arch taglines
Miles Bader <miles@gnu.org>
parents: 58293
diff changeset
4596
4773953f1a10 Restore arch taglines
Miles Bader <miles@gnu.org>
parents: 58293
diff changeset
4597 ;; arch-tag: 20c2e8ce-0709-41d8-a5b6-bb039148440a
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4598 ;;; idlw-shell.el ends here