ARPUS/ce, Version 2.6.2 (03/10/05) (SCCS 1.11)
_______________________________________________________________________________
cd <directory>
"change directory"
DESCRIPTION:
A ceterm window maintains two current directories, one associated
with the ceterm's EDITOR process and the other associated with
the ceterm's SHELL process.
The EDITOR's current directory is set when the ceterm session is
created. The initial current directory for the EDITOR is
determined as follows:
A. If the ceterm session was created as part of the login
process, the EDITOR's current directory is $HOME.
B. If the ceterm session was created from another shell (i.e.,
at the shell prompt and not from the "Command:" prompt), the
new ceterm EDITOR inherits as its current directory the
originating SHELL's current directory.
C. If the ceterm session was created from another ceterm, cv, or
ce window via the "Command:" prompt, the new ceterm EDITOR
inherits as its current directory the originating EDITOR's
current directory.
The SHELL's current directory setting follows the same rules as
shells running in other environments.
It is important to bear in mind that the two 'current directory'
settings described above can be set to different directories. As
an example of the problems that may occur, consider the use of
mouse button 3's default definition, which creates a cv
(read-only) session on the file that is currently pointed to by
the cursor. A normal use of this definition is as follows:
A. In a ceterm session, type the 'ls' command, which will list
in the ceterm's transcript pad the files that are in the
SHELL's current directory.
B. Place the cursor over one of the file names and click M3
(assuming you are using the default M3 definition). The
definition tells ce to copy the word under the cursor into a
'cv' command and execute that command, causing a cv window on
that file to appear .
One of three things may happen:
1. The 'cv' command will look in ITS OWN current directory
(i.e., the EDITOR's current directory) for a file of that
name. If the EDITOR's current directory and the SHELL's
current directory are the same, this will work.
2. The EDITOR and SHELL have different directories, but each
directory contains a file with the name pointed to by the
cursor. In this case the DESIRED file is in the SHELL's
directory but the VIEWED file is in the EDITOR's directory.
3. The EDITOR and SHELL have different directories, the SHELL's
directory contains the file pointed to by the cursor, and the
EDITOR's directory does not contain it. In this case ce will
report a "file not found" message in the ce output window.
SYNCHRONIZING CETERM AND SHELL DIRECTORIES
One technique to keep the shell and ceterm directories pointing
to the same place is through the mechanisms in the prefix
command. This technique works for the ksh but not the csh.
Assuming you use both ceterm's and non-ceterms you could put the
following in your .profile.
if [ $TERM = vt100 ]
then
PS1="cd \$PWD;title \$PWD
Unix: "
else
PS1="Unix: "
fi
export PS1
# Note, the above should start in column 1.
# Also note, The unprintable characters are x'02', To type a x'02'
# execute Ce command: kd ^2 er 02 ke
# This will define CTL/2 to enter a x'02'
The above will tell the ceterm to change to the current directory
of the shell each time a prompt is issued (This is actually very
fast). It will also change the window manager titlebar to match
the current working directory.
Another technique to synchronize the ceterm's directory with the
SHELL's directory is to put the following alias in the .kshrc
file in your home directory:
alias cd=ce_cd
ce_cd(){
xdmc "cd `/bin/pwd`; cd $@"
'cd' ${@-$HOME}
}
A more sophisticated version of the above alias would be:
ce_cd(){
if [[ -d $@ || x$@ = x ]]; then
xdmc "cd `/bin/pwd`; cd $@"
'cd' ${@-$HOME}; pwd
else
echo " cant cd -- $@ is not a directory"
fi
}
alias cd=ce_cd
This tells the ceterm current working directory to change
directories at the same time as the shell's current working
directory. To make the .kshrc file active, the following must be
present in your .profile: ENV=$HOME/.kshrc ;export ENV
To do the same thing in the .cshrc file use:
alias cd 'chdir \!*; xdmc "cd $cwd"'
RELATED HELP FILES:
pn (Pad Name)
ce (Create Edit)
prefix (Prefix)
support (customer support)
____________________________________________________________________________
Copyright (c) 2005, Robert Styma Consulting. All rights reserved.