2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
13 /* Macro to substitute for ## because VAX C currently doesn't allow it. */
15 /* Use an intermediate paste macro so PASTE macro arguments will get */
16 /* evaluated. Therefore, PASTE(PASTE(a,b),c) will work. */
18 # define IPASTE(L,R) L ## R
20 # define PASTE(L,R) IPASTE(L,R)
23 # define PASTE(L,R ) L/**/R
26 /* Macro to substitute for # because VAX C currently doesn't allow it. */
31 # define STR(x) ISTR(x)
36 # define STR(x) ISTR(x)
40 ** MAXPATHLEN defines the longest permissable path length.
42 ** POSIX defines PATHMAX in limits.h
46 /*@constant size_t MAXPATHLEN; @*/
47 # define MAXPATHLEN PATH_MAX
49 /*@constant size_t MAXPATHLEN; @*/
50 # define MAXPATHLEN 1024
59 extern /*@only@*/ cstring LSLRootName (cstring p_filespec) /*@*/ ;
62 osd_getPath (cstring p_path, cstring p_file, /*@out@*/ cstring *p_returnPath)
63 /*@modifies *p_returnPath@*/ ;
66 osd_getExePath (cstring p_path, cstring p_file, /*@out@*/ cstring *p_returnPath)
67 /*@modifies *p_returnPath@*/ ;
69 extern bool osd_fileExists (cstring p_filespec) /*@*/ ;
70 extern /*@observer@*/ cstring
71 osd_getEnvironment (cstring p_env, /*@returned@*/ cstring p_def) /*@*/ ;
73 extern filestatus osd_findOnLarchPath (cstring p_file, /*@out@*/ cstring *p_returnPath)
74 /*@modifies *p_returnPath@*/ ;
76 extern void osd_setTempError (void) /*@modifies internalState@*/ ;
78 extern /*@observer@*/ cstring osd_getHomeDir (void) /*@*/ ;
80 extern /*@observer@*/ cstring osd_getEnvironmentVariable (cstring) ;
82 /*@constant int CALL_SUCCESS@*/
83 # define CALL_SUCCESS 0
84 extern int osd_system (cstring p_cmd) /*@modifies fileSystem@*/ ;
86 extern cstring osd_absolutePath (cstring p_cwd, cstring p_filename) /*@*/ ;
87 extern /*@only@*/ cstring osd_outputPath (cstring p_filename) /*@*/ ;
88 extern void osd_initMod (void) /*@modifies internalState@*/ ;
89 extern void osd_destroyMod (void) /*@modifies internalState@*/ ;
91 extern bool osd_equalCanonicalPrefix (cstring p_dirpath, cstring p_prefixpath) /*@*/ ;
93 extern int osd_unlink (cstring) /*@modifies fileSystem@*/ ;
94 extern cstring osd_fixDefine (cstring);
95 extern bool osd_fileIsReadable (cstring);
97 extern bool osd_isConnectChar (char) /*@*/ ;
98 extern /*@observer@*/ cstring osd_getCurrentDirectory (void) /*@*/ ;
101 extern int osd_getPid (void) ;
103 extern int /*pid_t*/ osd_getPid (void) ;
107 /* Win32 doesn't support ISO C99 correctly... */
108 # define snprintf _snprintf
115 # if defined(__IBMC__) && defined(OS2)
116 # define S_IFMT (unsigned short)0xFFFF
119 # if defined (OS2) || defined (MSDOS) || defined (WIN32)
120 /*@constant observer cstring INCLUDEPATH_VAR@*/
121 # define INCLUDEPATH_VAR cstring_makeLiteralTemp ("INCLUDE")
123 /*@constant observer cstring INCLUDEPATH_VAR@*/
124 # define INCLUDEPATH_VAR cstring_makeLiteralTemp ("CPATH")
130 ** VMS is here, but hasn't been tested for many releases. Not sure if this works.
134 ** Connection string inserted between directory and filename to make a
138 # define CONNECTSTR ":"
139 # define CONNECTCHAR ':'
141 /* Directory separator character for search list. */
142 /*@constant static char PATH_SEPARATOR; @*/
143 # define PATH_SEPARATOR ':'
145 # elif defined(MSDOS) || defined(OS2) || defined(WIN32)
147 /* Connection string inserted between directory and filename to make a */
148 /* full path name. */
150 /*@constant observer char *CONNECTSTR@*/
151 # define CONNECTSTR "\\"
153 /*@constant char CONNECTCHAR@*/
154 # define CONNECTCHAR '\\'
156 # define HASALTCONNECTCHAR
158 /*@constant char ALTCONNECTCHAR@*/
159 # define ALTCONNECTCHAR '/'
161 /* Directory separator character for search list. */
163 /*@constant char PATH_SEPARATOR; @*/
164 # define PATH_SEPARATOR ';'
167 /* Connection string inserted between directory and filename to make a */
168 /* full path name. */
170 /*@constant observer char *CONNECTSTR@*/
171 # define CONNECTSTR "/"
173 /*@constant char CONNECTCHAR; @*/
174 # define CONNECTCHAR '/'
176 /* Directory separator character for search list. */
177 /*@constant char PATH_SEPARATOR; @*/
178 # define PATH_SEPARATOR ':'
185 # if defined(OS2) && defined(__IBMC__)
186 /*@constant observer char *DEFAULT_TMPDIR; @*/
187 # define DEFAULT_TMPDIR "."
189 /*@constant observer char *DEFAULT_TMPDIR; @*/
190 # define DEFAULT_TMPDIR P_tmpdir
194 /*@constant observer char *DEFAULT_TMPDIR; @*/
195 # define DEFAULT_TMPDIR "\\WINDOWS\\TEMP\\"
197 /*@constant observer char *DEFAULT_TMPDIR; @*/
198 # define DEFAULT_TMPDIR "/tmp/"
201 # endif /* P_tmpdir */
204 # error "Multiple include"
209 # error "Multiple include"