#include <rms.h>
#include <starlet.h>
#include <stdio.h>
#include <string.h>
vms_parse_filename( char *FileSpec, char *FileName )
    {
    char esbuf[NAM$C_MAXRSS];		
    char rsbuf[NAM$C_MAXRSS];		
    int RetStat;
    struct FAB fab;
    struct NAM nam;

    fab = cc$rms_fab;			/* initailize FAB */
    nam = cc$rms_nam;			/* initailize NAM */
	
    fab.fab$l_nam = &nam;			
    fab.fab$l_fop = FAB$M_NAM;
    fab.fab$l_fna = FileSpec;
    fab.fab$b_fns = strlen( FileSpec );
    nam.nam$b_nop = NAM$M_SYNCHK;
    nam.nam$l_rsa = rsbuf;
    nam.nam$b_rss = sizeof( rsbuf );
    nam.nam$l_esa = esbuf;
    nam.nam$b_ess = sizeof( esbuf );

    RetStat = sys$parse( &fab );
    if (!$VMS_STATUS_SUCCESS( RetStat ))
      return RetStat;

    memcpy( FileName, nam.nam$l_name, nam.nam$b_name );

    }
