tcsh

To all of you that are sitting with grass development everyday
I would like share a little goodie that I found last week. It is
the the tcsh that is a public domain shell that is an addition to
csh. It contains command line stack, editing, completion and lots
of other nice things. This has only been availble for those have
had source code licence for unix before, but is now rewritten so that
you that don't need that. It compiled nicely both on
our Apollo and Sun sparc machines. I think you can find tcsh on most
bigger anonymous ftp machines.

This tcsh makes development of awk scritps much easier since you can
edit on the command line.

The only changes you have to make in Grass is to edit the
$GISBASE/etc/GIS.sh file a little like follows.

I have also modified the scripts to bring in personal aliases and set
up rm -r for everybody which I think is necesary.

Lars Schylberg
National Land Survey of Sweden Dept. of Photogrammetry
R&D Departmant Royal Inst. of Technology
S-80112 Gavle, Sweden 10044 Stockholm, Sweden

larss@lmv.lm.se larss@fmi.kth.se

###################################################
Parts of GIS.sh
###################################################

--------------------------------------------------
if test "$SHELL"
then
    if [ "$SHELL" = "/usr/local/bin/tcsh" ]
    then
  shell=tcsh
  shellname="TC Shell"
    fi
fi
--------------------------------------------------
things in between
--------------------------------------------------
This version running thru the $shellname ($shell)
Help is available with the command: g.help
When ready to quit enter: exit
EOF

if [ $shell = csh ]
then
    HOME=$LOCATION
    export HOME
    cshrc=$HOME/.cshrc
    rm -f $cshrc
    echo "set home = $home" > $cshrc
    echo "set history=30 noclobber ignoreeof" >> $cshrc

#
# Added by Lars Schylberg, 910730 to bring all aliases into the GRASS shell
#
    if [ -r $home/.aliases ]
    then
  cat $home/.aliases >> $cshrc
    fi

    echo "alias rm 'rm -i'" >> $cshrc

    echo "set prompt='\\" >> $cshrc
    echo "Mapset <$MAPSET> in Location <$LOCATION_NAME>\\" >> $cshrc
    echo "GRASS 4.0 > '" >> $cshrc

    if [ -r $home/.grass.cshrc ]
    then
  cat $home/.grass.cshrc >> $cshrc
    fi

    if [ -r $home/.cshrc ]
    then
  grep '^ *set *mail *= *' $home/.cshrc >> $cshrc
    fi

    if [ -r $home/.login ]
    then
  grep '^ *set *mail *= *' $home/.login >> $cshrc
    fi

    $ETC/run csh

    HOME=$home
    export HOME

elif [ $shell = tcsh ]
then
    HOME=$LOCATION
    export HOME
    cshrc=$HOME/.cshrc
    rm -f $cshrc
    echo "set home = $home" > $cshrc
    echo "set history=30 noclobber ignoreeof" >> $cshrc

#
# Added by Lars Schylberg, 910730 to bring all aliases into the GRASS shell
#
    if [ -r $home/.aliases ]
    then
  cat $home/.aliases >> $cshrc
    fi

    echo "alias rm 'rm -i'" >> $cshrc

    echo "set prompt='\\" >> $cshrc
    echo "Mapset <$MAPSET> in Location <$LOCATION_NAME>\\" >> $cshrc
    echo "GRASS 4.0 > '" >> $cshrc

    if [ -r $home/.grass.cshrc ]
    then
  cat $home/.grass.cshrc >> $cshrc
    fi

    if [ -r $home/.cshrc ]
    then
  grep '^ *set *mail *= *' $home/.cshrc >> $cshrc
    fi

    if [ -r $home/.login ]
    then
  grep '^ *set *mail *= *' $home/.login >> $cshrc
    fi

    $ETC/run tcsh

    HOME=$home
    export HOME

else

PS1="
Mapset <$MAPSET> in Location <$LOCATION_NAME>
GRASS-GRID > "

    export PS1

    $ETC/run sh
fi
-----------------------------------------------------------------------