]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/Install/sfxzip/apihelp.c
merged 2.2 branch
[wxWidgets.git] / utils / Install / sfxzip / apihelp.c
diff --git a/utils/Install/sfxzip/apihelp.c b/utils/Install/sfxzip/apihelp.c
new file mode 100644 (file)
index 0000000..1a0d682
--- /dev/null
@@ -0,0 +1,147 @@
+/* apihelp.c */
+
+#ifdef API_DOC
+
+#define UNZIP_INTERNAL
+#include "unzip.h"
+#include "version.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\a", 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 */