diff options
Diffstat (limited to 'misc/chmlib/files/patch-Makefile.in')
-rw-r--r-- | misc/chmlib/files/patch-Makefile.in | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/misc/chmlib/files/patch-Makefile.in b/misc/chmlib/files/patch-Makefile.in new file mode 100644 index 000000000000..7519c9c4fa4e --- /dev/null +++ b/misc/chmlib/files/patch-Makefile.in @@ -0,0 +1,71 @@ +--- Makefile.in.orig Fri Feb 25 18:43:09 2005 ++++ Makefile.in Fri Feb 25 18:43:21 2005 +@@ -26,7 +26,7 @@ + %.lo: %.c + ${LIBTOOL} --mode=compile ${CC} -c -o $@ $^ ${CFLAGS} + +-src/libchm.la: src/chm_lib.lo src/lzx.lo ++src/libchm.la: src/chm_lib.lo src/lzx.lo src/az_chmlib_add.lo + ${LIBTOOL} --mode=link ${CC} -o $@ $^ ${LDFLAGS} -rpath ${INSTALLPREFIX}/lib + + install: src/libchm.la + + +patch-az_chmlib_add.c +--- /dev/null Fri Feb 25 18:33:00 2005 ++++ src/az_chmlib_add.c Fri Feb 25 18:29:45 2005 +@@ -0,0 +1,54 @@ ++#include <string.h> ++#include "chm_lib.h" ++ ++/* ++ * callback function for enumerate API ++ */ ++int _get_name(struct chmFile *h, ++ chmUnitInfo *ui, ++ void *context) ++{ ++ int i; ++ ++ ++ chm_dir *dirp = (chm_dir *)context; ++ ++ dirp->info=realloc(dirp->info,(dirp->nentries+1)*sizeof (char*)); ++ ++ dirp->info[dirp->nentries] = malloc(sizeof(ui->path)); ++ strcpy(dirp->info[dirp->nentries], ui->path); ++ ++ dirp->nentries++; ++ return CHM_ENUMERATOR_CONTINUE; ++} ++ ++chm_dir get_names(struct chmFile *h) ++//note: you should free() dir.info and all dir.info[i] in caller ++{ ++ chm_dir dir; ++ ++ dir.nentries=0; ++ dir.info = NULL; ++ ++ if (! chm_enumerate(h, ++ CHM_ENUMERATE_ALL, ++ _get_name, ++ (void *)&dir)) ++ printf(" *** ERROR ***\n"); ++ ++ return dir; ++} ++ ++ ++int main() ++{ ++ int i; ++ ++ struct chmFile *h = chm_open("/home/az/new/txt/chm/reg.chm"); ++ chm_dir dir=get_names(h); ++ for(i=0;i<dir.nentries;i++) ++ printf("%d: %s\n",i,dir.info[i]); ++ ++ return 0; ++} ++ |