Thread View: gnu.gcc.bug
1 messages
1 total messages
Started by Glen Herrmannsfeldt
Mon, 20 Jul 1992 16:36
fifth try
Author: Glen Herrmannsfeldt
Date: Mon, 20 Jul 1992 16:36
Date: Mon, 20 Jul 1992 16:36
1152 lines
35731 bytes
35731 bytes
Fifth try at this bug report.
In trying to help track this down, and with the availability of
source code for libgcc, I got from getc to __srget, to __makebuf,
to fstat, and finally to Dos32QueryFileInfo, the OS/2 routine.
The program shown below has the same effect as the original.
As I do not yet have the official IBM documentation, I do not
know if the problem is in the calling sequence or in Dos32QueryFileInfo
itself.
Bug report for gcc version 2.1 for the Intel 386 under OS/2 2.0
I compiled it with
gcc -c why4.c
and linked with
link386 why4;
I am running OS/2 2.0 on a 33 MHz, 80486 clone machine.
Linking with link836 version 2.00.000.
I installed the compiler from the ZOO distribution from hobbes.nmsu.edu
I made no changes to the distributed files, and set my environment
variables, following the new-vars.cmd, modified to the actual
disk partition where gcc was installed.
Calling getchar(), with stdin redirected to a file,
clobbers the variables stored after __textbuf in
memory. This problem was traced to this point by finding which
statement clobbered the static variable. It turned out to
contain getchar(). Then I found that the clobbered variable was
immediately after __textbuf in the link map.
Looking through the distributed lib source, it would seem
that getchar, or getc(stdin) calls __srget, which calls __makebuf,
which calls fstat, which calls Dos32QueryFileInfo.
I am using the HPFS file system, which may affect
the st_blksize value.
OK, here is a program which demonstrates the problem, after
processing with
gcc -E why4.c | grep -v ^$
In stdio, __textbuf is dimensioned 8096, and therefore one should
not expect bytes after 8096 to change. This program demonstates
that they do.
It should be run as
why4 <somefile
and as
why4 x <somefile
When an argument is supplied, Dos32QueryFileInfo is not called,
and __textbuf does not get clobbered.
With no argument, __textbuf is clobbered.
Note that increasing the size of __textbuf in this sample program
shifts the clobber point down by an equivalent amount. This,
in fact, contradicts my previous assertion that it is __textbuf
that is doing the clobbering.
Here is the sample program, before running through gcc -E.
#define INCL_DOSFILEMGR
#define INCL_DOSERRORS
#include <os2.h>
#include <stdio.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
ULONG Dos32QueryFileInfo() asm ("Dos32QueryFileInfo");
unsigned char __textbuf[50000];
main(argc)
int argc;
{
int i,j;
char c;
struct stat st;
FILESTATUS fs;
ULONG rc;
struct tm tim;
ULONG HandType;
ULONG FlagWord;
if(argc==1) rc = Dos32QueryFileInfo (0, 1, (PBYTE)&fs, sizeof (FILESTATUS));
for(j=8097;j<50000;j++) if(__textbuf[j]) printf("%d %02x\n",j,__textbuf[j]);
}
Here is the sample program, after running through
gcc -E why4.c | grep -v ^$ >why4.out
(The grep is to remove the large number of blank lines that
otherwise appear in cpp output.)
# 1 "why4.c"
# 1 "E:/GNU/OS2-INCLUDE/os2.h" 1 3
# 1 "E:/GNU/OS2-INCLUDE/os2def.h" 1 3
typedef unsigned short BOOL;
typedef unsigned long BOOL32;
typedef unsigned char BYTE;
typedef void *HSEM;
typedef HSEM *PHSEM;
typedef void *LHANDLE;
typedef BYTE *NPBYTE;
typedef unsigned char *NPCH;
typedef int _NPFN();
typedef _NPFN *NPFN;
typedef unsigned char *NPSZ;
typedef BOOL *PBOOL;
typedef BOOL32 *PBOOL32;
typedef BYTE *PBYTE;
typedef unsigned char *PCH;
typedef char *PCHAR;
typedef int _PFN();
typedef _PFN *PFN;
typedef int *PINT;
typedef long *PLONG;
typedef short *PSHORT;
typedef unsigned char *PSZ;
typedef void *PVOID;
typedef unsigned short SEL;
typedef unsigned long SHANDLE;
typedef unsigned char UCHAR;
typedef unsigned int UINT;
typedef unsigned long ULONG;
typedef unsigned short USHORT;
typedef ULONG ERRORID;
typedef ERRORID *PERRORID;
typedef long COLOR;
typedef LHANDLE HAB;
typedef LHANDLE HBITMAP;
typedef LHANDLE HDC;
typedef LHANDLE HMF;
typedef SHANDLE HMODULE;
typedef LHANDLE HPAL;
typedef LHANDLE HPS;
typedef LHANDLE HRGN;
typedef LHANDLE HWND;
typedef COLOR *PCOLOR;
typedef HAB *PHAB;
typedef HBITMAP *PHBITMAP;
typedef HDC *PHDC;
typedef HMF *PHMF;
typedef HMODULE *PHMODULE;
typedef HPAL *PHPAL;
typedef HPS *PHPS;
typedef HRGN *PHRGN;
typedef HWND *PHWND;
typedef SHANDLE PID;
typedef PID *PPID;
typedef PVOID *PPVOID;
typedef SEL *PSEL;
typedef UCHAR *PUCHAR;
typedef UINT *PUINT;
typedef ULONG *PULONG;
typedef USHORT *PUSHORT;
typedef USHORT SGID;
typedef char STR8[8];
typedef SHANDLE TID;
typedef STR8 *PSTR8;
typedef TID *PTID;
typedef struct _DRIVDATA {
long cb;
long lVersion;
char szDeviceName[32];
char abGeneralData[1];
} DRIVDATA, *PDRIVDATA;
typedef struct _DEVOPENSTRUC {
PSZ pszLogAddress;
PSZ pszDriverName;
PDRIVDATA pdriv;
PSZ pszDataType;
PSZ pszComment;
PSZ pszQueueProcName;
PSZ pszQueueProcParams;
PSZ pszSpoolerParams;
PSZ pszNetworkParams;
} DEVOPENSTRUC, *PDEVOPENSTRUC;
typedef struct _FATTRS {
USHORT usRecordLength;
USHORT fsSelection;
long lMatch;
char szFacename[32 ];
USHORT idRegistry;
USHORT usCodePage;
long lMaxBaselineExt;
long lAveCharWidth;
USHORT fsType;
USHORT fsFontUse;
} FATTRS, *PFATTRS;
typedef struct _PANOSE {
BYTE bFamilyType;
BYTE bSerifStyle;
BYTE bWeight;
BYTE bProportion;
BYTE bContrast;
BYTE bStrokeVariation;
BYTE bArmStyle;
BYTE bLetterform;
BYTE bMidline;
BYTE bXHeight;
BYTE abReserved[2];
} PANOSE;
typedef struct _POINTL {
long x;
long y;
} POINTL, *PPOINTL, *NPPOINTL;
typedef struct _POINTS {
short x;
short y;
} POINTS, *PPOINTS;
typedef struct _QWORD {
ULONG ulLo;
ULONG ulHi;
} QWORD, *PQWORD;
typedef struct _RECTL {
long xLeft;
long yBottom;
long xRight;
long yTop;
} RECTL, *PRECTL, *NPRECTL;
typedef struct _FONTMETRICS {
char szFamilyname[32 ];
char szFacename[32 ];
USHORT idRegistry;
USHORT usCodePage;
long lEmHeight;
long lXHeight;
long lMaxAscender;
long lMaxDescender;
long lLowerCaseAscent;
long lLowerCaseDescent;
long lInternalLeading;
long lExternalLeading;
long lAveCharWidth;
long lMaxCharInc;
long lEmInc;
long lMaxBaselineExt;
short sCharSlope;
short sInlineDir;
short sCharRot;
USHORT usWeightClass;
USHORT usWidthClass;
short sXDeviceRes;
short sYDeviceRes;
short sFirstChar;
short sLastChar;
short sDefaultChar;
short sBreakChar;
short sNominalPointSize;
short sMinimumPointSize;
short sMaximumPointSize;
USHORT fsType;
USHORT fsDefn;
USHORT fsSelection;
USHORT fsCapabilities;
long lSubscriptXSize;
long lSubscriptYSize;
long lSubscriptXOffset;
long lSubscriptYOffset;
long lSuperscriptXSize;
long lSuperscriptYSize;
long lSuperscriptXOffset;
long lSuperscriptYOffset;
long lUnderscoreSize;
long lUnderscorePosition;
long lStrikeoutSize;
long lStrikeoutPosition;
short sKerningPairs;
short sFamilyClass;
long lMatch;
PANOSE panose;
} FONTMETRICS, *PFONTMETRICS;
typedef struct _WPOINT {
short x;
short dummy1;
short y;
short dummy2;
} WPOINT, *PWPOINT, *NPWPOINT;
typedef struct _WRECT {
short xLeft;
short dummy1;
short yBottom;
short dummy2;
short xRight;
short dummy3;
short yTop;
short dummy4;
} WRECT, *PWRECT, *NPWRECT;
# 1 "E:/GNU/OS2-INCLUDE/os2.h" 2 3
# 1 "E:/GNU/OS2-INCLUDE/bse.h" 1 3
# 1 "E:/GNU/OS2-INCLUDE/bsedos.h" 1 3
# 19 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
ULONG DosBeep(ULONG, ULONG) asm ("DosBeep");
ULONG DosExit(ULONG, ULONG) asm ("DosExit");
# 107 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
#pragma pack(1)
typedef struct _DENA1 {
UCHAR reserved;
UCHAR cbName;
USHORT cbValue;
UCHAR szName[1];
} DENA1, *PDENA1;
#pragma pack(4)
typedef struct _EASIZEBUF {
USHORT cbMaxEASize;
ULONG cbMaxEAListSize;
} EASIZEBUF, *PEASIZEBUF;
typedef struct _FDATE {
UINT day :5;
UINT month :4;
UINT year :7;
} FDATE, *PFDATE;
typedef struct _FEA {
BYTE fEA;
BYTE cbName;
USHORT cbValue;
} FEA, *PFEA;
#pragma pack(1)
typedef struct _FEA2 {
ULONG oNextEntryOffset;
BYTE fEA;
BYTE cbName;
USHORT cbValue;
char szName[1];
} FEA2, *PFEA2;
typedef FEA2 DENA2;
typedef PFEA2 PDENA2;
typedef struct _FEA2LIST {
ULONG cbList;
FEA2 list[1];
} FEA2LIST, *PFEA2LIST;
#pragma pack(4)
typedef struct _FEALIST {
ULONG cbList;
FEA list[1];
} FEALIST, *PFEALIST;
typedef struct _FILELOCK {
long lOffset;
long lRange;
} FILELOCK, *PFILELOCK;
typedef struct _FSALLOCATE {
ULONG idFileSystem;
ULONG cSectorUnit;
ULONG cUnit;
ULONG cUnitAvail;
USHORT cbSector;
} FSALLOCATE, *PFSALLOCATE;
typedef struct _FSQBUFFER {
USHORT iType;
USHORT cbName;
UCHAR szName[1];
USHORT cbFSDName;
UCHAR szFSDName[1];
USHORT cbFSAData;
UCHAR rgFSAData[1];
} FSQBUFFER, *PFSQBUFFER;
typedef struct _FSQBUFFER2 {
USHORT iType;
USHORT cbName;
USHORT cbFSDName;
USHORT cbFSAData;
UCHAR szName[1];
UCHAR szFSDName[1];
UCHAR rgFSAData[1];
} FSQBUFFER2, *PFSQBUFFER2;
typedef struct _FTIME {
UINT twosecs :5;
UINT minutes :6;
UINT hours :5;
} FTIME, *PFTIME;
typedef struct _FILEFINDBUF {
FDATE fdateCreation;
FTIME ftimeCreation;
FDATE fdateLastAccess;
FTIME ftimeLastAccess;
FDATE fdateLastWrite;
FTIME ftimeLastWrite;
ULONG cbFile;
ULONG cbFileAlloc;
USHORT attrFile;
UCHAR cchName;
char achName[ 256 ];
} FILEFINDBUF, *PFILEFINDBUF;
#pragma pack(2)
typedef struct _FILEFINDBUF2 {
FDATE fdateCreation;
FTIME ftimeCreation;
FDATE fdateLastAccess;
FTIME ftimeLastAccess;
FDATE fdateLastWrite;
FTIME ftimeLastWrite;
ULONG cbFile;
ULONG cbFileAlloc;
USHORT attrFile;
ULONG cbList;
UCHAR cchName;
char achName[ 256 ];
} FILEFINDBUF2, *PFILEFINDBUF2;
#pragma pack(4)
typedef struct _FILEFINDBUF3 {
ULONG oNextEntryOffset;
FDATE fdateCreation;
FTIME ftimeCreation;
FDATE fdateLastAccess;
FTIME ftimeLastAccess;
FDATE fdateLastWrite;
FTIME ftimeLastWrite;
ULONG cbFile;
ULONG cbFileAlloc;
ULONG attrFile;
UCHAR cchName;
char achName[ 256 ];
} FILEFINDBUF3, *PFILEFINDBUF3;
typedef struct _FILEFINDBUF4 {
ULONG oNextEntryOffset;
FDATE fdateCreation;
FTIME ftimeCreation;
FDATE fdateLastAccess;
FTIME ftimeLastAccess;
FDATE fdateLastWrite;
FTIME ftimeLastWrite;
ULONG cbFile;
ULONG cbFileAlloc;
ULONG attrFile;
ULONG cbList;
UCHAR cchName;
char achName[ 256 ];
} FILEFINDBUF4, *PFILEFINDBUF4;
typedef struct _FILESTATUS {
FDATE fdateCreation;
FTIME ftimeCreation;
FDATE fdateLastAccess;
FTIME ftimeLastAccess;
FDATE fdateLastWrite;
FTIME ftimeLastWrite;
ULONG cbFile;
ULONG cbFileAlloc;
USHORT attrFile;
} FILESTATUS, *PFILESTATUS;
typedef struct _FILESTATUS2 {
FDATE fdateCreation;
FTIME ftimeCreation;
FDATE fdateLastAccess;
FTIME ftimeLastAccess;
FDATE fdateLastWrite;
FTIME ftimeLastWrite;
ULONG cbFile;
ULONG cbFileAlloc;
USHORT attrFile;
ULONG cbList;
} FILESTATUS2, *PFILESTATUS2;
typedef struct _FILESTATUS3 {
FDATE fdateCreation;
FTIME ftimeCreation;
FDATE fdateLastAccess;
FTIME ftimeLastAccess;
FDATE fdateLastWrite;
FTIME ftimeLastWrite;
ULONG cbFile;
ULONG cbFileAlloc;
ULONG attrFile;
} FILESTATUS3, *PFILESTATUS3;
typedef struct _FILESTATUS4 {
FDATE fdateCreation;
FTIME ftimeCreation;
FDATE fdateLastAccess;
FTIME ftimeLastAccess;
FDATE fdateLastWrite;
FTIME ftimeLastWrite;
ULONG cbFile;
ULONG cbFileAlloc;
ULONG attrFile;
ULONG cbList;
} FILESTATUS4, *PFILESTATUS4;
typedef struct _GEA {
BYTE cbName;
char szName[1];
} GEA, *PGEA;
#pragma pack(1)
typedef struct _GEA2 {
ULONG oNextEntryOffset;
BYTE cbName;
char szName[1];
} GEA2, *PGEA2;
typedef struct _GEA2LIST {
ULONG cbList;
GEA2 list[1];
} GEA2LIST, *PGEA2LIST;
#pragma pack(4)
typedef struct _GEALIST {
ULONG cbList;
GEA list[1];
} GEALIST, *PGEALIST;
typedef struct _EAOP {
PGEALIST fpGEAList;
PFEALIST fpFEAList;
ULONG oError;
} EAOP, *PEAOP;
#pragma pack(1)
typedef struct _EAOP2 {
PGEA2LIST fpGEA2List;
PFEA2LIST fpFEA2List;
ULONG oError;
} EAOP2, *PEAOP2;
#pragma pack(4)
typedef SHANDLE HDIR;
typedef HDIR *PHDIR;
typedef ULONG HEV;
typedef HEV *PHEV;
typedef SHANDLE HFILE;
typedef HFILE *PHFILE;
typedef struct _SPOOLATTACH {
USHORT hNmPipe;
ULONG ulKey;
} SPOOLATTACH, *PSPOOLATTACH;
typedef struct _VOLUMELABEL {
BYTE cch;
char szVolLabel[12];
} VOLUMELABEL, *PVOLUMELABEL;
typedef struct _FSINFO {
FDATE fdateCreation;
FTIME ftimeCreation;
VOLUMELABEL vol;
} FSINFO, *PFSINFO;
ULONG DosCancelLockRequest(HFILE, PFILELOCK) asm ("DosCancelLockRequest");
ULONG DosClose(HFILE) asm ("DosClose");
ULONG DosCopy(PSZ, PSZ, ULONG) asm ("DosCopy");
ULONG DosCreateDir(PSZ, PEAOP2) asm ("DosCreateDir");
ULONG DosDelete(PSZ) asm ("DosDelete");
ULONG DosDeleteDir(PSZ) asm ("DosDeleteDir");
ULONG DosDupHandle(HFILE, PHFILE) asm ("DosDupHandle");
ULONG DosEditName(ULONG, PSZ, PSZ, PBYTE, ULONG) asm ("DosEditName");
ULONG DosEnumAttribute(ULONG, PVOID, ULONG, PVOID, ULONG, PULONG, ULONG) asm ("DosEnumAttribute");
ULONG DosFileIO(HFILE, PVOID, ULONG, PLONG) asm ("DosFileIO");
ULONG DosFindClose(HDIR) asm ("DosFindClose");
ULONG DosFindFirst(PSZ, PHDIR, ULONG, PVOID, ULONG, PULONG, ULONG) asm ("DosFindFirst");
ULONG DosFindNext(HDIR, PVOID, ULONG, PULONG) asm ("DosFindNext");
ULONG DosFSAttach(PSZ, PSZ, PVOID, ULONG, ULONG) asm ("DosFSAttach");
ULONG DosMove(PSZ, PSZ) asm ("DosMove");
ULONG DosOpen(PSZ, PHFILE, PULONG, ULONG, ULONG, ULONG, ULONG, PEAOP2) asm ("DosOpen");
ULONG DosFSCtl(PVOID, ULONG, PULONG, PVOID, ULONG, PULONG, ULONG, PSZ, HFILE, ULONG) asm ("DosFSCtl");
ULONG DosQueryCurrentDir(ULONG, PBYTE, PULONG) asm ("DosQueryCurrentDir");
ULONG DosQueryCurrentDisk(PULONG, PULONG) asm ("DosQueryCurrentDisk");
ULONG DosQueryFHState(HFILE, PULONG) asm ("DosQueryFHState");
ULONG DosQueryFileInfo(HFILE, ULONG, PVOID, ULONG) asm ("DosQueryFileInfo");
ULONG DosQueryFSAttach(PSZ, ULONG, ULONG, PFSQBUFFER2, PULONG) asm ("DosQueryFSAttach");
ULONG DosQueryFSInfo(ULONG, ULONG, PVOID, ULONG) asm ("DosQueryFSInfo");
ULONG DosQueryHType(HFILE, PULONG, PULONG) asm ("DosQueryHType");
ULONG DosQueryPathInfo(PSZ, ULONG, PVOID, ULONG) asm ("DosQueryPathInfo");
ULONG DosQueryVerify(PBOOL32) asm ("DosQueryVerify");
ULONG DosRead(HFILE, PVOID, ULONG, PULONG) asm ("DosRead");
ULONG DosResetBuffer(HFILE) asm ("DosResetBuffer");
ULONG DosSetCurrentDir(PSZ) asm ("DosSetCurrentDir");
ULONG DosSetDefaultDisk(ULONG) asm ("DosSetDefaultDisk");
ULONG DosSetFHState(HFILE, ULONG) asm ("DosSetFHState");
ULONG DosSetFileInfo(HFILE, ULONG, PVOID, ULONG) asm ("DosSetFileInfo");
ULONG DosSetFileLocks(HFILE, PFILELOCK, PFILELOCK, PHEV, ULONG, PULONG) asm ("DosSetFileLocks");
ULONG DosSetFilePtr(HFILE, long , ULONG, PULONG) asm ("DosSetFilePtr");
ULONG DosSetFileSize(HFILE, ULONG) asm ("DosSetFileSize");
ULONG DosSetFSInfo(ULONG, ULONG, PVOID, ULONG) asm ("DosSetFSInfo");
ULONG DosSetMaxFH(ULONG) asm ("DosSetMaxFH");
ULONG DosSetPathInfo(PSZ, ULONG, PVOID, ULONG, ULONG) asm ("DosSetPathInfo");
ULONG DosSetRelMaxFH(PLONG, PULONG) asm ("DosSetRelMaxFH");
ULONG DosSetVerify(BOOL32) asm ("DosSetVerify");
ULONG DosShutdown(ULONG) asm ("DosShutdown");
ULONG DosWrite(HFILE, PVOID, ULONG, PULONG) asm ("DosWrite");
ULONG DosAllocMem(PPVOID, ULONG, ULONG) asm ("DosAllocMem");
ULONG DosAllocSharedMem(PPVOID, PSZ, ULONG, ULONG) asm ("DosAllocSharedMem");
ULONG DosFreeMem(PVOID) asm ("DosFreeMem");
ULONG DosGetNamedSharedMem(PPVOID, PSZ, ULONG) asm ("DosGetNamedSharedMem");
ULONG DosGetSharedMem(PVOID, ULONG) asm ("DosGetSharedMem");
ULONG DosGiveSharedMem(PVOID, PID, ULONG) asm ("DosGiveSharedMem");
ULONG DosQueryMem(PVOID, PULONG, PULONG) asm ("DosQueryMem");
ULONG DosSetMem(PVOID, ULONG, ULONG) asm ("DosSetMem");
ULONG DosSubAllocMem(PVOID, PPVOID, ULONG) asm ("DosSubAllocMem");
ULONG DosSubFreeMem(PVOID, PVOID, ULONG) asm ("DosSubFreeMem");
ULONG DosSubSetMem(PVOID, ULONG, ULONG) asm ("DosSubSetMem");
ULONG DosSubUnsetMem(PVOID) asm ("DosSubUnsetMem");
# 1 "E:/GNU/OS2-INCLUDE/bsememf.h" 1 3
# 564 "E:/GNU/OS2-INCLUDE/bsedos.h" 2 3
typedef struct _PSEMRECORD {
HSEM hsemCur;
ULONG ulUser;
} SEMRECORD, *PSEMRECORD;
# 626 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
typedef struct _DATETIME {
UCHAR hours;
UCHAR minutes;
UCHAR seconds;
UCHAR hundredths;
UCHAR day;
UCHAR month;
USHORT year;
short timezone;
UCHAR weekday;
} DATETIME, *PDATETIME;
ULONG DosGetDateTime(PDATETIME) asm ("DosGetDateTime");
ULONG DosSetDateTime(PDATETIME) asm ("DosSetDateTime");
# 657 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
# 671 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
# 741 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
# 760 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
# 790 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
# 839 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
# 914 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
# 967 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
# 1048 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
# 1073 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
# 1086 "E:/GNU/OS2-INCLUDE/bsedos.h" 3
# 8 "E:/GNU/OS2-INCLUDE/bse.h" 2 3
# 1 "E:/GNU/OS2-INCLUDE/bseerr.h" 1 3
# 14 "E:/GNU/OS2-INCLUDE/bse.h" 2 3
# 4 "E:/GNU/OS2-INCLUDE/os2.h" 2 3
# 1 "E:/GNU/OS2-INCLUDE/pm.h" 1 3
# 13 "E:/GNU/OS2-INCLUDE/pm.h" 3
# 1 "E:/GNU/OS2-INCLUDE/pmwin.h" 1 3
# 65 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
typedef HMODULE HLIB;
typedef PHMODULE PHLIB;
typedef LHANDLE HPOINTER;
typedef void *MPARAM;
typedef MPARAM *PMPARAM;
typedef void *MRESULT;
typedef MRESULT *PMRESULT;
typedef MRESULT FNWP(HWND, USHORT, MPARAM, MPARAM);
typedef FNWP *PFNWP;
typedef struct _SWP {
ULONG fl;
short cy;
short cx;
short y;
short x;
HWND hwndInsertBehind;
HWND hwnd;
ULONG ulReserved1;
ULONG ulReserved2;
} SWP, *PSWP;
HWND WinCreateWindow(HWND, PSZ, PSZ, ULONG, short , short , short , short , HWND, HWND, USHORT, PVOID, PVOID) asm ("WinCreateWindow");
BOOL WinDrawBitmap(HPS, HBITMAP, PRECTL, PPOINTL, long , long , USHORT) asm ("WinDrawBitmap");
BOOL WinDrawBorder(HPS, PRECTL, short , short , long , long , ULONG) asm ("WinDrawBorder");
short WinDrawText(HPS, short , PCH, PRECTL, long , long , ULONG) asm ("WinDrawText");
BOOL WinEnableWindow(HWND, BOOL) asm ("WinEnableWindow");
BOOL WinEnableWindowUpdate(HWND, BOOL) asm ("WinEnableWindowUpdate");
BOOL WinInvalidateRect(HWND, PRECTL, USHORT) asm ("WinInvalidateRect");
BOOL WinInvalidateRegion(HWND, HRGN, USHORT) asm ("WinInvalidateRegion");
BOOL WinInvertRect(HPS, PRECTL) asm ("WinInvertRect");
BOOL WinIsChild(HWND, HWND) asm ("WinIsChild");
BOOL WinIsWindow(HAB, HWND) asm ("WinIsWindow");
BOOL WinIsWindowEnabled(HWND) asm ("WinIsWindowEnabled");
BOOL WinIsWindowVisible(HWND) asm ("WinIsWindowVisible");
short WinLoadMessage(HAB, HMODULE, USHORT, short , PSZ) asm ("WinLoadMessage");
short WinLoadString(HAB, HMODULE, USHORT, short , PSZ) asm ("WinLoadString");
short WinMultWindowFromIDs(HWND, PHWND, USHORT, USHORT) asm ("WinMultWindowFromIDs");
HWND WinQueryDesktopWindow(HAB, HDC) asm ("WinQueryDesktopWindow");
HWND WinQueryObjectWindow(HWND) asm ("WinQueryObjectWindow");
HWND WinQueryWindow(HWND, short ) asm ("WinQueryWindow");
BOOL WinQueryWindowPos(HWND, PSWP) asm ("WinQueryWindowPos");
BOOL WinQueryWindowProcess(HWND, PPID, PTID) asm ("WinQueryWindowProcess");
short WinQueryWindowText(HWND, short , PCH) asm ("WinQueryWindowText");
short WinQueryWindowTextLength(HWND) asm ("WinQueryWindowTextLength");
BOOL WinSetMultWindowPos(HAB, PSWP, USHORT) asm ("WinSetMultWindowPos");
BOOL WinSetOwner(HWND, HWND) asm ("WinSetOwner");
BOOL WinSetParent(HWND, HWND, BOOL) asm ("WinSetParent");
BOOL WinSetWindowPos(HWND, HWND, short , short , short , short , ULONG) asm ("WinSetWindowPos");
BOOL WinSetWindowText(HWND, PSZ) asm ("WinSetWindowText");
BOOL WinUpdateWindow(HWND) asm ("WinUpdateWindow");
HWND WinWindowFromID(HWND, USHORT) asm ("WinWindowFromID");
typedef struct _QVERSDATA {
USHORT environment;
USHORT version;
} QVERSDATA, *PQVERSDATA;
HPS WinBeginPaint(HWND, HPS, PRECTL) asm ("WinBeginPaint");
MRESULT WinDefWindowProc(HWND, USHORT, MPARAM, MPARAM) asm ("WinDefWindowProc");
BOOL WinDestroyWindow(HWND) asm ("WinDestroyWindow");
BOOL WinEndPaint(HPS) asm ("WinEndPaint");
BOOL WinFillRect(HPS, PRECTL, long ) asm ("WinFillRect");
HPS WinGetClipPS(HWND, HWND, USHORT) asm ("WinGetClipPS");
HPS WinGetPS(HWND) asm ("WinGetPS");
HAB WinInitialize(USHORT) asm ("WinInitialize");
BOOL WinIsWindowShowing(HWND) asm ("WinIsWindowShowing");
HDC WinOpenWindowDC(HWND) asm ("WinOpenWindowDC");
HAB WinQueryAnchorBlock(HWND) asm ("WinQueryAnchorBlock");
ULONG WinQueryVersion(HAB) asm ("WinQueryVersion");
BOOL WinQueryWindowRect(HWND, PRECTL) asm ("WinQueryWindowRect");
BOOL WinRegisterClass(HAB, PSZ, PFNWP, ULONG, USHORT) asm ("WinRegisterClass");
BOOL WinReleasePS(HPS) asm ("WinReleasePS");
short WinScrollWindow(HWND, short , short , PRECTL, PRECTL, HRGN, PRECTL, USHORT) asm ("WinScrollWindow");
BOOL WinShowWindow(HWND, BOOL) asm ("WinShowWindow");
BOOL WinTerminate(HAB) asm ("WinTerminate");
BOOL WinSetActiveWindow(HWND, HWND) asm ("WinSetActiveWindow");
# 391 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
typedef LHANDLE HMQ;
typedef struct _MQINFO {
USHORT cb;
PID pid;
TID tid;
USHORT cmsgs;
PVOID pReserved;
} MQINFO, *PMQINFO;
typedef struct _QMSG {
HWND hwnd;
USHORT msg;
MPARAM mp1;
MPARAM mp2;
ULONG time;
POINTL ptl;
} QMSG, *PQMSG;
BOOL WinCancelShutdown(HMQ, BOOL) asm ("WinCancelShutdown");
HMQ WinCreateMsgQueue(HAB, short ) asm ("WinCreateMsgQueue");
BOOL WinDestroyMsgQueue(HMQ) asm ("WinDestroyMsgQueue");
MRESULT WinDispatchMsg(HAB, PQMSG) asm ("WinDispatchMsg");
BOOL WinGetMsg(HAB, PQMSG, HWND, USHORT, USHORT) asm ("WinGetMsg");
BOOL WinPeekMsg(HAB, PQMSG, HWND, USHORT, USHORT, USHORT) asm ("WinPeekMsg");
BOOL WinPostMsg(HWND, USHORT, MPARAM, MPARAM) asm ("WinPostMsg");
BOOL WinQueryQueueInfo(HMQ, PMQINFO, USHORT) asm ("WinQueryQueueInfo");
BOOL WinRegisterUserDatatype(HAB, short , short , PSHORT) asm ("WinRegisterUserDatatype");
BOOL WinRegisterUserMsg(HAB, USHORT, short , short , short , short , short ) asm ("WinRegisterUserMsg");
MRESULT WinSendMsg(HWND, USHORT, MPARAM, MPARAM) asm ("WinSendMsg");
BOOL WinSetMsgMode(HAB, PSZ, short ) asm ("WinSetMsgMode");
BOOL WinSetSynchroMode(HAB, short ) asm ("WinSetSynchroMode");
# 595 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
BOOL WinFocusChange(HWND, HWND, USHORT) asm ("WinFocusChange");
BOOL WinSetFocus(HWND, HWND) asm ("WinSetFocus");
# 748 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
BOOL WinAlarm(HWND, USHORT) asm ("WinAlarm");
MRESULT WinDefDlgProc(HWND, USHORT, MPARAM, MPARAM) asm ("WinDefDlgProc");
BOOL WinDismissDlg(HWND, USHORT) asm ("WinDismissDlg");
USHORT WinDlgBox(HWND, HWND, PFNWP, HMODULE, USHORT, PVOID) asm ("WinDlgBox");
HWND WinLoadDlg(HWND, HWND, PFNWP, HMODULE, USHORT, PVOID) asm ("WinLoadDlg");
USHORT WinMessageBox(HWND, HWND, PSZ, PSZ, USHORT, ULONG) asm ("WinMessageBox");
BOOL WinQueryDlgItemShort(HWND, USHORT, PSHORT, BOOL) asm ("WinQueryDlgItemShort");
USHORT WinQueryDlgItemText(HWND, USHORT, short , PSZ) asm ("WinQueryDlgItemText");
short WinQueryDlgItemTextLength(HWND, USHORT) asm ("WinQueryDlgItemTextLength");
BOOL WinSetDlgItemShort(HWND, USHORT, USHORT, BOOL) asm ("WinSetDlgItemShort");
BOOL WinSetDlgItemText(HWND, USHORT, PSZ) asm ("WinSetDlgItemText");
# 892 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 914 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 968 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1034 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1111 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1218 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1258 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
typedef struct _FRAMECDATA {
USHORT cb;
ULONG flCreateFlags;
HMODULE hmodResources;
USHORT idResources;
} FRAMECDATA, *PFRAMECDATA;
HWND WinCreateStdWindow(HWND, ULONG, PULONG, PSZ, PSZ, ULONG, HMODULE, USHORT, PHWND) asm ("WinCreateStdWindow");
# 1408 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1435 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1633 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1646 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1682 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1715 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1774 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1795 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
BOOL WinCreateCursor(HWND, short , short , short , short , USHORT, PRECTL) asm ("WinCreateCursor");
BOOL WinDestroyCursor(HWND) asm ("WinDestroyCursor");
BOOL WinShowCursor(HWND, BOOL) asm ("WinShowCursor");
# 1825 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1926 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1986 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1996 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 1 "E:/GNU/OS2-INCLUDE/pmshl.h" 1 3
typedef LHANDLE HINI;
typedef HINI *PHINI;
typedef LHANDLE HPROGRAM;
typedef HPROGRAM *PHPROGRAM;
typedef struct _PRFPROFILE {
ULONG cchUserName;
PSZ pszUserName;
ULONG cchSysName;
PSZ pszSysName;
} PRFPROFILE, *PPRFPROFILE;
typedef struct _XYWINSIZE {
short x;
short y;
short cx;
short cy;
USHORT fsWindow;
} XYWINSIZE, *PXYWINSIZE;
# 128 "E:/GNU/OS2-INCLUDE/pmshl.h" 3
typedef LHANDLE HSWITCH;
typedef HSWITCH *PHSWITCH;
typedef LHANDLE HAPP;
typedef struct _SWCNTRL {
HWND hwnd;
HWND hwndIcon;
HPROGRAM hprog;
PID idProcess;
USHORT idSession;
UCHAR uchVisibility;
UCHAR fbJump;
char szSwtitle[ 60 +1];
BYTE bProgType;
} SWCNTRL, *PSWCNTRL;
HSWITCH WinAddSwitchEntry(PSWCNTRL) asm ("WinAddSwitchEntry");
HAPP WinHAPPfromPID(USHORT) asm ("WinHAPPfromPID");
USHORT WinRemoveSwitchEntry(HSWITCH) asm ("WinRemoveSwitchEntry");
# 186 "E:/GNU/OS2-INCLUDE/pmshl.h" 3
# 215 "E:/GNU/OS2-INCLUDE/pmshl.h" 3
# 1998 "E:/GNU/OS2-INCLUDE/pmwin.h" 2 3
# 2018 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 2037 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 2048 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 2086 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 2166 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 2219 "E:/GNU/OS2-INCLUDE/pmwin.h" 3
# 15 "E:/GNU/OS2-INCLUDE/pm.h" 2 3
# 1 "E:/GNU/OS2-INCLUDE/pmgpi.h" 1 3
# 19 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
typedef long FIXED;
typedef USHORT FIXED114;
typedef USHORT FIXED88;
typedef FIXED *PFIXED;
#pragma pack(2)
typedef struct _SIZEL {
long cx;
long cy;
} SIZEL, *PSIZEL;
#pragma pack(4)
BOOL GpiAssociate(HPS, HDC) asm ("GpiAssociate");
HPS GpiCreatePS(HAB, HDC, PSIZEL, ULONG) asm ("GpiCreatePS");
BOOL GpiDestroyPS(HPS) asm ("GpiDestroyPS");
BOOL GpiErase(HPS) asm ("GpiErase");
HDC GpiQueryDevice(HPS) asm ("GpiQueryDevice");
BOOL GpiRestorePS(HPS, long ) asm ("GpiRestorePS");
long GpiSavePS(HPS) asm ("GpiSavePS");
# 124 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
# 149 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
# 191 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
# 216 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
# 268 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
# 293 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
# 352 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
BOOL GpiSetColor(HPS, long ) asm ("GpiSetColor");
long GpiQueryColor(HPS) asm ("GpiQueryColor");
long GpiBox(HPS, long , PPOINTL, long , long ) asm ("GpiBox");
BOOL GpiMove(HPS, PPOINTL) asm ("GpiMove");
long GpiLine(HPS, PPOINTL) asm ("GpiLine");
long GpiPolyLine(HPS, long , PPOINTL) asm ("GpiPolyLine");
BOOL GpiSetPattern(HPS, long ) asm ("GpiSetPattern");
long GpiQueryPattern(HPS) asm ("GpiQueryPattern");
BOOL GpiBeginArea(HPS, ULONG) asm ("GpiBeginArea");
long GpiEndArea(HPS) asm ("GpiEndArea");
long GpiCharString(HPS, long , PCH) asm ("GpiCharString");
long GpiCharStringAt(HPS, PPOINTL, long , PCH) asm ("GpiCharStringAt");
# 779 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
# 869 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
# 1 "E:/GNU/OS2-INCLUDE/pmbitmap.h" 1 3
# 178 "E:/GNU/OS2-INCLUDE/pmbitmap.h" 3
# 873 "E:/GNU/OS2-INCLUDE/pmgpi.h" 2 3
# 898 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
# 963 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
# 1027 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
# 1040 "E:/GNU/OS2-INCLUDE/pmgpi.h" 3
# 16 "E:/GNU/OS2-INCLUDE/pm.h" 2 3
# 1 "E:/GNU/OS2-INCLUDE/pmdev.h" 1 3
typedef PSZ *PDEVOPENDATA;
HMF DevCloseDC(HDC) asm ("DevCloseDC");
HDC DevOpenDC(HAB, long , PSZ, long , PDEVOPENDATA, HDC) asm ("DevOpenDC");
BOOL DevQueryCaps(HDC, long , long , PLONG) asm ("DevQueryCaps");
# 208 "E:/GNU/OS2-INCLUDE/pmdev.h" 3
# 17 "E:/GNU/OS2-INCLUDE/pm.h" 2 3
# 8 "E:/GNU/OS2-INCLUDE/os2.h" 2 3
# 3 "why4.c" 2
# 1 "E:/GNU/GCC-INCLUDE/stdio.h" 1 3
# 1 "E:/GNU/GCC-INCLUDE/sys/cdefs.h" 1 3
# 76 "E:/GNU/GCC-INCLUDE/sys/cdefs.h" 3
# 42 "E:/GNU/GCC-INCLUDE/stdio.h" 2 3
# 1 "E:/GNU/GCC-INCLUDE/machine/ansi.h" 1 3
# 44 "E:/GNU/GCC-INCLUDE/stdio.h" 2 3
typedef long unsigned int size_t;
typedef long fpos_t;
struct __sbuf {
unsigned char *_base;
int _size;
};
typedef struct __sFILE {
unsigned char *_p;
int _r;
int _w;
short _flags;
short _file;
struct __sbuf _bf;
int _lbfsize;
void *_cookie;
int (*_close) (void *) ;
int (*_read) (void *, char *, int) ;
fpos_t (*_seek) (void *, fpos_t, int) ;
int (*_write) (void *, const char *, int) ;
struct __sbuf _ub;
unsigned char *_up;
int _ur;
unsigned char _ubuf[3];
unsigned char _nbuf[1];
struct __sbuf _lb;
int _blksize;
int _offset;
} FILE;
extern FILE __sF[];
void clearerr (FILE *) ;
int fclose (FILE *) ;
int feof (FILE *) ;
int ferror (FILE *) ;
int fflush (FILE *) ;
int fgetc (FILE *) ;
int fgetpos (FILE *, fpos_t *) ;
char *fgets (char *, size_t, FILE *) ;
FILE *fopen (const char *, const char *) ;
int fprintf (FILE *, const char *, ...) ;
int fputc (int, FILE *) ;
int fputs (const char *, FILE *) ;
int fread (void *, size_t, size_t, FILE *) ;
FILE *freopen (const char *, const char *, FILE *) ;
int fscanf (FILE *, const char *, ...) ;
int fseek (FILE *, long, int) ;
int fsetpos (FILE *, const fpos_t *) ;
long ftell (const FILE *) ;
int fwrite (const void *, size_t, size_t, FILE *) ;
int getc (FILE *) ;
int getchar (void) ;
char *gets (char *) ;
extern int sys_nerr;
extern char *sys_errlist[];
void perror (const char *) ;
int printf (const char *, ...) ;
int putc (int, FILE *) ;
int putchar (int) ;
int puts (const char *) ;
int remove (const char *) ;
int rename (const char *, const char *) ;
void rewind (FILE *) ;
int scanf (const char *, ...) ;
void setbuf (FILE *, char *) ;
int setvbuf (FILE *, char *, int, size_t) ;
int sprintf (char *, const char *, ...) ;
int sscanf (char *, const char *, ...) ;
FILE *tmpfile (void) ;
char *tmpnam (char *) ;
int ungetc (int, FILE *) ;
int vfprintf (FILE *, const char *, char * ) ;
int vprintf (const char *, char * ) ;
int vsprintf (char *, const char *, char * ) ;
char *ctermid (char *) ;
FILE *fdopen (int, const char *) ;
int fileno (FILE *) ;
char *fgetline (FILE *, size_t *) ;
int fpurge (FILE *) ;
int getw (FILE *) ;
int pclose (FILE *) ;
FILE *popen (const char *, const char *) ;
int putw (int, FILE *) ;
void setbuffer (FILE *, char *, int) ;
int setlinebuf (FILE *) ;
char *tempnam (const char *, const char *) ;
int snprintf (char *, size_t, const char *, ...) ;
int vsnprintf (char *, size_t, const char *, char * ) ;
int vscanf (const char *, char * ) ;
int vsscanf (const char *, const char *, char * ) ;
FILE *funopen (const void *,
int (*)(void *, char *, int),
int (*)(void *, const char *, int),
fpos_t (*)(void *, fpos_t, int),
int (*)(void *)) ;
int __srget (FILE *) ;
int __svfscanf (FILE *, const char *, char * ) ;
int __swbuf (int, FILE *) ;
static inline int __sputc(int _c, FILE *_p) {
if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
return (*_p->_p++ = _c);
else
return (__swbuf(_c, _p));
}
# 331 "E:/GNU/GCC-INCLUDE/stdio.h" 3
# 4 "why4.c" 2
# 1 "E:/GNU/GCC-INCLUDE/time.h" 1 3
typedef unsigned long clock_t;
typedef long time_t;
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
long tm_gmtoff;
char *tm_zone;
};
char *asctime (const struct tm *) ;
clock_t clock (void) ;
char *ctime (const time_t *) ;
double difftime (time_t, time_t) ;
struct tm *gmtime (const time_t *) ;
struct tm *localtime (const time_t *) ;
time_t mktime (struct tm *) ;
size_t strftime (char *, size_t, const char *, const struct tm *) ;
time_t time (time_t *) ;
void tzset (void) ;
char *timezone (int, int) ;
void tzsetwall (void) ;
# 5 "why4.c" 2
# 1 "E:/GNU/GCC-INCLUDE/sys/types.h" 1 3
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef unsigned short ushort;
typedef char * caddr_t;
typedef long daddr_t;
typedef short dev_t;
typedef u_long ino_t;
typedef long off_t;
typedef u_short nlink_t;
typedef long swblk_t;
typedef long segsz_t;
typedef u_short uid_t;
typedef u_short gid_t;
typedef short pid_t;
typedef u_short mode_t;
typedef u_long fixpt_t;
typedef struct _uquad { u_long val[2]; } u_quad;
typedef struct _quad { long val[2]; } quad;
typedef long * qaddr_t;
# 1 "E:/GNU/GCC-INCLUDE/machine/types.h" 1 3
typedef struct _physadr {
int r[1];
} *physadr;
typedef struct label_t {
int val[6];
} label_t;
typedef u_long vm_offset_t;
typedef u_long vm_size_t;
# 71 "E:/GNU/GCC-INCLUDE/sys/types.h" 2 3
typedef long fd_mask;
typedef struct fd_set {
fd_mask fds_bits[(((256 )+(( (sizeof(fd_mask) * 8 ) )-1))/( (sizeof(fd_mask) * 8 ) )) ];
} fd_set;
# 132 "E:/GNU/GCC-INCLUDE/sys/types.h" 3
# 6 "why4.c" 2
# 1 "E:/GNU/GCC-INCLUDE/sys/stat.h" 1 3
struct stat
{
dev_t st_dev;
ino_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
off_t st_size;
time_t st_atime;
long st_spare1;
time_t st_mtime;
long st_spare2;
time_t st_ctime;
long st_spare3;
long st_blksize;
long st_blocks;
u_long st_flags;
u_long st_gen;
};
mode_t umask (mode_t) ;
int chmod (const char *, mode_t) ;
int fstat (int, struct stat *) ;
int mkdir (const char *, mode_t) ;
int mkfifo (const char *, mode_t) ;
int stat (const char *, struct stat *) ;
int fchmod (int, mode_t) ;
int lstat (const char *, struct stat *) ;
# 7 "why4.c" 2
ULONG Dos32QueryFileInfo() asm ("Dos32QueryFileInfo");
unsigned char __textbuf[50000];
main(argc)
int argc;
{
int i,j;
char c;
struct stat st;
FILESTATUS fs;
ULONG rc;
struct tm tim;
ULONG HandType;
ULONG FlagWord;
if(argc==1) rc = Dos32QueryFileInfo (0, 1, (PBYTE)&fs, sizeof (FILESTATUS));
for(j=8097;j<50000;j++) if(__textbuf[j]) printf("%d %02x\n",j,__textbuf[j]);
}
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads