~ubuntu-branches/ubuntu/precise/unzip/precise-proposed

« back to all changes in this revision

Viewing changes to os2/os2data.h

  • Committer: Bazaar Package Importer
  • Author(s): Santiago Vila
  • Date: 2004-06-06 17:57:46 UTC
  • Revision ID: james.westby@ubuntu.com-20040606175746-nl7p2dgp3aobyc2c
Tags: upstream-5.51
ImportĀ upstreamĀ versionĀ 5.51

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
  Copyright (c) 1990-2000 Info-ZIP.  All rights reserved.
 
3
 
 
4
  See the accompanying file LICENSE, version 2000-Apr-09 or later
 
5
  (the contents of which are also included in unzip.h) for terms of use.
 
6
  If, for some reason, all these files are missing, the Info-ZIP license
 
7
  also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html
 
8
*/
 
9
/*---------------------------------------------------------------------------
 
10
 
 
11
  os2data.h
 
12
 
 
13
  OS/2-specific structures and data to be included in the global data struc-
 
14
  ture.
 
15
 
 
16
  ---------------------------------------------------------------------------*/
 
17
 
 
18
 
 
19
#define MAXNAMLEN  256
 
20
#define MAXPATHLEN 256
 
21
#define MAXLEN     256    /* temporary buffer length */
 
22
#define IBUF_LEN   4096   /* input buffer length */
 
23
 
 
24
#define INCL_NOPM
 
25
#define INCL_VIO
 
26
#define INCL_DOSNLS
 
27
#define INCL_DOSPROCESS
 
28
#define INCL_DOSDEVICES
 
29
#define INCL_DOSDEVIOCTL
 
30
#define INCL_DOSERRORS
 
31
#define INCL_DOSMISC
 
32
 
 
33
#if (defined(OS2DLL) && !defined(DLL))
 
34
#  undef OS2DLL
 
35
#endif
 
36
 
 
37
#ifdef OS2DLL
 
38
#  define INCL_REXXSAA
 
39
#  include <rexxsaa.h>
 
40
#endif
 
41
 
 
42
#include <os2.h>
 
43
 
 
44
 
 
45
struct direct
 
46
{
 
47
  ino_t    d_ino;                   /* a bit of a farce */
 
48
  int      d_reclen;                /* more farce */
 
49
  int      d_namlen;                /* length of d_name */
 
50
  char     d_name[MAXNAMLEN + 1];   /* null terminated */
 
51
  /* nonstandard fields */
 
52
  long     d_size;                  /* size in bytes */
 
53
  unsigned d_mode;                  /* MS-DOS or OS/2 file attributes */
 
54
  unsigned d_time;
 
55
  unsigned d_date;
 
56
};
 
57
 
 
58
/* The fields d_size and d_mode are extensions by me (Kai Uwe Rommel).  The
 
59
 * find_first and find_next calls deliver these data without any extra cost.
 
60
 * If these data are needed, the fields save a lot of extra calls to stat()
 
61
 * (each stat() again performs a find_first call !).
 
62
 */
 
63
 
 
64
struct _dircontents
 
65
{
 
66
  char *_d_entry;
 
67
  long _d_size;
 
68
  unsigned _d_mode, _d_time, _d_date;
 
69
  struct _dircontents *_d_next;
 
70
};
 
71
 
 
72
typedef struct _dirdesc
 
73
{
 
74
  int  dd_id;                   /* uniquely identify each open directory */
 
75
  long dd_loc;                  /* where we are in directory entry is this */
 
76
  struct _dircontents *dd_contents;   /* pointer to contents of dir */
 
77
  struct _dircontents *dd_cp;         /* pointer to current position */
 
78
}
 
79
DIR;
 
80
 
 
81
 
 
82
struct os2Global {
 
83
 
 
84
#ifndef SFX
 
85
   HDIR hdir;
 
86
#ifdef __32BIT__
 
87
   ULONG count;
 
88
   FILEFINDBUF3 find;
 
89
#else
 
90
   USHORT count;
 
91
   FILEFINDBUF find;
 
92
#endif
 
93
#endif /* !SFX */
 
94
 
 
95
   int created_dir;        /* used by mapname(), checkdir() */
 
96
   int renamed_fullpath;   /* ditto */
 
97
   int fnlen;              /* ditto */
 
98
#ifdef __32BIT__
 
99
   ULONG nLabelDrive;      /* ditto */
 
100
#else
 
101
   USHORT nLabelDrive;
 
102
#endif
 
103
   int longnameEA;         /* checkdir(), close_outfile() */
 
104
   char *lastpathcomp;     /* ditto */
 
105
 
 
106
   struct direct dp;
 
107
   int lower;
 
108
   USHORT nLastDrive, nResult;
 
109
 
 
110
   DIR *wild_dir;
 
111
   ZCONST char *wildname;
 
112
   char *dirname, matchname[FILNAMSIZ];
 
113
   int notfirstcall, have_dirname, dirnamelen;
 
114
 
 
115
   int rootlen;          /* length of rootpath */
 
116
   char *rootpath;       /* user's "extract-to" directory */
 
117
   char *buildpathHPFS;  /* full path (so far) to extracted file, */
 
118
   char *buildpathFAT;   /*  both HPFS/EA (main) and FAT versions */
 
119
   char *endHPFS;        /* corresponding pointers to end of */
 
120
   char *endFAT;         /*  buildpath ('\0') */
 
121
 
 
122
#ifdef OS2DLL
 
123
   char buffer[IBUF_LEN];
 
124
   char output_var[MAXLEN];
 
125
   char getvar_buf[MAXLEN];
 
126
   int getvar_len;
 
127
 
 
128
   int output_idx;
 
129
   int stem_len;
 
130
   int putchar_idx;
 
131
   int rexx_error;
 
132
   char *rexx_mes;
 
133
 
 
134
   SHVBLOCK request;
 
135
#endif
 
136
};
 
137
 
 
138
 
 
139
#define SYSTEM_SPECIFIC_GLOBALS struct os2Global os2;
 
140
#define SYSTEM_SPECIFIC_CTOR    os2GlobalsCtor
 
141
 
 
142
#ifdef OS2DLL
 
143
#  ifdef API_DOC
 
144
#    define SYSTEM_API_BRIEF    REXXBrief
 
145
#    define SYSTEM_API_DETAILS  REXXDetails
 
146
     extern char *REXXBrief;
 
147
     extern APIDocStruct REXXDetails[];
 
148
#  endif
 
149
#endif