"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "doc/misc/idlwave.texi" between
emacs-25.1.tar.gz and emacs-25.2.tar.xz

About: GNU Emacs - the extensible, customizable, self-documenting real-time display editor.

idlwave.texi  (emacs-25.1):idlwave.texi  (emacs-25.2.tar.xz)
skipping to change at line 26 skipping to change at line 26
@c %**end of header @c %**end of header
@finalout @finalout
@copying @copying
This file documents IDLWAVE, a major mode for editing IDL files with This file documents IDLWAVE, a major mode for editing IDL files with
Emacs, and interacting with an IDL shell run as a subprocess. Emacs, and interacting with an IDL shell run as a subprocess.
This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE
@value{VERSION}. @value{VERSION}.
Copyright @copyright{} 1999--2016 Free Software Foundation, Inc. Copyright @copyright{} 1999--2017 Free Software Foundation, Inc.
@quotation @quotation
Permission is granted to copy, distribute and/or modify this document Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover Texts being ``A GNU Manual'', Invariant Sections, with the Front-Cover Texts being ``A GNU Manual'',
and with the Back-Cover Texts as in (a) below. A copy of the license and with the Back-Cover Texts as in (a) below. A copy of the license
is included in the section entitled ``GNU Free Documentation License''. is included in the section entitled ``GNU Free Documentation License''.
(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
skipping to change at line 78 skipping to change at line 78
@menu @menu
* Introduction:: What IDLWAVE is, and what it is not * Introduction:: What IDLWAVE is, and what it is not
* IDLWAVE in a Nutshell:: One page quick-start guide * IDLWAVE in a Nutshell:: One page quick-start guide
* Getting Started:: Tutorial * Getting Started:: Tutorial
* The IDLWAVE Major Mode:: The mode for editing IDL programs * The IDLWAVE Major Mode:: The mode for editing IDL programs
* The IDLWAVE Shell:: The mode for running IDL as an inferior program * The IDLWAVE Shell:: The mode for running IDL as an inferior program
* Acknowledgments:: Who did what * Acknowledgments:: Who did what
* Sources of Routine Info:: How does IDLWAVE know about routine XYZ * Sources of Routine Info:: How does IDLWAVE know about routine XYZ
* HTML Help Browser Tips:: * HTML Help Browser Tips::
* Configuration Examples:: The user is king * Configuration Examples:: The user is king
* Windows and MacOS:: What still works, and how * Windows and macOS:: What still works, and how
* Troubleshooting:: When good computers turn bad * Troubleshooting:: When good computers turn bad
* GNU Free Documentation License:: The license for this documentation. * GNU Free Documentation License:: The license for this documentation.
* Index:: Fast access * Index:: Fast access
@detailmenu @detailmenu
--- The Detailed Node Listing --- --- The Detailed Node Listing ---
Getting Started (Tutorial) Getting Started (Tutorial)
* Lesson I---Development Cycle:: * Lesson I---Development Cycle::
skipping to change at line 2367 skipping to change at line 2367
@end defopt @end defopt
@node The IDLWAVE Shell @node The IDLWAVE Shell
@chapter The IDLWAVE Shell @chapter The IDLWAVE Shell
@cindex IDLWAVE shell @cindex IDLWAVE shell
@cindex Major mode, @code{idlwave-shell-mode} @cindex Major mode, @code{idlwave-shell-mode}
@cindex IDL, as Emacs subprocess @cindex IDL, as Emacs subprocess
@cindex Subprocess of Emacs, IDL @cindex Subprocess of Emacs, IDL
@cindex Comint, Emacs package @cindex Comint, Emacs package
@cindex Windows @cindex Windows
@cindex MacOS @cindex macOS
The IDLWAVE shell is an Emacs major mode which permits running the IDL The IDLWAVE shell is an Emacs major mode which permits running the IDL
program as an inferior process of Emacs, and works closely with the program as an inferior process of Emacs, and works closely with the
IDLWAVE major mode in buffers. It can be used to work with IDL IDLWAVE major mode in buffers. It can be used to work with IDL
interactively, to compile and run IDL programs in Emacs buffers and to interactively, to compile and run IDL programs in Emacs buffers and to
debug these programs. The IDLWAVE shell is built on @file{comint}, an debug these programs. The IDLWAVE shell is built on @file{comint}, an
Emacs packages which handles the communication with the IDL program. Emacs packages which handles the communication with the IDL program.
Unfortunately, IDL for Windows does not have command-prompt versions and Unfortunately, IDL for Windows does not have command-prompt versions and
thus do not allow the interaction with Emacs, so the IDLWAVE shell thus do not allow the interaction with Emacs, so the IDLWAVE shell
currently only works under Unix and MacOSX. currently works under only Unix and macOS.
@menu @menu
* Starting the Shell:: How to launch IDL as a subprocess * Starting the Shell:: How to launch IDL as a subprocess
* Using the Shell:: Interactively working with the Shell * Using the Shell:: Interactively working with the Shell
* Commands Sent to the Shell:: * Commands Sent to the Shell::
* Debugging IDL Programs:: * Debugging IDL Programs::
* Examining Variables:: * Examining Variables::
* Custom Expression Examination:: * Custom Expression Examination::
@end menu @end menu
skipping to change at line 3525 skipping to change at line 3525
default), the paths are written out whenever the IDLWAVE shell is default), the paths are written out whenever the IDLWAVE shell is
started. started.
@defopt idlwave-auto-write-path (@code{t}) @defopt idlwave-auto-write-path (@code{t})
Write out information on the !PATH and !DIR paths from IDL automatically Write out information on the !PATH and !DIR paths from IDL automatically
when they change and when the Shell is closed. These paths are needed when they change and when the Shell is closed. These paths are needed
to locate library catalogs. to locate library catalogs.
@end defopt @end defopt
@defopt idlwave-library-path @defopt idlwave-library-path
IDL library path for Windows and MacOS@. Under Unix/MacOSX, will be IDL library path for Windows and macOS@. Under Unix/macOS, will be
obtained from the Shell when run. obtained from the Shell when run.
@end defopt @end defopt
@defopt idlwave-system-directory @defopt idlwave-system-directory
The IDL system directory for Windows and MacOS@. Also needed for The IDL system directory for Windows and macOS@. Also needed for
locating HTML help and the IDL Assistant for IDL v6.2 and later. Under locating HTML help and the IDL Assistant for IDL v6.2 and later. Under
Unix/MacOSX, will be obtained from the Shell and recorded, if run. Unix/macOS, will be obtained from the Shell and recorded, if run.
@end defopt @end defopt
@defopt idlwave-config-directory (@file{~/.emacs.d/idlwave}) @defopt idlwave-config-directory (@file{~/.emacs.d/idlwave})
Default path where IDLWAVE saves configuration information, a user Default path where IDLWAVE saves configuration information, a user
catalog (if any), and a cached scan of the XML catalog (IDL v6.2 and catalog (if any), and a cached scan of the XML catalog (IDL v6.2 and
later). later).
@end defopt @end defopt
@menu @menu
* Library Catalogs:: * Library Catalogs::
skipping to change at line 3618 skipping to change at line 3618
@defopt idlwave-use-library-catalogs (@code{t}) @defopt idlwave-use-library-catalogs (@code{t})
Whether to search for and load library catalogs. Disable if load Whether to search for and load library catalogs. Disable if load
performance is a problem and/or the catalogs are not needed. performance is a problem and/or the catalogs are not needed.
@end defopt @end defopt
@node User Catalog @node User Catalog
@appendixsubsec User Catalog @appendixsubsec User Catalog
@cindex User catalog @cindex User catalog
@cindex IDL library routine info @cindex IDL library routine info
@cindex Windows @cindex Windows
@cindex MacOS @cindex macOS
@cindex IDL variable @code{!DIR} @cindex IDL variable @code{!DIR}
@cindex @code{!DIR}, IDL variable @cindex @code{!DIR}, IDL variable
The user catalog is the old routine catalog system. It is produced The user catalog is the old routine catalog system. It is produced
within Emacs, and stored in a single file in the user's home directory within Emacs, and stored in a single file in the user's home directory
(@file{.emacs.d/idlwave/idlusercat.el} by default). Although library catalogs (@file{.emacs.d/idlwave/idlusercat.el} by default). Although library catalogs
are more flexible, there may be reasons to prefer a user catalog are more flexible, there may be reasons to prefer a user catalog
instead, including: instead, including:
@itemize @bullet @itemize @bullet
skipping to change at line 3643 skipping to change at line 3643
@item Easy widget-based path selection. @item Easy widget-based path selection.
@end itemize @end itemize
However, no routine info is available in the user catalog by default; However, no routine info is available in the user catalog by default;
the user must actively complete a scan. In addition, this type of the user must actively complete a scan. In addition, this type of
catalog is all or nothing: if a single routine changes, the entire catalog is all or nothing: if a single routine changes, the entire
catalog must be rescanned to update it. Creating the user catalog is catalog must be rescanned to update it. Creating the user catalog is
also much slower than scanning library catalogs. also much slower than scanning library catalogs.
You can scan any of the directories on the currently known path. Under You can scan any of the directories on the currently known path. Under
Windows and MacOS (not OSX), you need to specify the IDL search path in Windows, you need to specify the IDL search path in
the variable @code{idlwave-library-path}, and the location of the IDL the variable @code{idlwave-library-path}, and the location of the IDL
directory (the value of the @code{!DIR} system variable) in the variable directory (the value of the @code{!DIR} system variable) in the variable
@code{idlwave-system-directory}, like this@footnote{The initial @samp{+} @code{idlwave-system-directory}, like this@footnote{The initial @samp{+}
leads to recursive expansion of the path, just like in IDL}: leads to recursive expansion of the path, just like in IDL}:
@lisp @lisp
(setq idlwave-library-path (setq idlwave-library-path
'("+c:/RSI/IDL56/lib/" "+c:/user/me/idllibs")) '("+c:/RSI/IDL56/lib/" "+c:/user/me/idllibs"))
(setq idlwave-system-directory "c:/RSI/IDL56/") (setq idlwave-system-directory "c:/RSI/IDL56/")
@end lisp @end lisp
skipping to change at line 3734 skipping to change at line 3734
For these commands to work fully you need to scan the entire load path For these commands to work fully you need to scan the entire load path
in either a user or library catalog. Also, IDLWAVE should be able to in either a user or library catalog. Also, IDLWAVE should be able to
distinguish between the system library files (normally installed in distinguish between the system library files (normally installed in
@file{/usr/local/rsi/idl/lib}) and any site specific or user specific @file{/usr/local/rsi/idl/lib}) and any site specific or user specific
files. Therefore, such local files should not be installed inside the files. Therefore, such local files should not be installed inside the
@file{lib} directory of the IDL directory. This is also advisable for @file{lib} directory of the IDL directory. This is also advisable for
many other reasons. many other reasons.
@cindex Windows @cindex Windows
@cindex MacOS
@cindex IDL variable @code{!DIR} @cindex IDL variable @code{!DIR}
@cindex @code{!DIR}, IDL variable @cindex @code{!DIR}, IDL variable
Users of Windows and MacOS (not X) also must set the variable Users of Windows also must set the variable
@code{idlwave-system-directory} to the value of the @code{!DIR} system @code{idlwave-system-directory} to the value of the @code{!DIR} system
variable in IDL@. IDLWAVE appends @file{lib} to the value of this variable in IDL@. IDLWAVE appends @file{lib} to the value of this
variable and assumes that all files found on that path are system variable and assumes that all files found on that path are system
routines. routines.
Another way to find out if a specific routine has multiple definitions Another way to find out if a specific routine has multiple definitions
on the load path is routine info display (@pxref{Routine Info}). on the load path is routine info display (@pxref{Routine Info}).
@node Documentation Scan @node Documentation Scan
@appendixsec Documentation Scan @appendixsec Documentation Scan
skipping to change at line 3813 skipping to change at line 3812
this fix in place, HTML help pages look almost identical to their PDF this fix in place, HTML help pages look almost identical to their PDF
equivalents (yet can be bookmarked, browsed as history, searched, equivalents (yet can be bookmarked, browsed as history, searched,
etc.). etc.).
@c Not updated in over a decade. @c Not updated in over a decade.
@c Maybe you want to recommend eww these days. @c Maybe you want to recommend eww these days.
@ignore @ignore
@noindent Individual platform recommendations: @noindent Individual platform recommendations:
@itemize @bullet @itemize @bullet
@item Unix/MacOSX: The @uref{http://www.w3m.org,@code{w3m}} browser @item Unix/macOS: The @uref{http://www.w3m.org,@code{w3m}} browser
and its associated and its associated
@uref{http://emacs-w3m.namazu.org/,@code{emacs-w3m}} emacs mode @uref{http://emacs-w3m.namazu.org/,@code{emacs-w3m}} emacs mode
provide in-buffer browsing with image display, and excellent speed and provide in-buffer browsing with image display, and excellent speed and
formatting. Both the Emacs mode and the browser itself must be formatting. Both the Emacs mode and the browser itself must be
downloaded separately. To use this browser, include downloaded separately. To use this browser, include
@lisp @lisp
(setq idlwave-help-browser-function 'w3m-browse-url) (setq idlwave-help-browser-function 'w3m-browse-url)
@end lisp @end lisp
skipping to change at line 4011 skipping to change at line 4010
"print, size(___,/DIMENSIONS)")) "print, size(___,/DIMENSIONS)"))
(idlwave-shell-define-key-both [f10] (idlwave-shell-examine (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
"print,size(___,/TNAME)")) "print,size(___,/TNAME)"))
(idlwave-shell-define-key-both [f11] (idlwave-shell-examine (idlwave-shell-define-key-both [f11] (idlwave-shell-examine
"help,___,/STRUCTURE")))) "help,___,/STRUCTURE"))))
@end example @end example
@html @html
<A NAME="WINDOWS_MAC"></A> <A NAME="WINDOWS_MAC"></A>
@end html @end html
@node Windows and MacOS @node Windows and macOS
@appendix Windows and MacOS @appendix Windows and macOS
@cindex Windows @cindex Windows
@cindex MacOS @cindex macOS
@cindex MacOSX
IDLWAVE was developed on a UNIX system. However, thanks to the IDLWAVE was developed on a UNIX system. However, thanks to the
portability of Emacs, much of IDLWAVE does also work under different portability of Emacs, much of IDLWAVE does also work under different
operating systems like Windows (with NTEmacs or NTXEmacs) or MacOS. operating systems like Windows (with NTEmacs or NTXEmacs).
The only real problem is that there is no command-line version of IDL The only real problem is that there is no command-line version of IDL
for Windows or MacOS(<=9) with which IDLWAVE can interact. As a for Windows with which IDLWAVE can interact. As a
result, the IDLWAVE Shell does not work and you have to rely on IDLDE result, the IDLWAVE Shell does not work and you have to rely on IDLDE
to run and debug your programs. However, editing IDL source files to run and debug your programs. However, editing IDL source files
with Emacs/IDLWAVE works with all bells and whistles, including with Emacs/IDLWAVE works with all bells and whistles, including
routine info, completion and fast online help. Only a small amount of routine info, completion and fast online help. Only a small amount of
additional information must be specified in your @file{.emacs} file: additional information must be specified in your @file{.emacs} file:
the path names which, on a UNIX system, are automatically gathered by the path names which, on a UNIX system, are automatically gathered by
talking to the IDL program. talking to the IDL program.
Here is an example of the additional configuration needed for a Windows Here is an example of the additional configuration needed for a Windows
system. I am assuming that IDLWAVE has been installed in system. I am assuming that IDLWAVE has been installed in
skipping to change at line 4103 skipping to change at line 4101
@item @strong{I get errors like @samp{Searching for program: no such @item @strong{I get errors like @samp{Searching for program: no such
file or directory, idl} when attempting to start the IDL shell.} file or directory, idl} when attempting to start the IDL shell.}
IDLWAVE needs to know where IDL is in order to run it as a process. IDLWAVE needs to know where IDL is in order to run it as a process.
By default, it attempts to invoke it simply as @samp{idl}, which By default, it attempts to invoke it simply as @samp{idl}, which
presumes such an executable is on your search path. You need to presumes such an executable is on your search path. You need to
ensure @samp{idl} is on your @samp{$PATH}, or specify the full ensure @samp{idl} is on your @samp{$PATH}, or specify the full
pathname to the idl program with the variable pathname to the idl program with the variable
@code{idlwave-shell-explicit-file-name}. Note that you may need to @code{idlwave-shell-explicit-file-name}. Note that you may need to
set your shell search path in two places when running Emacs as an Aqua set your shell search path in two places when running Emacs as an Aqua
application with MacOSX; see the next topic. application with macOS; see the next topic.
@item @strong{IDLWAVE is disregarding my @samp{IDL_PATH} which I set @item @strong{IDLWAVE is disregarding my @samp{IDL_PATH} which I set
under MacOSX} under macOS}
If you run Emacs directly as an Aqua application, rather than from the If you run Emacs directly as an Aqua application, rather than from the
console shell, the environment is set not from your usual shell console shell, the environment is set not from your usual shell
configuration files (e.g., @file{.cshrc}), but from the file configuration files (e.g., @file{.cshrc}), but from the file
@file{~/.MacOSX/environment.plist}. Either include your path settings @file{~/.MacOSX/environment.plist}. Either include your path settings
there, or start Emacs and IDLWAVE from the shell. there, or start Emacs and IDLWAVE from the shell.
@item @strong{I get errors like @samp{Symbol's function is void: @item @strong{I get errors like @samp{Symbol's function is void:
overlayp}} overlayp}}
 End of changes. 18 change blocks. 
20 lines changed or deleted 18 lines changed or added

Home  |  About  |  All  |  Newest  |  Fossies Dox  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTPS