home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Telecom
/
1996-04-telecom-walnutcreek.iso
/
utils
/
unix
/
unzip512
/
os2
/
wat_met.dif
< prev
next >
Wrap
Internet Message Format
|
1994-08-05
|
20KB
Date: Wed, 3 Aug 1994 19:34:23 +0200
From: Kai Uwe Rommel <rommel@ars.muc.de>
Enclosed I send the revised set of patches. That does now also include
some changes required for MetaWare High C++ for OS/2.
diff -cbr unzip/envargs.c unzip-2/envargs.c
*** unzip/envargs.c Thu Apr 21 10:02:16 1994
--- unzip-2/envargs.c Tue Aug 02 11:48:46 1994
***************
*** 180,186 ****
--- 180,188 ----
char ***argvp;
{
#ifndef MSC /* declared differently in MSC 7.0 headers, at least */
+ #ifndef __WATCOMC__
extern char **environ; /* environment */
+ #endif
#endif
char **envp; /* pointer into environment */
char **newargv; /* new argument list */
diff -cbr unzip/extract.c unzip-2/extract.c
*** unzip/extract.c Fri Jul 22 13:03:48 1994
--- unzip-2/extract.c Tue Aug 02 11:48:46 1994
***************
*** 863,869 ****
--- 863,873 ----
if (cflag) {
outfile = stdout;
#ifdef DOS_NT_OS2
+ #ifdef __HIGHC__
+ setmode(outfile, _BINARY);
+ #else
setmode(fileno(outfile), O_BINARY);
+ #endif
# define NEWLINE "\r\n"
#else
# define NEWLINE "\n"
diff -cbr unzip/funzip.c unzip-2/funzip.c
*** unzip/funzip.c Sun Jul 31 20:28:52 1994
--- unzip-2/funzip.c Tue Aug 02 11:48:48 1994
***************
*** 238,250 ****
--- 238,258 ----
else
{
#ifdef DOS_NT_OS2
+ #ifdef __HIGHC__
+ setmode(stdin, _BINARY);
+ #else
setmode(0, O_BINARY); /* some buggy C libraries require BOTH setmode() */
+ #endif
#endif /* call AND the fdopen() in binary mode :-( */
if ((in = fdopen(0, FOPR)) == (FILE *)NULL)
err(2, "cannot find stdin");
}
#ifdef DOS_NT_OS2
+ #ifdef __HIGHC__
+ setmode(stdout, _BINARY);
+ #else
setmode(1, O_BINARY);
+ #endif
#endif
if ((out = fdopen(1, FOPW)) == (FILE *)NULL)
err(2, "cannot write to stdout");
diff -cbr unzip/msdos/msdos.c unzip-2/msdos/msdos.c
*** unzip/msdos/msdos.c Wed Jul 27 22:20:06 1994
--- unzip-2/msdos/msdos.c Tue Aug 02 11:48:52 1994
***************
*** 37,45 ****
static int renamed_fullpath; /* ditto */
static unsigned nLabelDrive; /* ditto, plus volumelabel() */
! #if (defined(__GO32__) || defined(__EMX__))
! # define MKDIR(path,mode) mkdir(path,mode)
# include <dirent.h> /* use readdir() */
# define direct dirent
# define Opendir opendir
# define Readdir readdir
--- 37,57 ----
static int renamed_fullpath; /* ditto */
static unsigned nLabelDrive; /* ditto, plus volumelabel() */
! #if (defined(__WATCOMC__) && defined(__386__))
! # define WREGS(v,r) (v##.w.##r)
! # define int86x int386x
! #else
! # define WREGS(v,r) (v##.x.##r)
! #endif
!
! #if (defined(__GO32__) || defined(__EMX__) || defined(__WATCOMC__))
! # ifdef __WATCOMC__
! # include <direct.h>
! # define MKDIR(path,mode) mkdir(path)
! # else
# include <dirent.h> /* use readdir() */
+ # define MKDIR(path,mode) mkdir(path,mode)
+ # endif
# define direct dirent
# define Opendir opendir
# define Readdir readdir
***************
*** 774,791 ****
regs.h.bl = (uch)nDrive;
#ifdef __EMX__
_int86(0x21, ®s, ®s);
! if (regs.x.flags & 1)
#else
intdos(®s, ®s);
! if (regs.x.cflag) /* error: do default a/b check instead */
#endif
{
Trace((stderr,
"error in DOS function 0x44 (AX = 0x%04x): guessing instead...\n",
! regs.x.ax));
return (nDrive == 1 || nDrive == 2)? TRUE : FALSE;
} else
! return regs.x.ax? FALSE : TRUE;
}
--- 786,803 ----
regs.h.bl = (uch)nDrive;
#ifdef __EMX__
_int86(0x21, ®s, ®s);
! if (WREGS(regs,flags) & 1)
#else
intdos(®s, ®s);
! if (WREGS(regs,cflag)) /* error: do default a/b check instead */
#endif
{
Trace((stderr,
"error in DOS function 0x44 (AX = 0x%04x): guessing instead...\n",
! WREGS(regs,ax)));
return (nDrive == 1 || nDrive == 2)? TRUE : FALSE;
} else
! return WREGS(regs,ax)? FALSE : TRUE;
}
***************
*** 854,874 ****
/* set the disk transfer address for subsequent FCB calls */
sregs.ds = FP_SEG(pdta);
! regs.x.dx = FP_OFF(pdta);
! Trace((stderr, "segment:offset of pdta = %x:%x\n", sregs.ds, regs.x.dx));
Trace((stderr, "&dta = %lx, pdta = %lx\n", (ulg)&dta, (ulg)pdta));
regs.h.ah = 0x1a;
intdosx(®s, ®s, &sregs);
/* fill in the FCB */
sregs.ds = FP_SEG(pfcb);
! regs.x.dx = FP_OFF(pfcb);
pfcb->flag = 0xff; /* extended FCB */
pfcb->vattr = 0x08; /* attribute: disk volume label */
pfcb->drive = (uch)nLabelDrive;
#ifdef DEBUG
! Trace((stderr, "segment:offset of pfcb = %x:%x\n", sregs.ds, regs.x.dx));
Trace((stderr, "&fcb = %lx, pfcb = %lx\n", (ulg)&fcb, (ulg)pfcb));
Trace((stderr, "(2nd check: labelling drive %c:)\n", pfcb->drive-1+'A'));
if (pfcb->flag != fcb.flag)
--- 866,886 ----
/* set the disk transfer address for subsequent FCB calls */
sregs.ds = FP_SEG(pdta);
! WREGS(regs,dx) = FP_OFF(pdta);
! Trace((stderr, "segment:offset of pdta = %x:%x\n", sregs.ds, WREGS(regs,dx)));
Trace((stderr, "&dta = %lx, pdta = %lx\n", (ulg)&dta, (ulg)pdta));
regs.h.ah = 0x1a;
intdosx(®s, ®s, &sregs);
/* fill in the FCB */
sregs.ds = FP_SEG(pfcb);
! WREGS(regs,dx) = FP_OFF(pfcb);
pfcb->flag = 0xff; /* extended FCB */
pfcb->vattr = 0x08; /* attribute: disk volume label */
pfcb->drive = (uch)nLabelDrive;
#ifdef DEBUG
! Trace((stderr, "segment:offset of pfcb = %x:%x\n", sregs.ds, WREGS(regs,dx)));
Trace((stderr, "&fcb = %lx, pfcb = %lx\n", (ulg)&fcb, (ulg)pfcb));
Trace((stderr, "(2nd check: labelling drive %c:)\n", pfcb->drive-1+'A'));
if (pfcb->flag != fcb.flag)
***************
*** 894,900 ****
strncpy((char *)fcb.vn, "???????????", 11); /* i.e., "*.*" */
Trace((stderr, "fcb.vn = %lx\n", (ulg)fcb.vn));
Trace((stderr, "regs.h.ah = %x, regs.x.dx = %04x, sregs.ds = %04x\n",
! regs.h.ah, regs.x.dx, sregs.ds));
Trace((stderr, "flag = %x, drive = %d, vattr = %x, vn = %s = %s.\n",
fcb.flag, fcb.drive, fcb.vattr, fcb.vn, pfcb->vn));
intdosx(®s, ®s, &sregs);
--- 906,912 ----
strncpy((char *)fcb.vn, "???????????", 11); /* i.e., "*.*" */
Trace((stderr, "fcb.vn = %lx\n", (ulg)fcb.vn));
Trace((stderr, "regs.h.ah = %x, regs.x.dx = %04x, sregs.ds = %04x\n",
! regs.h.ah, WREGS(regs,dx), sregs.ds));
Trace((stderr, "flag = %x, drive = %d, vattr = %x, vn = %s = %s.\n",
fcb.flag, fcb.drive, fcb.vattr, fcb.vn, pfcb->vn));
intdosx(®s, ®s, &sregs);
***************
*** 1058,1065 ****
union REGS regs;
sregs.ds = FP_SEG(CountryInfo);
! regs.x.dx = FP_OFF(CountryInfo);
! regs.x.ax = 0x3800;
int86x(0x21, ®s, ®s, &sregs);
#else /* __GO32__ || __EMX__ */
--- 1070,1077 ----
union REGS regs;
sregs.ds = FP_SEG(CountryInfo);
! WREGS(regs,dx) = FP_OFF(CountryInfo);
! WREGS(regs,ax) = 0x3800;
int86x(0x21, ®s, ®s, &sregs);
#else /* __GO32__ || __EMX__ */
diff -cbr unzip/os2/makefile.os2 unzip-2/os2/makefile.os2
*** unzip/os2/makefile.os2 Sat Jul 23 13:42:04 1994
--- unzip-2/os2/makefile.os2 Tue Aug 02 11:53:42 1994
***************
*** 32,43 ****
# For Watcom C/386, edit the os2$(OBJ) target so that os2/os2.c reads
# os2\os2.c instead. Watcom can't handle forward slashes; gcc can't
# handle backslashes. We'll see about making this a macro next time...
default:
@echo "Enter `$(MAKE) -f makefile.os2 target' with makefile.os2 copied"
@echo "to the main UnZip directory and where target is one of:"
@echo " msc mscdos ibm ibmdyn ibmdebug ibmprof"
! @echo " watcom borland gcc gccdyn gccdebug gccdos"
# MS C 6.00 for OS/2, 16-bit (should figure out way to split unzip/funzip
# compiles so former is always large model and latter always small model...)
--- 32,45 ----
# For Watcom C/386, edit the os2$(OBJ) target so that os2/os2.c reads
# os2\os2.c instead. Watcom can't handle forward slashes; gcc can't
# handle backslashes. We'll see about making this a macro next time...
+ # Same for msdos/msdos.c ...
default:
@echo "Enter `$(MAKE) -f makefile.os2 target' with makefile.os2 copied"
@echo "to the main UnZip directory and where target is one of:"
@echo " msc mscdos ibm ibmdyn ibmdebug ibmprof"
! @echo " metaware borland gcc gccdyn gccdebug gccdos"
! @echo " watcom watcom16 watcomdos watcom16dos"
# MS C 6.00 for OS/2, 16-bit (should figure out way to split unzip/funzip
# compiles so former is always large model and latter always small model...)
***************
*** 52,57 ****
--- 54,71 ----
OBJ=".obj" \
DEF="os2\unzip16.def"
+ # MS C 6.00 for OS/2, debug version
+ mscdebug:
+ $(MAKE) -f makefile.os2 all \
+ CC="cl -nologo -AL -Zi -Od -I. $(FP)" \
+ CFLAGS="-G2 -Zp1 -W3 -DOS2 -DMSC" \
+ NFLAGS="" \
+ LDFLAGS="-Lp -Fe" \
+ LDFLAGS2="-link /noe" \
+ OUT="-Fo" \
+ OBJ=".obj" \
+ DEF="os2\unzip16.def"
+
# cross-compilation for MS-DOS with MS C 6.00 (same comment as above...formerly;
# now unzip is small model again, with [almost] all strings in far memory)
mscdos:
***************
*** 59,65 ****
CC="cl -nologo -AS -Oaict -Gs -I. $(FP)" \
CFLAGS="-Zp1 -W3 $(LOCAL_UNZIP)" \
NFLAGS="" \
! LDFLAGS="-F 0c00 -Lr -Fe" \
LDFLAGS2="-link /noe /exe" \
OUT="-Fo" \
OBJ=".obj" \
--- 73,79 ----
CC="cl -nologo -AS -Oaict -Gs -I. $(FP)" \
CFLAGS="-Zp1 -W3 $(LOCAL_UNZIP)" \
NFLAGS="" \
! LDFLAGS="-F 0C00 -Lr -Fe" \
LDFLAGS2="-link /noe /exe" \
OUT="-Fo" \
OBJ=".obj" \
***************
*** 114,131 ****
OBJ=".obj" \
DEF="os2\unzip.def"
! # Watcom C/386 9.0
watcom:
$(MAKE) -f makefile.os2 all \
CC="wcl386 -zq -Ox -s -I." \
CFLAGS="-Zp1 -DOS2 $(LOCAL_UNZIP)" \
NFLAGS="" \
! LDFLAGS="-k0x40000 -x -Fe=" \
LDFLAGS2="" \
OUT="-Fo" \
OBJ=".obj" \
DEF=""
# Borland C++
borland:
$(MAKE) -f makefile.os2 all \
--- 128,194 ----
OBJ=".obj" \
DEF="os2\unzip.def"
! # Watcom C/386 9.0 or higher
watcom:
$(MAKE) -f makefile.os2 all \
CC="wcl386 -zq -Ox -s -I." \
CFLAGS="-Zp1 -DOS2 $(LOCAL_UNZIP)" \
NFLAGS="" \
! LDFLAGS="-k0x40000 -x -l=os2v2 -Fe=" \
LDFLAGS2="" \
OUT="-Fo" \
OBJ=".obj" \
DEF=""
+ # Watcom C/286 9.0 or higher
+ watcom16:
+ $(MAKE) -f makefile.os2 all \
+ CC="wcl -zq -ml -Ox -s -I." \
+ CFLAGS="-Zp1 -DOS2" \
+ NFLAGS="" \
+ LDFLAGS="-k0x2000 -x -l=os2 -Fe=" \
+ LDFLAGS2="" \
+ OUT="-Fo" \
+ OBJ=".obj"
+
+ # Watcom C/386 9.0 or higher, crosscompilation for DOS
+ watcomdos:
+ $(MAKE) -f makefile.os2 all \
+ CC="wcl386 -zq -Ox -s -I." \
+ CFLAGS="-Zp1 -DMSDOS" \
+ NFLAGS="" \
+ LDFLAGS="-k0x40000 -x -l=dos4g -Fe=" \
+ LDFLAGS2="" \
+ OUT="-Fo" \
+ OBJ=".obj" \
+ OBJU2="msdos.obj" \
+ OBJX2="msdos_.obj"
+
+ # Watcom C/286 9.0 or higher, crosscompilation for DOS
+ watcom16dos:
+ $(MAKE) -f makefile.os2 all \
+ CC="wcl -zq -mm -Ox -s -I." \
+ CFLAGS="-Zp1 -DMSDOS" \
+ NFLAGS="" \
+ LDFLAGS="-k0xC00 -x -l=dos -Fe=" \
+ LDFLAGS2="" \
+ OUT="-Fo" \
+ OBJ=".obj" \
+ OBJU2="msdos.obj" \
+ OBJX2="msdos_.obj"
+
+ # MetaWare High C/C++ 3.2
+ metaware:
+ $(MAKE) -f makefile.os2 all \
+ CC="hc -O2 -I." \
+ CFLAGS="-D__32BIT__ -DOS2" \
+ NFLAGS="" \
+ LDFLAGS="-o " \
+ LDFLAGS2="" \
+ OUT="-o ./" \
+ OBJ=".obj" \
+ DEF="-Hdef=os2\unzip.def"
+
# Borland C++
borland:
$(MAKE) -f makefile.os2 all \
***************
*** 192,198 ****
extract$(OBJ) file_io$(OBJ) inflate$(OBJ) match$(OBJ) \
unreduce$(OBJ) unshrink$(OBJ) zipinfo$(OBJ)
OBJU2 = os2$(OBJ)
! OBJX = unzip_$(OBJ) crypt$(OBJ) extract_$(OBJ) file_io$(OBJ) \
inflate$(OBJ) match$(OBJ)
OBJX2 = os2_$(OBJ)
OBJF = funzip$(OBJ) crypt_$(OBJ) inflate_$(OBJ)
--- 255,261 ----
extract$(OBJ) file_io$(OBJ) inflate$(OBJ) match$(OBJ) \
unreduce$(OBJ) unshrink$(OBJ) zipinfo$(OBJ)
OBJU2 = os2$(OBJ)
! OBJX = unzipsfx$(OBJ) crypt$(OBJ) extract_$(OBJ) file_io$(OBJ) \
inflate$(OBJ) match$(OBJ)
OBJX2 = os2_$(OBJ)
OBJF = funzip$(OBJ) crypt_$(OBJ) inflate_$(OBJ)
***************
*** 252,256 ****
inflate_$(OBJ): inflate.c inflate.h unzip.h crypt.h # funzip only
$(CC) -c $(CFLAGS) -DFUNZIP $(OUT)$@ inflate.c
! unzip_$(OBJ): unzip.c unzip.h crypt.h version.h # unzipsfx only
$(CC) -c $(CFLAGS) -DSFX $(OUT)$@ unzip.c
--- 315,319 ----
inflate_$(OBJ): inflate.c inflate.h unzip.h crypt.h # funzip only
$(CC) -c $(CFLAGS) -DFUNZIP $(OUT)$@ inflate.c
! unzipsfx$(OBJ): unzip.c unzip.h crypt.h version.h # unzipsfx only
$(CC) -c $(CFLAGS) -DSFX $(OUT)$@ unzip.c
diff -cbr unzip/os2/os2.c unzip-2/os2/os2.c
*** unzip/os2/os2.c Wed Jul 27 22:23:02 1994
--- unzip-2/os2/os2.c Tue Aug 02 11:48:54 1994
***************
*** 73,78 ****
--- 73,79 ----
#define INCL_DOSDEVICES
#define INCL_DOSDEVIOCTL
#define INCL_DOSERRORS
+ #define INCL_DOSMISC
#include <os2.h>
#ifdef __32BIT__
***************
*** 229,238 ****
#endif
- #ifdef __WATCOMC__
- unsigned char __near _osmode = OS2_MODE;
- #endif
-
#ifndef SFX
static char *getdirent(char *);
static void free_dircontents(struct _dircontents *);
--- 230,235 ----
***************
*** 387,394 ****
if ( (pFEA2list = (PFEA2LIST) malloc((size_t) pEAblock -> lSize)) == NULL )
return;
! if ( memextract((char *) pFEA2list, pEAblock -> lSize,
! (char *) (pEAblock + 1),
pEAblock -> nSize - sizeof(pEAblock -> lSize)) )
{
free(pFEA2list);
--- 384,391 ----
if ( (pFEA2list = (PFEA2LIST) malloc((size_t) pEAblock -> lSize)) == NULL )
return;
! if ( memextract((uch *) pFEA2list, pEAblock -> lSize,
! (uch *) (pEAblock + 1),
pEAblock -> nSize - sizeof(pEAblock -> lSize)) )
{
free(pFEA2list);
***************
*** 450,474 ****
char *GetLoadPath(void)
{
#ifdef __32BIT__ /* generic for 32-bit API */
-
PTIB pptib;
PPIB pppib;
char *szPath;
DosGetInfoBlocks(&pptib, &pppib);
szPath = pppib -> pib_pchenv;
while (*szPath) /* find end of process environment */
szPath = strchr(szPath, 0) + 1;
return szPath + 1; /* .exe file name follows environment */
- #else /* 16-bit, specific for MS C 6.00, note: requires large data model */
-
- extern char _far *_pgmptr;
- return _pgmptr;
-
- #endif
} /* end function GetLoadPath() */
--- 447,472 ----
char *GetLoadPath(void)
{
#ifdef __32BIT__ /* generic for 32-bit API */
PTIB pptib;
PPIB pppib;
char *szPath;
DosGetInfoBlocks(&pptib, &pppib);
szPath = pppib -> pib_pchenv;
+ #else /* 16-bit, note: requires large data model */
+ SEL selEnv;
+ USHORT offCmd;
+ char *szPath;
+
+ DosGetEnv(&selEnv, &offCmd);
+ szPath = MAKEP(selEnv, 0);
+ #endif
while (*szPath) /* find end of process environment */
szPath = strchr(szPath, 0) + 1;
return szPath + 1; /* .exe file name follows environment */
} /* end function GetLoadPath() */
***************
*** 680,686 ****
{
static USHORT nLastDrive=(USHORT)(-1), nResult;
ULONG lMap;
! BYTE bData[64], bName[3];
#ifdef __32BIT__
ULONG nDrive, cbData;
PFSQBUFFER2 pData = (PFSQBUFFER2) bData;
--- 678,685 ----
{
static USHORT nLastDrive=(USHORT)(-1), nResult;
ULONG lMap;
! BYTE bData[64];
! char bName[3];
#ifdef __32BIT__
ULONG nDrive, cbData;
PFSQBUFFER2 pData = (PFSQBUFFER2) bData;
***************
*** 689,698 ****
PFSQBUFFER pData = (PFSQBUFFER) bData;
#endif
- if ( _osmode == DOS_MODE )
- return TRUE;
- else
- {
/* We separate FAT and HPFS+other file systems here.
at the moment I consider other systems to be similar to HPFS,
i.e. support long file names and case sensitive */
--- 688,693 ----
***************
*** 713,725 ****
cbData = sizeof(bData);
if ( !DosQueryFSAttach(bName, 0, FSAIL_QUERYNAME, (PVOID) pData, &cbData) )
! nResult = !strcmp(pData -> szFSDName + pData -> cbName, "FAT");
else
nResult = FALSE;
/* End of this ugly code */
return nResult;
- }
} /* end function IsFileSystemFAT() */
--- 708,719 ----
cbData = sizeof(bData);
if ( !DosQueryFSAttach(bName, 0, FSAIL_QUERYNAME, (PVOID) pData, &cbData) )
! nResult = !strcmp((char *) (pData -> szFSDName) + pData -> cbName, "FAT");
else
nResult = FALSE;
/* End of this ugly code */
return nResult;
} /* end function IsFileSystemFAT() */
***************
*** 1398,1404 ****
ULONG action;
#else
USHORT rc;
! UINT action;
#endif
--- 1392,1398 ----
ULONG action;
#else
USHORT rc;
! USHORT action;
#endif
***************
*** 1579,1597 ****
eaop.fpGEAList = NULL;
eaop.oError = 0;
! strcpy(fealst.szName, ".LONGNAME");
! strcpy(fealst.szValue, longname);
! fealst.cbList = sizeof(fealst) - CCHMAXPATH + strlen(fealst.szValue);
! fealst.cbName = (BYTE) strlen(fealst.szName);
! fealst.cbValue = sizeof(USHORT) * 2 + strlen(fealst.szValue);
#ifdef __32BIT__
fealst.oNext = 0;
#endif
fealst.fEA = 0;
fealst.eaType = 0xFFFD;
! fealst.eaSize = strlen(fealst.szValue);
return DosSetPathInfo(name, FIL_QUERYEASIZE,
(PBYTE) &eaop, sizeof(eaop), 0);
--- 1573,1591 ----
eaop.fpGEAList = NULL;
eaop.oError = 0;
! strcpy((char *) fealst.szName, ".LONGNAME");
! strcpy((char *) fealst.szValue, longname);
! fealst.cbList = sizeof(fealst) - CCHMAXPATH + strlen((char *) fealst.szValue);
! fealst.cbName = (BYTE) strlen((char *) fealst.szName);
! fealst.cbValue = sizeof(USHORT) * 2 + strlen((char *) fealst.szValue);
#ifdef __32BIT__
fealst.oNext = 0;
#endif
fealst.fEA = 0;
fealst.eaType = 0xFFFD;
! fealst.eaSize = strlen((char *) fealst.szValue);
return DosSetPathInfo(name, FIL_QUERYEASIZE,
(PBYTE) &eaop, sizeof(eaop), 0);
***************
*** 1880,1886 ****
if (!bInitialized)
InitNLS();
! for ( szPtr = szArg; *szPtr; szPtr++ )
*szPtr = cLowerCase[*szPtr];
return szArg;
}
--- 1874,1880 ----
if (!bInitialized)
InitNLS();
! for ( szPtr = (unsigned char *) szArg; *szPtr; szPtr++ )
*szPtr = cLowerCase[*szPtr];
return szArg;
}
diff -cbr unzip/unzip.h unzip-2/unzip.h
*** unzip/unzip.h Sun Jul 31 20:09:44 1994
--- unzip-2/unzip.h Tue Aug 02 11:48:56 1994
***************
*** 437,447 ****
--- 437,449 ----
#endif
#ifdef __WATCOMC__
+ # ifdef __386__
# define __32BIT__
# undef far
# define far
# undef near
# define near
+ # endif
# define PIPE_ERROR (errno == -1)
#endif
***************
*** 770,776 ****
#endif
/* GRR: NT defines MSDOS?? */
! #if (!defined(MSDOS) && !defined(__IBMC__)) || defined(NT)
# define near
# define far
#endif
--- 772,778 ----
#endif
/* GRR: NT defines MSDOS?? */
! #if (!defined(MSDOS) && !defined(__IBMC__) && defined(__32BIT__)) || defined(NT)
# define near
# define far
#endif