48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
/****************************************************************
|
|
* *
|
|
* Copyright 2001 Sanchez Computer Associates, Inc. *
|
|
* *
|
|
* This source code contains the intellectual property *
|
|
* of its copyright holder(s), and is made available *
|
|
* under a license. If you do not know the terms of *
|
|
* the license, please stop and do not read further. *
|
|
* *
|
|
****************************************************************/
|
|
|
|
#ifndef SETZDIR_INCLUDED
|
|
#define SETZDIR_INCLUDED
|
|
|
|
void setzdir(mval *newdir, mval *full_path_of_newdir);
|
|
|
|
#if defined(UNIX)
|
|
|
|
#define SKIP_DEVICE(dir)
|
|
#define SKIP_DEVICE_IF_NOT_NEEDED(dir)
|
|
|
|
#elif defined(VMS)
|
|
|
|
#define SKIP_DEVICE(dir) /* skip DEVICE part in dir */ \
|
|
{ \
|
|
char *dir_ptr; \
|
|
\
|
|
for (dir_ptr = (dir)->str.addr; dir_ptr < (dir)->str.addr + (dir)->str.len; dir_ptr++) \
|
|
{ /* find location of device delimiter */ \
|
|
if (':' == *dir_ptr) \
|
|
break; \
|
|
} \
|
|
assert(dir_ptr > (dir)->str.addr && /* must have DEVICE + DIRECTORY */ \
|
|
dir_ptr < (dir)->str.addr + (dir)->str.len); \
|
|
(dir)->str.len -= (++dir_ptr - (dir)->str.addr); \
|
|
(dir)->str.addr = dir_ptr; \
|
|
}
|
|
|
|
#define SKIP_DEVICE_IF_NOT_NEEDED(dir) \
|
|
if (ZDIR_FORM_DIRECTORY == zdir_form) \
|
|
SKIP_DEVICE(dir);
|
|
|
|
#else
|
|
#error UNSUPPORTED PLATFORM
|
|
#endif
|
|
|
|
#endif /* SETZDIR_INCLUDED */
|