diff options
Diffstat (limited to 'Build/source/extra/unzip/globals.c')
-rw-r--r-- | Build/source/extra/unzip/globals.c | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/Build/source/extra/unzip/globals.c b/Build/source/extra/unzip/globals.c deleted file mode 100644 index d795090b983..00000000000 --- a/Build/source/extra/unzip/globals.c +++ /dev/null @@ -1,204 +0,0 @@ -/*--------------------------------------------------------------------------- - - globals.c - - Routines to allocate and initialize globals, with or without threads. - - Contents: registerGlobalPointer() - deregisterGlobalPointer() - getGlobalPointer() - globalsCtor() - - ---------------------------------------------------------------------------*/ - - -#define UNZIP_INTERNAL -#include "unzip.h" - -#ifndef FUNZIP -/* initialization of sigs is completed at runtime so unzip(sfx) executable - * won't look like a zipfile - */ -char central_hdr_sig[4] = {0, 0, 0x01, 0x02}; -char local_hdr_sig[4] = {0, 0, 0x03, 0x04}; -char end_central_sig[4] = {0, 0, 0x05, 0x06}; -/* extern char extd_local_sig[4] = {0, 0, 0x07, 0x08}; NOT USED YET */ - -ZCONST char *fnames[2] = {"*", NULL}; /* default filenames vector */ -#endif - - -#ifndef REENTRANT - Uz_Globs G; -#else /* REENTRANT */ - -# ifndef USETHREADID - Uz_Globs *GG; -# else /* USETHREADID */ -# define THREADID_ENTRIES 0x40 - - int lastScan; - Uz_Globs *threadPtrTable[THREADID_ENTRIES]; - ulg threadIdTable [THREADID_ENTRIES] = { - 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* Make sure there are */ - 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* THREADID_ENTRIES 0s */ - 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 - }; - - static ZCONST char Far TooManyThreads[] = - "error: more than %d simultaneous threads.\n\ - Some threads are probably not calling DESTROYTHREAD()\n"; - static ZCONST char Far EntryNotFound[] = - "error: couldn't find global pointer in table.\n\ - Maybe somebody accidentally called DESTROYTHREAD() twice.\n"; - static ZCONST char Far GlobalPointerMismatch[] = - "error: global pointer in table does not match pointer passed as\ - parameter\n"; - -static void registerGlobalPointer OF((__GPRO)); - - - -static void registerGlobalPointer(__G) - __GDEF -{ - int scan=0; - ulg tid = GetThreadId(); - - while (threadIdTable[scan] && scan < THREADID_ENTRIES) - scan++; - - if (scan == THREADID_ENTRIES) { - ZCONST char *tooMany = LoadFarString(TooManyThreads); - Info(slide, 0x421, ((char *)slide, tooMany, THREADID_ENTRIES)); - free(pG); - EXIT(PK_MEM); /* essentially memory error before we've started */ - } - - threadIdTable [scan] = tid; - threadPtrTable[scan] = pG; - lastScan = scan; -} - - - -void deregisterGlobalPointer(__G) - __GDEF -{ - int scan=0; - ulg tid = GetThreadId(); - - - while (threadIdTable[scan] != tid && scan < THREADID_ENTRIES) - scan++; - -/*--------------------------------------------------------------------------- - There are two things we can do if we can't find the entry: ignore it or - scream. The most likely reason for it not to be here is the user calling - this routine twice. Since this could cause BIG problems if any globals - are accessed after the first call, we'd better scream. - ---------------------------------------------------------------------------*/ - - if (scan == THREADID_ENTRIES || threadPtrTable[scan] != pG) { - ZCONST char *noEntry; - if (scan == THREADID_ENTRIES) - noEntry = LoadFarString(EntryNotFound); - else - noEntry = LoadFarString(GlobalPointerMismatch); - Info(slide, 0x421, ((char *)slide, noEntry)); - EXIT(PK_WARN); /* programming error, but after we're all done */ - } - - threadIdTable [scan] = 0; - lastScan = scan; - free(threadPtrTable[scan]); -} - - - -Uz_Globs *getGlobalPointer() -{ - int scan=0; - ulg tid = GetThreadId(); - - while (threadIdTable[scan] != tid && scan < THREADID_ENTRIES) - scan++; - -/*--------------------------------------------------------------------------- - There are two things we can do if we can't find the entry: ignore it or - scream. The most likely reason for it not to be here is the user calling - this routine twice. Since this could cause BIG problems if any globals - are accessed after the first call, we'd better scream. - ---------------------------------------------------------------------------*/ - - if (scan == THREADID_ENTRIES) { - ZCONST char *noEntry = LoadFarString(EntryNotFound); - fprintf(stderr, noEntry); /* can't use Info w/o a global pointer */ - EXIT(PK_ERR); /* programming error while still working */ - } - - return threadPtrTable[scan]; -} - -# endif /* ?USETHREADID */ -#endif /* ?REENTRANT */ - - - -Uz_Globs *globalsCtor() -{ -#ifdef REENTRANT - Uz_Globs *pG = (Uz_Globs *)malloc(sizeof(Uz_Globs)); - - if (!pG) - return (Uz_Globs *)NULL; -#endif /* REENTRANT */ - - /* for REENTRANT version, G is defined as (*pG) */ - - memzero(&G, sizeof(Uz_Globs)); - -#ifndef FUNZIP -#ifdef CMS_MVS - uO.aflag=1; - uO.C_flag=1; -#endif - - uO.lflag=(-1); - G.wildzipfn = ""; - G.pfnames = (char **)fnames; - G.pxnames = (char **)&fnames[1]; - G.pInfo = G.info; - G.sol = TRUE; /* at start of line */ - - G.message = UzpMessagePrnt; - G.input = UzpInput; /* not used by anyone at the moment... */ -#if defined(WINDLL) || defined(MACOS) - G.mpause = NULL; /* has scrollbars: no need for pausing */ -#else - G.mpause = UzpMorePause; -#endif - G.decr_passwd = UzpPassword; -#endif /* !FUNZIP */ - -#if (!defined(DOS_FLX_H68_OS2_W32) && !defined(AMIGA) && !defined(RISCOS)) -#if (!defined(MACOS) && !defined(ATARI) && !defined(VMS)) - G.echofd = -1; -#endif /* !(MACOS || ATARI || VMS) */ -#endif /* !(DOS_FLX_H68_OS2_W32 || AMIGA || RISCOS) */ - -#ifdef SYSTEM_SPECIFIC_CTOR - SYSTEM_SPECIFIC_CTOR(__G); -#endif - -#ifdef REENTRANT -#ifdef USETHREADID - registerGlobalPointer(__G); -#else - GG = &G; -#endif /* ?USETHREADID */ -#endif /* REENTRANT */ - - return &G; -} |