fis-gtm/sr_port/setzdir.h

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 */