	function auto_check_filename(line,partial,onlydir)
	implicit none
c
c  Check function for $outfile (vax versoin)
c
	include 'auto.inc'
	character*(*) line			!:i: the string to check
	logical*4 partial			!:i: partial check
	logical*4 onlydir			!:i: only directory allowed?
	integer*4 auto_check_filename		!:f: function result
c
	integer*4 istat
c
	include '($fabdef)'
	include '($namdef)'
c
	record /fabdef/ fab
	record /namdef/ nam
c
	integer*4 sys$parse
c
	character*4095 fnam
	integer*4 nk
c
	fnam = line
	nk = len(line)
c
        nam.nam$b_bid = nam$c_bid
        nam.nam$b_bln = nam$c_bln
c
	nam.nam$b_nop = 0
c
c  If partial check, do a syntax check only
c
	if(partial) nam.nam$b_nop = NAM$M_SYNCHK
c
        fab.fab$b_bln = fab$c_bln
        fab.fab$b_bid = fab$c_bid
        fab.fab$l_nam = %loc(nam)
c
	fab.fab$l_fna = %loc(fnam)
c	fab.fab$b_fns = nk
	call lib$movc3(1,nk,fab.fab$b_fns)
c
	istat = sys$parse(fab,,)
	if(.not. istat) then
	  if(partial) then
	    nk = nk + 2
c            fab.fab$b_fns = nk
            call lib$movc3(1,nk,fab.fab$b_fns)
	    fnam(nk-1:nk) = '*]'
	    istat = sys$parse(fab,,)
	  endif
	endif
	if(onlydir) then
c
c Only dev/dir present, check if no name,type or version present
c
	  if((iand(nam.nam$l_fnb,nam$m_exp_name) .ne. 0) .or.
     1       (iand(nam.nam$l_fnb,nam$m_exp_type) .ne. 0) .or.
     1       (iand(nam.nam$l_fnb,nam$m_exp_ver) .ne. 0)) then
	    istat = 0
	  endif
	endif
c
	auto_check_filename = istat
	return
	end

