![[Toc]](../../toc.gif)
![[Index]](/idx.gif)
FSH_CANONICALIZE - Convert a path name to a canonical form
Purpose
This function converts a path name to a canonical form by processing ' .'s
and '..'s, uppercasing, and prepending the current directory to
non-absolute paths.
Calling Sequence
int far pascal FSH_CANONICALIZE(pPathName, cbPathBuf, pPathBuf, pFlags)
char far * pPathName;
unsigned short cbPathBuf;
char far * pPathBuf;
unsigned short far * pFlags;
Where
pPathName is a pointer to the ASCIIZ path name to be canonicalized.
cbPathBuf is the length of path name buffer.
pPathBuf is the pointer to the buffer into which to copy the canonicalized
path.
pFlags is the pointer to flags returned to the FSD.
Flags == 0x0040 indicates a non-8.3 filename format. All other values are
reserved.
Returns
If no error is detected, a zero error code is returned. If an error is
detected, one of the following error codes is returned:
oERROR_PATH_NOT_FOUND
is an invalid path name-too many '..'s
oERROR_BUFFER_OVERFLOW
the path name is too long.
Remarks
This routine processes DBCS characters properly.
The FSD is responsible for verifying the string pointers and checking for
segment boundaries.
FSH_CANONICALIZE should be called for names passed into the FSD raw data
packets. For example, names passed to FS_FSCTL in the parameter area
should be passed to FSH_CANONICALIZE. This routine does not need to be
called for explicit names passed to the FSD, that is, the name passed to
FS_OPENCREATE.
If the canonicalized name is being created as a file or directory, the
non-8 .3 attribute in the directory entry should be set according to the
value returned in pFlags.
Note: OS/2 does not validate input parameters. Therefore, an FSD should
call FSH_PROBEBUF where appropriate.
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs