+++ /dev/null
-/*---------------------------------------------------------------------------
-
- os2data.h
-
- OS/2-specific structures and data to be included in the global data struc-
- ture.
-
- ---------------------------------------------------------------------------*/
-
-
-#define MAXNAMLEN 256
-#define MAXPATHLEN 256
-#define MAXLEN 256 /* temporary buffer length */
-#define IBUF_LEN 4096 /* input buffer length */
-
-#define INCL_NOPM
-#define INCL_DOSNLS
-#define INCL_DOSPROCESS
-#define INCL_DOSDEVICES
-#define INCL_DOSDEVIOCTL
-#define INCL_DOSERRORS
-#define INCL_DOSMISC
-
-#if (defined(OS2DLL) && !defined(DLL))
-# undef OS2DLL
-#endif
-
-#ifdef OS2DLL
-# define INCL_REXXSAA
-# include <rexxsaa.h>
-#endif
-
-#include <os2.h>
-
-
-struct direct
-{
- ino_t d_ino; /* a bit of a farce */
- int d_reclen; /* more farce */
- int d_namlen; /* length of d_name */
- char d_name[MAXNAMLEN + 1]; /* null terminated */
- /* nonstandard fields */
- long d_size; /* size in bytes */
- unsigned d_mode; /* MS-DOS or OS/2 file attributes */
- unsigned d_time;
- unsigned d_date;
-};
-
-/* The fields d_size and d_mode are extensions by me (Kai Uwe Rommel). The
- * find_first and find_next calls deliver these data without any extra cost.
- * If these data are needed, the fields save a lot of extra calls to stat()
- * (each stat() again performs a find_first call !).
- */
-
-struct _dircontents
-{
- char *_d_entry;
- long _d_size;
- unsigned _d_mode, _d_time, _d_date;
- struct _dircontents *_d_next;
-};
-
-typedef struct _dirdesc
-{
- int dd_id; /* uniquely identify each open directory */
- long dd_loc; /* where we are in directory entry is this */
- struct _dircontents *dd_contents; /* pointer to contents of dir */
- struct _dircontents *dd_cp; /* pointer to current position */
-}
-DIR;
-
-
-struct os2Global {
-
-#ifndef SFX
- HDIR hdir;
-#ifdef __32BIT__
- ULONG count;
- FILEFINDBUF3 find;
-#else
- USHORT count;
- FILEFINDBUF find;
-#endif
-#endif /* !SFX */
-
- int created_dir; /* used by mapname(), checkdir() */
- int renamed_fullpath; /* ditto */
- int fnlen; /* ditto */
-#ifdef __32BIT__
- ULONG nLabelDrive; /* ditto */
-#else
- USHORT nLabelDrive;
-#endif
- int longnameEA; /* checkdir(), close_outfile() */
- char *lastpathcomp; /* ditto */
-
- struct direct dp;
- int lower;
- USHORT nLastDrive, nResult;
-
- DIR *dir;
- char *dirname, *wildname, matchname[FILNAMSIZ];
- int firstcall, have_dirname, dirnamelen;
-
- int rootlen; /* length of rootpath */
- char *rootpath; /* user's "extract-to" directory */
- char *buildpathHPFS; /* full path (so far) to extracted file, */
- char *buildpathFAT; /* both HPFS/EA (main) and FAT versions */
- char *endHPFS; /* corresponding pointers to end of */
- char *endFAT; /* buildpath ('\0') */
-
-#ifdef OS2DLL
- char buffer[IBUF_LEN];
- char output_var[MAXLEN];
- char getvar_buf[MAXLEN];
- int getvar_len;
-
- int output_idx;
- int stem_len;
- int putchar_idx;
- int rexx_error;
- char *rexx_mes;
-
- SHVBLOCK request;
-#endif
-};
-
-
-#define SYSTEM_SPECIFIC_GLOBALS struct os2Global os2;
-#define SYSTEM_SPECIFIC_CTOR os2GlobalsCtor
-
-#ifdef OS2DLL
-# ifdef API_DOC
-# define SYSTEM_API_BRIEF REXXBrief
-# define SYSTEM_API_DETAILS REXXDetails
- extern char *REXXBrief;
- extern APIDocStruct REXXDetails[];
-# endif
-#endif