/*
-** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
+** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
** See ../LICENSE for license information.
**
*/
typedef enum {
OSD_FILEFOUND,
OSD_FILENOTFOUND,
- OSD_PATHTOOLONG } filestatus;
+ OSD_PATHTOOLONG
+} filestatus;
extern /*@only@*/ cstring LSLRootName (cstring p_filespec) /*@*/ ;
extern /*@observer@*/ cstring osd_getEnvironmentVariable (cstring) ;
-# ifndef NOLCL
/*@constant int CALL_SUCCESS@*/
# define CALL_SUCCESS 0
extern int osd_system (cstring p_cmd) /*@modifies fileSystem@*/ ;
-# endif
extern cstring osd_absolutePath (cstring p_cwd, cstring p_filename) /*@*/ ;
-extern cstring osd_outputPath (cstring p_filename) /*@*/ ;
+extern /*@only@*/ cstring osd_outputPath (cstring p_filename) /*@*/ ;
extern void osd_initMod (void) /*@modifies internalState@*/ ;
+extern void osd_destroyMod (void) /*@modifies internalState@*/ ;
extern bool osd_equalCanonicalPrefix (cstring p_dirpath, cstring p_prefixpath) /*@*/ ;
extern int /*pid_t*/ osd_getPid (void) ;
# endif
+# ifdef WIN32
+/* Win32 doesn't support ISO C99 correctly... */
+# define snprintf _snprintf
+# endif
+
+/*
+** Win32 convention?
+*/
+
+# if defined(__IBMC__) && defined(OS2)
+# define S_IFMT (unsigned short)0xFFFF
+# endif
+
+# if defined (OS2) || defined (MSDOS) || defined (WIN32)
+/*@constant observer cstring INCLUDEPATH_VAR@*/
+# define INCLUDEPATH_VAR cstring_makeLiteralTemp ("INCLUDE")
+# else
+/*@constant observer cstring INCLUDEPATH_VAR@*/
+# define INCLUDEPATH_VAR cstring_makeLiteralTemp ("CPATH")
+# endif
+
+#if defined (VMS)
+
+/*
+** VMS is here, but hasn't been tested for many releases. Not sure if this works.
+*/
+
+/*
+** Connection string inserted between directory and filename to make a
+** full path name.
+*/
+
+# define CONNECTSTR ":"
+# define CONNECTCHAR ':'
+
+/* Directory separator character for search list. */
+/*@constant static char PATH_SEPARATOR; @*/
+# define PATH_SEPARATOR ':'
+
+# elif defined(MSDOS) || defined(OS2) || defined(WIN32)
+
+/* Connection string inserted between directory and filename to make a */
+/* full path name. */
+
+/*@constant observer char *CONNECTSTR@*/
+# define CONNECTSTR "\\"
+
+/*@constant char CONNECTCHAR@*/
+# define CONNECTCHAR '\\'
+
+# define HASALTCONNECTCHAR
+
+/*@constant char ALTCONNECTCHAR@*/
+# define ALTCONNECTCHAR '/'
+
+/* Directory separator character for search list. */
+
+/*@constant char PATH_SEPARATOR; @*/
+# define PATH_SEPARATOR ';'
+
+#else
+/* Connection string inserted between directory and filename to make a */
+/* full path name. */
+
+/*@constant observer char *CONNECTSTR@*/
+# define CONNECTSTR "/"
+
+/*@constant char CONNECTCHAR; @*/
+# define CONNECTCHAR '/'
+
+/* Directory separator character for search list. */
+/*@constant char PATH_SEPARATOR; @*/
+# define PATH_SEPARATOR ':'
+
+#endif
+
+
+# ifdef P_tmpdir
+
+# if defined(OS2) && defined(__IBMC__)
+/*@constant observer char *DEFAULT_TMPDIR; @*/
+# define DEFAULT_TMPDIR "."
+# else
+/*@constant observer char *DEFAULT_TMPDIR; @*/
+# define DEFAULT_TMPDIR P_tmpdir
+# endif
+# else
+# ifdef WIN32
+/*@constant observer char *DEFAULT_TMPDIR; @*/
+# define DEFAULT_TMPDIR "\\WINDOWS\\TEMP\\"
+# else
+/*@constant observer char *DEFAULT_TMPDIR; @*/
+# define DEFAULT_TMPDIR "/tmp/"
+# endif /* WIN32 */
+
+# endif /* P_tmpdir */
+
# else
# error "Multiple include"
# endif
+\