home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C!T ROM 2
/
ctrom_ii_b.zip
/
ctrom_ii_b
/
DOS
/
4DOS
/
UTILS
/
4SIGHT
/
4SIGHT.TXT
< prev
Wrap
Text File
|
1993-03-04
|
13KB
|
320 lines
4sight.btm ver. 1.3
4dos file name completion and file viewer utility
Copyright Bob Larson March 93
4sight is distributed as Freeware.
INTRODUCTION
4sight is a combination alias - btm file system that provides an
alternate to the file name completion service provided by 4dos.
Features of 4sight include:
* tcsh - like file name completion.
* pop-up window file name completion
* pop-up file viewer
* ability to exclude selected files from the above 3 services
* Uses the path to search for executable files
4sight.btm must be called by an key alias which first uses ^K to
save the current command line onto the history stack, for example
alias @f7=^K@4sight /w /x^Xr
where ^K is <control-k> and ^X is <control-x>. Up to 6 aliases
may be defined to provide different services. Note that these
aliases cannot be created on the command line. See the "Installation"
section for information on how to create the needed aliases.
4sight requires 4dos version 4, and kstack.com must be loaded.
SYNTAX
4sight [/t /w /v /?] [/x]
Switches:
/t tcsh type file name completion
/w pop-up window type file name completion
/v file viewer
/? display help
/x disable exclude files
EXCLUDE FILES
You may designate files to be excluded using the %exclude environment
variable, which contains 1 or more file specifications (wildcards
permitted) separated by semi-colons or blanks. Example:
set exclude=*.bak;*.tmp;
will cause 4sight to ignore all *.bak and *.tmp files, unless 4sight
is invoked with the /x switch.
ACTIONS
For brevity sake in the following descriptions, the key-aliases used
to invoke 4sight will be referred to as "hot-keys", as if it were a
tsr program. Specifically, we will refer to the T hot-key, the W hot-key,
and the V hot-key, representing the key aliases used to invoke the
3 actions 4sight can take (Tcsh file completion, Window file completion,
and View file). In all cases, when 4sight is executed by a hot-key, the
current command line is erased and replaced with "@4sight /options".
I have not found a way to avoid this.
A) tcsh-like file name completion
4sight will take 1 of 3 actions when invoked with the T hot-key,
depending on the number of files which can be completed, and
whether or not the filename was the only word on the command line.
If the filename was the only word on the command line, or
if a path was specified:
1) If no files or directories can be completed, 4sight will
beep and restore the command line.
2) If only 1 file can be completed, it will completed that
filename. If it is a subdirectory, a trailing \ will be added.
3) If more than one file and/or directory can be completed, 4sight
will list all the files, 5 to a row, using the 4dos directory
colorization scheme if you have configured it. On the next command
line it will complete the file name with as many characters as
are common to all files listed.
If the filename was the only word on the command line and no
path was specified:
4) 4sight will search the directories listed in the %path variable
for an executable file which matches. If a file extention was
specified, it is ignored. It then behaves as in above 3 actions,
except that it will list files in the first directory in which
a match was found. Both executable and non-executable files will
be listed.
Example:
If the directory d:\data contains 3 files (foo1.bar foo2.bar, and
boo.bar) and you start with the command line:
c:\prompt> edit d:\data\fo
Hitting the T hot-key will result in 2 files being listed:
foo1.bar foo2.bar
c:\prompt> edit d:\data\foo
If you then enter 1 and hit the T hot-key again, the next command
line will result in the file name being completed (foo1.bar).
B) Pop-up window file name completion
When invoked with the W hot-key, 4sight will behave much like the
tcsh file name completion, with the following exceptions:
1) If more than one file and/or directory can be completed, 4sight
will list all the files in a pop-up window. In addition to file
names, the files dates, times and 4dos file descriptions will
also be visible. You can scroll up and select a file. The
action taken will depend on the file selected:
a) If you abort by hitting the escape key, the original
command line will be restored.
b) If a file other than a directory is selected, that file
name will be completed on the next command line.
c) If a directory is selected, the window will be refreshed
with a contents of that directory. You can thus traverse
a directory tree to select a file in a directory other
than where you started. To complete to a directory name,
select the current directory, i.e., the "." directory, which
is always the first item in the file list.
C) File viewing
Invoking 4sight with the V hot-key allows you to easily view
(using the 4dos internal command "list") one or more text files
without losing your current command line. After viewing the
file(s) the original command line will be restored.
If 0 or 1 file names could be completed, it will take an action
similar to the file name completion actions are taken, except that
the file is listed rather than the name being completed. If no files
can be completed 4sight will beep and restore the original command
line. If only 1 file can be completed, 4sight will list the file,
but after exiting list, will restore the original command line.
If more than 1 file can be completed, 4sight will popup a select
window and allow you to select 1 or more file to view using list.
After exiting list, the original command line is restored.
INSTALLATION
Installing 4sight involves copying the file 4sight.btm to a
directory accessible by your path variable and defining from 1
to 6 aliases used to invoke 4sight. Also note that 4sight requires
kstack.com to be loaded.
The file 4sight.als contains 6 aliases which can be assigned
with the /r option of the alias command:
alias /r 4sight.als
You may wish to edit 4sight.als to change the keys the aliases
are assigned to.
Defaults as provided in 4sight.als are:
@f4=^K@4sight /v^Xr
@shift-f4=^K@4sight /v /x^Xr
@f6=^K@4sight /t^Xr
@shift-f6=^K@4sight /t /x^Xr
@f7=^K@4sight /w^Xr
@shift-f7=^K@4sight /w /x^Xr
Which assigns to the following keys these 4sight modes:
F4: File viewing.
Shift-F4: File viewing, disable exclude files.
F6: tcsh file name completion.
Shift-F6 tcsh file name completion, disable exclude files.
F7: window file name completion.
Shift-F7 window file name completion, disable exclude files.
Note that if you view the file 4sight.als, you will not see the ^K or
^X, but rather their extended character set representations, i.e.,the
"male fertility symbol" and an up-arrow, respectively. Also note that
the "@" immediately before "4sight" is essential and without it 4sight
will not function properly. This is because the ^K saves the current
command line to the history stack, which 4sight.btm later retrieves.
The "@" prevents 4sight from being added to the directory stack and
assures that the original command line is the last item in the stack
so that it is easily retrieved.
The aliases can also be created by redirecting the console to
a file by issuing the command:
copy con foo.bar
Anything then typed will be saved to the file foo.bar, until you signal
end-of-file with a <control-z><enter>
BUGS, HEADACHES, MISC. NOTES, and SUCH THINGS
4sight will not operate properly if it is invoked on a command
line which contains redirection or pipe characters (<>|) or commas.
If the command line contains any environment variables, on the
restored command line the environment variables will be expanded.
If a large exclude list is used and/or many files match the
exclude list, 4sight will run somewhat slower.
Differences between 4dos's and 4sights file name completion:
4dos's internal filename completion will only match executable
files when the filename being completing is at the start
of the command line. 4sight will match both executable
and non-executable file, but will do so in the first
directory of the %path statement in which an executable file
is found.
In addition, 4dos allows you to scroll back on the command
line and complete a filename. 4 sight always acts on only
the last word of the comand line.
4sight uses temporary files created with the %@unique[] function.
All temporary files are deleted by 4sight unless it is prematurely
aborted. The temporary files will be located as follows:
The directory pointed to by the %temp4dos environment variable,
if it exists.
The directory pointed to by the %temp environment variable,
if it exists.
The current directory.
4sight may run considerably faster if the temporary files are
directed to a ram disk by the %temp4dos or %temp variables.
4sight uses lots of environment variables, but most are unset
as soon as they are no longer needed. You should not get
"out of environment space" errors unless your free environment
is very small.
Frequent use of 4sight tends to fill up the directory stack.
About the only fix to some of these problems is to re-write
4sight as a tsr binary, a project which I am considering
undertaking. The choking behavior when redirection characters
are on the original command line may possibly be solved
by running the file containing the directory stack through
sed to enclose the offending characters in backquotes,
but I haven't tried it yet.
The file 4sight.btm only contains a minimum of comments. The
start and end of each subroutine are identified by comments.
I felt the file was long enough (> 300 lines).
My apologies to anyone trying to decipher the logic of the
program!
HISTORY
Version 1.0: Limited release as fnc-win.btm, only provided
window file name completion.
Version 1.01: Fixed some minor bugs with version 1.0
Version 1.1
Renamed to 4sight (pretty catchy, wouldn't you say?)
added tcsh file name completion
added file viewing ability
added exclude file ability
Version 1.2
Disable aliases
Altered to override noclobber
Added check to see if kstack.com is loaded
fixed minor bugs when matching directories
Version 1.3
Figured out proper way to redirect standard error of
except command, making the subroutine "exclude" unnecessary.
Added searching the %path for executable files.
Streamlined "get_hist" and "build_arg" subroutines
COMMUNICATIONS
I would appreciate hearing about any problems or bugs found
with 4sight, or any enhancements made to it. Those with
internet email access can reach me at
blarson@uiuc.edu
If that address fails sometime in the future, it may be that
I have left my current employment, in which case the following
address should be used:
blarson@heartland.bradley.edu
I can also be reached by snail mail at:
Bob Larson
1812 Crescent Dr.
Champaign, IL 61821