[comp.os.vms] Setting default and prompt

danielwong@zgov05.dec.com (Daniel Wong @ZGO (PDE/Test)) (02/04/88)

Since the following resulted from a direct attempt to get the default
directory on my prompt and then finding that it's not much fun if you've
got long directory names and deep directory trees; I'm posting this
although I'm sure there are scores of programs like it out there.

Call it something like cd.com and define cd in your login.com to be
@cd.com wherever it may be.

<DANIEL>

----------------------cut---------------here------------------------------------
$!Hacked by Daniel Wong Su Chun
$!30 Nov 1987
$if p1 .eqs. "\" then goto goroot
$if p1 .eqs. "" then goto lp6
$nexdir="["+"''p1'"+"]"
$strlen=f$length(nexdir)
$lp0:
$  x=f$locate("..",nexdir)
$  if x .eq. strlen then goto lp1
$  sub=f$extract(0,x,nexdir)
$  nexdir=sub+"-"+f$extract(x+2,strlen-x-1,nexdir)
$  strlen=f$length(nexdir)
$  goto lp0
$lp1:
$  x=f$locate("-\-",nexdir)
$  if x .eq. strlen then goto lp3
$  sub=f$extract(0,x,nexdir)
$  nexdir=sub+"-"+f$extract(x+2,strlen-x-1,nexdir)
$  strlen=f$length(nexdir)
$  goto lp1
$lp3:
$  x=f$locate("\",nexdir)
$  if x .eq. strlen then goto lp5
$  sub=f$extract(0,x,nexdir)
$  nexdir=sub+"."+f$extract(x+1,strlen-x-1,nexdir)
$  goto lp3
$lp5:
$set default 'nexdir'
$goto lp6
$goroot:
$set default sys$login
$lp6:
$curdir=f$directory()
$strlen=f$length(curdir)
$lp7:
$  x=f$locate(".",curdir)
$  if x .eq. strlen then goto lp8
$  sub=f$extract(0,x,curdir)
$  curdir=sub+"\"+f$extract(x+1,strlen-x-1,curdir)
$  goto lp7
$lp8:
$curdir=f$extract(1,strlen-2,curdir)
$curdir="\"+curdir
$write sys$output curdir
$exit
----------------------cut---------------here------------------------------------