Viewing contents of file '../idllib/jhuapls1r/usr2/pick_dir.pro'
;-------------------------------------------------------------
;+
; NAME:
; PICK_DIR
; PURPOSE:
; Interactively pick a directory.
; CATEGORY:
; CALLING SEQUENCE:
; pick_dir, pick
; INPUTS:
; KEYWORD PARAMETERS:
; Keywords:
; DIRECTORY=dir set initial directory (def=current).
; FLAG=flg 0 means OK, 1 means selection aborted.
; OUTPUTS:
; pick = selected directory. out
; COMMON BLOCKS:
; NOTES:
; MODIFICATION HISTORY:
; R. Sterner, 3 Feb, 1993
;
; Copyright (C) 1993, Johns Hopkins University/Applied Physics Laboratory
; This software may be used, copied, or redistributed as long as it is not
; sold and this copyright notice is reproduced on each copy made. This
; routine is provided as is without any express or implied warranties
; whatsoever. Other limitations apply as described in the file disclaimer.txt.
;-
;-------------------------------------------------------------
pro pick_dir, pick, directory=dir, flag=flag, help=hlp
if (n_params(0) lt 1) or keyword_set(hlp) then begin
print,' Interactively pick a directory.'
print,' pick_dir, pick'
print,' pick = selected directory. out'
print,' Keywords:'
print,' DIRECTORY=dir set initial directory (def=current).'
print,' FLAG=flg 0 means OK, 1 means selection aborted.'
return
endif
if n_elements(dir) eq 0 then cd, current=dir
cdir = dir
sel = 2
loop: ttl = 'Current directory: '+cdir
spawn,'ls -F '+cdir+' | grep /', txt
for i=0,n_elements(txt)-1 do begin
tmp = txt(i)
if tmp ne '' then txt(i)=getwrd(txt(i),delim='/')
endfor
if txt(0) eq '' then begin
txt = [' Accept current',' Go up a level']
endif else begin
txt = [' Accept current',' Go up a level', txt]
endelse
sel = sel<(n_elements(txt)+1)
txtpick, txt, xdir, title=ttl, abort=' Abort directory selection', $
selection=sel
case sel of
1: begin ; Abort directory selection.
flag = 1
return
end
2: begin ; Accept current directory.
flag = 0
pick = cdir
return
end
3: begin ; Go up a level.
cdir = '/'+getwrd(cdir,-99,-1,/last,delim='/')
end
else: begin
if cdir eq '/' then cdir = ''
cdir = cdir+'/'+txt(sel-2)
end
endcase
goto, loop
end