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
 |