e9b1c1bac6
git-svn-id: svn://kolibrios.org@6725 a494cfbc-eb01-0410-851d-a64ba20cac60
156 lines
5.3 KiB
C
156 lines
5.3 KiB
C
/*
|
||
Copyright (c) 1990-2001 Info-ZIP. All rights reserved.
|
||
|
||
See the accompanying file LICENSE, version 2000-Apr-09 or later
|
||
(the contents of which are also included in unzip.h) for terms of use.
|
||
If, for some reason, all these files are missing, the Info-ZIP license
|
||
also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
|
||
*/
|
||
/* apihelp.c */
|
||
|
||
#ifdef API_DOC
|
||
|
||
#define UNZIP_INTERNAL
|
||
#include "unzip.h"
|
||
#include "unzvers.h"
|
||
|
||
|
||
APIDocStruct APIDoc[] = {
|
||
{
|
||
"UZPVERSION" , "UzpVersion" ,
|
||
"UzpVer *UzpVersion(void);",
|
||
"Get version numbers of the API and the underlying UnZip code.\n\n"
|
||
"\t\tThis is used for comparing the version numbers of the run-time\n"
|
||
"\t\tDLL code with those expected from the unzip.h at compile time.\n"
|
||
"\t\tIf the version numbers do not match, there may be compatibility\n"
|
||
"\t\tproblems with further use of the DLL.\n\n"
|
||
" Example:\t/* Check the major version number of the DLL code. */\n"
|
||
"\t\tUzpVer *pVersion;\n"
|
||
"\t\tpVersion = UzpVersion();\n"
|
||
"\t\tif (pVersion->unzip.major != UZ_MAJORVER)\n"
|
||
"\t\t fprintf(stderr, \"error: using wrong version of DLL\\n\");\n\n"
|
||
"\t\tSee unzip.h for details and unzipstb.c for an example.\n"
|
||
},
|
||
|
||
{
|
||
"UZPMAIN" , "UzpMain" ,
|
||
"int UzpMain(int argc, char *argv[]);",
|
||
"Provide a direct entry point to the command line interface.\n\n"
|
||
"\t\tThis is used by the UnZip stub but you can use it in your\n"
|
||
"\t\town program as well. Output is sent to stdout.\n"
|
||
"\t\t0 on return indicates success.\n\n"
|
||
" Example:\t/* Extract 'test.zip' silently, junking paths. */\n"
|
||
"\t\tchar *argv[] = { \"-q\", \"-j\", \"test.zip\" };\n"
|
||
"\t\tint argc = 3;\n"
|
||
"\t\tif (UzpMain(argc,argv))\n"
|
||
"\t\t printf(\"error: unzip failed\\n\");\n\n"
|
||
"\t\tSee unzip.h for details.\n"
|
||
},
|
||
|
||
{
|
||
"UZPALTMAIN" , "UzpAltMain" ,
|
||
"int UzpAltMain(int argc, char *argv[], UzpInit *init);",
|
||
"Provide a direct entry point to the command line interface,\n"
|
||
"optionally installing replacement I/O handler functions.\n\n"
|
||
"\t\tAs with UzpMain(), output is sent to stdout by default.\n"
|
||
"\t\t`InputFn *inputfn' is not yet implemented. 0 on return\n"
|
||
"\t\tindicates success.\n\n"
|
||
" Example:\t/* Replace normal output and `more' functions. */\n"
|
||
"\t\tchar *argv[] = { \"-q\", \"-j\", \"test.zip\" };\n"
|
||
"\t\tint argc = 3;\n"
|
||
"\t\tUzpInit init = { 16, MyMessageFn, NULL, MyPauseFn };\n"
|
||
"\t\tif (UzpAltMain(argc,argv,&init))\n"
|
||
"\t\t printf(\"error: unzip failed\\n\");\n\n"
|
||
"\t\tSee unzip.h for details.\n"
|
||
},
|
||
|
||
{
|
||
"UZPUNZIPTOMEMORY", "UzpUnzipToMemory",
|
||
"int UzpUnzipToMemory(char *zip, char *file, UzpBuffer *retstr);",
|
||
"Pass the name of the zip file and the name of the file\n"
|
||
"\t\tyou wish to extract. UzpUnzipToMemory will create a\n"
|
||
"\t\tbuffer and return it in *retstr; 0 on return indicates\n"
|
||
"\t\tfailure.\n\n"
|
||
"\t\tSee unzip.h for details.\n"
|
||
},
|
||
|
||
{
|
||
"UZPFILETREE", "UzpFileTree",
|
||
"int UzpFileTree(char *name, cbList(callBack),\n"
|
||
"\t\t\tchar *cpInclude[], char *cpExclude[]);",
|
||
"Pass the name of the zip file, a callback function, an\n"
|
||
"\t\tinclude and exclude file list. UzpFileTree calls the\n"
|
||
"\t\tcallback for each valid file found in the zip file.\n"
|
||
"\t\t0 on return indicates failure.\n\n"
|
||
"\t\tSee unzip.h for details.\n"
|
||
},
|
||
|
||
{ 0 }
|
||
};
|
||
|
||
|
||
static int function_help OF((__GPRO__ APIDocStruct *doc, char *fname));
|
||
|
||
|
||
|
||
static int function_help(__G__ doc, fname)
|
||
__GDEF
|
||
APIDocStruct *doc;
|
||
char *fname;
|
||
{
|
||
strcpy(slide, fname);
|
||
/* strupr(slide); non-standard */
|
||
while (doc->compare && STRNICMP(doc->compare,slide,strlen(fname)))
|
||
doc++;
|
||
if (!doc->compare)
|
||
return 0;
|
||
else
|
||
Info(slide, 0, ((char *)slide,
|
||
" Function:\t%s\n\n Syntax:\t%s\n\n Purpose:\t%s",
|
||
doc->function, doc->syntax, doc->purpose));
|
||
|
||
return 1;
|
||
}
|
||
|
||
|
||
|
||
void APIhelp(__G__ argc, argv)
|
||
__GDEF
|
||
int argc;
|
||
char **argv;
|
||
{
|
||
if (argc > 1) {
|
||
struct APIDocStruct *doc;
|
||
|
||
if (function_help(__G__ APIDoc, argv[1]))
|
||
return;
|
||
#ifdef SYSTEM_API_DETAILS
|
||
if (function_help(__G__ SYSTEM_API_DETAILS, argv[1]))
|
||
return;
|
||
#endif
|
||
Info(slide, 0, ((char *)slide,
|
||
"%s is not a documented command.\n\n", argv[1]));
|
||
}
|
||
|
||
Info(slide, 0, ((char *)slide, "\
|
||
This API provides a number of external C and REXX functions for handling\n\
|
||
zipfiles in OS/2. Programmers are encouraged to expand this API.\n\
|
||
\n\
|
||
C functions: -- See unzip.h for details\n\
|
||
UzpVer *UzpVersion(void);\n\
|
||
int UzpMain(int argc, char *argv[]);\n\
|
||
int UzpAltMain(int argc, char *argv[], UzpInit *init);\n\
|
||
int UzpUnzipToMemory(char *zip, char *file, UzpBuffer *retstr);\n\
|
||
int UzpFileTree(char *name, cbList(callBack),\n\
|
||
char *cpInclude[], char *cpExclude[]);\n\n"));
|
||
|
||
#ifdef SYSTEM_API_BRIEF
|
||
Info(slide, 0, ((char *)slide, SYSTEM_API_BRIEF));
|
||
#endif
|
||
|
||
Info(slide, 0, ((char *)slide,
|
||
"\nFor more information, type 'unzip -A <function-name>'\n"));
|
||
}
|
||
|
||
#endif /* API_DOC */
|