aboutsummaryrefslogtreecommitdiff
path: root/sys/fio/fpathname.x
blob: 12c29e1f117001c1386f9b556efb78531e21890d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.

include	<config.h>
include	<syserr.h>
include	<knet.h>
include	<fio.h>

# FPATHNAME -- Return the full OS pathname for a vfn.  If no vfn is given
# (null string), the pathname of the current directory is returned.  Do not
# try to make the pathname into a directory name; if it already is a directory
# name, however, it will remain so.

procedure fpathname (vfn, output_pathname, maxchars)

char	vfn[ARB]			# VFN of file
char	output_pathname[maxchars]	# pathname of file
int	maxchars

int	status
include	<fio.com>
errchk	filerr

begin
	status = OK
	
	if (vfn[1] == EOS)
	    call strpak (vfn, pathname, SZ_PATHNAME)
	else iferr (call fmapfn (vfn, pathname, SZ_PATHNAME))
	    status = ERR

	if (status != ERR) {
	    call strupk (pathname, pathname, SZ_PATHNAME)
	    call zfpath (pathname, output_pathname, maxchars, status)
	}

	if (status == ERR)
	    call filerr (vfn, SYS_FPATHNAME)
end