annotate lisp/progmodes/idlw-shell.el @ 79552:23c53aca1e84

Add arch tagline
author Miles Bader <miles@gnu.org>
date Sun, 09 Dec 2007 07:24:51 +0000
parents c1ec1c8a8d2e
children a1342e6e097a 5d24da5e0deb f55f9811f5d7
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.
75347
e3694f1cb928 Add 2007 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 74103
diff changeset
2
e3694f1cb928 Add 2007 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 74103
diff changeset
3 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
e3694f1cb928 Add 2007 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 74103
diff changeset
4 ;; Free Software Foundation, Inc.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
5
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
6 ;; 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
7 ;; 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
8 ;; 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
9 ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
74103
b21beb03e5c4 (idlwave-shell-filter-directory): Handle extra newlines and spaces.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 71938
diff changeset
10 ;; Version: 6.1_em22
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
11 ;; Keywords: processes
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 ;; This file is part of GNU Emacs.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
14
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
15 ;; 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
16 ;; it under the terms of the GNU General Public License as published by
78234
c1ec1c8a8d2e Switch license to GPLv3 or later.
Glenn Morris <rgm@gnu.org>
parents: 77472
diff changeset
17 ;; the Free Software Foundation; either version 3, or (at your option)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
18 ;; any later version.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
19
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
20 ;; 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
21 ;; 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
22 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
23 ;; GNU General Public License for more details.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
24
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
25 ;; 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
26 ;; 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
27 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 64001
diff changeset
28 ;; Boston, MA 02110-1301, USA.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
29
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
30 ;;; Commentary:
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
31 ;;
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
32 ;; 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
33 ;; 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
34 ;;
74103
b21beb03e5c4 (idlwave-shell-filter-directory): Handle extra newlines and spaces.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 71938
diff changeset
35 ;; Runs IDL as an inferior process of Emacs, much like the Emacs
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
36 ;; `shell' or `telnet' commands. Provides command history and
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
37 ;; searching. Provides debugging commands available in buffers
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
38 ;; visiting IDL procedure files, e.g., breakpoint setting, stepping,
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
39 ;; execution until a certain line, printing expressions under point,
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
40 ;; visual line pointer for current execution line, etc.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
41 ;;
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
42 ;; 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
43 ;;
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
44 ;; 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
45 ;; available from:
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
46 ;; http://idlwave.org
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
47 ;;
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
48 ;; INSTALLATION:
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
49 ;; =============
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
50 ;;
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
51 ;; 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
52 ;; 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
53 ;; lines to your .emacs file:
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 ;; (autoload 'idlwave-shell "idlw-shell" "IDLWAVE Shell" t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
56 ;;
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 ;; SOURCE
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
59 ;; ======
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
60 ;;
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
61 ;; 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
62 ;; 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
63 ;;
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
64 ;; 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
65 ;;
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
66 ;; DOCUMENTATION
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
67 ;; =============
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
68 ;;
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
69 ;; IDLWAVE is documented online in info format.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
70 ;; 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
71 ;; maintainers webpage (see under SOURCE)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
72 ;;
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 ;; KNOWN PROBLEMS
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
75 ;; ==============
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
76 ;;
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
77 ;; 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
78 ;; 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
79 ;; it is a bug in XEmacs.
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
80 ;; 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
81 ;;
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
82 ;;
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
83 ;; CUSTOMIZATION VARIABLES
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
84 ;; =======================
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
85 ;;
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
86 ;; 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
87 ;; 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
88 ;; `M-x idlwave-customize'.
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 ;;
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 ;;; Code:
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
94
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
95 (require 'comint)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
96 (require 'idlwave)
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 (eval-when-compile (require 'cl))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
99
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
100 (defvar idlwave-shell-have-new-custom nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
101 (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
102 ;; 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
103 (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
104 (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
105 (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
106 (fboundp 'defface))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
107 ;; 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
108 (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
109 ;; 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
110 (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
111 (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
112 `(defvar ,var ,value ,doc))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
113
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
114 ;;; Customizations: idlwave-shell group
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
115
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
116 ;; General/Misc. customizations
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
117 (defgroup idlwave-shell-general-setup nil
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
118 "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
119 :prefix "idlwave-shell"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
120 :group 'idlwave)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
121
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
122 (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
123 "*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
124 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
125 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
126 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
127 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
128 process buffer.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
129
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
130 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
131 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
132 :type 'regexp)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
133
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
134 (defcustom idlwave-shell-process-name "idl"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
135 "*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
136 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
137 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
138 :type 'string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
139
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
140 ;; (defcustom idlwave-shell-automatic-start...) See idlwave.el
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
141
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
142 (defcustom idlwave-shell-use-dedicated-window nil
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
143 "*Non-nil means, never replace the shell frame with another buffer."
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
144 :group 'idlwave-shell-general-setup
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
145 :type 'boolean)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
146
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
147 (defcustom idlwave-shell-use-dedicated-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
148 "*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
149 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
150 :type 'boolean)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
151
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
152 (defcustom idlwave-shell-frame-parameters
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
153 '((height . 30) (unsplittable . nil))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
154 "The frame parameters for a dedicated idlwave-shell frame.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
155 See also `idlwave-shell-use-dedicated-frame'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
156 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
157 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
158 :type '(repeat
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
159 (cons symbol sexp)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
160
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
161 (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
162 "*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
163 :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
164 :type 'boolean)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
165
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
166 (defcustom idlwave-shell-arrows-do-history t
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
167 "*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
168 This variable can have 3 values:
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
169 nil Arrows just move the cursor
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
170 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
171 walk the history
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
172 '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
173 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
174 :group 'idlwave-shell-general-setup
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
175 :type '(choice
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
176 (const :tag "never" nil)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
177 (const :tag "everywhere" t)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
178 (const :tag "in command line only" cmdline)))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
179
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
180 ;; 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
181
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
182 (defcustom idlwave-shell-use-toolbar t
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
183 "*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
184 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
185 Exiting the shell will removed everywhere.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
186 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
187 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
188 `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
189 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
190 :type 'boolean)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
191
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
192 (defcustom idlwave-shell-temp-pro-prefix "/tmp/idltemp"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
193 "*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
194 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
195 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
196 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
197 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
198 :type 'string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
199
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
200 (defvar idlwave-shell-fix-inserted-breaks nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
201 "*OBSOLETE VARIABLE, is no longer used.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
202
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
203 The documentation of this variable used to be:
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
204 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
205
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
206 (defcustom idlwave-shell-prefix-key "\C-c\C-d"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
207 "*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
208 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
209 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
210 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
211 :type 'string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
212
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
213 (defcustom idlwave-shell-activate-prefix-keybindings t
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
214 "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
215 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
216 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
217 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
218 :type 'boolean)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
219
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
220 (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
221 "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
222 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
223 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
224 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
225 :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
226 :type '(choice
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
227 (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
228 (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
229 (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
230
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
231 (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
232 "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
233 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
234 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
235 :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
236 :type 'boolean)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
237
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
238 ;; (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
239
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
240 (defvar idlwave-shell-activate-alt-keybindings nil
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
241 "Obsolete variable. See `idlwave-shell-debug-modifiers'.")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
242
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
243 (defcustom idlwave-shell-use-truename nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
244 "*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
245 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
246 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
247 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
248 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
249 reuse that buffer.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
250 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
251 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
252 to set this option to nil."
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 'boolean)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
255
74103
b21beb03e5c4 (idlwave-shell-filter-directory): Handle extra newlines and spaces.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 71938
diff changeset
256 (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
257 "The characters allowed in file names, as a string.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
258 Used for file name completion. Must not contain `'', `,' and `\"'
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
259 because these are used as separators by IDL."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
260 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
261 :type 'string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
262
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
263 (defcustom idlwave-shell-mode-hook '()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
264 "*Hook for customising `idlwave-shell-mode'."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
265 :group 'idlwave-shell-general-setup
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
266 :type 'hook)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
267
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
268 (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
269 "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
270 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
271 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
272 :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
273 :type '(list
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
274 (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
275 (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
276
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
277
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
278 ;; 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
279 (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
280 "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
281 :prefix "idlwave-shell"
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
282 :group 'idlwave)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
283
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
284 (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
285 "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
286 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
287 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
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 'string)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
290
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
291 (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
292 "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
293 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
294 the history."
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
295 :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
296 :type 'boolean)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
297
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
298 (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
299 "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
300 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
301 `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
302 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
303 is non-nil."
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
304 :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
305 :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
306
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
307 (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
308 '(run misc breakpoint)
47915
f1ce118178c3 (idlwave-shell-set-bp): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents: 47453
diff changeset
309 "*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
310 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
311 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
312 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
313 :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
314 :type '(choice
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
315 (const everything)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
316 (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
317 (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
318 (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
319 (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
320 (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
321
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
322 (defcustom idlwave-shell-max-print-length 200
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
323 "Maximum number of array elements to print when examining."
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
324 :group 'idlwave-shell-command-setup
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
325 :type 'integer)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
326
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
327 (defcustom idlwave-shell-examine-alist
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
328 `(("Print" . ,(concat "idlwave_print_safe,___,"
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
329 (number-to-string
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
330 idlwave-shell-max-print-length)))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
331 ("Help" . "help,___")
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
332 ("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
333 ("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
334 ("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
335 ("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
336 ("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
337 ("Ptr Valid" . "print,ptr_valid(___)")
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
338 ("Arg Present" . "print,arg_present(___)")
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
339 ("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
340 ("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
341 "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
342 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
343 `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
344 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
345 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
346 :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
347 :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
348 (cons
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
349 (string :tag "Label ")
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
350 (string :tag "Command"))))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
351
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
352 (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
353 "*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
354
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
355 (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
356 "*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
357 :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
358 :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
359
47440
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-comint-settings
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
361 '((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
362 (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
363 (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
364 (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
365
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
366 "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
367 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
368 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
369 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
370 newly created."
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
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
372 :type '(repeat
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
373 (cons variable sexp)))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
374
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
375 (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
376 "*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
377 :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
378 :type 'boolean)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
379
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
380 (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
381 "*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
382 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
383 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
384 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
385 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
386 :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
387 :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
388
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
389 (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
390 '("^<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
391 "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
392
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
393 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
394 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
395 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
396
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
397 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
398 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
399 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
400 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
401 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
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 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
404 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
405 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
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 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
408 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
409 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
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 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
412 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
413 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
414 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
415 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
416 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
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 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
419 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
420 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
421
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
422 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
423 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
424 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
425
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
426 Usage:
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
427 ======
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
428 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
429 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
430 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
431
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
432
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
433 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
434 ;; 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
435 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
436 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
437 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
438 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
439 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
440 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
441 end"
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
442 :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
443 :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
444 (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
445 (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
446 (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
447
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
448 (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
449 "*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
450 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
451 :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
452 :type 'boolean)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
453
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
454 (defcustom idlwave-shell-reset-no-prompt nil
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
455 "If non-nil, skip the yes/no prompt when resetting the IDL session."
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
456 :group 'idlwave-shell-command-setup
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
457 :type 'boolean)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
458
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
459 ;; Breakpoint Overlays etc
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
460 (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
461 "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
462 :prefix "idlwave-shell"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
463 :group 'idlwave)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
464
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
465 (defcustom idlwave-shell-mark-stop-line t
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
466 "*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
467 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
468 are:
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
469
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
470 nil Do not mark the line
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
471 'arrow Use the overlay arrow
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
472 '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
473 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
474 otherwise the overlay arrow.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
475 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
476 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
477 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
478 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
479 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
480 :group 'idlwave-shell-highlighting-and-faces
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
481 :type '(choice
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
482 (const :tag "No marking" nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
483 (const :tag "Use overlay arrow" arrow)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
484 (const :tag "Highlight with face" face)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
485 (const :tag "Face or arrow." t)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
486
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
487 (defcustom idlwave-shell-overlay-arrow ">"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
488 "*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
489 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
490 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
491 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
492 See also `idlwave-shell-use-overlay-arrow'."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
493 :group 'idlwave-shell-highlighting-and-faces
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
494 :type 'string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
495
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
496 (defcustom idlwave-shell-stop-line-face 'highlight
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
497 "*The face for `idlwave-shell-stop-line-overlay'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
498 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
499 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
500 :group 'idlwave-shell-highlighting-and-faces
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
501 :type 'symbol)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
502
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
503 (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
504 "*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
505 :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
506 :type 'string)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
507
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
508 (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
509 (prog1
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
510 (copy-face 'modeline 'idlwave-shell-electric-stop-line)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
511 (set-face-background 'idlwave-shell-electric-stop-line
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
512 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
513 (condition-case nil
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
514 (set-face-foreground 'idlwave-shell-electric-stop-line nil)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
515 (error nil)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
516 "*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
517 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
518 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
519 :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
520 :type 'symbol)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
521
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
522 (defcustom idlwave-shell-mark-breakpoints t
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
523 "*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
524 Valid values are:
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
525 nil Do not mark breakpoints.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
526 'face Highlight line with `idlwave-shell-breakpoint-face'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
527 '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
528 support glyphs, will use 'face instead.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
529 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
530 :group 'idlwave-shell-highlighting-and-faces
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
531 :type '(choice
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
532 (const :tag "No marking" nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
533 (const :tag "Highlight with face" face)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
534 (const :tag "Display glyph (red dot)" glyph)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
535 (const :tag "Glyph or face." t)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
536
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
537 (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
538 "Obsolete variable. See `idlwave-shell-mark-breakpoints.")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
539
63450
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
540 (defcustom idlwave-shell-breakpoint-face 'idlwave-shell-bp
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
541 "*The face for breakpoint lines in the source code.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
542 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
543 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
544 :group 'idlwave-shell-highlighting-and-faces
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
545 :type 'symbol)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
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-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-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 "Pink"))
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."
64993
fb2cad4cfb30 * mh-customize.el: Do not use face-alias compatibility for
Dan Nicolaescu <dann@ics.uci.edu>
parents: 64835
diff changeset
555 :group 'idlwave-shell-highlighting-and-faces))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
556
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
557 (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
558 '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
559 "*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
560 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
561 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
562 :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
563 :type 'symbol)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
564
63450
87216f91a211 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Miles Bader <miles@gnu.org>
parents: 63426
diff changeset
565 (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
566 ;; 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
567 (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
568 ;; 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
569 (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
570 '((((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
571 (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
572 "Face for highlighting lines with breakpoints."
64993
fb2cad4cfb30 * mh-customize.el: Do not use face-alias compatibility for
Dan Nicolaescu <dann@ics.uci.edu>
parents: 64835
diff changeset
573 :group 'idlwave-shell-highlighting-and-faces))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
574
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
575
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
576 (defcustom idlwave-shell-expression-face 'secondary-selection
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
577 "*The face for `idlwave-shell-expression-overlay'.
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
578 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
579 the expression printed by IDL."
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
580 :group 'idlwave-shell-highlighting-and-faces
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
581 :type 'symbol)
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
582
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
583 (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
584 "*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
585 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
586 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
587 :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
588 :type 'symbol)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
589
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
590 ;;; End user customization variables
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
591
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
592 ;;; External variables
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
593 (defvar comint-last-input-start)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
594 (defvar comint-last-input-end)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
595
58307
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
596 ;; Other variables
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
597 (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
598 "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
599
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
600 (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
601 "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
602 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
603 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
604
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
605 (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
606 "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
607
58307
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
608 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
609 `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
610 (cond
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
611 ((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
612 (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
613 (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
614 (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
615 ((eq type 'pro)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
616 (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
617 (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
618 (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
619 (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
620 (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
621
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
622
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
623 (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
624 "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
625 ; 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
626 (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
627 (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
628 (let (file
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
629 (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
630 temporary-file-directory
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
631 "/tmp")))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
632 (while (condition-case ()
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
633 (progn
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
634 (setq file
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
635 (make-temp-name
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
636 (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
637 (if (featurep 'xemacs)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
638 (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
639 (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
640 nil)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
641 (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
642 ;; 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
643 ;; `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
644 nil)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
645 file)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
646
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
647
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
648 (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
649 "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
650 the directory stack.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
651
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
652 (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
653
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
654 "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
655
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
656 (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
657 "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
658
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
659 (defvar idlwave-shell-default-directory nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
660 "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
661
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
662 (defvar idlwave-shell-last-save-and-action-file nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
663 "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
664
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
665 ;; Highlighting uses overlays. When necessary, require the emulation.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
666 (if (not (fboundp 'make-overlay))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
667 (condition-case nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
668 (require 'overlay)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
669 (error nil)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
670
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
671 (defvar idlwave-shell-stop-line-overlay nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
672 "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
673 (defvar idlwave-shell-is-stopped nil)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
674 (defvar idlwave-shell-expression-overlay nil
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
675 "The overlay for the examined expression.")
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
676 (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
677 "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
678
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
679 ;; 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
680 ;; are reloading this file.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
681 (if (overlayp idlwave-shell-stop-line-overlay)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
682 (delete-overlay idlwave-shell-stop-line-overlay))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
683 (if (overlayp idlwave-shell-expression-overlay)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
684 (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
685 (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
686 (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
687
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
688 ;; Set to nil initially
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
689 (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
690 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
691 idlwave-shell-output-overlay nil)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
692
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
693 ;; 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
694 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
695 ((or (null idlwave-shell-mark-stop-line)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
696 (eq idlwave-shell-mark-stop-line 'arrow))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
697 ;; Leave the overlay nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
698 nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
699
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
700 ((eq idlwave-shell-mark-stop-line 'face)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
701 ;; 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
702 ;; So who can display faces?
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
703 (when (or (featurep 'xemacs) ; XEmacs can do also ttys
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
704 (fboundp 'tty-defined-colors) ; Emacs 21 as well
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
705 window-system) ; Window systems always
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
706 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
707 (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
708 (overlay-put idlwave-shell-stop-line-overlay
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
709 'face idlwave-shell-stop-line-face))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
710
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
711 (t
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
712 ;; 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
713 (if window-system
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
714 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
715 (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
716 (overlay-put idlwave-shell-stop-line-overlay
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
717 'face idlwave-shell-stop-line-face)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
718
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
719 ;; Now the expression and output overlays
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
720 (setq idlwave-shell-expression-overlay (make-overlay 1 1))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
721 (overlay-put idlwave-shell-expression-overlay
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
722 'face idlwave-shell-expression-face)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
723 (overlay-put idlwave-shell-expression-overlay
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
724 'priority 1)
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
725 (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
726 (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
727 '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
728
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
729 (copy-face idlwave-shell-stop-line-face
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
730 'idlwave-shell-pending-stop)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
731 (copy-face idlwave-shell-electric-stop-line-face
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
732 'idlwave-shell-pending-electric-stop)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
733 (set-face-background 'idlwave-shell-pending-stop "gray70")
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
734 (set-face-background 'idlwave-shell-pending-electric-stop "gray70")
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
735
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
736
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
737
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
738 (defvar idlwave-shell-bp-query "help,/breakpoints"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
739 "Command to obtain list of breakpoints")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
740
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
741 (defvar idlwave-shell-command-output nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
742 "String for accumulating current command output.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
743
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
744 (defvar idlwave-shell-post-command-hook nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
745 "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
746 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
747 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
748
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
749 (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
750 "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
751
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
752 (defvar idlwave-shell-hide-output nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
753 "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
754 buffer.")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
755
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
756 (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
757 "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
758 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
759
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
760 (defvar idlwave-shell-accumulation nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
761 "Accumulate last line of output.")
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-command-line-to-execute nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
764 (defvar idlwave-shell-cleanup-hook nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
765 "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
766
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
767 (defvar idlwave-shell-pending-commands nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
768 "List of commands to be sent to IDL.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
769 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
770 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
771 `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
772 from command CMD. PCMD and HIDE are optional.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
773
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
774 (defun idlwave-shell-buffer ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
775 "Name of buffer associated with IDL process.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
776 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
777 with `*'s."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
778 (concat "*" idlwave-shell-process-name "*"))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
779
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
780 (defvar idlwave-shell-ready nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
781 "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
782
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
783 ;;; 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
784 ;;; 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
785 ;;;
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
786
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
787 (defvar idlwave-shell-halt-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
788 "The frame associated with halt/breakpoint messages.")
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 (defvar idlwave-shell-step-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
791 "The frame associated with step messages.")
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 (defvar idlwave-shell-trace-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
794 "The frame associated with trace messages.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
795
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
796 (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
797 '("^% Interrupted at:"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
798 "^% Stepped to:"
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
799 "^% Skipped to:"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
800 "^% Stop encountered:"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
801 )
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
802 "*A list of regular expressions matching IDL messages.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
803 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
804 IDL is currently stopped.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
805
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
806
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
807 (defconst idlwave-shell-halt-messages-re
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
808 (mapconcat 'identity idlwave-shell-halt-messages "\\|")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
809 "The regular expression computed from idlwave-shell-halt-messages")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
810
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
811 (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
812 "^% 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
813 "*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
814 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
815 traceback.")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
816
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
817 (defconst idlwave-shell-step-messages
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
818 '("^% Stepped to:"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
819 )
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
820 "*A list of regular expressions matching stepped execution messages.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
821 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
822 IDL has currently stepped.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
823
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
824 (defvar idlwave-shell-break-message "^% Breakpoint at:"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
825 "*Regular expression matching an IDL breakpoint message line.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
826
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
827 (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
828 " ==> 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
829
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
830 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
831 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
832 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
833 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
834 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
835 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
836 \\ Toggle breakpoint disable
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
837 ] 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
838 [ 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
839
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
840 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
841 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
842 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
843 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
844 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
845 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
846 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
847 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
848 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
849 + 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
850 - 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
851
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
852 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
853 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
854 ? 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
855 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
856 letter completion of the examine type.
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
857 e Prompt for an expression to print.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
858
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
859 Miscellaneous:
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
860 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
861 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
862 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
863 z Reset IDL.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
864 C-? Show this help menu.")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
865
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
866 (defvar idlwave-shell-bp-alist)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
867 ;(defvar idlwave-shell-post-command-output)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
868 (defvar idlwave-shell-sources-alist)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
869 (defvar idlwave-shell-menu-def)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
870 (defvar idlwave-shell-mode-menu)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
871 (defvar idlwave-shell-initial-commands)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
872 (defvar idlwave-shell-syntax-error)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
873 (defvar idlwave-shell-other-error)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
874 (defvar idlwave-shell-error-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
875 (defvar idlwave-shell-error-last)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
876 (defvar idlwave-shell-bp-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
877 (defvar idlwave-shell-sources-query)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
878 (defvar idlwave-shell-mode-map)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
879 (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
880 (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
881 (defvar tool-bar-map)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
882
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
883 (defun idlwave-shell-mode ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
884 "Major mode for interacting with an inferior IDL process.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
885
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
886 1. Shell Interaction
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
887 -----------------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
888 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
889 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
890 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
891 end of the buffer.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
892
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
893 Command history, searching of previous commands, command line
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
894 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
895 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
896 the arrow keys UP and DOWN.
27107
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 2. Completion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
899 ----------
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
900 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
901 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
902 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
903 like in `idlwave-mode'.
27107
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 3. Routine Info
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
906 ------------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
907 `\\[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
908 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
909 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
910 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
911 \\[idlwave-update-routine-info].
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
912 \\[idlwave-find-module] find the source of a module.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
913 \\[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
914 \\[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
915 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
916
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
917
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
918 4. Debugging
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
919 ---------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
920 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
921 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
922 `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
923 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
924 keybindings is again the menu.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
925
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
926 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
927 installed.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
928
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
929 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
930 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
931 window. Breakpoints are also highlighted in the source.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
932
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
933 \\[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
934 to correspond to the IDL process current directory.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
935
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
936 5. Expression Examination
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
937 ----------------------
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
938
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
939 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
940 \\[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
941 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
942 \\[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
943 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
944 \\[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
945 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
946 examination.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
947
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
948 6. Hooks
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
949 -----
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
950 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
951 `idlwave-shell-mode-hook' (in that order).
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
952
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
953 7. Documentation and Customization
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
954 -------------------------------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
955 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
956 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
957 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
958 homepage at `http://idlwave.org'.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
959 IDLWAVE has customize support - see the group `idlwave'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
960
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
961 8. Keybindings
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
962 -----------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
963 \\{idlwave-shell-mode-map}"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
964
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
965 (interactive)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
966 (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
967 (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
968 (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
969 (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
970 idlwave-config-directory)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
971
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
972 ;; 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
973 ;; comint
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
974 (setq comint-prompt-regexp idlwave-shell-prompt-pattern)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
975 (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
976
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
977 ;; 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
978 (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
979 ; (setq comint-input-ring-size 64)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
980 (make-local-variable 'comint-completion-addsuffix)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
981 (set (make-local-variable 'completion-ignore-case) t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
982 (setq comint-completion-addsuffix '("/" . ""))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
983 (setq comint-input-ignoredups t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
984 (setq major-mode 'idlwave-shell-mode)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
985 (setq mode-name "IDL-Shell")
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
986 (setq idlwave-shell-mode-line-info nil)
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
987 (setq mode-line-format
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
988 '(""
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
989 mode-line-modified
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
990 mode-line-buffer-identification
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
991 " "
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
992 global-mode-string
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
993 " %[("
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
994 mode-name
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
995 mode-line-process
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
996 minor-mode-alist
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
997 "%n"
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
998 ")%]-"
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
999 idlwave-shell-mode-line-info
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
1000 "---"
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
1001 (line-number-mode "L%l--")
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
1002 (column-number-mode "C%c--")
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
1003 (-3 . "%p")
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
1004 "-%-"))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1005 ;; (make-local-variable 'idlwave-shell-bp-alist)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1006 (setq idlwave-shell-halt-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1007 idlwave-shell-trace-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1008 idlwave-shell-command-output nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1009 idlwave-shell-step-frame nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1010 (idlwave-shell-display-line nil)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
1011 (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
1012 (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
1013 (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
1014 (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
1015 "[ \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
1016
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1017 (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
1018 (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
1019 '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
1020 (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
1021
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1022 ;; 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
1023 ;; 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
1024 (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
1025 (setq idlwave-idlwave_routine_info-compiled nil)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1026 (setq idlwave-shell-ready nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1027 (setq idlwave-shell-bp-alist nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1028 (idlwave-shell-update-bp-overlays) ; Throw away old overlays
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
1029 (setq idlwave-shell-post-command-hook nil ;clean up any old stuff
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
1030 idlwave-shell-sources-alist nil)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1031 (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
1032 (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
1033
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1034 ;; NB: `make-local-hook' needed for older/alternative Emacs compatibility
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1035 ;; (make-local-hook 'kill-buffer-hook)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1036 (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
1037 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
1038 (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
1039 (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
1040 (use-local-map idlwave-shell-mode-map)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1041 (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
1042
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1043 ;; 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
1044 (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
1045 (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
1046 (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
1047 (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
1048
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1049
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1050 (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
1051 (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
1052 ;; 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
1053 (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
1054 (lambda (string)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1055 (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
1056 (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
1057 (current-buffer)))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1058 (save-excursion
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1059 ;; 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
1060 (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
1061 (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
1062 (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
1063 'append 'local)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1064 (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
1065
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1066 ;; 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
1067 ;; 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
1068 ;; with overlay-arrows.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1069 (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
1070
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1071
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 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
1073 (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
1074 (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
1075 (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
1076 (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
1077
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1078 ;; NB: `make-local-hook' needed for older/alternative Emacs compatibility
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1079 ;; make-local-hook 'post-command-hook)
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1080 (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
1081
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1082 ;; 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
1083 (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
1084 (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
1085 (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
1086 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
1087 (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
1088 (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
1089
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1090 ;; 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
1091 (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
1092
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1093 ;; Run the hooks.
62772
f2892faa87d4 * progmodes/ada-mode.el (ada-mode):
Lute Kamstra <lute@gnu.org>
parents: 62402
diff changeset
1094 (run-mode-hooks 'idlwave-shell-mode-hook)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1095 (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
1096 ;; 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
1097 ;; 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
1098 (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
1099 (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
1100 nil 'hide)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1101 ;; Read the paths, and save if they changed
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1102 (idlwave-shell-send-command idlwave-shell-path-query
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1103 'idlwave-shell-get-path-info
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1104 'hide))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1105
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1106 (defvar idlwave-system-directory)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1107 (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
1108 "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
1109 (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
1110 (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
1111 (dirs (cdr rpl))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1112 (old-path-alist idlwave-path-alist)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1113 (old-sys-dir idlwave-system-directory)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1114 path-changed sysdir-changed)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1115 (when sysdir
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1116 (setq idlwave-system-directory sysdir)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1117 (if (setq sysdir-changed
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1118 (not (string= idlwave-system-directory old-sys-dir)))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1119 (put 'idlwave-system-directory 'from-shell t)))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1120 ;; 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
1121 (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
1122 (mapcar (lambda (x)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1123 (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
1124 (if old-entry
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1125 (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
1126 (list x))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1127 dirs))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1128 (if (setq path-changed (not (equal idlwave-path-alist old-path-alist)))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1129 (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
1130 (if idlwave-path-alist
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1131 (if (and (not no-write)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1132 idlwave-auto-write-paths
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1133 (or sysdir-changed path-changed)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1134 (not idlwave-library-path))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1135 (idlwave-write-paths))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1136 ;; Fall back
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1137 (setq idlwave-path-alist old-path-alist))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1138
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1139 (if (not (fboundp 'idl-shell))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1140 (fset 'idl-shell 'idlwave-shell))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1141
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1142 (defvar idlwave-shell-idl-wframe nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1143 "Frame for displaying the idl shell window.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1144 (defvar idlwave-shell-display-wframe nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1145 "Frame for displaying the idl source files.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1146
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1147 (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
1148 (defvar idlwave-shell-calling-stack-routine nil)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1149
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1150 (defun idlwave-shell-source-frame ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1151 "Return the frame to be used for source display."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1152 (if idlwave-shell-use-dedicated-frame
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1153 ;; We want separate frames for source and shell
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1154 (if (frame-live-p idlwave-shell-display-wframe)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1155 ;; The frame exists, so we use it.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1156 idlwave-shell-display-wframe
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1157 ;; 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
1158 ;; 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
1159 ;; or recycle the first existing visible frame
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1160 (setq idlwave-shell-display-wframe
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1161 (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
1162 (or
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1163 (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
1164 (frame (selected-frame)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1165 (catch 'exit
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1166 (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
1167 (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
1168 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
1169 (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
1170 (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
1171 (make-frame))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1172 (selected-frame))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1173
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1174 (defun idlwave-shell-shell-frame ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1175 "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
1176 (if idlwave-shell-use-dedicated-frame
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1177 ;; We want a dedicated frame
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1178 (if (frame-live-p idlwave-shell-idl-wframe)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1179 ;; It does exist, so we use it.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1180 idlwave-shell-idl-wframe
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1181 ;; 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
1182 (if (not (frame-live-p idlwave-shell-display-wframe))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1183 ;; 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
1184 (setq idlwave-shell-display-wframe (selected-frame)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1185 ;; 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
1186 (setq idlwave-shell-idl-wframe
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1187 (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
1188
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1189 ;;;###autoload
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1190 (defun idlwave-shell (&optional arg quick)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1191 "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
1192 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
1193 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
1194
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1195 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
1196 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
1197 separate frames.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1198
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1199 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
1200 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
1201
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1202 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
1203 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
1204 See also the variable `idlwave-shell-prompt-pattern'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1205
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1206 \(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
1207 (interactive "P")
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1208 (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
1209 (progn
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1210 (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
1211 (idlwave-shell nil)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1212 (delete-other-windows))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1213 (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
1214 (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
1215 (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
1216 '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
1217
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1218 ;; 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
1219 ;; 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
1220 (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
1221 (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
1222
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1223 ;; 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
1224 (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
1225 (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
1226 (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
1227 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
1228 (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
1229 (idlwave-split-string
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1230 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
1231 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
1232 (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
1233 (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
1234 (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
1235 (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
1236 (set-buffer buf)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1237 (idlwave-shell-mode)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1238 (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
1239 (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
1240 (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
1241 (select-window window)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1242 (goto-char (point-max))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1243 (if idlwave-shell-use-dedicated-window
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1244 (set-window-dedicated-p window t))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1245 (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
1246 (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
1247 (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
1248 (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
1249 (select-window window))))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1250 ;; Save the paths at the end, if they are from the Shell and new.
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1251 (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
1252 (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
1253 (if (and
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1254 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
1255 idlwave-path-alist
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1256 (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
1257 (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
1258 (idlwave-write-paths)))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1259
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1260 (defun idlwave-shell-recenter-shell-window (&optional arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1261 "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
1262 (interactive "P")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1263 (let ((window (selected-window)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1264 (idlwave-shell arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1265 (select-window window)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1266
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1267 (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
1268 "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
1269 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
1270 (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
1271 (if (listp list)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1272 (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
1273
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1274 (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
1275 "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
1276 (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
1277 (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
1278 (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
1279 (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
1280 (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
1281 (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
1282
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1283
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1284 (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
1285 show-if-error)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1286 "Send a command to IDL process.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1287
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1288 \(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
1289 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
1290 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
1291
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1292 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
1293 `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
1294
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1295 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
1296 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
1297 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
1298 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
1299 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
1300
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1301 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
1302 `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
1303 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
1304 \(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
1305 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
1306
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
1307 If SHOW-IF-ERROR is non-nil, show the output if it contains an error
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1308 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
1309
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1310 ; (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
1311 ; (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
1312 ; (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
1313 ; (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
1314 ; (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
1315 ; (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
1316 (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
1317 (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
1318 (setq hide nil))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1319 (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
1320 buf proc)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1321 ;; Get or make the buffer and its process
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1322 (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
1323 (not (setq proc (get-buffer-process buf))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1324 (if (not idlwave-shell-automatic-start)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1325 (error
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1326 (substitute-command-keys
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1327 "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
1328 (idlwave-shell-recenter-shell-window)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1329 (setq buf (get-buffer (idlwave-shell-buffer)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1330 (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
1331 (not (setq proc (get-buffer-process buf))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1332 ;; Still nothing
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1333 (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
1334 (when (or cmd idlwave-shell-pending-commands)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1335 (set-buffer buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1336 ;; 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
1337 (if cmd
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1338 (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
1339 (if preempt
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1340 ;; 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
1341 (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
1342 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
1343 ;; 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
1344 (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
1345 (list (list cmd pcmd hide show-if-error))))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1346 ;; 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
1347 (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
1348 (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
1349 (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
1350 ;; 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
1351 (prog2
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1352 (forward-line 0)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1353 ;; (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
1354 (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
1355 (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
1356 ;; 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
1357 (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
1358 (cmd (car lcmd))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1359 (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
1360 (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
1361 (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
1362 ;; 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
1363 (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
1364 (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
1365 ;; Set post-command
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1366 (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
1367 ;; Output hiding
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1368 (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
1369 ;;Showing errors
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1370 (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
1371 ;; Pop command
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1372 (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
1373 (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
1374 ;; 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
1375 (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
1376 (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
1377 (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
1378 (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
1379 (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
1380 (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
1381 (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
1382 (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
1383 (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
1384 (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
1385 (set-buffer save-buffer))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1386
57822
7cda0787d8cd (idlwave-shell-send-char): Don't use interactive-p.
Richard M. Stallman <rms@gnu.org>
parents: 55729
diff changeset
1387 (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
1388 "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
1389 (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
1390 (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
1391 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
1392 (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
1393 (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
1394 (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
1395 (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
1396 (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
1397 (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
1398
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1399 (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
1400 (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
1401 "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
1402 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
1403 (cond
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1404 ((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
1405 (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
1406 ((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
1407 (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
1408 (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
1409 ((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
1410 ;; 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
1411 (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
1412 (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
1413 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
1414 (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
1415
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1416 (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
1417 (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
1418 "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
1419 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
1420 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
1421 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
1422 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
1423 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
1424 (interactive)
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1425
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1426 ;; 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
1427 (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
1428 (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
1429 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
1430 (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
1431 (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
1432 (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
1433 (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
1434 (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
1435
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1436 ;; 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
1437 (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
1438 (message
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1439 (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
1440 (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
1441 ;; 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
1442 ;; 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
1443 (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
1444 ;; 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
1445 (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
1446 (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
1447 (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
1448 (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
1449 (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
1450 ;; 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
1451 (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
1452 (setq c (read-char))
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1453 (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
1454 (cond
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1455 ((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
1456 (ding))
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1457 ((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
1458 (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
1459 (ding)
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1460 (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
1461 (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
1462 (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
1463 (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
1464 (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
1465
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1466 (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
1467 "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
1468 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
1469 (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
1470 (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
1471 (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
1472 (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
1473 (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
1474 (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
1475 (>= (1+ (save-excursion (end-of-line) (point))) proc-pos))
70573
b79a60a5fdeb (idlwave-shell-move-or-history): Remove spurious move to point-max (new
J.D. Smith <jdsmith@as.arizona.edu>
parents: 69822
diff changeset
1476 (comint-previous-input arg)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1477 (previous-line arg))))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1478
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1479 (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
1480 "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
1481 Otherwise just go up one line."
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1482 (interactive "p")
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1483 (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
1484
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1485 (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
1486 "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
1487 Otherwise just go down one line."
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1488 (interactive "p")
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1489 (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
1490
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
1491 ;; 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
1492 ;; comint-output-filter.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1493 (defun idlwave-shell-comint-filter (process string) nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1494 (if (fboundp 'comint-output-filter)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1495 (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
1496 (fset 'idlwave-shell-comint-filter (symbol-function 'comint-filter)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1497
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1498 (defun idlwave-shell-is-running ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1499 "Return t if the shell process is running."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1500 (eq (process-status idlwave-shell-process-name) 'run))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1501
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1502 (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
1503 "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
1504
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1505 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
1506 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
1507 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
1508 error messages, etc."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1509 (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
1510 (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
1511 (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
1512 (unless
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1513 (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
1514 output))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1515
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1516 (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
1517 "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
1518 (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
1519
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1520 (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
1521 "Watch for IDL prompt and filter incoming text.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1522 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
1523 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
1524 ;; 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
1525 (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
1526 ;; 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
1527 (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
1528 (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
1529 (progn
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1530 ;; 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
1531 (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
1532 (ding)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1533 (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
1534 (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
1535 (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
1536 (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
1537 (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
1538 (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
1539 (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
1540 (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
1541 (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
1542 (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
1543 ;; 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
1544 ;; 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
1545 (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
1546 (progn
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1547 (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
1548 (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
1549 (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
1550 (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
1551 (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
1552 (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
1553 string)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1554 (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
1555 (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
1556 (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
1557
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1558
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1559 ;;; Test/Debug code
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1560 ;(with-current-buffer
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1561 ; (get-buffer-create "*idlwave-shell-output*")
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1562 ; (goto-char (point-max))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1563 ; (insert "\nReceived STRING\n===>\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
1564
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1565 ;; 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
1566 (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
1567 (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
1568 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
1569 ;; 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
1570 (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
1571 (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
1572 (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
1573 (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
1574 (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
1575 (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
1576 (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
1577 (setq idlwave-shell-command-output
74103
b21beb03e5c4 (idlwave-shell-filter-directory): Handle extra newlines and spaces.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 71938
diff changeset
1578 (buffer-substring-no-properties
b21beb03e5c4 (idlwave-shell-filter-directory): Handle extra newlines and spaces.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 71938
diff changeset
1579 (point-min) (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
1580 (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
1581 (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
1582 (with-current-buffer (process-buffer proc)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1583 (buffer-substring-no-properties
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1584 (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
1585 (goto-char (process-mark proc))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1586 (forward-line 0) ; Emacs 21 (beginning-of-line 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
1587 (point))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1588 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
1589
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1590 ;; 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
1591 ;; 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
1592 ;; 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
1593 (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
1594 (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
1595 ;; 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
1596 (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
1597 (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
1598 (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
1599 (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
1600 ;; 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
1601 ;; 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
1602 (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
1603 (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
1604 (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
1605 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
1606 (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
1607 (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
1608 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
1609
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1610 ;; 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
1611 (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
1612 (progn
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1613 ;;(message "Calling list")
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1614 ;;(prin1 idlwave-shell-post-command-hook)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1615 (eval idlwave-shell-post-command-hook))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1616 ;;(message "Calling command function")
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1617 (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
1618
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1619 ;; 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
1620 ;; 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
1621 (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
1622 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
1623 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
1624 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
1625 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
1626 ;; 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
1627 ;; any.
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1628 (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
1629 (store-match-data data)))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1630
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1631 (defun idlwave-shell-sentinel (process event)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1632 "The sentinel function for the IDLWAVE shell process."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1633 (let* ((buf (idlwave-shell-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1634 (win (get-buffer-window buf)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1635 (when (get-buffer buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1636 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1637 (set-buffer (idlwave-shell-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1638 (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
1639 (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
1640 (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
1641 (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
1642 (condition-case nil
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1643 (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
1644 (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
1645
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1646 (when (and (> (length (frame-list)) 1)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1647 (frame-live-p idlwave-shell-idl-wframe))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1648 (delete-frame idlwave-shell-idl-wframe)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1649 (setq idlwave-shell-idl-wframe nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1650 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
1651 (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
1652 (not (one-window-p 'nomini)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1653 (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
1654 (idlwave-shell-cleanup)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1655 ;; 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
1656 (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
1657 (save-excursion
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1658 (set-buffer buf)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
1659 (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
1660 (run-hooks 'idlwave-shell-sentinel-hook))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1661
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1662 (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
1663 "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
1664
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1665 ;; 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
1666 ;; 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
1667 ;; 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
1668 (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
1669 "^% 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
1670 "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
1671 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
1672 number.")
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1673
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1674 (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
1675 "^% .*\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
1676 "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
1677
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1678 (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
1679 "^% .*\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
1680 "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
1681
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1682 (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
1683 "^% 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
1684 "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
1685
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1686 (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
1687 (concat
58947
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1688 "\\(" ; program name group (1)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1689 "\\$MAIN\\$\\|" ; main level routine
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1690 "\\<[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
1691 "\\([ \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
1692 "\\)" ; 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
1693 "[ \t\n]+" ; white space
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1694 "\\(" ; line number group (3)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1695 "[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
1696 "\\([ \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
1697 "\\)" ; 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
1698 "[ \t\n]+" ; white space
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1699 "\\(" ; file name group (5)
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1700 "[^ \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
1701 "\\([ \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
1702 "\\)" ; 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
1703 )
e5111e925bde Re-arrange variables to avoid compiler warnings. Change
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58307
diff changeset
1704 "*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
1705 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
1706 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
1707 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
1708 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
1709 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
1710
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1711 (defvar idlwave-shell-electric-debug-mode) ; defined by easy-mmode
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1712
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1713 (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
1714 "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
1715 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
1716 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
1717 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
1718 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
1719 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
1720 '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
1721 the above."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1722 (let (trace)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1723 (cond
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1724 ;; 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
1725 ((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
1726
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1727 ;; 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
1728 ((or
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1729 (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
1730 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
1731 (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
1732 idlwave-shell-command-output))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1733 (with-current-buffer
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1734 (get-buffer-create idlwave-shell-error-buffer)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1735 (erase-buffer)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1736 (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
1737 (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
1738 (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
1739 (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
1740 (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
1741
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1742 ;; 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
1743 ((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
1744 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
1745 ;; 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
1746 (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
1747 (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
1748 (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
1749 (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
1750 (match-beginning 2)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1751 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
1752 (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
1753
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1754 ;; 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
1755 ;; TRACEBACK messages.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1756 ((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
1757 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
1758 (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
1759 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
1760 ;; 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
1761 (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
1762 (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
1763 (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
1764 (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
1765 (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
1766 ;; Don't debug trace messages
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1767 (idlwave-shell-display-line
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1768 (idlwave-shell-pc-frame) nil
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1769 (if trace 'disable
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1770 (if idlwave-shell-electric-debug-mode 'force))))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1771
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1772 ;; 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
1773 ((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
1774 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
1775 (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
1776 (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
1777 (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
1778 (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
1779 ;; 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
1780 ;; 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
1781 ;; have learned counting.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1782 ;; 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
1783 (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
1784 (list
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1785 (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
1786 (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
1787 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
1788 ;(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
1789 (if bp
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1790 (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
1791 (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
1792 (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
1793 ;; 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
1794 ;; 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
1795 (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
1796 (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
1797 (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
1798
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1799 ;; 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
1800 ((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
1801 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
1802 (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
1803
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1804 ;; 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
1805 (t (setq idlwave-shell-current-state nil)))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1806
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
1807
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1808 (defun idlwave-shell-parse-line (string &optional skip-main)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1809 "Parse IDL message for the subroutine, file name and line number."
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1810 ;We need to work hard here to remove the stupid line breaks inserted by
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1811 ;IDL5. These line breaks can be right in the middle of procedure
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1812 ;or file names.
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1813 ;It is very difficult to come up with a robust solution. This one seems
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1814 ;to be pretty good though.
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1815 ;
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1816 ;Here is in what ways it improves over the previous solution:
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1817 ;
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1818 ;1. The procedure name can be split and will be restored.
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1819 ;2. The number can be split. I have never seen this, but who knows.
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1820 ;3. We do not require the `.pro' extension for files.
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1821 ;
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1822 ;This function can still break when the file name ends on an end line
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1823 ;and the message line contains an additional line with garbage. Then
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1824 ;the first part of that garbage will be added to the file name.
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1825 ;However, the function checks the existence of the files with and
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1826 ;without this last part - thus the function only breaks if file name
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1827 ;plus garbage match an existing regular file. This is hopefully very
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1828 ;unlikely.
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1829 ;
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1830 ;If optional arg SKIP-MAIN is non-nil, don't parse $MAIN$ routine stop
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1831 ;statements.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1832
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1833 (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
1834 (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
1835 (string-match idlwave-shell-file-line-message string))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1836 (setq procedure (match-string 1 string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1837 number (match-string 3 string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1838 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
1839
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1840 ;; Repair the strings
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1841 (setq procedure (idlwave-shell-repair-string procedure))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1842 (setq number (idlwave-shell-repair-string number))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1843 (setq file (idlwave-shell-repair-file-name file))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1844
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1845 ;; If we have a file, return the frame list
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1846 (if file
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1847 (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
1848 (string-to-number number)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1849 procedure)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1850 ;; No success finding a file
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1851 nil))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1852
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1853 (defun idlwave-shell-repair-string (string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1854 "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
1855 (while (string-match "[ \t]*\n[ \t]*" string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1856 (setq string (replace-match "" t t string)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1857 string)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1858
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1859 (defun idlwave-shell-repair-file-name (file)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1860 "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
1861 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
1862 file name."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1863 (let ((file1 "") (file2 "") (start 0))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1864 ;; 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
1865 (if (string-match "^%" file)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1866 (setq file (substring file 0 (match-beginning 0))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1867 ;; Take out the line breaks
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1868 (while (string-match "[ \t]*\n[ \t]*" file start)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1869 (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
1870 start (match-end 0)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1871 (setq file2 (concat file1 (substring file start)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1872 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1873 ((file-regular-p file2) file2)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1874 ((file-regular-p file1) file1)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1875 ;; 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
1876 ;; 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
1877 ;; 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
1878 ;; 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
1879 ((not (string= "" file1)) file1)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1880 ((not (string= "" file2)) file2)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1881 (t nil))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1882
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1883 (defun idlwave-shell-cleanup ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1884 "Do necessary cleanup for a terminated IDL process."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1885 (setq idlwave-shell-step-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1886 idlwave-shell-halt-frame nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1887 idlwave-shell-pending-commands nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1888 idlwave-shell-command-line-to-execute nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1889 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
1890 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
1891 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
1892 (idlwave-shell-delete-temp-files)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1893 (idlwave-shell-display-line nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1894 (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
1895 (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
1896 (idlwave-shell-kill-buffer idlwave-shell-bp-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1897 (idlwave-shell-kill-buffer idlwave-shell-error-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1898 ;; (idlwave-shell-kill-buffer (idlwave-shell-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1899 (and (get-buffer (idlwave-shell-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1900 (bury-buffer (get-buffer (idlwave-shell-buffer))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1901 (run-hooks 'idlwave-shell-cleanup-hook))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1902
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1903 (defun idlwave-shell-kill-buffer (buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1904 "Kill buffer BUF if it exists."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1905 (if (setq buf (get-buffer buf))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1906 (kill-buffer buf)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1907
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1908 (defun idlwave-shell-kill-shell-buffer-confirm ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1909 (when (idlwave-shell-is-running)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1910 (ding)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1911 (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
1912 (error "Abort"))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1913 (message "Killing buffer *idl* and the associated process")))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1914
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1915 (defun idlwave-shell-window (n)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1916 "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
1917 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
1918 (interactive "P")
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1919 (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
1920 (idlwave-shell-send-command
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1921 (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
1922 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
1923 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
1924
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1925 (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
1926 "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
1927 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
1928 `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
1929 directory."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1930 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1931 (idlwave-shell-send-command idlwave-shell-dirstack-query
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1932 '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
1933 'hide 'wait))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1934
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1935 (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
1936 "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
1937 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
1938 (interactive "P")
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1939 (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
1940 ;;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
1941 (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
1942 (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
1943 nil t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
1944 (idlwave-shell-display-line nil)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1945
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1946 (defun idlwave-shell-closeall (&optional arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1947 "Close all open files."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1948 (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
1949 (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
1950 (idlwave-shell-hide-p 'misc) nil t))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1951
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1952 (defun idlwave-shell-quit (&optional arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1953 "Exit the idl process after confirmation.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1954 With prefix ARG, exit without confirmation."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1955 (interactive "P")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1956 (if (not (idlwave-shell-is-running))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1957 (error "Shell is not running")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1958 (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
1959 (condition-case nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1960 (idlwave-shell-send-command "exit")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1961 (error nil)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1962
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
1963 (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
1964 "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
1965 This issues the following commands:
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1966 RETALL
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1967 WIDGET_CONTROL,/RESET
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1968 CLOSE, /ALL
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1969 HEAP_GC, /VERBOSE"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1970 ;; OBJ_DESTROY, OBJ_VALID() FIXME: should this be added?
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1971 (interactive "P")
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1972 (when (or idlwave-shell-reset-no-prompt
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1973 (yes-or-no-p "Really Reset IDL and discard current session? "))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1974 (message "Resetting IDL")
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1975 (setq idlwave-shell-calling-stack-index 0)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1976 ;; Give widget exit handlers a chance
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1977 (idlwave-shell-send-command "retall" nil hidden)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1978 (idlwave-shell-send-command "widget_control,/reset" nil hidden)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1979 (idlwave-shell-send-command "close,/all" nil hidden)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1980 ;; (idlwave-shell-send-command "obj_destroy, obj_valid()" nil hidden)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1981 (idlwave-shell-send-command "heap_gc,/verbose" nil hidden)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
1982 (idlwave-shell-display-line nil)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1983
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1984 (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
1985 ;; 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
1986 (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
1987 (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
1988 (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
1989 dirs sysdir)
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
1990 (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
1991 (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
1992 (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
1993 (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
1994 (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
1995 (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
1996 (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
1997 (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
1998
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
1999 (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
2000 "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
2001 (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
2002 (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
2003 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
2004 ;; (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
2005 ;; 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
2006 (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
2007 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
2008 ;; 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
2009 (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
2010 "^>>>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
2011 text)
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2012 (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
2013 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
2014 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
2015 ;; 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
2016 (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
2017 (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
2018 (message
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2019 "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
2020 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
2021 (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
2022 (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
2023 (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
2024 (message
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2025 "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
2026 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
2027 ;; 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
2028 (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
2029 (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
2030 (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
2031 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
2032 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
2033 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
2034 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
2035 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
2036 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
2037 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
2038 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
2039 (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
2040 (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
2041 (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
2042 (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
2043 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
2044 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
2045 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
2046 (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
2047
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2048 ;; 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
2049 ;; 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
2050 ;; 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
2051 ;; 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
2052 ;; 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
2053 ;; 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
2054 ;; 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
2055 ;; 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
2056 (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
2057 ((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
2058 ;; 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
2059 (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
2060 (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
2061 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
2062 ;; 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
2063 ;;(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
2064 ;; 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
2065 )
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2066 (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
2067 (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
2068 (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
2069 (list
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2070 (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
2071 (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
2072 (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
2073 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
2074 (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
2075 (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
2076 (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
2077
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2078 ((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
2079 ;; 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
2080 (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
2081 (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
2082 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
2083 ;; 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
2084 ;; (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
2085 ;; 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
2086 )
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2087 (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
2088 (cons 'compiled
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2089 (if file
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2090 (list
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2091 (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
2092 (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
2093 (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
2094 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
2095 (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
2096 (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
2097 (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
2098 ;; 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
2099 (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
2100 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
2101
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2102 (defun idlwave-shell-filter-directory ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2103 "Get the current directory from `idlwave-shell-command-output'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2104 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
2105 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2106 (set-buffer (idlwave-shell-buffer))
74103
b21beb03e5c4 (idlwave-shell-filter-directory): Handle extra newlines and spaces.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 71938
diff changeset
2107 (if (string-match ",___cur[\n\r ]+\\([^\n\r]+\\)[\n\r]"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2108 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
2109 (let ((dir (substring idlwave-shell-command-output
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2110 (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
2111 ; (message "Setting Emacs working dir to %s" dir)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2112 (setq idlwave-shell-default-directory dir)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2113 (setq default-directory (file-name-as-directory dir))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2114
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2115 (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
2116 (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
2117 "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
2118 (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
2119 (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
2120 expression)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2121 (save-excursion
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2122 (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
2123 (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
2124 (catch 'exit
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2125 (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
2126 (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
2127 "[^][.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
2128 (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
2129 (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
2130 (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
2131 apos)))
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2132 (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
2133 (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
2134 (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
2135 (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
2136 expression ")")
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2137 '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
2138 'hide 'wait)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2139 ;; 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
2140 (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
2141 (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
2142 (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
2143 (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
2144 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
2145
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2146 (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
2147 "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
2148 (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
2149 (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
2150 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
2151 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
2152 (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
2153 (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
2154
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2155 (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
2156 (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
2157
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2158 (defun idlwave-shell-complete (&optional arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2159 "Do completion in the idlwave-shell buffer.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2160 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
2161 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
2162 keywords."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2163 (interactive "P")
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2164 (let (exec-cmd)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2165 (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
2166 ((and
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2167 (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
2168 (cdr exec-cmd)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2169 (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
2170 '(".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
2171 ".COM" ".COMP" ".COMPI" ".COMPIL" ".COMPILE")))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2172 ;; 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
2173 (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
2174
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2175 ((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
2176 (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
2177 '(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
2178 (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
2179 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
2180 "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
2181 "system variable"))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2182
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2183 ((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
2184 (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
2185
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2186 ((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
2187 (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
2188
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2189 ((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
2190 (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
2191 (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
2192 (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
2193 (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
2194 (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
2195
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2196 (t
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2197 ;; 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
2198 (idlwave-complete arg)))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2199
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2200 ;; 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
2201 (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
2202 (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
2203 (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
2204 (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
2205 (cond
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2206 ((eq mode 'test)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2207 (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
2208 ((eq mode 'set)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2209 (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
2210 (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
2211
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2212 (defun idlwave-shell-complete-filename (&optional arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2213 "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
2214 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
2215 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
2216 ;; 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
2217 (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
2218 (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
2219 (comint-dynamic-complete-as-filename)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2220
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2221 (defun idlwave-shell-executive-command ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2222 "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
2223 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2224 (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
2225 (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
2226 (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
2227 (match-string 1)))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2228
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2229 (defun idlwave-shell-filename-string ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2230 "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
2231 (let ((limit (save-excursion (beginning-of-line) (point))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2232 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2233 ;; Skip backwards over file name chars
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2234 (skip-chars-backward idlwave-shell-file-name-chars limit)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2235 ;; Check of the next char is a string delimiter
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2236 (memq (preceding-char) '(?\' ?\")))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2237
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2238 (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
2239 "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
2240 (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
2241 (save-excursion
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2242 ;; 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
2243 (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
2244 (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
2245 (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
2246
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2247 (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
2248 "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
2249 (save-excursion
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2250 (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
2251 (looking-at "\\$")))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2252
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2253 ;; Debugging Commands ------------------------------------------------------
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2254
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2255 (defun idlwave-shell-redisplay (&optional hide)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2256 "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
2257 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
2258 `idlwave-shell-display-line'. Also updates the breakpoint
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2259 overlays."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2260 (interactive)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2261 (setq idlwave-shell-calling-stack-index 0)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2262 (idlwave-shell-send-command
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2263 "help,/trace"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2264 '(idlwave-shell-display-line
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2265 (idlwave-shell-pc-frame))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2266 hide)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2267 (idlwave-shell-bp-query))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2268
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2269 (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
2270 (idlwave-shell-send-command
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2271 "help,/trace"
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2272 `(progn
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2273 ;; 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
2274 (setq idlwave-shell-calling-stack-index
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2275 ,idlwave-shell-calling-stack-index)
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2276 ;; 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
2277 (idlwave-shell-parse-stack-and-display))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2278 hide))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2279
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2280 (defun idlwave-shell-parse-stack-and-display ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2281 (let* ((lines (delete "" (idlwave-split-string
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2282 idlwave-shell-command-output "^%")))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2283 (stack (delq nil (mapcar 'idlwave-shell-parse-line lines)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2284 (nmax (1- (length stack)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2285 (nmin 0) message)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2286 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2287 ((< 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
2288 (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
2289 (ding)
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2290 (message "Problem with calling stack"))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2291 ((> idlwave-shell-calling-stack-index nmax)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2292 (ding)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2293 (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
2294 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
2295 (- nmax))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2296 ((< idlwave-shell-calling-stack-index nmin)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2297 (ding)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2298 (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
2299 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
2300 (- 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
2301 (setq idlwave-shell-calling-stack-routine
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2302 (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
2303
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2304 ;; force edebug for this frame if we're 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
2305 (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
2306 (nth idlwave-shell-calling-stack-index stack) nil
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2307 (if idlwave-shell-electric-debug-mode 'force))
65584
6dbba0bd58df Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents: 64993
diff changeset
2308 (message "%s" (or message
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2309 (format "In routine %s (stack level %d)"
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2310 idlwave-shell-calling-stack-routine
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2311 (- idlwave-shell-calling-stack-index))))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2312
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2313 (defun idlwave-shell-stack-up ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2314 "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
2315 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2316 (incf idlwave-shell-calling-stack-index)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2317 (idlwave-shell-display-level-in-calling-stack 'hide))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2318 (defun idlwave-shell-stack-down ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2319 "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
2320 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2321 (decf idlwave-shell-calling-stack-index)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2322 (idlwave-shell-display-level-in-calling-stack 'hide))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2323
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2324 (defun idlwave-shell-goto-frame (&optional frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2325 "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
2326 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
2327 used. Does nothing if the resulting frame is nil."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2328 (if frame ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2329 (setq frame (idlwave-shell-pc-frame)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2330 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2331 (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
2332 (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
2333 (widen)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2334 (goto-line (nth 1 frame)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2335
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2336 (defun idlwave-shell-pc-frame ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2337 "Returns the frame for IDL execution."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2338 (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
2339 (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
2340 (nth 1 idlwave-shell-halt-frame)
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2341 (nth 2 idlwave-shell-halt-frame))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2342
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2343 (defun idlwave-shell-valid-frame (frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2344 "Check that frame is for an existing file."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2345 (file-readable-p (car frame)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2346
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2347 (defun idlwave-shell-stop-line-pending ()
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2348 ;; Temporarily change the color of the stop line overlay
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2349 (if idlwave-shell-stop-line-overlay
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2350 (overlay-put idlwave-shell-stop-line-overlay 'face
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2351 (if idlwave-shell-electric-debug-mode
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2352 'idlwave-shell-pending-electric-stop
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2353 'idlwave-shell-pending-stop))))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2354
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2355 (defvar idlwave-shell-suppress-electric-debug nil)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2356 (defun idlwave-shell-display-line (frame &optional col debug)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2357 "display frame file in other window with overlay arrow.
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2358
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2359 frame is a list of file name, line number, and subroutine name. if
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2360 frame is nil then remove overlay. if col is set, move point to that
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2361 column in the line. if debug is non-nil, enable the electric debug
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2362 mode. if it is 'disable, do not enable no matter what the setting of
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2363 'idlwave-shell-automatic-electric-debug'. if it is 'force, enable no
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2364 matter what the settings of that variable."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2365 (if (not frame)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2366 ;; 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
2367 (progn
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2368 (setq overlay-arrow-string nil)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2369 (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
2370 (setq idlwave-shell-is-stopped nil)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2371 (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
2372 (delete-overlay idlwave-shell-stop-line-overlay))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2373 ;; turn off electric debug everywhere, if it's on
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2374 (idlwave-shell-electric-debug-all-off))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2375 (if (not (idlwave-shell-valid-frame frame))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2376 ;; fixme: errors are dangerous in shell filters. but i think i
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2377 ;; have never encountered this one.
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2378 (error (concat "invalid frame - unable to access file: " (car frame)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2379 ;;;
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2380 ;;; buffer : the buffer to display a line in.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2381 ;;; 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
2382 ;;;
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2383 (setq idlwave-shell-mode-line-info
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2384 (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
2385 (format "[%d:%s]"
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2386 (- idlwave-shell-calling-stack-index)
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
2387 (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
2388 (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
2389 (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
2390 window pos electric)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2391
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2392 ;; first make sure the shell window is visible
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2393 (idlwave-display-buffer (idlwave-shell-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2394 nil (idlwave-shell-shell-frame))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2395
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2396 ;; now display the buffer and remember which window it is.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2397 (setq window (idlwave-display-buffer buffer
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2398 nil (idlwave-shell-source-frame)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2399
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2400 ;; enter the buffer and mark the line
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2401 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2402 (set-buffer buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2403 (save-restriction
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2404 (widen)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2405 (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
2406 (forward-line 0)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2407 (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
2408 (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
2409
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2410 (if idlwave-shell-stop-line-overlay
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2411 (progn
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2412 ;; restore face and move overlay
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2413 (overlay-put idlwave-shell-stop-line-overlay 'face
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2414 (if idlwave-shell-electric-debug-mode
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2415 idlwave-shell-electric-stop-line-face
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2416 idlwave-shell-stop-line-face))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2417 (move-overlay idlwave-shell-stop-line-overlay
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2418 (point) (save-excursion (end-of-line) (point))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2419 (current-buffer)))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2420 ;; use the arrow instead, but only if marking is wanted.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2421 (if idlwave-shell-mark-stop-line
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2422 (setq overlay-arrow-string idlwave-shell-overlay-arrow))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2423 (or overlay-arrow-position ; create the marker if necessary
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2424 (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
2425 (set-marker overlay-arrow-position (point) buffer)))
47915
f1ce118178c3 (idlwave-shell-set-bp): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents: 47453
diff changeset
2426
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2427 ;; if the point is outside the restriction, widen the buffer.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2428 (if (or (< pos (point-min)) (> pos (point-max)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2429 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2430 (widen)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2431 (goto-char pos)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2432
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2433 ;; if we have the column of the error, move the cursor there.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2434 (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
2435 (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
2436
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2437 ;; enter electric debug mode, if not prohibited and not in
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2438 ;; it already
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2439 (when (and (not idlwave-shell-electric-debug-mode)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2440 (or (eq debug 'force)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2441 (and
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2442 (not (eq debug 'disable)) ;; explicitly disabled
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2443 (or
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2444 (eq idlwave-shell-automatic-electric-debug t)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2445 (and
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2446 (eq idlwave-shell-automatic-electric-debug
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2447 'breakpoint)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2448 (not (eq idlwave-shell-current-state 'error))))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2449 (not idlwave-shell-suppress-electric-debug))))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2450 (idlwave-shell-electric-debug-mode t))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2451 (setq electric 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
2452
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2453 ;; 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
2454 (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
2455
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2456 ;; If we came from the shell, go back there. Otherwise select
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2457 ;; the window where the error/halt is displayed.
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2458 (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
2459 (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
2460 (not select-shell)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2461 (select-window window))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2462
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2463
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2464 (defun idlwave-shell-step (arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2465 "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
2466 (interactive "p")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2467 (or (not arg) (< arg 1)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2468 (setq arg 1))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2469 (idlwave-shell-stop-line-pending)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2470 (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
2471 (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
2472 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
2473
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2474 (defun idlwave-shell-stepover (arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2475 "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
2476 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
2477 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
2478 (interactive "p")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2479 (or (not arg) (< arg 1)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2480 (setq arg 1))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2481 (idlwave-shell-stop-line-pending)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2482 (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
2483 (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
2484 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
2485
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2486 (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
2487 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
2488 "Set breakpoint at current line.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2489
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2490 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
2491 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
2492 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
2493 the statement count times.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2494
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 60925
diff changeset
2495 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
2496 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
2497 non-nil disables the breakpoint"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2498 (interactive "P")
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2499 (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
2500 (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
2501 (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
2502 (setq count nil))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2503 (idlwave-shell-set-bp
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2504 ;; Create breakpoint
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2505 (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
2506 (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
2507 (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
2508 no-show))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2509
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2510 (defun idlwave-shell-set-bp-check (bp)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2511 "Check for failure to set breakpoint.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2512 This is run on `idlwave-shell-post-command-hook'.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2513 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
2514 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
2515 ;; 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
2516 (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
2517 (cond
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2518 ((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
2519 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
2520 ;; Offer to recompile
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2521 (if (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2522 (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
2523 (y-or-n-p
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2524 (concat "Okay to recompile file "
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2525 (idlwave-shell-bp-get bp 'file) "?")))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2526 ;; Recompile
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2527 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2528 ;; Clean up before retrying
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2529 (idlwave-shell-command-failure)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2530 (idlwave-shell-send-command
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2531 (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
2532 (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
2533 ;; Try setting breakpoint again
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2534 (idlwave-shell-set-bp bp))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2535 (beep)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2536 (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
2537 (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
2538 nil)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2539
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2540 ((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
2541 (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
2542 (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
2543 nil)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2544
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2545 (t 'okay))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2546
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2547 (defun idlwave-shell-command-failure ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2548 "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
2549 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
2550 that detects the failure of a command.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2551 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
2552 breakpoint can not be set."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2553 ;; Clear pending commands
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2554 (setq idlwave-shell-pending-commands nil))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2555
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2556 (defun idlwave-shell-cont (&optional no-show)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2557 "Continue executing."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2558 (interactive)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2559 (idlwave-shell-stop-line-pending)
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2560 (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
2561 '(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
2562 (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
2563 nil t))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2564
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2565 (defun idlwave-shell-go ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2566 "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
2567 (interactive)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2568 (idlwave-shell-stop-line-pending)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2569 (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
2570 (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
2571 nil t))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2572
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2573 (defun idlwave-shell-return ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2574 "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
2575 (interactive)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2576 (idlwave-shell-stop-line-pending)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2577 (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
2578 (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
2579 nil t))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2580
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2581 (defun idlwave-shell-skip ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2582 "Run .SKIP (skip one line, then step)."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2583 (interactive)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2584 (idlwave-shell-stop-line-pending)
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2585 (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
2586 (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
2587 nil t))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2588
77472
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
2589 (defun idlwave-shell-clear-bp (bp &optional no-query)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2590 "Clear breakpoint BP.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2591 Clears in IDL and in `idlwave-shell-bp-alist'."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2592 (let ((index (idlwave-shell-bp-get bp)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2593 (if index
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2594 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2595 (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
2596 (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
2597 nil (idlwave-shell-hide-p 'breakpoint) nil t)
77472
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
2598 (unless no-query (idlwave-shell-bp-query))))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2599
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2600 (defun idlwave-shell-current-frame ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2601 "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
2602 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
2603 (if (eq (current-buffer) (get-buffer (idlwave-shell-buffer)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2604 ;; In IDL shell
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2605 (idlwave-shell-pc-frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2606 ;; In source
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2607 (list (idlwave-shell-file-name (buffer-file-name))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2608 (save-restriction
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2609 (widen)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2610 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2611 (beginning-of-line)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2612 (1+ (count-lines 1 (point))))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2613
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2614 (defun idlwave-shell-current-module ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2615 "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
2616 Returns nil if unable to obtain a module name."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2617 (if (eq (current-buffer) (get-buffer (idlwave-shell-buffer)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2618 ;; In IDL shell
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2619 (nth 2 idlwave-shell-halt-frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2620 ;; In pro file
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2621 (save-restriction
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2622 (widen)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2623 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2624 (if (idlwave-prev-index-position)
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2625 (let* ((module (idlwave-what-module))
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2626 (name (idlwave-make-full-name (nth 2 module) (car module)))
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2627 (type (nth 1 module)))
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2628 (list (upcase name) type)))))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2629
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2630 (defun idlwave-shell-clear-current-bp ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2631 "Remove breakpoint at current line.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2632 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
2633 at a breakpoint."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2634 (interactive)
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2635 (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
2636 (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
2637
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2638
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2639 (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
2640 no-update)
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2641 "Disable or enable current breakpoint or a breakpoint passed in BP.
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2642 If FORCE is 'disable or 'enable, for that condition instead of
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2643 toggling. If NO-UPDATE is non-nil, don't update the breakpoint
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2644 list after toggling."
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2645 (interactive)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2646 (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
2647 (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
2648 (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
2649 ((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
2650 (when bp
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2651 (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
2652 (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
2653 (concat "breakpoint,"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2654 (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
2655 (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
2656 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
2657 (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
2658
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2659 (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
2660 "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
2661 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
2662 (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
2663 (while bpl
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2664 (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
2665 (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
2666 (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
2667 (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
2668 (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
2669 (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
2670 (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
2671 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
2672
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2673 (defun idlwave-shell-to-here ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2674 "Set a breakpoint with count 1 then continue."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2675 (interactive)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2676 ;; temporarily disable all other breakpoints
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2677 (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
2678 (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
2679 (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
2680 (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
2681 (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
2682
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2683 (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
2684 (interactive "P")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2685 (save-excursion
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2686 (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
2687 (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
2688
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2689 (defun idlwave-shell-break-in ()
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2690 "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
2691 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
2692 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
2693 in the current routine."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2694 (interactive)
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2695 (let* ((module (idlwave-fix-module-if-obj_new (idlwave-what-module)))
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2696 (type (nth 1 module))
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2697 (name (car module))
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2698 (class (nth 2 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
2699 (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
2700 (progn
76864
1064d1d79d3e (idlwave-shell-break-in): Simplify module calc.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76073
diff changeset
2701 (setq module (idlwave-make-full-name class name))
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2702 (idlwave-shell-module-source-query module type)
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2703 (idlwave-shell-set-bp-in-module name type class))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2704 (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
2705
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2706
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
2707 (defun idlwave-shell-set-bp-in-module (name type class)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2708 "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
2709 contains an entry for that module."
76864
1064d1d79d3e (idlwave-shell-break-in): Simplify module calc.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76073
diff changeset
2710 (let* ((module (idlwave-make-full-name class name))
1064d1d79d3e (idlwave-shell-break-in): Simplify module calc.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76073
diff changeset
2711 (source-file
1064d1d79d3e (idlwave-shell-break-in): Simplify module calc.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76073
diff changeset
2712 (car-safe (cdr-safe
1064d1d79d3e (idlwave-shell-break-in): Simplify module calc.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76073
diff changeset
2713 (or
1064d1d79d3e (idlwave-shell-break-in): Simplify module calc.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76073
diff changeset
2714 (assoc (upcase module)
1064d1d79d3e (idlwave-shell-break-in): Simplify module calc.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76073
diff changeset
2715 idlwave-shell-sources-alist)
1064d1d79d3e (idlwave-shell-break-in): Simplify module calc.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76073
diff changeset
2716 (nth 3 (idlwave-best-rinfo-assoc name type class
1064d1d79d3e (idlwave-shell-break-in): Simplify module calc.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76073
diff changeset
2717 (idlwave-routines)))))))
1064d1d79d3e (idlwave-shell-break-in): Simplify module calc.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76073
diff changeset
2718 buf)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2719 (if (or (not source-file)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2720 (not (file-regular-p source-file))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2721 (not (setq buf
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2722 (or (idlwave-get-buffer-visiting source-file)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2723 (find-file-noselect source-file)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2724 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2725 (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
2726 module)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2727 (beep))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2728 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2729 (set-buffer buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2730 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2731 (goto-char (point-min))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2732 (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
2733 (if (re-search-forward
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2734 (concat "^[ \t]*\\(pro\\|function\\)[ \t]+"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2735 (downcase module)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2736 "[ \t\n,]") nil t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2737 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2738 (goto-char (match-beginning 1))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2739 (message "Setting breakpoint for module %s" module)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2740 (idlwave-shell-break-here))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2741 (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
2742 (beep))))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2743
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2744 (defun idlwave-shell-up ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2745 "Run to end of current block.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2746 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
2747 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2748 (if (idlwave-shell-pc-frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2749 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2750 (idlwave-shell-goto-frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2751 ;; find end of subprogram
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2752 (let ((eos (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2753 (idlwave-beginning-of-subprogram)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2754 (idlwave-forward-block)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2755 (point))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2756 (idlwave-backward-up-block -1)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2757 ;; 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
2758 ;; 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
2759 ;; 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
2760 (idlwave-next-statement)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2761 (idlwave-end-of-statement)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2762 ;; Make sure we are not beyond subprogram
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2763 (if (< (point) eos)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2764 ;; okay
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2765 ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2766 ;; Move back inside subprogram
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2767 (goto-char eos)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2768 (idlwave-previous-statement))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2769 (idlwave-shell-to-here)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2770
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2771 (defun idlwave-shell-out ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2772 "Attempt to run until this procedure exits.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2773 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
2774 (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
2775 (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
2776 (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
2777 nil t))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2778
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2779 (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
2780 "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
2781 (interactive)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2782 (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
2783 (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
2784 "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
2785 (interactive)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2786 (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
2787
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2788 (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
2789 "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
2790 (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
2791 (file (car frame))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2792 (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
2793 (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
2794 (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
2795 (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
2796 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
2797 (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
2798 (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
2799 (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
2800 (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
2801 (if (and
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2802 (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
2803 (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
2804 (setq bp-line cur-line))))
63426
1fca8244172a (idlwave-shell-move-to-bp): Follow error conventions.
Juanma Barranquero <lekktu@gmail.com>
parents: 62772
diff changeset
2805 (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
2806 (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
2807
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2808 ;; Examine Commands ------------------------------------------------------
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2809
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
2810 (defun idlwave-shell-help-expression (arg)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2811 "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
2812 (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
2813 (idlwave-shell-print arg 'help))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2814
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2815 (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
2816 "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
2817 `(lambda (event)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2818 "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
2819 (interactive "e")
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2820 (let* ((drag-track (fboundp 'mouse-drag-track))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2821 (transient-mark-mode t)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2822 (zmacs-regions t)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2823 (tracker (if (featurep 'xemacs)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2824 (if (fboundp
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2825 'default-mouse-track-event-is-with-button)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2826 'idlwave-xemacs-hack-mouse-track
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2827 'mouse-track)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2828 ;; Emacs 22 no longer completes the drag with
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2829 ;; mouse-drag-region, without an additional
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2830 ;; event. mouse-drag-track does so.
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2831 (if drag-track 'mouse-drag-track 'mouse-drag-region))))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2832 (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
2833 (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
2834 ,help ,ev))))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2835
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2836 ;;; 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
2837 ;;; 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
2838 (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
2839 t)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2840
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2841 (defun idlwave-xemacs-hack-mouse-track (event)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2842 (if (featurep 'xemacs)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2843 (let ((oldfunc (symbol-function
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2844 'default-mouse-track-event-is-with-button)))
64835
4694417f9930 (idlwave-xemacs-hack-mouse-track): Avoid warnings.
Richard M. Stallman <rms@gnu.org>
parents: 64699
diff changeset
2845 (unwind-protect
4694417f9930 (idlwave-xemacs-hack-mouse-track): Avoid warnings.
Richard M. Stallman <rms@gnu.org>
parents: 64699
diff changeset
2846 (progn
4694417f9930 (idlwave-xemacs-hack-mouse-track): Avoid warnings.
Richard M. Stallman <rms@gnu.org>
parents: 64699
diff changeset
2847 (fset 'default-mouse-track-event-is-with-button
4694417f9930 (idlwave-xemacs-hack-mouse-track): Avoid warnings.
Richard M. Stallman <rms@gnu.org>
parents: 64699
diff changeset
2848 'idlwave-default-mouse-track-event-is-with-button)
4694417f9930 (idlwave-xemacs-hack-mouse-track): Avoid warnings.
Richard M. Stallman <rms@gnu.org>
parents: 64699
diff changeset
2849 (mouse-track event))
4694417f9930 (idlwave-xemacs-hack-mouse-track): Avoid warnings.
Richard M. Stallman <rms@gnu.org>
parents: 64699
diff changeset
2850 (fset 'default-mouse-track-event-is-with-button oldfunc)))))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2851 ;;; 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
2852
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2853 (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
2854 "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
2855 (interactive "e")
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2856 (funcall (idlwave-shell-mouse-examine nil) event))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2857
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2858 (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
2859 "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
2860 (interactive "e")
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2861 (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
2862
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2863 (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
2864 "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
2865 (interactive "e")
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2866 (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
2867
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2868 (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
2869 "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
2870 `(lambda ()
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2871 (interactive)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2872 (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
2873
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2874 (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
2875 "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
2876 (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
2877
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2878 (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
2879 "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
2880
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2881 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
2882 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
2883
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2884 print,size(___,/DIMENSIONS)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2885
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2886 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
2887 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
2888
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2889 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
2890
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2891 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
2892 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
2893 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
2894 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
2895 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
2896 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
2897 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
2898
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2899 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
2900 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
2901
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2902 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
2903
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2904 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
2905 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
2906 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
2907 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
2908 (interactive "P")
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2909
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2910 ;; For speed: assume the helper routine hasn't been lost, e.g. with
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2911 ;; .FULL_RESET_SESSION. We'll recover if necessary
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2912 (unless idlwave-idlwave_routine_info-compiled
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2913 (idlwave-shell-compile-helper-routines))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2914 (save-excursion
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2915 (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
2916 (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
2917 (stack-label
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2918 (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
2919 (> 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
2920 (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
2921 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
2922 idlwave-shell-calling-stack-routine)))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
2923 expr beg end cmd)
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2924 (cond
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2925 ((equal arg '(16))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2926 (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
2927 ((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
2928 (< (- (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
2929 (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
2930 end (region-end)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2931 (t
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
2932 (idlwave-with-special-syntax
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2933 ;; 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
2934 (if (looking-at "\\<\\|(")
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2935 ;; 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
2936 ;; 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
2937 (if (looking-at "\\>")
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2938 (backward-sexp))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2939 (backward-sexp))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2940 (if (looking-at "\\>")
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2941 ;; 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
2942 ;; function expression.
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2943 (backward-sexp))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2944 ;; Move to end of expression
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2945 (setq beg (point))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2946 (forward-sexp)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2947 (while (looking-at "\\>[[(]\\|\\.")
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2948 ;; an array
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
2949 (forward-sexp))
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2950 (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
2951
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2952 ;; 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
2953 ;; 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
2954 ;; 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
2955 (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
2956 (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
2957 (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
2958 (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
2959
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2960 ;; 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
2961 (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
2962 (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
2963 (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
2964 (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
2965 'idlwave-shell-delete-expression-overlay))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2966 (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
2967 '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
2968
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2969 ;; 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
2970 (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
2971 (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
2972 ;; 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
2973 (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
2974 (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
2975 ;; Remove final newline
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
2976 (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
2977 (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
2978
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2979 (catch 'exit
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2980 ;; 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
2981 (if (or
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2982 complete-help-type
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2983 (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
2984 (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
2985 (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
2986 (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
2987 (assoc
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2988 ;; 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
2989 (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
2990 (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
2991 "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
2992 ;; (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
2993 ;; "Examine with: "
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
2994 ;; 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
2995 ;; '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
2996 ;; "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
2997 (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
2998 ev
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
2999 (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
3000 "Examine with"))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3001 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
3002 (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
3003 (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
3004 (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
3005 (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
3006 (concat
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3007 (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
3008 stack-label "\n"))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3009 ;; 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
3010 (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
3011 (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
3012 (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
3013 (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
3014 ((stringp help) help)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3015 (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
3016 stack-label "\n")))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3017
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3018 ;; Send the command
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3019 (if stack-label
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3020 (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
3021 expr
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3022 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
3023 (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
3024 ;;(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
3025 (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
3026 cmd
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3027 'idlwave-shell-check-compiled-and-display
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3028 (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
3029
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3030 (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
3031 "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
3032
58307
8e5e564777ba Re-applied diff 3.26->3.27, variable reorganization.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58297
diff changeset
3033 (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
3034 (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
3035 (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
3036
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3037
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3038 (defun idlwave-shell-check-compiled-and-display ()
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3039 "Check examine output for warning about undefined procedure/function."
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3040 (if (string-match "% Attempt to call undefined" idlwave-shell-command-output)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3041 (idlwave-shell-compile-helper-routines))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3042 (if idlwave-shell-separate-examine-output
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3043 (idlwave-shell-examine-display)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3044 (idlwave-shell-examine-highlight)))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3045
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3046 (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
3047 "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
3048 (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
3049 (save-excursion
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3050 (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
3051 (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
3052 (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
3053 (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
3054 (save-restriction
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3055 (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
3056 (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
3057 (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
3058 (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
3059 ;; 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
3060 (let* ((end (or
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3061 (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
3062 (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
3063 (beg (progn
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3064 (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
3065 (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
3066 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
3067 (match-end 0)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3068 (point-min)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3069 (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
3070 (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
3071 (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
3072 (insert str)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3073 (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
3074 (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
3075 (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
3076 (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
3077 (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
3078 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
3079 (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
3080 (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
3081 (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
3082
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3083 ;; 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
3084 ;; 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
3085 ;; 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
3086 ;; 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
3087 (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
3088 (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
3089 "*Examine*"
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3090 nil
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3091 (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
3092 (catch 'exit
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3093 (save-selected-window
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3094 (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
3095 (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
3096 (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
3097 (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
3098 (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
3099 (save-selected-window
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3100 (select-window win)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3101 (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
3102 (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
3103 (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
3104 (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
3105 ;; Autosize it.
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3106 (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
3107 (window-height)))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3108 (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
3109 ;; 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
3110 (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
3111 (delq nil
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3112 (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
3113 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
3114 ;; 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
3115 (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
3116 (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
3117 (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
3118 (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
3119 ;; 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
3120 (save-selected-window
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3121 (select-window win)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3122 (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
3123 (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
3124 (recenter -1)))))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3125
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3126 (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
3127 (interactive)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3128 (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
3129 (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
3130 (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
3131 (delete-window win))))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3132
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3133 (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
3134 (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
3135 (save-excursion
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3136 (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
3137 (when (bufferp buf)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3138 (set-buffer buf)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3139 (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
3140 (erase-buffer)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3141 (setq buffer-read-only t)))))
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
3142
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3143 (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
3144 "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
3145
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3146 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
3147 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
3148 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
3149 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
3150
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3151 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
3152 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
3153 versions of IDL."
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3154 (let ((fetch (- 0 level))
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
3155 (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
3156 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
3157
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3158 ;; 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
3159 ;; 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
3160 ;; 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
3161 ;; 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
3162 ;; 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
3163
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3164 (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
3165 "\\(\\`\\|[^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
3166 (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
3167 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
3168 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
3169 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
3170 (cond
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3171 ((or
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3172 ;; 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
3173 (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
3174 (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
3175 (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
3176 (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
3177 (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
3178 (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
3179
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3180 ;; 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
3181 ((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
3182 (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
3183 (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
3184 (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
3185
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3186
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3187 ;; 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
3188 (t
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3189 (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
3190
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3191 (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
3192 (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
3193 (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
3194 (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
3195 (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
3196 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
3197 (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
3198 (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
3199 (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
3200 (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
3201 (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
3202 (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
3203 fetch)
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3204 (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
3205 (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
3206 (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
3207 (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
3208 expr))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3209
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3210
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3211 (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
3212 "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
3213
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3214 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
3215 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
3216 size(___,/DIMENSIONS)"
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3217 (cond
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3218 ((null help)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3219 (concat "idlwave_print_safe, " expr ","
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3220 (number-to-string idlwave-shell-max-print-length)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3221 ((stringp help)
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3222 (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
3223 (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
3224 expr
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3225 (substring help (match-end 2)))))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3226 (t
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3227 (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
3228
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3229
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3230 (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
3231 "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
3232 (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
3233 (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
3234 (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
3235 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
3236 (save-excursion
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3237 (set-buffer buffer)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3238 (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
3239 (beginning-of-line)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3240 (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
3241 (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
3242 (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
3243 (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
3244
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3245 ;; 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
3246 (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
3247 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
3248 (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
3249 (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
3250 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
3251
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3252 (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
3253 (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
3254 (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
3255 (condition-case nil
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3256 (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
3257 (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
3258 (error nil))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3259 (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
3260
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3261 (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
3262 (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
3263 (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
3264 (condition-case nil
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3265 (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
3266 (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
3267 (error nil))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3268 (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
3269
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3270 (defvar idlwave-shell-bp-alist nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3271 "Alist of breakpoints.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3272 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
3273
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3274 The car is the `frame' for the breakpoint:
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3275 file - full path file name.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3276 line - line number of breakpoint - integer.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3277
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3278 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
3279 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
3280 module - the module for breakpoint internal to IDL.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3281
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3282 Remaining elements of the cdr:
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3283 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
3284 contains four items:
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3285
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3286 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
3287 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
3288
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3289 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
3290 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
3291 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
3292
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3293 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
3294
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3295 disabled - whether the bp is disabled")
27107
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-run-region (beg end &optional n)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3298 "Compile and run the region using the IDL process.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3299 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
3300 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
3301 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
3302 problem with begin-end blocks extending over multiple
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3303 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
3304 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
3305
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3306 If there is a prefix argument, display IDL process."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3307 (interactive "r\nP")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3308 (let ((oldbuf (current-buffer)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3309 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3310 (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
3311 (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
3312 (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
3313 (set (make-local-variable 'comment-start) ";")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3314 (erase-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3315 (insert-buffer-substring oldbuf beg end)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3316 (if (not (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3317 (idlwave-previous-statement)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3318 (idlwave-look-at "\\<end\\>")))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3319 (insert "\nend\n"))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3320 (save-buffer 0)))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3321 (idlwave-shell-send-command (concat ".run \""
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3322 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
3323 nil
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3324 (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
3325 nil t)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3326 (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
3327 (idlwave-display-buffer (idlwave-shell-buffer)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3328 nil (idlwave-shell-shell-frame))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3329
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3330 (defun idlwave-shell-evaluate-region (beg end &optional n)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3331 "Send region to the IDL process.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3332 If there is a prefix argument, display IDL process.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3333 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
3334 `idlwave-shell-run-region' for this."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3335 (interactive "r\nP")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3336 (idlwave-shell-send-command (buffer-substring beg end))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3337 (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
3338 (idlwave-display-buffer (idlwave-shell-buffer)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3339 nil (idlwave-shell-shell-frame))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3340
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
3341 (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
3342 "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
3343 (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
3344 (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
3345 (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
3346 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
3347 (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
3348 (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
3349 (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
3350 (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
3351 (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
3352 (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
3353 (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
3354 (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
3355
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3356 (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
3357 (if (featurep 'xemacs)
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3358 ;; 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
3359 (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
3360 ;; 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
3361 (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
3362 (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
3363 (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
3364 (select-frame frame))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3365 (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
3366 ;; 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
3367 ;; window stays.
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3368 (display-buffer buf)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3369 ;; different frame
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3370 (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
3371 ;; only window: switch
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3372 (progn
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3373 (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
3374 (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
3375 ;; 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
3376 (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
3377 ; (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
3378 ; (display-buffer buf not-this-window-p frame))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3379
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
3380 (defvar idlwave-shell-bp-buffer " *idlwave-shell-bp*"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3381 "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
3382
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3383 (defun idlwave-shell-bp-query (&optional no-show)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3384 "Reconcile idlwave-shell's breakpoint list with IDL's.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3385 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
3386 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3387 (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
3388 `(progn
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3389 (idlwave-shell-filter-bp (quote ,no-show)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3390 'hide))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3391
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3392 (defun idlwave-shell-bp-get (bp &optional item)
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3393 "Get a value for a breakpoint. BP has the form of elements in
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3394 idlwave-shell-bp-alist. Optional second arg ITEM is the
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3395 particular value to retrieve. ITEM can be 'file, 'line, 'index,
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3396 'module, 'count, 'cmd, 'condition, 'disabled, 'type, or
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3397 'data. 'data returns a list of 'count, 'cmd and 'condition.
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3398 Defaults to 'index."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3399 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3400 ;; Frame
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3401 ((eq item 'line) (nth 1 (car bp)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3402 ((eq item 'file) (nth 0 (car bp)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3403 ;; idlwave-shell breakpoint data
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3404 ((eq item 'data) (cdr (cdr bp)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3405 ((eq item 'count) (nth 0 (cdr (cdr bp))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3406 ((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
3407 ((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
3408 ((eq item 'disabled) (nth 3 (cdr (cdr bp))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3409 ;; IDL breakpoint info
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3410 ((eq item 'module)
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3411 (let ((module (nth 1 (car (cdr bp)))))
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3412 (if (listp module) (car module) module)))
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3413 ((eq item 'type)
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3414 (let ((module (nth 1 (car (cdr bp)))))
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3415 (if (listp module) (nth 1 module))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3416 ;; index - default
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3417 (t (nth 0 (car (cdr bp))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3418
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3419 (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
3420 "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
3421 `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
3422 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
3423 breakpoint overlays."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3424 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3425 (set-buffer (get-buffer-create idlwave-shell-bp-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3426 (erase-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3427 (insert idlwave-shell-command-output)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3428 (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
3429 (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
3430 ;; Searching the breakpoints
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3431 ;; 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
3432 (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
3433 (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
3434 (concat
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3435 "^\\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
3436 "\\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
3437 "\\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
3438 "\\(\\(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
3439 "\\(\\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
3440 "\\(\\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
3441 "\\(\\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
3442 "\\(\\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
3443 "\\s-+\\(\\S-+\\)")) ; 16 File name
47915
f1ce118178c3 (idlwave-shell-set-bp): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents: 47453
diff changeset
3444 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
3445 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
3446 bp-re indmap)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3447 (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
3448 ;; 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
3449 (when (or
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3450 (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
3451 (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
3452 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
3453 (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
3454 "^\\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
3455 (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
3456 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
3457 ;; 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
3458 (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
3459 (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
3460 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
3461 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
3462 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
3463 (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
3464 (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
3465 (if (match-string 8)
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 60925
diff changeset
3466 (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
3467 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
3468 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
3469
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
3470 ;; 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
3471 (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
3472 (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
3473 (list
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
3474 (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
3475 ;; 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
3476 count nil condition disabled))))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3477 (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
3478 ;; 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
3479 (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
3480 (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
3481 (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
3482 ;; 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
3483 (unless no-show (idlwave-shell-update-bp-overlays))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3484 ;; Return the new list
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3485 idlwave-shell-bp-alist)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3486
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3487 (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
3488 (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
3489
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3490 (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
3491 "Update BP data in breakpoint list.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3492 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
3493 (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
3494 (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
3495 (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
3496 (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
3497 (setcdr (cdr match) (cdr (cdr bp)))))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3498
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3499 (defun idlwave-shell-set-bp-data (bp data)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3500 "Set the data of BP to DATA."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3501 (setcdr (cdr bp) data))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3502
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3503 (defun idlwave-shell-bp (frame &optional data module)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3504 "Create a breakpoint structure containing FRAME and DATA. Second
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3505 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
3506 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
3507 attempting match a breakpoint in `idlwave-shell-bp-alist'."
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3508 (cons frame ;; (file line)
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3509 (cons (list nil module) ;; (index_id (module type) | module)
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3510 data))) ;; (count command condition disabled)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3511
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3512 (defvar idlwave-shell-old-bp nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3513 "List of breakpoints previous to setting a new breakpoint.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3514
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3515 (defun idlwave-shell-sources-bp (bp)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3516 "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
3517 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
3518 Otherwise return the filename in bp."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3519 (let*
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3520 ((bp-file (idlwave-shell-bp-get bp 'file))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3521 (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
3522 (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
3523 (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
3524 (cdr (assoc bp-module idlwave-shell-sources-alist)))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3525 (if (and internal-file-list
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3526 (equal bp-file (nth 0 internal-file-list)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3527 (nth 1 internal-file-list)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3528 bp-file)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3529
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3530 (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
3531 "Try to set a breakpoint BP.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3532 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
3533 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
3534 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
3535 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
3536 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
3537 ;; 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
3538 (idlwave-shell-send-command
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3539 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
3540 `(progn
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3541 (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
3542 (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
3543 '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
3544
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3545 ;; Get sources for this routine in the sources list
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3546 (idlwave-shell-module-source-query (idlwave-shell-bp-get bp 'module)
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3547 (idlwave-shell-bp-get bp 'type))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3548 (let*
76073
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3549 ((count (idlwave-shell-bp-get bp 'count))
47440
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3550 (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
3551 (disabled (idlwave-shell-bp-get bp 'disabled))
76073
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3552 (key (concat (if (and count (numberp count))
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3553 (cond
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3554 ((= count 1) ",/once")
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3555 ((> count 1) (format ",after=%d" count))))
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3556 (if condition (concat ",CONDITION=\"" condition "\""))
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3557 ;; IDL can't simultaneously set a condition/count
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3558 ;; and disable a breakpoint, but it does keep both
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3559 ;; of these when resetting the same BP. We assume
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3560 ;; DISABLE and CONDITION/COUNT are not set
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3561 ;; together for a newly created breakpoint.
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3562 (if (and disabled (not condition) (not count))
9c80ddcdba82 (idlwave-shell-set-bp): Fix setting condition/count on disabled BPs.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76070
diff changeset
3563 ",/DISABLE")))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3564 (line (idlwave-shell-bp-get bp 'line)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3565 (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
3566 (concat "breakpoint,'"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3567 (idlwave-shell-sources-bp bp) "',"
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3568 (if (integerp line) (setq line (int-to-string line)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3569 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
3570 ;; 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
3571 `(progn
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3572 (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
3573 (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
3574 ;; hide output?
0e5a022947e9 Updated to IDLWAVE version 4.15. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 47262
diff changeset
3575 (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
3576 'preempt t)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3577
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3578 (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
3579 "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
3580 (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
3581 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
3582 `(progn
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3583 (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
3584 (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
3585 (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
3586 (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
3587 'hide
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3588 'preempt))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3589
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3590 (defun idlwave-shell-find-bp (frame)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3591 "Return breakpoint from `idlwave-shell-bp-alist' for frame.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3592 Returns nil if frame not found."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3593 (assoc frame idlwave-shell-bp-alist))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3594
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3595 (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
3596 "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
3597 (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
3598 (when (not bp)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3599 ;; 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
3600 (save-excursion
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3601 (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
3602 (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
3603 (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
3604 (unless bp
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3605 (beep)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3606 (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
3607 bp))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3608
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3609 (defun idlwave-shell-new-bp (bp)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3610 "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
3611 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
3612 the line number used with the IDL breakpoint command.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3613 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
3614 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
3615 (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
3616 (bpl idlwave-shell-bp-alist))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3617 (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
3618 (setq bpl (cdr bpl))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3619 (if (and
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3620 (not bpl)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3621 ;; No additional breakpoint.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3622 ;; 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
3623 (setq bpl (assoc (car bp) idlwave-shell-bp-alist)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3624 (setq bpl (list bpl)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3625 (if (and bpl
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3626 (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
3627 (idlwave-shell-bp-get bp 'file)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3628 ;; Got the breakpoint - add count, command to it.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3629 ;; 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
3630 ;; not done for bpl.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3631 (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
3632 (beep)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3633 (message "Failed to identify breakpoint in IDL"))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3634
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3635 (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
3636 "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
3637 (defvar idlwave-shell-bp-glyph)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3638
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3639 (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
3640 (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
3641 (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
3642 '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
3643
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3644 (defun idlwave-shell-update-bp-overlays ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3645 "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
3646 Existing overlays are recycled, in order to minimize consumption."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3647 (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
3648 (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
3649 (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
3650 (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
3651 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
3652 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
3653
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3654 ;; 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
3655 (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
3656 (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
3657 (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
3658 (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
3659 (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
3660
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3661 (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
3662 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
3663 (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
3664 (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
3665 (list (list 'bp))))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3666 (while (setq bp (pop bp-list))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3667 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3668 (idlwave-shell-goto-frame (car bp))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3669 (let* ((end (progn (end-of-line 1) (point)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3670 (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
3671 (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
3672 (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
3673 (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
3674 (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
3675 (cond
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3676 (condition 'bp-cond )
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3677 (count
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3678 (cond
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3679 ((<= count 0) 'bp)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3680 ((<= count 4)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3681 (intern
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3682 (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
3683 (t 'bp-n)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3684 (t 'bp))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3685 '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
3686 (help-list
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3687 (delq nil
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3688 (list
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3689 (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
3690 (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
3691 (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
3692 (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
3693 (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
3694 (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
3695 "BP "
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3696 (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
3697 (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
3698 (concat
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3699 " - "
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3700 (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
3701 (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
3702 " (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
3703 (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
3704 (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
3705 "-disabled"))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3706 type))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3707 (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
3708 (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
3709 (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
3710 (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
3711 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
3712 (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
3713 (overlay-put ov 'help-echo help-text))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3714 (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
3715 (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
3716 (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
3717 (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
3718 (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
3719 ;; 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
3720 (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
3721 (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
3722 (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
3723 (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
3724 (set-specifier left-margin-width (cons (current-buffer) 2))
77472
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
3725 (if (< left-margin-width 2)
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
3726 (setq left-margin-width 2)))
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
3727 (let ((window (get-buffer-window (current-buffer) 0)))
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
3728 (if window
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
3729 (set-window-margins
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
3730 window left-margin-width right-margin-width))))))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3731 (if use-glyph
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3732 (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
3733 (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
3734 (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
3735 (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
3736 (setq left-margin-width 0))
77472
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
3737 (let ((window (get-buffer-window buf 0)))
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
3738 (if window
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
3739 (set-window-margins
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
3740 window left-margin-width right-margin-width)))))))))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3741
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3742 (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
3743 "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
3744
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3745 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
3746 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
3747 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
3748 (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
3749 (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
3750 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
3751 (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
3752 (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
3753 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
3754 idlwave-shell-breakpoint-face)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3755 (if (featurep 'xemacs)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3756 ;; This is XEmacs
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3757 (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
3758 (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
3759 (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
3760 (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
3761
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3762 (cond
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3763 ;; tty's cannot display glyphs
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3764 ((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
3765 (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
3766
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3767 ;; use the glyph
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3768 (use-glyph
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3769 (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
3770 (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
3771 (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
3772 (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
3773
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3774 ;; use the face
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3775 (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
3776 (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
3777
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3778 ;; no marking
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3779 (t nil))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3780 (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
3781 ;; 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
3782 (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
3783 (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
3784 (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
3785 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3786 (window-system
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3787 (if use-glyph
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3788 (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
3789 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
3790
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3791 (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
3792 (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
3793 (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
3794 (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
3795 (propertize "@"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3796 'display
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3797 (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
3798 image-props)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3799 (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
3800 ;; just the face
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3801 (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
3802
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3803 ;; use a face
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3804 (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
3805 (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
3806
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3807 ;; No marking
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3808 (t nil)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3809 ov))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3810
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3811 (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
3812 "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
3813 (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
3814 (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
3815 (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
3816 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
3817 (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
3818 (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
3819 (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
3820 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
3821 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
3822 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
3823 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
3824 (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
3825 ev
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3826 (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
3827 (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
3828 "Clear"
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3829 "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
3830 (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
3831 (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
3832 (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
3833 "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
3834 (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
3835 (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
3836 (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
3837 (cond
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3838 ((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
3839 (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
3840 ((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
3841 (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
3842 ((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
3843 (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
3844 (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
3845 (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
3846 (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
3847 disabled))
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3848 ((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
3849 (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
3850 (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
3851 (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
3852 (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
3853 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
3854 ((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
3855 (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
3856 (t
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3857 (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
3858
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3859 (defun idlwave-shell-edit-default-command-line (arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3860 "Edit the current execute command."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3861 (interactive "P")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3862 (setq idlwave-shell-command-line-to-execute
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3863 (read-string "IDL> " idlwave-shell-command-line-to-execute)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3864
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3865 (defun idlwave-shell-execute-default-command-line (arg)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3866 "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
3867 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
3868 `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
3869 (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
3870 (cond
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3871 ((equal arg '(16))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
3872 (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
3873 ((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
3874 (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
3875 (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
3876 (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
3877 (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
3878 (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
3879 (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
3880 (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
3881 '(idlwave-shell-redisplay 'hide)))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3882
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3883 (defun idlwave-shell-save-and-run ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3884 "Save file and run it in IDL.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3885 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
3886 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
3887 one of the save-and-.. commands."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3888 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3889 (idlwave-shell-save-and-action 'run))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3890
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3891 (defun idlwave-shell-save-and-compile ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3892 "Save file and run it in IDL.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3893 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
3894 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
3895 one of the save-and-.. commands."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3896 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3897 (idlwave-shell-save-and-action 'compile))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3898
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3899 (defun idlwave-shell-save-and-batch ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3900 "Save file and batch it in IDL.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3901 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
3902 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
3903 one of the save-and-.. commands."
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3904 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3905 (idlwave-shell-save-and-action 'batch))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3906
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3907 (defun idlwave-shell-save-and-action (action)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3908 "Save file and compile it in IDL.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3909 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
3910 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
3911 handled by this command."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3912 ;; Remove the stop overlay.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3913 (if idlwave-shell-stop-line-overlay
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3914 (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
3915 (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
3916 (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
3917 (setq idlwave-shell-is-stopped nil)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3918 (setq overlay-arrow-string nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3919 (let (buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3920 (cond
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3921 ((eq major-mode 'idlwave-mode)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3922 (save-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3923 (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
3924 (idlwave-shell-last-save-and-action-file
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3925 (if (setq buf (idlwave-get-buffer-visiting
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3926 idlwave-shell-last-save-and-action-file))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3927 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3928 (set-buffer buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3929 (save-buffer))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3930 (t (setq idlwave-shell-last-save-and-action-file
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3931 (read-file-name "File: ")))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3932 (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
3933 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3934 (idlwave-shell-send-command
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3935 (concat (cond ((eq action 'run) ".run ")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3936 ((eq action 'compile) ".compile ")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3937 ((eq action 'batch) "@")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3938 (t (error "Unknown action %s" action)))
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3939 "\""
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3940 idlwave-shell-last-save-and-action-file
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3941 "\"")
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3942 `(idlwave-shell-maybe-update-routine-info nil
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3943 ,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
3944 (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
3945 (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
3946 (let ((msg (format "No such file %s"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3947 idlwave-shell-last-save-and-action-file)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3948 (setq idlwave-shell-last-save-and-action-file nil)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3949 (error msg))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3950
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3951 (defun idlwave-shell-maybe-update-routine-info (&optional wait 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
3952 "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
3953 (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
3954 (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
3955 (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
3956 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
3957 idlwave-routines)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
3958 (idlwave-shell-update-routine-info t nil wait 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
3959
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
3960 (defvar idlwave-shell-sources-query "help,/source,/full"
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3961 "IDL command to obtain source files for compiled procedures.")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3962
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3963 (defvar idlwave-shell-sources-alist nil
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3964 "Alist of IDL procedure names and compiled source files.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3965 Elements of the alist have the form:
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3966
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3967 (module name . (source-file-truename idlwave-internal-filename)).")
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3968
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3969 (defun idlwave-shell-module-source-query (module &optional type)
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3970 "Determine the source file for a given module.
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3971 Query as a function if TYPE set to something beside 'pro."
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3972 (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
3973 (idlwave-shell-send-command
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3974 (format "print,(routine_info('%s',/SOURCE%s)).PATH" module
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3975 (if (eq type 'pro) "" ",/FUNCTIONS"))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3976 `(idlwave-shell-module-source-filter ,module)
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3977 'hide 'wait)))
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3978
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
3979 (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
3980 "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
3981 (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
3982 filename)
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3983 (when (string-match "\.PATH *[\n\r]\\([^%][^\r\n]+\\)[\n\r]"
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3984 idlwave-shell-command-output)
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3985 (setq filename (substring idlwave-shell-command-output
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3986 (match-beginning 1) (match-end 1)))
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3987 (if old
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3988 (setcdr old (list (idlwave-shell-file-name filename) filename))
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3989 (setq idlwave-shell-sources-alist
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3990 (append idlwave-shell-sources-alist
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3991 (list (cons (upcase module)
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3992 (list (idlwave-shell-file-name filename)
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
3993 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
3994
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3995 (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
3996 "Determine source files for all IDL compiled procedures.
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3997 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
3998 (interactive)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
3999 (idlwave-shell-send-command idlwave-shell-sources-query
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4000 'idlwave-shell-sources-filter
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4001 'hide))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4002
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4003 (defun idlwave-shell-sources-filter ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4004 "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
4005 Create `idlwave-shell-sources-alist' consisting of
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4006 list elements of the form:
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4007 (module name . (source-file-truename idlwave-internal-filename))."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4008 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4009 (set-buffer (get-buffer-create idlwave-shell-bp-buffer))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4010 (erase-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4011 (insert idlwave-shell-command-output)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4012 (goto-char (point-min))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4013 (let (cpro cfun)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4014 (if (re-search-forward "Compiled Procedures:" nil t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4015 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4016 (forward-line) ; Skip $MAIN$
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4017 (setq cpro (point))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4018 (if (re-search-forward "Compiled Functions:" nil t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4019 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4020 (setq cfun (point))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4021 (setq idlwave-shell-sources-alist
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4022 (append
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4023 ;; compiled procedures
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4024 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4025 (beginning-of-line)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4026 (narrow-to-region cpro (point))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4027 (goto-char (point-min))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4028 (idlwave-shell-sources-grep))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4029 ;; compiled functions
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4030 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4031 (widen)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4032 (goto-char cfun)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4033 (idlwave-shell-sources-grep)))))))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4034
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4035 (defun idlwave-shell-sources-grep ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4036 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4037 (let ((al (list nil)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4038 (while (and
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4039 (not (progn (forward-line) (eobp)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4040 (re-search-forward
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4041 "\\s-*\\(\\S-+\\)\\s-+\\(\\S-+\\)" nil t))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4042 (nconc al
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4043 (list
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4044 (cons
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4045 (buffer-substring ; name
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4046 (match-beginning 1) (match-end 1))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4047 (let ((internal-filename
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4048 (buffer-substring ; source
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4049 (match-beginning 2) (match-end 2))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4050 (list
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4051 (idlwave-shell-file-name internal-filename)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4052 internal-filename))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4053 ))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4054 (cdr al))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4055
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4056 (defun idlwave-shell-clear-all-bp ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4057 "Remove all breakpoints in IDL."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4058 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4059 (idlwave-shell-send-command
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4060 idlwave-shell-bp-query
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4061 '(progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4062 (idlwave-shell-filter-bp)
77472
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
4063 (mapcar (lambda (x) (idlwave-shell-clear-bp x 'no-query))
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
4064 idlwave-shell-bp-alist)
70d58d56b53b (idlwave-shell-clear-all-bp): Don't re-query for each cleared BP.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 76864
diff changeset
4065 (idlwave-shell-bp-query))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4066 'hide))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4067
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4068 (defun idlwave-shell-list-all-bp ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4069 "List all breakpoints in IDL."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4070 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4071 (idlwave-shell-send-command
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4072 idlwave-shell-bp-query))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4073
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4074 (defvar idlwave-shell-error-last 0
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4075 "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
4076
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4077 (defun idlwave-shell-goto-next-error ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4078 "Move point to next IDL syntax error."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4079 (interactive)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4080 (let (frame col)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4081 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4082 (set-buffer idlwave-shell-error-buffer)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4083 (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
4084 (if (or
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4085 (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
4086 (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
4087 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4088 (setq frame
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4089 (list
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4090 (save-match-data
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4091 (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
4092 (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
4093 (match-end 1))))
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 60925
diff changeset
4094 (string-to-number
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4095 (buffer-substring (match-beginning 2)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4096 (match-end 2)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4097 ;; Try to find the column of the error
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4098 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4099 (setq col
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4100 (if (re-search-backward "\\^" nil t)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4101 (current-column)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4102 0)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4103 (setq idlwave-shell-error-last (point)))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4104 (if frame
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4105 (progn
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
4106 (idlwave-shell-display-line frame col 'disable))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4107 (beep)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4108 (message "No more errors."))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4109
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4110 (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
4111 "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
4112 Otherwise, just expand the file name."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4113 (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
4114 default-directory
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4115 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
4116 (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
4117 (file-truename name def-dir)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4118 (expand-file-name name def-dir))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4119
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4120 ;; Keybindings ------------------------------------------------------------
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4121
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4122 (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
4123 "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
4124 (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
4125 (defvar idlwave-shell-mode-prefix-map (make-sparse-keymap))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4126 (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
4127 (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
4128 (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
4129
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4130 (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
4131 "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
4132 (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
4133 (define-key idlwave-shell-mode-map key hook))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4134
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4135 ;(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
4136 ;(define-key idlwave-shell-mode-map "\t" 'comint-dynamic-complete)
76070
1029d540daf5 (idlwave-shell-mode): Clean up pending commands, for
J.D. Smith <jdsmith@as.arizona.edu>
parents: 75347
diff changeset
4137
74103
b21beb03e5c4 (idlwave-shell-filter-directory): Handle extra newlines and spaces.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 71938
diff changeset
4138 (define-key idlwave-shell-mode-map "\C-w" 'comint-kill-region)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4139 (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
4140 (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
4141 (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
4142 (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
4143 (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
4144 (define-key idlwave-shell-mode-map "\M-?" 'idlwave-context-help)
74103
b21beb03e5c4 (idlwave-shell-filter-directory): Handle extra newlines and spaces.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 71938
diff changeset
4145 (define-key idlwave-shell-mode-map [(control meta ?\?)]
b21beb03e5c4 (idlwave-shell-filter-directory): Handle extra newlines and spaces.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 71938
diff changeset
4146 'idlwave-help-assistant-help-with-topic)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4147 (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
4148 (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
4149 (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
4150 (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
4151 (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
4152 (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
4153 (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
4154 'idlwave-shell-debug-map)
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4155 (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
4156 (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
4157 (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
4158 (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
4159
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4160 ;; 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
4161 (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
4162 (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
4163 [(shift button2)]
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4164 [(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
4165 '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
4166 (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
4167 (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
4168 [(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
4169 [(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
4170 '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
4171 (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
4172 (if (featurep 'xemacs)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4173 [(control shift button2)]
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4174 [(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
4175 '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
4176 ;; 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
4177 (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
4178 (if (featurep 'xemacs)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4179 [(shift button3)]
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4180 [(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
4181 '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
4182
46529
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4183 ;; 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
4184 (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
4185 (interactive "e"))
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4186 (unless (featurep 'xemacs)
148f4d9a8905 Updated to IDLWAVE version 4.14. See idlwave.org.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 46289
diff changeset
4187 (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
4188 [(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
4189 (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
4190 [(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
4191 (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
4192 [(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
4193
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4194
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4195 ;; 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
4196 ;; 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
4197 ;; 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
4198 ;; `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
4199 ;; 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
4200 ;; `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
4201 ;; 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
4202 ;; 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
4203 ;;
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4204 ;; [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
4205 ;; 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
4206 ;; Unused keys: g
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4207 (let* ((specs
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4208 '(([(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
4209 ([(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
4210 ([(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
4211 ([(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
4212 ([(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
4213 ([(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
4214 ([(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
4215 ([(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
4216 ([(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
4217 ([(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
4218 ([(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
4219 ([(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
4220 ([(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
4221 ([(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
4222 ([(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
4223 ([(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
4224 ([(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
4225 ([(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
4226 ([( ??)] ?? 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
4227 ([(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
4228 ([(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
4229 ([(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
4230 ([( ?@)] ?@ idlwave-shell-save-and-batch)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4231 ([(control ?e)] ?e idlwave-shell-run-region)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4232 ([(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
4233 ([(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
4234 ([(control ?t)] ?t idlwave-shell-toggle-toolbar)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4235 ([(control up)] up idlwave-shell-stack-up)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4236 ([(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
4237 ([( ?[)] ?[ 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
4238 ([( ?])] ?] 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
4239 ([(control ?f)] ?f idlwave-shell-window)))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4240 (mod (cond ((and idlwave-shell-debug-modifiers
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4241 (listp idlwave-shell-debug-modifiers)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4242 (not (equal '() idlwave-shell-debug-modifiers)))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4243 idlwave-shell-debug-modifiers)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4244 (idlwave-shell-activate-alt-keybindings
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4245 '(alt))))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4246 (shift (memq 'shift mod))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4247 (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
4248 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
4249 (while (setq s (pop specs))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4250 (setq k1 (nth 0 s)
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4251 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
4252 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
4253 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
4254 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
4255 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
4256
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4257 ;; 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
4258 (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
4259 (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
4260 (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
4261 (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
4262 ;; The debug modifier map
34433
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4263 (when (and mod window-system)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4264 (if (char-or-string-p c2)
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4265 (setq k2 (vector (append mod-noshift
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4266 (list (if shift (upcase c2) c2)))))
31e98a1ac98f Updated IDLWAVE to version 4.7
Carsten Dominik <dominik@science.uva.nl>
parents: 34342
diff changeset
4267 (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
4268 (unless cannotshift
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4269 (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
4270 (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
4271 ;; 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
4272 (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
4273 (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
4274 cmd))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4275
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4276 ;; 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
4277 (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
4278 (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
4279 (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
4280 (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
4281 '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
4282 (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
4283 'idlwave-shell-stack-down)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
4284 (define-key idlwave-shell-electric-debug-mode-map "e"
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
4285 '(lambda () (interactive) (idlwave-shell-print '(16))))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4286 (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
4287 (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
4288 '(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
4289 (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
4290 '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
4291 (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
4292 '(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
4293 (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
4294
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4295
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4296 ; 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
4297 (fset 'idlwave-debug-map idlwave-mode-prefix-map)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4298 (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
4299
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4300 ;; 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
4301
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4302 (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
4303 "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
4304 (interactive)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4305 ;; 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
4306 ;; 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
4307 ;; 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
4308 (if idlwave-shell-electric-debug-mode
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
4309 (progn ;; Turn it off, and make sure it stays off.
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
4310 (setq idlwave-shell-suppress-electric-debug t)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
4311 (idlwave-shell-electric-debug-mode 0))
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
4312 (setq idlwave-shell-suppress-electric-debug nil)
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
4313 (idlwave-shell-electric-debug-mode t)))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4314
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4315 (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
4316 (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
4317
67297
7060bfa31573 (idlwave-shell-electric-debug-mode):
Juri Linkov <juri@jurta.org>
parents: 65689
diff changeset
4318 (define-minor-mode 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
4319 "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
4320 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
4321 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
4322 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
4323
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4324 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
4325 available as single key sequences."
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
4326 nil
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
4327 " *Debugging*"
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
4328 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
4329
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4330 (add-hook
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4331 '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
4332 (lambda ()
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4333 (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
4334 buffer-read-only)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4335 (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
4336 (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
4337 (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
4338 (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
4339 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
4340 (if (facep 'fringe)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4341 (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
4342 (selected-frame)))))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4343
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4344 (add-hook
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4345 '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
4346 (lambda ()
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4347 ;; 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
4348 (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
4349 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
4350 (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
4351 (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
4352 (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
4353 (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
4354 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
4355 (if (facep 'fringe)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4356 (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
4357
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4358 ;; 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
4359 (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
4360 "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
4361 (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
4362 (message
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4363 "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
4364 (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
4365
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4366 ;; 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
4367 (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
4368 (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
4369 (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
4370 (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
4371 buf)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4372 (save-excursion
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4373 (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
4374 (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
4375 (set-buffer buf)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4376 (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
4377 buffer-file-name
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4378 idlwave-shell-electric-debug-mode)
69822
84de63539ab8 Update to IDLWAVE version 6.0; see idlwave.org. Includes code to
J.D. Smith <jdsmith@as.arizona.edu>
parents: 68773
diff changeset
4379 (idlwave-shell-electric-debug-mode 0))))))
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4380 (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
4381
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4382 ;; 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
4383 (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
4384 (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
4385 (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
4386 (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
4387 (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
4388 (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
4389 (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
4390 (select-window window)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4391 (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
4392 (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
4393
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4394
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4395 ;; The Menus --------------------------------------------------------------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4396 (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
4397 `("Debug"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4398 ["Electric Debug Mode"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4399 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
4400 :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
4401 :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
4402 "--"
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4403 ("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
4404 ["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
4405 (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
4406 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
4407 ["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
4408 (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
4409 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
4410 ["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
4411 (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
4412 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
4413 "--"
29774
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4414 ["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
4415 "--"
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4416 ["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
4417 (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
4418 ["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
4419 (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
4420 "--"
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4421 ["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
4422 ["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
4423 ("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
4424 ["Set Breakpoint" idlwave-shell-break-here
71938
2bd94e447ecb Fix menu typo.
J.D. Smith <jdsmith@as.arizona.edu>
parents: 70573
diff changeset
4425 :keys "C-c C-d C-b" :active (eq major-mode 'idlwave-mode)]
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4426 ("Set Special Breakpoint"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4427 ["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
4428 (progn
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 60925
diff changeset
4429 (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
4430 (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
4431 :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
4432 ["Set Condition Breakpoint"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4433 (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
4434 :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
4435 ["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
4436 :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
4437 ["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
4438 :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
4439 ["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
4440 ["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
4441 ["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
4442 ["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
4443 :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
4444 ["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
4445 :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
4446 ["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
4447 ["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
4448 ("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
4449 ["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
4450 ["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
4451 ["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
4452 ["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
4453 ["... 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
4454 ["... 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
4455 ["... 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
4456 ["... 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
4457 :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
4458 ("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
4459 ["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
4460 ["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
4461 ("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
4462 ,@(mapcar (lambda(x)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4463 `[ ,(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
4464 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
4465 ("Examine region with"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4466 ,@(mapcar (lambda(x)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4467 `[ ,(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
4468 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
4469 ("Call Stack"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4470 ["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
4471 ["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
4472 "--"
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4473 ["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
4474 ("Show Commands"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4475 ["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
4476 (progn
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4477 (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
4478 (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
4479 (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
4480 (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
4481 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
4482 (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
4483 :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
4484 (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
4485 'everything))]
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4486 "--"
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4487 ["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
4488 :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
4489 :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
4490 'run
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4491 (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
4492 :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
4493 ["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
4494 :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
4495 :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
4496 'breakpoint
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4497 (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
4498 :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
4499 ["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
4500 :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
4501 :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
4502 'debug
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4503 (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
4504 :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
4505 ["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
4506 :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
4507 :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
4508 'misc
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4509 (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
4510 :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
4511 ("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
4512 ["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
4513 ["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
4514 "--"
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4515 ["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
4516 (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
4517 (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
4518 :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
4519 "--"
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4520 ["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
4521 ["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
4522 (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
4523 '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
4524 'hide)
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4525 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
4526 ["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
4527 "--"
8eff9cc9cbae Files re-installed, because changes are too massive to document them here.
Carsten Dominik <dominik@science.uva.nl>
parents: 27607
diff changeset
4528 ["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
4529 ["Exit IDL" idlwave-shell-quit t]))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4530
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4531 (if (or (featurep 'easymenu) (load "easymenu" t))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4532 (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
4533 (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
4534 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
4535 idlwave-shell-menu-def)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4536 (easy-menu-define
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4537 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
4538 idlwave-shell-menu-def)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4539 (save-excursion
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4540 (mapcar (lambda (buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4541 (set-buffer buf)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4542 (if (eq major-mode 'idlwave-mode)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4543 (progn
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4544 (easy-menu-remove idlwave-mode-debug-menu)
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4545 (easy-menu-add idlwave-mode-debug-menu))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4546 (buffer-list)))))
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4547
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4548 ;; The Breakpoint Glyph -------------------------------------------------------
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4549
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4550 (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
4551 "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
4552
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4553 (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
4554 '((bp . "/* XPM */
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4555 static char * file[] = {
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4556 \"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
4557 \" c None s backgroundColor\",
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4558 \". c #4B4B4B4B4B4B\",
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4559 \"R c #FFFF00000000\",
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4560 \" \",
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4561 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4562 \" .RRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4563 \" .RRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4564 \" .RRRRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4565 \" .RRRRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4566 \" .RRRRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4567 \" .RRRRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4568 \" .RRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4569 \" .RRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4570 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4571 \" \"};")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4572 (bp-cond . "/* XPM */
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4573 static char * file[] = {
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4574 \"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
4575 \" 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
4576 \". c #4B4B4B4B4B4B\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4577 \"R c #FFFF00000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4578 \"B c #000000000000\",
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4579 \" \",
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4580 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4581 \" .RRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4582 \" .RRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4583 \" .RRRRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4584 \" .RRBBBBRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4585 \" .RRRRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4586 \" .RRBBBBRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4587 \" .RRRRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4588 \" .RRRR. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4589 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4590 \" \"};")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4591 (bp-1 . "/* XPM */
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4592 static char * file[] = {
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4593 \"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
4594 \" 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
4595 \". c #4B4B4B4B4B4B\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4596 \"X c #FFFF00000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4597 \"o c #000000000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4598 \" \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4599 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4600 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4601 \" .XXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4602 \" .XXoooXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4603 \" .XXXooXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4604 \" .XXXooXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4605 \" .XXooooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4606 \" .XooooX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4607 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4608 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4609 \" \"};")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4610 (bp-2 . "/* XPM */
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4611 static char * file[] = {
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4612 \"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
4613 \" 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
4614 \". c #4B4B4B4B4B4B\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4615 \"X c #FFFF00000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4616 \"o c #000000000000\",
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4617 \" \",
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4618 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4619 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4620 \" .XoooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4621 \" .XXoXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4622 \" .XXXXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4623 \" .XXXooXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4624 \" .XXooXXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4625 \" .XooooX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4626 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4627 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4628 \" \"};")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4629 (bp-3 . "/* XPM */
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4630 static char * file[] = {
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4631 \"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
4632 \" 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
4633 \". c #4B4B4B4B4B4B\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4634 \"X c #FFFF00000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4635 \"o c #000000000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4636 \" \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4637 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4638 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4639 \" .XoooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4640 \" .XXXXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4641 \" .XXXooXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4642 \" .XXXXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4643 \" .XXoXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4644 \" .XoooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4645 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4646 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4647 \" \"};")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4648 (bp-4 . "/* XPM */
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4649 static char * file[] = {
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4650 \"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
4651 \" 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
4652 \". c #4B4B4B4B4B4B\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4653 \"X c #FFFF00000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4654 \"o c #000000000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4655 \" \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4656 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4657 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4658 \" .XoXXoX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4659 \" .XXoXXoXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4660 \" .XXooooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4661 \" .XXXXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4662 \" .XXXXooXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4663 \" .XXXooX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4664 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4665 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4666 \" \"};")
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4667 (bp-n . "/* XPM */
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4668 static char * file[] = {
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4669 \"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
4670 \" 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
4671 \". c #4B4B4B4B4B4B\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4672 \"X c #FFFF00000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4673 \"o c #000000000000\",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4674 \" \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4675 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4676 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4677 \" .XXXXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4678 \" .XXoXoXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4679 \" .XXooXoXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4680 \" .XXoXXoXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4681 \" .XXoXXoXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4682 \" .XoXXoX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4683 \" .XXXX. \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4684 \" .... \",
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4685 \" \"};"))) 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
4686
58293
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4687 (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
4688 (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
4689 (featurep 'xpm))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4690 (list
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4691 (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
4692 (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
4693 (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
4694 (make-glyph data))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4695 (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
4696 ((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
4697 (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
4698 (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
4699 (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
4700 :ascent 'center))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4701 (t nil)))
5b2b2365e698 Updated to IDLWAVE version 5.5. See idlwave.org
J.D. Smith <jdsmith@as.arizona.edu>
parents: 58002
diff changeset
4702 (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
4703
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4704 (provide 'idlw-shell)
27166
b2d17f0c1668 Also provide idlwave.shell, not only idlw-shell.
Carsten Dominik <dominik@science.uva.nl>
parents: 27108
diff changeset
4705 (provide 'idlwave-shell)
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4706
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4707 ;;; Load the toolbar when wanted by the user.
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4708
64001
82d080bf4f42 Updated to IDLWAVE v5.7 (see idlwave.org), and variable cleanup
J.D. Smith <jdsmith@as.arizona.edu>
parents: 63450
diff changeset
4709 (autoload 'idlwave-toolbar-toggle "idlw-toolbar"
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
4710 "Toggle the IDLWAVE toolbar")
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
4711 (autoload 'idlwave-toolbar-add-everywhere "idlw-toolbar"
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
4712 "Add IDLWAVE toolbar")
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4713 (defun idlwave-shell-toggle-toolbar ()
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4714 "Toggle the display of the debugging toolbar."
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4715 (interactive)
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
4716 (idlwave-toolbar-toggle))
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4717
27607
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
4718 (if idlwave-shell-use-toolbar
527d42ebb15e (idlwave-shell-print): Fixed bug with
Carsten Dominik <dominik@science.uva.nl>
parents: 27185
diff changeset
4719 (add-hook 'idlwave-shell-mode-hook 'idlwave-toolbar-add-everywhere))
58296
4773953f1a10 Restore arch taglines
Miles Bader <miles@gnu.org>
parents: 58293
diff changeset
4720
4773953f1a10 Restore arch taglines
Miles Bader <miles@gnu.org>
parents: 58293
diff changeset
4721 ;; arch-tag: 20c2e8ce-0709-41d8-a5b6-bb039148440a
27107
7b2b73f13427 Renamed idlwave-*.el into idlw-*.el.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4722 ;;; idlw-shell.el ends here