function dir_list, toplev, dirspec, count=count
;
;+
;   Name: dir_list
;
;   Purpose: find directories
;
;   Input Paramters:
;      toplev -  upper level path(s) to search (string/string array)
;      dirspec - specification(s) to check     (string/string array)
;
;   History:
;      SLF - 1-apr-93
;
;   Restrictions:
;      not recursive
;-
case strlowcase(!version.os) of
   'vms': begin
      delim=''
      cmd = 'dir '
      if n_elements(dirspec) eq 0 then dirspec='*.dir'
    endcase
    else: begin
      cmd= 'ls -d '
      delim='/'
      if n_elements(dirspec) eq 0 then dirspec='*'
    endcase
endcase

retval=''
count=0

permutate=str_perm(toplev,dirspec,delim)
dircmd=cmd + permutate
for i=0, n_elements(permutate)-1 do begin
   spawn, dircmd(i), dlist
   if dlist(0) ne '' then retval=[retval,dlist]
endfor

if n_elements(retval) gt 1 then begin
   retval=retval(1:*)
   count=n_elements(retval)
endif


return,retval
end
