which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5403 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			140 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /*---------------------------------------------------------------------------
 | |
| 
 | |
|   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
 |