diff options
author | Daniel Glassey <wdg@debian.org> | 2006-11-24 15:14:05 +0000 |
---|---|---|
committer | Roberto C. Sanchez <roberto@connexer.com> | 2014-03-29 10:53:56 -0400 |
commit | 4a860fb1693983e073fde5adad1800b2ccda0ef4 (patch) | |
tree | 53be8540a8316915a2a4588efb0a84232889a26a /debian/patches | |
parent | 5b0fc4e9b03dbe512207b099771f59c9a0370f2f (diff) |
Imported Debian patch 1.5.9-3
Diffstat (limited to 'debian/patches')
-rw-r--r-- | debian/patches/01_sword_c++.diff (renamed from debian/patches/sword_c++.diff) | 0 | ||||
-rw-r--r-- | debian/patches/02_libver.diff (renamed from debian/patches/libver.diff) | 0 | ||||
-rw-r--r-- | debian/patches/03_clucene.diff (renamed from debian/patches/clucene.diff) | 0 | ||||
-rw-r--r-- | debian/patches/04_ziplock.diff | 89 | ||||
-rw-r--r-- | debian/patches/05_getline.diff | 13 | ||||
-rw-r--r-- | debian/patches/06_warnings.diff | 2009 | ||||
-rw-r--r-- | debian/patches/07_warn_tools.diff | 193 | ||||
-rw-r--r-- | debian/patches/10_diatheke.diff | 14 | ||||
-rw-r--r-- | debian/patches/series | 9 |
9 files changed, 2309 insertions, 18 deletions
diff --git a/debian/patches/sword_c++.diff b/debian/patches/01_sword_c++.diff index a00b9a3..a00b9a3 100644 --- a/debian/patches/sword_c++.diff +++ b/debian/patches/01_sword_c++.diff diff --git a/debian/patches/libver.diff b/debian/patches/02_libver.diff index 08eb55a..08eb55a 100644 --- a/debian/patches/libver.diff +++ b/debian/patches/02_libver.diff diff --git a/debian/patches/clucene.diff b/debian/patches/03_clucene.diff index 8f01f70..8f01f70 100644 --- a/debian/patches/clucene.diff +++ b/debian/patches/03_clucene.diff diff --git a/debian/patches/04_ziplock.diff b/debian/patches/04_ziplock.diff new file mode 100644 index 0000000..bc40ffa --- /dev/null +++ b/debian/patches/04_ziplock.diff @@ -0,0 +1,89 @@ +Index: sword-1.5.9/src/modules/common/zverse.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/common/zverse.cpp 2005-11-20 06:06:40.000000000 +0000 ++++ sword-1.5.9/src/modules/common/zverse.cpp 2006-12-08 14:10:02.000000000 +0000 +@@ -257,13 +257,12 @@ + + void zVerse::zReadText(char testmt, long start, unsigned short size, SWBuf &inBuf) { + inBuf = ""; +- inBuf.setFillByte(0); +- inBuf.setSize(size+1); +- if (size > 0) { +- if (cacheBuf) +- strncpy(inBuf.getRawData(), &(cacheBuf[start]), size); ++ if ( (size > 0) && cacheBuf && ((unsigned)(start+size) <= strlen(cacheBuf)) ){ //TODO: optimize this, remove strlen ++ inBuf.setFillByte(0); ++ inBuf.setSize(size+1); ++ strncpy(inBuf.getRawData(), &(cacheBuf[start]), size); ++ inBuf.setSize(strlen(inBuf.c_str())); + } +- inBuf.setSize(strlen(inBuf.c_str())); + } + + +Index: sword-1.5.9/src/modules/common/zipcomprs.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/common/zipcomprs.cpp 2003-06-27 02:41:08.000000000 +0100 ++++ sword-1.5.9/src/modules/common/zipcomprs.cpp 2006-12-08 13:14:15.000000000 +0000 +@@ -79,7 +79,7 @@ + if (len) + { + //printf("Doing compress\n"); +- if (compress((Bytef*)zbuf, &zlen, (const Bytef*)buf, len)!=Z_OK) ++ if (compress((Bytef*)zbuf, &zlen, (const Bytef*)buf, len) != Z_OK) + { + printf("ERROR in compression\n"); + } +@@ -89,7 +89,7 @@ + } + else + { +- fprintf(stderr, "No buffer to compress\n"); ++ fprintf(stderr, "ERROR: no buffer to compress\n"); + } + delete [] zbuf; + free (buf); +@@ -144,15 +144,18 @@ + unsigned long blen = zlen*20; // trust compression is less than 1000% + char *buf = new char[blen]; + //printf("Doing decompress {%s}\n", zbuf); +- if (uncompress((Bytef*)buf, &blen, (Bytef*)zbuf, zlen) != Z_OK) { +- fprintf(stderr, "no room in outbuffer to during decompression. see zipcomp.cpp\n"); ++ slen = 0; ++ switch (uncompress((Bytef*)buf, &blen, (Bytef*)zbuf, zlen)){ ++ case Z_OK: SendChars(buf, blen); slen = blen; break; ++ case Z_MEM_ERROR: fprintf(stderr, "ERROR: not enough memory during decompression.\n"); break; ++ case Z_BUF_ERROR: fprintf(stderr, "ERROR: not enough room in the out buffer during decompression.\n"); break; ++ case Z_DATA_ERROR: fprintf(stderr, "ERROR: corrupt data during decompression.\n"); break; ++ default: fprintf(stderr, "ERROR: an unknown error occured during decompression.\n"); break; + } +- SendChars(buf, blen); + delete [] buf; +- slen = blen; + } + else { +- fprintf(stderr, "No buffer to decompress!\n"); ++ fprintf(stderr, "ERROR: no buffer to decompress!\n"); + } + //printf("Finished decoding\n"); + free (zbuf); +Index: sword-1.5.9/src/modules/common/entriesblk.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/common/entriesblk.cpp 2006-12-08 14:10:16.000000000 +0000 ++++ sword-1.5.9/src/modules/common/entriesblk.cpp 2006-12-08 14:10:38.000000000 +0000 +@@ -10,8 +10,13 @@ + // offset(4); size(4); + + EntriesBlock::EntriesBlock(const char *iBlock, unsigned long size) { +- block = (char *)calloc(1, size); +- memcpy(block, iBlock, size); ++ if (size) { ++ block = (char *)calloc(1, size); ++ memcpy(block, iBlock, size); ++ } ++ else { ++ block = (char *)calloc(1, sizeof(__u32)); ++ } + } + + diff --git a/debian/patches/05_getline.diff b/debian/patches/05_getline.diff new file mode 100644 index 0000000..b31872f --- /dev/null +++ b/debian/patches/05_getline.diff @@ -0,0 +1,13 @@ +Index: sword-1.5.9/src/utilfuns/swbuf.cpp +=================================================================== +--- sword-1.5.9.orig/src/utilfuns/swbuf.cpp 2006-12-08 15:51:36.000000000 +0000 ++++ sword-1.5.9/src/utilfuns/swbuf.cpp 2006-12-08 15:52:19.000000000 +0000 +@@ -98,7 +98,7 @@ + if (max < 0) + max = strlen(str); + assureMore(max+1); +- for (;((*str)&&(max));max--) ++ for (;((max)&&(*str));max--) + *end++ = *str++; + *end = 0; + } diff --git a/debian/patches/06_warnings.diff b/debian/patches/06_warnings.diff new file mode 100644 index 0000000..e97d6d4 --- /dev/null +++ b/debian/patches/06_warnings.diff @@ -0,0 +1,2009 @@ +Index: sword-1.5.9/include/swmodule.h +=================================================================== +--- sword-1.5.9.orig/include/swmodule.h 2006-08-28 01:39:56.000000000 +0100 ++++ sword-1.5.9/include/swmodule.h 2006-11-24 17:13:59.000000000 +0000 +@@ -399,16 +399,16 @@ + * @param path path where to create the new module + * @return error + */ +- static signed char createModule(const char *path) { return -1; } ++ static signed char createModule(const char *) { return -1; } + + /** Modify the current module entry text - only if module isWritable() + */ +- virtual void setEntry(const char *inbuf, long len = -1) { } ++ virtual void setEntry(const char *, long = -1) { } + + /** Link the current module entry to another module entry - only if + * module isWritable() + */ +- virtual void linkEntry(const SWKey *sourceKey) { } ++ virtual void linkEntry(const SWKey *) { } + + /** Delete current module entry - only if module isWritable() + */ +Index: sword-1.5.9/include/swbuf.h +=================================================================== +--- sword-1.5.9.orig/include/swbuf.h 2006-08-28 09:14:40.000000000 +0100 ++++ sword-1.5.9/include/swbuf.h 2006-11-24 17:13:59.000000000 +0000 +@@ -338,7 +338,7 @@ + inline bool operator >=(const SWBuf &other) const { return compare(other) >= 0; } + + inline bool startsWith(const char *prefix) const { return !strncmp(c_str(), prefix, strlen(prefix)); } +- inline bool endsWith(const char *postfix) const { int psize = strlen(postfix); return (size() >= psize)?!strncmp(end-psize, postfix, psize):false; } ++ inline bool endsWith(const char *postfix) const { unsigned long psize = strlen(postfix); return (size() >= psize)?!strncmp(end-psize, postfix, psize):false; } + inline int compare(const char *other) const { return strcmp(c_str(), other); } + inline bool operator ==(const char *other) const { return !compare(other); } + inline bool operator !=(const char *other) const { return compare(other); } +Index: sword-1.5.9/src/keys/listkey.cpp +=================================================================== +--- sword-1.5.9.orig/src/keys/listkey.cpp 2006-11-24 17:20:25.000000000 +0000 ++++ sword-1.5.9/src/keys/listkey.cpp 2006-11-24 17:20:48.000000000 +0000 +@@ -293,7 +293,6 @@ + + void ListKey::setText(const char *ikey) { + // at least try to set the current element to this text +- int pos = arraypos; + for (arraypos = 0; arraypos < arraycnt; arraypos++) { + SWKey *key = array[arraypos]; + if (key) { +Index: sword-1.5.9/src/keys/treekeyidx.cpp +=================================================================== +--- sword-1.5.9.orig/src/keys/treekeyidx.cpp 2006-11-24 17:21:17.000000000 +0000 ++++ sword-1.5.9/src/keys/treekeyidx.cpp 2006-11-24 20:50:55.000000000 +0000 +@@ -159,11 +159,11 @@ + + bool TreeKeyIdx::previousSibling() { + TreeNode iterator; +- __u32 target = currentNode.offset; ++ __s32 target = currentNode.offset; + if (currentNode.parent > -1) { + getTreeNodeFromIdxOffset(currentNode.parent, &iterator); + getTreeNodeFromIdxOffset(iterator.firstChild, &iterator); +- if (iterator.offset != target) { ++ if (iterator.offset != currentNode.offset) { + while ((iterator.next != target) && (iterator.next > -1)) + getTreeNodeFromIdxOffset(iterator.next, &iterator); + if (iterator.next > -1) { +Index: sword-1.5.9/src/keys/versekey.cpp +=================================================================== +--- sword-1.5.9.orig/src/keys/versekey.cpp 2006-11-24 20:51:27.000000000 +0000 ++++ sword-1.5.9/src/keys/versekey.cpp 2006-11-24 20:55:34.000000000 +0000 +@@ -329,7 +329,7 @@ + + int VerseKey::getBookAbbrev(const char *iabbr) + { +- int loop, diff, abLen, min, max, target, retVal = -1; ++ int diff, abLen, min, max, target, retVal = -1; + + char *abbr = 0; + +@@ -417,7 +417,7 @@ + SWKey tmpDefaultKey = defaultKey; + char lastPartial = 0; + bool inTerm = true; +- int notAllDigits; ++ int notAllDigits = 0; + + curkey.AutoNormalize(0); + tmpListKey << tmpDefaultKey; +@@ -1530,7 +1530,7 @@ + + const char *VerseKey::getOSISRef() const { + static char buf[5][254]; +- static char loop = 0; ++ static int loop = 0; + + if (loop > 4) + loop = 0; +@@ -1541,7 +1541,7 @@ + sprintf(buf[loop], "%s.%d", osisbooks[Testament()-1][Book()-1], (int)Chapter()); + else if (Book()) + sprintf(buf[loop], "%s", osisbooks[Testament()-1][Book()-1]); +- else sprintf(buf[loop], ""); ++ else buf[loop][0] = 0; + return buf[loop++]; + } + +Index: sword-1.5.9/src/utilfuns/ftpparse.c +=================================================================== +--- sword-1.5.9.orig/src/utilfuns/ftpparse.c 2006-11-24 22:50:00.000000000 +0000 ++++ sword-1.5.9/src/utilfuns/ftpparse.c 2006-11-24 22:51:53.000000000 +0000 +@@ -109,6 +109,7 @@ + if (now - t < 350 * 86400) + return t; + } ++ return 0; + } + + static int check(char *buf,char *monthname) +@@ -145,10 +146,10 @@ + int i; + int j; + int state; +- long size; ++ long size = 0; + long year; +- long month; +- long mday; ++ long month = 0; ++ long mday = 0; + long hour; + long minute; + +Index: sword-1.5.9/src/utilfuns/swbuf.cpp +=================================================================== +--- sword-1.5.9.orig/src/utilfuns/swbuf.cpp 2006-11-24 20:55:56.000000000 +0000 ++++ sword-1.5.9/src/utilfuns/swbuf.cpp 2006-11-24 22:49:42.000000000 +0000 +@@ -108,7 +108,7 @@ + */ + void SWBuf::setSize(unsigned long len) { + assureSize(len+1); +- if ((end - buf) < len) ++ if ((end - buf) < (signed)len) + memset(end, fillByte, len - (end-buf)); + end = buf + len; + *end = 0; +Index: sword-1.5.9/src/utilfuns/url.cpp +=================================================================== +--- sword-1.5.9.orig/src/utilfuns/url.cpp 2006-11-24 22:52:02.000000000 +0000 ++++ sword-1.5.9/src/utilfuns/url.cpp 2006-11-24 22:52:13.000000000 +0000 +@@ -93,7 +93,6 @@ + + //1. Init + const char* urlPtr = url.c_str(); +- int pos = 0; + + protocol = ""; + hostname = ""; +Index: sword-1.5.9/src/utilfuns/zlib/untgz.c +=================================================================== +--- sword-1.5.9.orig/src/utilfuns/zlib/untgz.c 2006-11-24 22:52:48.000000000 +0000 ++++ sword-1.5.9/src/utilfuns/zlib/untgz.c 2006-11-25 13:08:49.000000000 +0000 +@@ -1,8 +1,9 @@ + /* +- * untgz.c -- Display contents and/or extract file from +- * a gzip'd TAR file +- * written by "Pedro A. Aranda Guti\irrez" <paag@tid.es> ++ * untgz.c -- Display contents and extract files from a gzip'd TAR file ++ * ++ * written by Pedro A. Aranda Gutierrez <paag@tid.es> + * adaptation to Unix by Jean-loup Gailly <jloup@gzip.org> ++ * various fixes by Cosmin Truta <cosmint@cs.ubbcluj.ro> + */ + + #include <stdio.h> +@@ -10,205 +11,318 @@ + #include <string.h> + #include <time.h> + #include <errno.h> +-#include <fcntl.h> ++ ++#include "zlib.h" ++ + #ifdef unix +-# include <unistd.h> ++# include <unistd.h> ++# include <sys/stat.h> + #else +-# include <direct.h> +-# include <io.h> ++# include <direct.h> ++# include <io.h> + #endif + +-#include "zlib.h" +- + #ifdef WIN32 +-# include <windows.h> ++#include <windows.h> + # ifndef F_OK +-# define F_OK (0) ++# define F_OK 0 + # endif ++# define mkdir(dirname,mode) _mkdir(dirname) + # ifdef _MSC_VER +-# define mkdir(dirname,mode) _mkdir(dirname) +-# define strdup(str) _strdup(str) +-# define unlink(fn) _unlink(fn) + # define access(path,mode) _access(path,mode) +-# else +-# define mkdir(dirname,mode) _mkdir(dirname) ++# define chmod(path,mode) _chmod(path,mode) ++# define strdup(str) _strdup(str) + # endif + #else + # include <utime.h> + #endif + + +-/* Values used in typeflag field. */ ++/* values used in typeflag field */ ++ ++#define REGTYPE '0' /* regular file */ ++#define AREGTYPE '\0' /* regular file */ ++#define LNKTYPE '1' /* link */ ++#define SYMTYPE '2' /* reserved */ ++#define CHRTYPE '3' /* character special */ ++#define BLKTYPE '4' /* block special */ ++#define DIRTYPE '5' /* directory */ ++#define FIFOTYPE '6' /* FIFO special */ ++#define CONTTYPE '7' /* reserved */ ++ ++/* GNU tar extensions */ ++ ++#define GNUTYPE_DUMPDIR 'D' /* file names from dumped directory */ ++#define GNUTYPE_LONGLINK 'K' /* long link name */ ++#define GNUTYPE_LONGNAME 'L' /* long file name */ ++#define GNUTYPE_MULTIVOL 'M' /* continuation of file from another volume */ ++#define GNUTYPE_NAMES 'N' /* file name that does not fit into main hdr */ ++#define GNUTYPE_SPARSE 'S' /* sparse file */ ++#define GNUTYPE_VOLHDR 'V' /* tape/volume header */ + +-#define REGTYPE '0' /* regular file */ +-#define AREGTYPE '\0' /* regular file */ +-#define LNKTYPE '1' /* link */ +-#define SYMTYPE '2' /* reserved */ +-#define CHRTYPE '3' /* character special */ +-#define BLKTYPE '4' /* block special */ +-#define DIRTYPE '5' /* directory */ +-#define FIFOTYPE '6' /* FIFO special */ +-#define CONTTYPE '7' /* reserved */ + +-#define BLOCKSIZE 512 ++/* tar header */ ++ ++#define BLOCKSIZE 512 ++#define SHORTNAMESIZE 100 + + struct tar_header +-{ /* byte offset */ +- char name[100]; /* 0 */ +- char mode[8]; /* 100 */ +- char uid[8]; /* 108 */ +- char gid[8]; /* 116 */ +- char size[12]; /* 124 */ +- char mtime[12]; /* 136 */ +- char chksum[8]; /* 148 */ +- char typeflag; /* 156 */ +- char linkname[100]; /* 157 */ +- char magic[6]; /* 257 */ +- char version[2]; /* 263 */ +- char uname[32]; /* 265 */ +- char gname[32]; /* 297 */ +- char devmajor[8]; /* 329 */ +- char devminor[8]; /* 337 */ +- char prefix[155]; /* 345 */ +- /* 500 */ ++{ /* byte offset */ ++ char name[100]; /* 0 */ ++ char mode[8]; /* 100 */ ++ char uid[8]; /* 108 */ ++ char gid[8]; /* 116 */ ++ char size[12]; /* 124 */ ++ char mtime[12]; /* 136 */ ++ char chksum[8]; /* 148 */ ++ char typeflag; /* 156 */ ++ char linkname[100]; /* 157 */ ++ char magic[6]; /* 257 */ ++ char version[2]; /* 263 */ ++ char uname[32]; /* 265 */ ++ char gname[32]; /* 297 */ ++ char devmajor[8]; /* 329 */ ++ char devminor[8]; /* 337 */ ++ char prefix[155]; /* 345 */ ++ /* 500 */ + }; + +-union tar_buffer { ++union tar_buffer ++{ + char buffer[BLOCKSIZE]; + struct tar_header header; + }; + +-enum { TGZ_EXTRACT = 0, TGZ_LIST }; ++struct attr_item ++{ ++ struct attr_item *next; ++ char *fname; ++ int mode; ++ time_t time; ++}; + +-static char *TGZfname OF((const char *)); +-void TGZnotfound OF((const char *)); ++enum { TGZ_EXTRACT, TGZ_LIST, TGZ_INVALID }; + +-int getoct OF((char *, int)); +-char *strtime OF((time_t *)); +-int ExprMatch OF((char *,char *)); ++char *TGZfname OF((const char *)); ++void TGZnotfound OF((const char *)); + +-int makedir OF((char *)); +-int matchname OF((int,int,char **,char *)); ++int getoct OF((char *, int)); ++char *strtime OF((time_t *)); ++int setfiletime OF((char *, time_t)); ++void push_attr OF((struct attr_item **, char *, int, time_t)); ++void restore_attr OF((struct attr_item **)); + +-void error OF((const char *)); +-int tar OF((gzFile, int, int, int, char **)); ++int ExprMatch OF((char *, char *)); + +-void help OF((int)); +-int main OF((int, char **)); ++int makedir OF((char *)); ++int matchname OF((int, int, char **, char *)); + +-char *prog; ++void error OF((const char *)); ++int tar OF((gzFile, int, const char *, int, int, char **)); + +-/* This will give a benign warning */ ++void help OF((int)); ++int main OF((int, char **)); ++ ++char *prog; + +-static char *TGZprefix[] = { "\0", ".tgz", ".tar.gz", ".tar", NULL }; ++const char *TGZsuffix[] = { "\0", ".tar", ".tar.gz", ".taz", ".tgz", NULL }; + +-/* Return the real name of the TGZ archive */ +-/* or NULL if it does not exist. */ ++/* return the file name of the TGZ archive */ ++/* or NULL if it does not exist */ + +-static char *TGZfname OF((const char *fname)) ++char *TGZfname (const char *arcname) + { + static char buffer[1024]; + int origlen,i; +- +- strcpy(buffer,fname); ++ ++ strcpy(buffer,arcname); + origlen = strlen(buffer); + +- for (i=0; TGZprefix[i]; i++) ++ for (i=0; TGZsuffix[i]; i++) + { +- strcpy(buffer+origlen,TGZprefix[i]); ++ strcpy(buffer+origlen,TGZsuffix[i]); + if (access(buffer,F_OK) == 0) + return buffer; + } + return NULL; + } + ++ + /* error message for the filename */ + +-void TGZnotfound OF((const char *fname)) ++void TGZnotfound (const char *arcname) + { + int i; + +- fprintf(stderr,"%s : couldn't find ",prog); +- for (i=0;TGZprefix[i];i++) +- fprintf(stderr,(TGZprefix[i+1]) ? "%s%s, " : "or %s%s\n", +- fname, +- TGZprefix[i]); ++ fprintf(stderr,"%s: Couldn't find ",prog); ++ for (i=0;TGZsuffix[i];i++) ++ fprintf(stderr,(TGZsuffix[i+1]) ? "%s%s, " : "or %s%s\n", ++ arcname, ++ TGZsuffix[i]); + exit(1); + } + + +-/* help functions */ ++/* convert octal digits to int */ ++/* on error return -1 */ + +-int getoct(char *p,int width) ++int getoct (char *p,int width) + { + int result = 0; + char c; +- +- while (width --) ++ ++ while (width--) + { + c = *p++; +- if (c == ' ') +- continue; + if (c == 0) +- break; ++ break; ++ if (c == ' ') ++ continue; ++ if (c < '0' || c > '7') ++ return -1; + result = result * 8 + (c - '0'); + } + return result; + } + ++ ++/* convert time_t to string */ ++/* use the "YYYY/MM/DD hh:mm:ss" format */ ++ + char *strtime (time_t *t) + { + struct tm *local; + static char result[32]; + + local = localtime(t); +- sprintf(result,"%2d/%02d/%4d %02d:%02d:%02d", +- local->tm_mday, local->tm_mon+1, local->tm_year+1900, +- local->tm_hour, local->tm_min, local->tm_sec); ++ sprintf(result,"%4d/%02d/%02d %02d:%02d:%02d", ++ local->tm_year+1900, local->tm_mon+1, local->tm_mday, ++ local->tm_hour, local->tm_min, local->tm_sec); ++ return result; ++} ++ ++ ++/* set file time */ ++ ++int setfiletime (char *fname,time_t ftime) ++{ ++#ifdef WIN32 ++ static int isWinNT = -1; ++ SYSTEMTIME st; ++ FILETIME locft, modft; ++ struct tm *loctm; ++ HANDLE hFile; ++ int result; ++ ++ loctm = localtime(&ftime); ++ if (loctm == NULL) ++ return -1; ++ ++ st.wYear = (WORD)loctm->tm_year + 1900; ++ st.wMonth = (WORD)loctm->tm_mon + 1; ++ st.wDayOfWeek = (WORD)loctm->tm_wday; ++ st.wDay = (WORD)loctm->tm_mday; ++ st.wHour = (WORD)loctm->tm_hour; ++ st.wMinute = (WORD)loctm->tm_min; ++ st.wSecond = (WORD)loctm->tm_sec; ++ st.wMilliseconds = 0; ++ if (!SystemTimeToFileTime(&st, &locft) || ++ !LocalFileTimeToFileTime(&locft, &modft)) ++ return -1; ++ ++ if (isWinNT < 0) ++ isWinNT = (GetVersion() < 0x80000000) ? 1 : 0; ++ hFile = CreateFile(fname, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, ++ (isWinNT ? FILE_FLAG_BACKUP_SEMANTICS : 0), ++ NULL); ++ if (hFile == INVALID_HANDLE_VALUE) ++ return -1; ++ result = SetFileTime(hFile, NULL, NULL, &modft) ? 0 : -1; ++ CloseHandle(hFile); + return result; ++#else ++ struct utimbuf settime; ++ ++ settime.actime = settime.modtime = ftime; ++ return utime(fname,&settime); ++#endif ++} ++ ++ ++/* push file attributes */ ++ ++void push_attr(struct attr_item **list,char *fname,int mode,time_t time) ++{ ++ struct attr_item *item; ++ ++ item = (struct attr_item *)malloc(sizeof(struct attr_item)); ++ if (item == NULL) ++ error("Out of memory"); ++ item->fname = strdup(fname); ++ item->mode = mode; ++ item->time = time; ++ item->next = *list; ++ *list = item; ++} ++ ++ ++/* restore file attributes */ ++ ++void restore_attr(struct attr_item **list) ++{ ++ struct attr_item *item, *prev; ++ ++ for (item = *list; item != NULL; ) ++ { ++ setfiletime(item->fname,item->time); ++ chmod(item->fname,item->mode); ++ prev = item; ++ item = item->next; ++ free(prev); ++ } ++ *list = NULL; + } + + +-/* regular expression matching */ ++/* match regular expression */ + + #define ISSPECIAL(c) (((c) == '*') || ((c) == '/')) + +-int ExprMatch(char *string,char *expr) ++int ExprMatch (char *string,char *expr) + { + while (1) + { + if (ISSPECIAL(*expr)) +- { +- if (*expr == '/') +- { +- if (*string != '\\' && *string != '/') +- return 0; +- string ++; expr++; +- } +- else if (*expr == '*') +- { +- if (*expr ++ == 0) +- return 1; +- while (*++string != *expr) +- if (*string == 0) +- return 0; +- } +- } ++ { ++ if (*expr == '/') ++ { ++ if (*string != '\\' && *string != '/') ++ return 0; ++ string ++; expr++; ++ } ++ else if (*expr == '*') ++ { ++ if (*expr ++ == 0) ++ return 1; ++ while (*++string != *expr) ++ if (*string == 0) ++ return 0; ++ } ++ } + else +- { +- if (*string != *expr) +- return 0; +- if (*expr++ == 0) +- return 1; +- string++; +- } ++ { ++ if (*string != *expr) ++ return 0; ++ if (*expr++ == 0) ++ return 1; ++ string++; ++ } + } + } + +-/* recursive make directory */ +-/* abort if you get an ENOENT errno somewhere in the middle */ +-/* e.g. ignore error "mkdir on existing directory" */ +-/* */ ++ ++/* recursive mkdir */ ++/* abort on ENOENT; ignore other errors like "directory already exists" */ + /* return 1 if OK */ + /* 0 on error */ + +@@ -217,7 +331,7 @@ + char *buffer = strdup(newdir); + char *p; + int len = strlen(buffer); +- ++ + if (len <= 0) { + free(buffer); + return 0; +@@ -225,7 +339,7 @@ + if (buffer[len-1] == '/') { + buffer[len-1] = '\0'; + } +- if (mkdir(buffer, 0775) == 0) ++ if (mkdir(buffer, 0755) == 0) + { + free(buffer); + return 1; +@@ -235,202 +349,356 @@ + while (1) + { + char hold; +- ++ + while(*p && *p != '\\' && *p != '/') +- p++; ++ p++; + hold = *p; + *p = 0; +- if ((mkdir(buffer, 0775) == -1) && (errno == ENOENT)) +- { +- fprintf(stderr,"%s: couldn't create directory %s\n",prog,buffer); +- free(buffer); +- return 0; +- } ++ if ((mkdir(buffer, 0755) == -1) && (errno == ENOENT)) ++ { ++ fprintf(stderr,"%s: Couldn't create directory %s\n",prog,buffer); ++ free(buffer); ++ return 0; ++ } + if (hold == 0) +- break; ++ break; + *p++ = hold; + } + free(buffer); + return 1; + } + ++ + int matchname (int arg,int argc,char **argv,char *fname) + { +- if (arg == argc) /* no arguments given (untgz tgzarchive) */ ++ if (arg == argc) /* no arguments given (untgz tgzarchive) */ + return 1; + + while (arg < argc) + if (ExprMatch(fname,argv[arg++])) +- return 1; ++ return 1; + + return 0; /* ignore this for the moment being */ + } + + +-/* Tar file list or extract */ ++/* tar file list or extract */ + +-int untar (gzFile in, const char *dest) { +- union tar_buffer buffer; +- int len; +- int err; +- int getheader = 1; +- int remaining = 0; +- FILE *outfile = NULL; +- char fname[BLOCKSIZE]; +- time_t tartime; +- +- while (1) { +- len = gzread(in, &buffer, BLOCKSIZE); +- if (len < 0) +- error (gzerror(in, &err)); +- /* +- * Always expect complete blocks to process +- * the tar information. +- */ +- if (len != BLOCKSIZE) +- error("gzread: incomplete block read"); +- +- /* +- * If we have to get a tar header +- */ +- if (getheader == 1) { +- /* +- * if we met the end of the tar +- * or the end-of-tar block, +- * we are done +- */ +- if ((len == 0) || (buffer.header.name[0]== 0)) break; +- +- tartime = (time_t)getoct(buffer.header.mtime,12); +- strcpy(fname, dest); +- if ((fname[strlen(fname)-1] != '/') && (fname[strlen(fname)-1] != '\\')) +- strcat(fname, "/"); +- strcat(fname, buffer.header.name); +- +- switch (buffer.header.typeflag) { +- case DIRTYPE: +- makedir(fname); +- break; +- case REGTYPE: +- case AREGTYPE: +- remaining = getoct(buffer.header.size,12); +- if (remaining) { +- outfile = fopen(fname,"wb"); +- if (outfile == NULL) { +- // try creating directory +- char *p = strrchr(fname, '/'); +- if (p != NULL) { +- *p = '\0'; +- makedir(fname); +- *p = '/'; +- outfile = fopen(fname,"wb"); +- } +- } +-/* +- fprintf(stderr, +- "%s %s\n", +- (outfile) ? "Extracting" : "Couldn't create", +- fname); +-*/ +- } +- else +- outfile = NULL; +- /* +- * could have no contents +- */ +- getheader = (remaining) ? 0 : 1; +- break; +- default: +- break; +- } +- } +- else { +- unsigned int bytes = (remaining > BLOCKSIZE) ? BLOCKSIZE : remaining; +- +- if (outfile != NULL) { +- if (fwrite(&buffer,sizeof(char),bytes,outfile) != bytes) { +- fprintf(stderr,"%s : error writing %s skipping...\n",prog,fname); +- fclose(outfile); +- unlink(fname); +- } +- } +- remaining -= bytes; +- if (remaining == 0) { +- getheader = 1; +- if (outfile != NULL) { +-#ifdef WIN32 +- HANDLE hFile; +- FILETIME ftm,ftLocal; +- SYSTEMTIME st; +- struct tm localt; +- +- fclose(outfile); +- +- localt = *localtime(&tartime); +- +- hFile = CreateFile(fname, GENERIC_READ | GENERIC_WRITE, +- 0, NULL, OPEN_EXISTING, 0, NULL); +- +- st.wYear = (WORD)localt.tm_year+1900; +- st.wMonth = (WORD)localt.tm_mon; +- st.wDayOfWeek = (WORD)localt.tm_wday; +- st.wDay = (WORD)localt.tm_mday; +- st.wHour = (WORD)localt.tm_hour; +- st.wMinute = (WORD)localt.tm_min; +- st.wSecond = (WORD)localt.tm_sec; +- st.wMilliseconds = 0; +- SystemTimeToFileTime(&st,&ftLocal); +- LocalFileTimeToFileTime(&ftLocal,&ftm); +- SetFileTime(hFile,&ftm,NULL,&ftm); +- CloseHandle(hFile); ++//int tar (gzFile in,int action,int arg,int argc,char **argv) ++int tar (gzFile in,int action,const char *dest,int arg,int argc,char **argv) ++{ ++ union tar_buffer buffer; ++ int len; ++ int err; ++ int getheader = 1; ++ int remaining = 0; ++ FILE *outfile = NULL; ++ char fname[BLOCKSIZE]; ++ int tarmode = 0; ++ time_t tartime; ++ struct attr_item *attributes = NULL; ++ ++ if (action == TGZ_LIST) ++ printf(" date time size file\n" ++ " ---------- -------- --------- -------------------------------------\n"); ++ while (1) ++ { ++ len = gzread(in, &buffer, BLOCKSIZE); ++ if (len < 0) ++ error(gzerror(in, &err)); ++ /* ++ * Always expect complete blocks to process ++ * the tar information. ++ */ ++ if (len != BLOCKSIZE) ++ { ++ action = TGZ_INVALID; /* force error exit */ ++ remaining = 0; /* force I/O cleanup */ ++ } ++ ++ /* ++ * If we have to get a tar header ++ */ ++ if (getheader >= 1) ++ { ++ /* ++ * if we met the end of the tar ++ * or the end-of-tar block, ++ * we are done ++ */ ++ if (len == 0 || buffer.header.name[0] == 0) ++ break; ++ ++ tarmode = getoct(buffer.header.mode,8); ++ tartime = (time_t)getoct(buffer.header.mtime,12); ++ ++ // ADDED for Sword ++ strncpy(fname, dest, SHORTNAMESIZE); ++ if ((fname[strlen(fname)-1] != '/') && (fname[strlen(fname)-1] != '\\')) ++ strcat(fname, "/"); ++ // END addition ++ if (tarmode == -1 || tartime == (time_t)-1) ++ { ++ buffer.header.name[0] = 0; ++ action = TGZ_INVALID; ++ } ++ // MODIFIED for Sword ++ strncat(fname, buffer.header.name, BLOCKSIZE - strlen(fname) - 10); ++#if 0 ++ if (getheader == 1) ++ { ++ strncpy(fname,buffer.header.name,SHORTNAMESIZE); ++ if (fname[SHORTNAMESIZE-1] != 0) ++ fname[SHORTNAMESIZE] = 0; ++ } ++ // END modification ++ else ++ { ++ /* ++ * The file name is longer than SHORTNAMESIZE ++ */ ++ if (strncmp(fname,buffer.header.name,SHORTNAMESIZE-1) != 0) ++ error("bad long name"); ++ getheader = 1; ++ } ++#endif ++ /* ++ * Act according to the type flag ++ */ ++ switch (buffer.header.typeflag) ++ { ++ case DIRTYPE: ++ if (action == TGZ_LIST) ++ printf(" %s <dir> %s\n",strtime(&tartime),fname); ++ if (action == TGZ_EXTRACT) ++ { ++ makedir(fname); ++ push_attr(&attributes,fname,tarmode,tartime); ++ } ++ break; ++ case REGTYPE: ++ case AREGTYPE: ++ remaining = getoct(buffer.header.size,12); ++ if (remaining == -1) ++ { ++ action = TGZ_INVALID; ++ break; ++ } ++ if (action == TGZ_LIST) ++ printf(" %s %9d %s\n",strtime(&tartime),remaining,fname); ++ else if (action == TGZ_EXTRACT) ++ { ++ if (matchname(arg,argc,argv,fname)) ++ { ++ outfile = fopen(fname,"wb"); ++ if (outfile == NULL) { ++ /* try creating directory */ ++ char *p = strrchr(fname, '/'); ++ if (p != NULL) { ++ *p = '\0'; ++ makedir(fname); ++ *p = '/'; ++ outfile = fopen(fname,"wb"); ++ } ++ } ++ if (outfile != NULL) ++ printf("Extracting %s\n",fname); ++ else ++ fprintf(stderr, "%s: Couldn't create %s",prog,fname); ++ } ++ else ++ outfile = NULL; ++ } ++ getheader = 0; ++ break; ++ case GNUTYPE_LONGLINK: ++ case GNUTYPE_LONGNAME: ++ remaining = getoct(buffer.header.size,12); ++ if (remaining < 0 || remaining >= BLOCKSIZE) ++ { ++ action = TGZ_INVALID; ++ break; ++ } ++ len = gzread(in, fname, BLOCKSIZE); ++ if (len < 0) ++ error(gzerror(in, &err)); ++ if (fname[BLOCKSIZE-1] != 0 || (int)strlen(fname) > remaining) ++ { ++ action = TGZ_INVALID; ++ break; ++ } ++ getheader = 2; ++ break; ++ default: ++ if (action == TGZ_LIST) ++ printf(" %s <---> %s\n",strtime(&tartime),fname); ++ break; ++ } ++ } ++ else ++ { ++ unsigned int bytes = (remaining > BLOCKSIZE) ? BLOCKSIZE : remaining; + +- outfile = NULL; +-#else +- struct utimbuf settime; ++ if (outfile != NULL) ++ { ++ if (fwrite(&buffer,sizeof(char),bytes,outfile) != bytes) ++ { ++ fprintf(stderr, ++ "%s: Error writing %s -- skipping\n",prog,fname); ++ fclose(outfile); ++ outfile = NULL; ++ remove(fname); ++ } ++ } ++ remaining -= bytes; ++ } ++ ++ if (remaining == 0) ++ { ++ getheader = 1; ++ if (outfile != NULL) ++ { ++ fclose(outfile); ++ outfile = NULL; ++ if (action != TGZ_INVALID) ++ push_attr(&attributes,fname,tarmode,tartime); ++ } ++ } ++ ++ /* ++ * Abandon if errors are found ++ */ ++ if (action == TGZ_INVALID) ++ { ++ error("broken archive"); ++ break; ++ } ++ } + +- settime.actime = settime.modtime = tartime; ++ /* ++ * Restore file modes and time stamps ++ */ ++ restore_attr(&attributes); + +- fclose(outfile); +- outfile = NULL; +- utime(fname,&settime); +-#endif +- } +- } +- } +- } +- return 0; ++ if (gzclose(in) != Z_OK) ++ error("failed gzclose"); ++ ++ return 0; + } + + +-/* =========================================================== */ ++/* ============================================================ */ + + void help(int exitval) + { +- fprintf(stderr, +- "untgz v 0.1\n" +- " an sample application of zlib 1.0.4\n\n" +- "Usage : untgz TGZfile to extract all files\n" +- " untgz TGZfile fname ... to extract selected files\n" +- " untgz -l TGZfile to list archive contents\n" +- " untgz -h to display this help\n\n"); ++ printf("untgz version 0.2.1\n" ++ " using zlib version %s\n\n", ++ zlibVersion()); ++ printf("Usage: untgz file.tgz extract all files\n" ++ " untgz file.tgz fname ... extract selected files\n" ++ " untgz -l file.tgz list archive contents\n" ++ " untgz -h display this help\n"); + exit(exitval); + } + + void error(const char *msg) + { +- fprintf(stderr, "%s: %s\n", prog, msg); +- exit(1); ++ fprintf(stderr, "%s: %s\n", prog, msg); ++ exit(1); + } + + ++/* ============================================================ */ ++ ++#if defined(WIN32) && defined(__GNUC__) ++int _CRT_glob = 0; /* disable argument globbing in MinGW */ ++#endif ++ ++int untar(gzFile in, const char *dest) ++{ ++ return tar(in, TGZ_EXTRACT, dest, 0, 0 , NULL); ++} ++ + int untargz(int fd, const char *dest) { +- gzFile *f; ++ gzFile *f; + +- f = gzdopen(fd, "rb"); +- if (f == NULL) { +- fprintf(stderr,"%s: Couldn't gzopen file\n", prog); +- return 1; +- } ++ f = gzdopen(fd, "rb"); ++ if (f == NULL) { ++ fprintf(stderr,"%s: Couldn't gzopen file\n", prog); ++ return 1; ++ } + +- return untar(f, dest); ++ return untar(f, dest); + } ++ ++#if 0 ++int main(int argc,char **argv) ++{ ++ int action = TGZ_EXTRACT; ++ int arg = 1; ++ char *TGZfile; ++ gzFile *f; ++ ++ prog = strrchr(argv[0],'\\'); ++ if (prog == NULL) ++ { ++ prog = strrchr(argv[0],'/'); ++ if (prog == NULL) ++ { ++ prog = strrchr(argv[0],':'); ++ if (prog == NULL) ++ prog = argv[0]; ++ else ++ prog++; ++ } ++ else ++ prog++; ++ } ++ else ++ prog++; ++ ++ if (argc == 1) ++ help(0); ++ ++ if (strcmp(argv[arg],"-l") == 0) ++ { ++ action = TGZ_LIST; ++ if (argc == ++arg) ++ help(0); ++ } ++ else if (strcmp(argv[arg],"-h") == 0) ++ { ++ help(0); ++ } ++ ++ if ((TGZfile = TGZfname(argv[arg])) == NULL) ++ TGZnotfound(argv[arg]); ++ ++ ++arg; ++ if ((action == TGZ_LIST) && (arg != argc)) ++ help(1); ++ ++/* ++ * Process the TGZ file ++ */ ++ switch(action) ++ { ++ case TGZ_LIST: ++ case TGZ_EXTRACT: ++ f = gzopen(TGZfile,"rb"); ++ if (f == NULL) ++ { ++ fprintf(stderr,"%s: Couldn't gzopen %s\n",prog,TGZfile); ++ return 1; ++ } ++ exit(tar(f, action, arg, argc, argv)); ++ break; ++ ++ default: ++ error("Unknown option"); ++ exit(1); ++ } ++ ++ return 0; ++} ++#endif +Index: sword-1.5.9/include/ftptrans.h +=================================================================== +--- sword-1.5.9.orig/include/ftptrans.h 2006-11-25 11:56:18.000000000 +0000 ++++ sword-1.5.9/include/ftptrans.h 2006-11-25 11:59:03.000000000 +0000 +@@ -18,7 +18,8 @@ + /** Class for reporting status
+ */
+ class SWDLLEXPORT StatusReporter {
+-public:
++public: ++ virtual ~StatusReporter() {};
+ /** Messages before stages of a batch download */
+ virtual void preStatus(long totalBytes, long completedBytes, const char *message);
+
+Index: sword-1.5.9/src/mgr/filemgr.cpp +=================================================================== +--- sword-1.5.9.orig/src/mgr/filemgr.cpp 2006-11-25 12:01:21.000000000 +0000 ++++ sword-1.5.9/src/mgr/filemgr.cpp 2006-11-25 12:08:34.000000000 +0000 +@@ -490,7 +490,7 @@ + int FileMgr::copyDir(const char *srcDir, const char *destDir) { + DIR *dir; + struct dirent *ent; +- if (dir = opendir(srcDir)) { ++ if ((dir = opendir(srcDir))) { + rewinddir(dir); + while ((ent = readdir(dir))) { + if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) { +Index: sword-1.5.9/src/mgr/ftptrans.cpp +=================================================================== +--- sword-1.5.9.orig/src/mgr/ftptrans.cpp 2006-11-25 12:08:52.000000000 +0000 ++++ sword-1.5.9/src/mgr/ftptrans.cpp 2006-11-25 12:09:27.000000000 +0000 +@@ -86,7 +86,7 @@ +
+
+ int FTPTransport::copyDirectory(const char *urlPrefix, const char *dir, const char *dest, const char *suffix) {
+- int i;
++ unsigned int i;
+ int retVal = 0;
+
+ SWBuf url = SWBuf(urlPrefix) + SWBuf(dir);
+Index: sword-1.5.9/src/mgr/installmgr.cpp +=================================================================== +--- sword-1.5.9.orig/src/mgr/installmgr.cpp 2006-11-25 12:09:52.000000000 +0000 ++++ sword-1.5.9/src/mgr/installmgr.cpp 2006-11-25 12:10:41.000000000 +0000 +@@ -145,7 +145,7 @@ + + FileMgr::removeDir(modDir.c_str()); + +- if (dir = opendir(manager->configPath)) { // find and remove .conf file ++ if ((dir = opendir(manager->configPath))) { // find and remove .conf file + rewinddir(dir); + while ((ent = readdir(dir))) { + if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) { +@@ -210,7 +210,6 @@ + + int InstallMgr::ftpCopy(InstallSource *is, const char *src, const char *dest, bool dirTransfer, const char *suffix) { + int retVal = 0; +- long i; + FTPTransport *trans = createFTPTransport(is->source, statusReporter); + transport = trans; // set classwide current transport for other thread terminate() call + trans->setPassive(passive); +@@ -364,7 +363,7 @@ + } + if (!aborted) { + SWBuf confDir = sourceDir + "/mods.d/"; +- if (dir = opendir(confDir.c_str())) { // find and copy .conf file ++ if ((dir = opendir(confDir.c_str()))) { // find and copy .conf file + rewinddir(dir); + while ((ent = readdir(dir))) { + if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) { +Index: sword-1.5.9/src/modules/comments/swcom.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/comments/swcom.cpp 2006-11-25 12:40:13.000000000 +0000 ++++ sword-1.5.9/src/modules/comments/swcom.cpp 2006-11-25 12:40:22.000000000 +0000 +@@ -75,7 +75,7 @@ + + + VerseKey &SWCom::getVerseKey() const { +- VerseKey *key; ++ VerseKey *key = NULL; + // see if we have a VerseKey * or decendant + SWTRY { + key = SWDYNAMIC_CAST(VerseKey, this->key); +Index: sword-1.5.9/src/modules/common/entriesblk.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/common/entriesblk.cpp 2006-11-25 12:15:11.000000000 +0000 ++++ sword-1.5.9/src/modules/common/entriesblk.cpp 2006-11-25 12:15:32.000000000 +0000 +@@ -142,9 +142,7 @@ + unsigned long dataSize; + getRawData(&dataSize); + getMetaEntry(entryIndex, &offset, &size); +- unsigned long len = size - 1; + int count = getCount(); +- unsigned long dataStart = METAHEADERSIZE + (count * METAENTRYSIZE); + + if (!offset) // already deleted + return; +Index: sword-1.5.9/src/modules/common/rawstr.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/common/rawstr.cpp 2006-11-25 12:11:58.000000000 +0000 ++++ sword-1.5.9/src/modules/common/rawstr.cpp 2006-11-25 12:12:36.000000000 +0000 +@@ -124,7 +124,6 @@ + + void RawStr::getIDXBuf(long ioffset, char **buf) + { +- char *trybuf, *targetbuf; + long offset; + + if (idxfd > 0) { +@@ -152,7 +151,7 @@ + + signed char RawStr::findOffset(const char *ikey, long *start, unsigned short *size, long away, long *idxoff) + { +- char *trybuf, *targetbuf, *key = 0, quitflag = 0; ++ char *trybuf, *key = 0, quitflag = 0; + signed char retval = -1; + long headoff, tailoff, tryoff = 0, maxoff = 0; + +Index: sword-1.5.9/src/modules/common/rawstr4.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/common/rawstr4.cpp 2006-11-25 12:12:41.000000000 +0000 ++++ sword-1.5.9/src/modules/common/rawstr4.cpp 2006-11-25 12:13:43.000000000 +0000 +@@ -123,7 +123,6 @@ + + void RawStr4::getIDXBuf(long ioffset, char **buf) + { +- char *trybuf, *targetbuf; + long offset; + + if (idxfd > 0) { +@@ -160,7 +159,7 @@ + + signed char RawStr4::findOffset(const char *ikey, long *start, unsigned long *size, long away, long *idxoff) + { +- char *trybuf, *targetbuf, *key = 0, quitflag = 0; ++ char *trybuf, *key = 0, quitflag = 0; + signed char retval = -1; + long headoff, tailoff, tryoff = 0, maxoff = 0; + +@@ -372,7 +371,7 @@ + while (true); // while we're resolving links + + if (idxbuflocal) { +- int localsize = strlen(idxbuflocal); ++ unsigned int localsize = strlen(idxbuflocal); + localsize = (localsize < (*isize - 1)) ? localsize : (*isize - 1); + strncpy(*idxbuf, idxbuflocal, localsize); + (*idxbuf)[localsize] = 0; +Index: sword-1.5.9/src/modules/common/zstr.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/common/zstr.cpp 2006-11-25 12:14:25.000000000 +0000 ++++ sword-1.5.9/src/modules/common/zstr.cpp 2006-11-25 12:14:57.000000000 +0000 +@@ -619,7 +619,7 @@ + rawZFilter(buf, 1); // 1 = encipher + + long zdxSize = zdxfd->seek(0, SEEK_END); +- long zdtSize = zdtfd->seek(0, SEEK_END); ++ unsigned long zdtSize = zdtfd->seek(0, SEEK_END); + + if ((cacheBlockIndex * ZDXENTRYSIZE) > (zdxSize - ZDXENTRYSIZE)) { // New Block + start = zdtSize; +Index: sword-1.5.9/src/modules/common/zverse.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/common/zverse.cpp 2006-11-25 12:13:58.000000000 +0000 ++++ sword-1.5.9/src/modules/common/zverse.cpp 2006-11-25 12:14:08.000000000 +0000 +@@ -140,7 +140,6 @@ + unsigned long ulCompOffset=0; // compressed buffer start + unsigned long ulCompSize=0; // buffer size compressed + unsigned long ulUnCompSize=0; // buffer size uncompressed +- char *pcCompText=NULL; // compressed text + + *start = *size = 0; + //printf ("Finding offset %ld\n", idxoff); +Index: sword-1.5.9/src/modules/filters/gbfheadings.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/gbfheadings.cpp 2006-11-25 12:29:24.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/gbfheadings.cpp 2006-11-25 12:29:37.000000000 +0000 +@@ -31,7 +31,6 @@ + char token[2048]; // cheese. Fix. + int tokpos = 0; + bool intoken = false; +- int len; + bool hide = false; + + const char *from; +Index: sword-1.5.9/src/modules/filters/gbfhtmlhref.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/gbfhtmlhref.cpp 2006-11-25 12:27:35.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/gbfhtmlhref.cpp 2006-11-25 12:28:00.000000000 +0000 +@@ -72,9 +72,6 @@ + + bool GBFHTMLHREF::handleToken(SWBuf &buf, const char *token, BasicFilterUserData *userData) { + const char *tok; +- char val[128]; +- char *valto; +- const char *num; + MyUserData *u = (MyUserData *)userData; + + if (!substituteToken(buf, token)) { +@@ -227,7 +224,7 @@ + else if (!strcmp(tag.getName(), "RF")) { + SWBuf type = tag.getAttribute("type"); + SWBuf footnoteNumber = tag.getAttribute("swordFootnote"); +- VerseKey *vkey; ++ VerseKey *vkey = NULL; + // see if we have a VerseKey * or descendant + SWTRY { + vkey = SWDYNAMIC_CAST(VerseKey, u->key); +Index: sword-1.5.9/src/modules/filters/gbfmorph.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/gbfmorph.cpp 2006-11-25 12:30:20.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/gbfmorph.cpp 2006-11-25 12:30:31.000000000 +0000 +@@ -31,7 +31,6 @@ + char token[2048]; // cheese. Fix. + int tokpos = 0; + bool intoken = false; +- int len; + bool lastspace = false; + + SWBuf orig = text; +Index: sword-1.5.9/src/modules/filters/gbfosis.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/gbfosis.cpp 2006-11-25 12:35:45.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/gbfosis.cpp 2006-11-25 12:36:22.000000000 +0000 +@@ -36,8 +36,6 @@ + SWBuf tmp; + SWBuf value; + +- bool newtext = false; +- + bool suspendTextPassThru = false; + bool handled = false; + bool newWord = false; +@@ -45,15 +43,13 @@ + bool lastspace = false; + + const char *wordStart = text.c_str(); +- const char *wordEnd; ++ const char *wordEnd = NULL; + +- const char *textStart; +- const char *textEnd; ++ const char *textStart = NULL; ++ const char *textEnd = NULL; + + SWBuf textNode = ""; + +- char wordstr[5]; +- + SWBuf buf; + + text = ""; +Index: sword-1.5.9/src/modules/filters/gbfredletterwords.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/gbfredletterwords.cpp 2006-11-25 12:29:53.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/gbfredletterwords.cpp 2006-11-25 12:30:08.000000000 +0000 +@@ -35,7 +35,6 @@ + char token[4096]; // cheese. Fix. + int tokpos = 0; + bool intoken = false; +- int len; + bool hide = false; + + const char *from; +Index: sword-1.5.9/src/modules/filters/gbfrtf.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/gbfrtf.cpp 2006-11-25 12:28:19.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/gbfrtf.cpp 2006-11-25 12:28:34.000000000 +0000 +@@ -23,14 +23,12 @@ + char *num; + int tokpos = 0; + bool intoken = false; +- int len; + const char *tok; + SWBuf strongnum; + SWBuf strongtense; + bool hideText = false; + int wordLen = 0; + int wordCount = 0; +- int i; + + const char *from; + SWBuf orig = text; +Index: sword-1.5.9/src/modules/filters/gbfstrongs.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/gbfstrongs.cpp 2006-11-25 12:28:46.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/gbfstrongs.cpp 2006-11-25 12:29:05.000000000 +0000 +@@ -32,13 +32,11 @@ + char token[2048]; // cheese. Fix. + int tokpos = 0; + bool intoken = false; +- int len; + bool lastspace = false; + int word = 1; + char val[128]; + char wordstr[5]; + char *valto; +- char *ch; + unsigned int textStart = 0, textEnd = 0; + bool newText = false; + SWBuf tmp; +Index: sword-1.5.9/src/modules/filters/gbfthml.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/gbfthml.cpp 2006-11-25 12:35:23.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/gbfthml.cpp 2006-11-25 12:35:32.000000000 +0000 +@@ -30,7 +30,6 @@ + char token[2048]; + int tokpos = 0; + bool intoken = false; +- int len; + const char *tok; + + SWBuf orig = text; +Index: sword-1.5.9/src/modules/filters/gbfwordjs.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/gbfwordjs.cpp 2006-11-25 12:30:42.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/gbfwordjs.cpp 2006-11-25 12:31:25.000000000 +0000 +@@ -44,11 +44,8 @@ + bool lastspace = false; + int word = 1; + char val[128]; +- char *valto; +- char *ch; + char wordstr[5]; + unsigned int textStart = 0, lastAppendLen = 0, textEnd = 0; +- char gh = 0; + SWBuf tmp; + bool newText = false; + bool needWordOut = false; +@@ -166,7 +163,7 @@ + else { + wordID = key->getText(); + } +- for (int i = 0; i < wordID.size(); i++) { ++ for (unsigned int i = 0; i < wordID.size(); i++) { + if ((!isdigit(wordID[i])) && (!isalpha(wordID[i]))) { + wordID[i] = '_'; + } +@@ -258,7 +255,7 @@ + else { + wordID = key->getText(); + } +- for (int i = 0; i < wordID.size(); i++) { ++ for (unsigned int i = 0; i < wordID.size(); i++) { + if ((!isdigit(wordID[i])) && (!isalpha(wordID[i]))) { + wordID[i] = '_'; + } +Index: sword-1.5.9/src/modules/filters/greeklexattribs.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/greeklexattribs.cpp 2006-11-25 12:37:37.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/greeklexattribs.cpp 2006-11-25 12:37:50.000000000 +0000 +@@ -29,7 +29,7 @@ + string freq; + char val[128], *valto; + char wordstr[7]; +- const char *currentPhrase = 0, *ch = 0; ++ const char *currentPhrase = 0; + const char *currentPhraseEnd = 0; + int number = 0; + +Index: sword-1.5.9/src/modules/filters/latin1utf16.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/latin1utf16.cpp 2006-11-25 12:15:59.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/latin1utf16.cpp 2006-11-25 12:16:06.000000000 +0000 +@@ -18,7 +18,6 @@ + + char Latin1UTF16::processText(SWBuf &text, const SWKey *key, const SWModule *module) { + const unsigned char *from; +- int len; + if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering + return (char)-1; + +Index: sword-1.5.9/src/modules/filters/osishtmlhref.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/osishtmlhref.cpp 2006-11-25 12:17:56.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/osishtmlhref.cpp 2006-11-25 12:19:37.000000000 +0000 +@@ -114,19 +114,19 @@ + + const char *attrib; + const char *val; +- if (attrib = tag.getAttribute("xlit")) { ++ if ((attrib = tag.getAttribute("xlit"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + outText(" ", buf, u); + outText(val, buf, u); + } +- if (attrib = tag.getAttribute("gloss")) { ++ if ((attrib = tag.getAttribute("gloss"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + outText(" ", buf, u); + outText(val, buf, u); + } +- if (attrib = tag.getAttribute("lemma")) { ++ if ((attrib = tag.getAttribute("lemma"))) { + int count = tag.getAttributePartCount("lemma", ' '); + int i = (count > 1) ? 0 : -1; // -1 for whole value cuz it's faster, but does the same thing as 0 + do { +@@ -155,7 +155,7 @@ + + } while (++i < count); + } +- if (attrib = tag.getAttribute("morph")) { // && (show)) { ++ if ((attrib = tag.getAttribute("morph"))) { // && (show)) { + SWBuf savelemma = tag.getAttribute("savlm"); + //if ((strstr(savelemma.c_str(), "3588")) && (lastText.length() < 1)) + // show = false; +@@ -179,7 +179,7 @@ + } while (++i < count); + //} + } +- if (attrib = tag.getAttribute("POS")) { ++ if ((attrib = tag.getAttribute("POS"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + outText(" ", buf, u); +@@ -204,7 +204,7 @@ + + if (!strongsMarkup) { // leave strong's markup notes out, in the future we'll probably have different option filters to turn different note types on or off + SWBuf footnoteNumber = tag.getAttribute("swordFootnote"); +- VerseKey *vkey; ++ VerseKey *vkey = NULL; + // see if we have a VerseKey * or descendant + SWTRY { + vkey = SWDYNAMIC_CAST(VerseKey, u->key); +@@ -341,7 +341,7 @@ + outText(firstChar, buf, u); + outText("<font size=\"-1\">", buf, u); + +- for(int i=0;i<strlen(name);i++) ++ for(unsigned int i=0;i<strlen(name);i++) + outText(toupper(name[i]), buf, u); + outText("</font>", buf, u); + } +Index: sword-1.5.9/src/modules/filters/osisredletterwords.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/osisredletterwords.cpp 2006-11-25 12:24:54.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/osisredletterwords.cpp 2006-11-25 12:25:04.000000000 +0000 +@@ -33,7 +33,6 @@ + + SWBuf token; + bool intoken = false; +- char buf[254]; + + SWBuf orig = text; + const char *from = orig.c_str(); +Index: sword-1.5.9/src/modules/filters/osisrtf.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/osisrtf.cpp 2006-11-25 12:23:28.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/osisrtf.cpp 2006-11-25 12:24:35.000000000 +0000 +@@ -162,19 +162,19 @@ + + const char *attrib; + const char *val; +- if (attrib = tag.getAttribute("xlit")) { ++ if ((attrib = tag.getAttribute("xlit"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + scratch.setFormatted(" {\\fs15 <%s>}", val); + outText(scratch.c_str(), buf, u); + } +- if (attrib = tag.getAttribute("gloss")) { ++ if ((attrib = tag.getAttribute("gloss"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + scratch.setFormatted(" {\\fs15 <%s>}", val); + outText(scratch.c_str(), buf, u); + } +- if (attrib = tag.getAttribute("lemma")) { ++ if ((attrib = tag.getAttribute("lemma"))) { + int count = tag.getAttributePartCount("lemma", ' '); + int i = (count > 1) ? 0 : -1; // -1 for whole value cuz it's faster, but does the same thing as 0 + do { +@@ -213,7 +213,7 @@ + } while (++i < count); + } + } +- if (attrib = tag.getAttribute("POS")) { ++ if ((attrib = tag.getAttribute("POS"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + scratch.setFormatted(" {\\fs15 <%s>}", val); +@@ -235,7 +235,7 @@ + && (type != "strongsMarkup") // deprecated + ) { + SWBuf footnoteNumber = tag.getAttribute("swordFootnote"); +- VerseKey *vkey; ++ VerseKey *vkey = NULL; + // see if we have a VerseKey * or descendant + SWTRY { + vkey = SWDYNAMIC_CAST(VerseKey, u->key); +Index: sword-1.5.9/src/modules/filters/osisscripref.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/osisscripref.cpp 2006-11-25 12:25:18.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/osisscripref.cpp 2006-11-25 12:25:25.000000000 +0000 +@@ -33,9 +33,6 @@ + bool hide = false; + SWBuf tagText; + XMLTag startTag; +- int tagTextNum = 1; +- int footnoteNum = 1; +- char buf[254]; + + SWBuf orig = text; + const char *from = orig.c_str(); +Index: sword-1.5.9/src/modules/filters/osisstrongs.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/osisstrongs.cpp 2006-11-25 12:21:41.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/osisstrongs.cpp 2006-11-25 12:22:57.000000000 +0000 +@@ -38,8 +38,6 @@ + bool lastspace = false; + int wordNum = 1; + char wordstr[5]; +- char *valto; +- char *ch; + const char *wordStart = 0; + + const SWBuf orig = text; +@@ -72,9 +70,8 @@ + SWBuf lemmaClass = ""; + + const char *attrib; +- const char *val; + sprintf(wordstr, "%03d", wordNum); +- if (attrib = wtag.getAttribute("morph")) { ++ if ((attrib = wtag.getAttribute("morph"))) { + int count = wtag.getAttributePartCount("morph", ' '); + int i = (count > 1) ? 0 : -1; // -1 for whole value cuz it's faster, but does the same thing as 0 + do { +@@ -106,7 +103,7 @@ + } while (++i < count); + } + +- if (attrib = wtag.getAttribute("lemma")) { ++ if ((attrib = wtag.getAttribute("lemma"))) { + int count = wtag.getAttributePartCount("lemma", ' '); + int i = (count > 1) ? 0 : -1; // -1 for whole value cuz it's faster, but does the same thing as 0 + do { +@@ -147,7 +144,7 @@ + module->getEntryAttributes()["Word"][wordstr]["PartCount"].setFormatted("%d", count); + } + +- if (attrib = wtag.getAttribute("src")) { ++ if ((attrib = wtag.getAttribute("src"))) { + int count = wtag.getAttributePartCount("src", ' '); + int i = (count > 1) ? 0 : -1; // -1 for whole value cuz it's faster, but does the same thing as 0 + do { +Index: sword-1.5.9/src/modules/filters/osisvariants.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/osisvariants.cpp 2006-11-25 12:25:40.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/osisvariants.cpp 2006-11-25 12:26:14.000000000 +0000 +@@ -62,7 +62,7 @@ + const char *from = orig.c_str(); + + //we use a fixed comparision string to make sure the loop is as fast as the original two blocks with almost the same code +- const char* variantCompareString = (option == 0) ? "div type=\"variant\" class=\"1\"" : "div type=\"variant\" class=\"2\""; ++ //const char* variantCompareString = (option == 0) ? "div type=\"variant\" class=\"1\"" : "div type=\"variant\" class=\"2\""; + + for (text = ""; *from; from++) { + if (*from == '<') { +Index: sword-1.5.9/src/modules/filters/osiswebif.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/osiswebif.cpp 2006-11-25 12:20:00.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/osiswebif.cpp 2006-11-25 12:21:25.000000000 +0000 +@@ -69,17 +69,17 @@ + + const char *attrib; + const char *val; +- if (attrib = tag.getAttribute("xlit")) { ++ if ((attrib = tag.getAttribute("xlit"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + // buf.appendFormatted(" %s", val); + } +- if (attrib = tag.getAttribute("gloss")) { ++ if ((attrib = tag.getAttribute("gloss"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + buf.appendFormatted(" %s", val); + } +- if (attrib = tag.getAttribute("lemma")) { ++ if ((attrib = tag.getAttribute("lemma"))) { + int count = tag.getAttributePartCount("lemma", ' '); + int i = (count > 1) ? 0 : -1; // -1 for whole value cuz it's faster, but does the same thing as 0 + do { +@@ -114,7 +114,7 @@ + } while (++i < count); + } + } +- if (attrib = tag.getAttribute("POS")) { ++ if ((attrib = tag.getAttribute("POS"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + buf.appendFormatted(" %s", val); +@@ -138,7 +138,7 @@ + if (!strongsMarkup) { // leave strong's markup notes out, in the future we'll probably have different option filters to turn different note types on or off + SWBuf footnoteNumber = tag.getAttribute("swordFootnote"); + SWBuf modName = (u->module) ? u->module->Name() : ""; +- VerseKey *vkey; ++ VerseKey *vkey = NULL; + // see if we have a VerseKey * or descendant + SWTRY { + vkey = SWDYNAMIC_CAST(VerseKey, u->key); +Index: sword-1.5.9/src/modules/filters/osiswordjs.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/osiswordjs.cpp 2006-11-25 12:26:29.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/osiswordjs.cpp 2006-11-25 12:27:19.000000000 +0000 +@@ -47,9 +47,6 @@ + bool lastspace = false; + int wordNum = 1; + char wordstr[5]; +- char val[128]; +- char *valto; +- char *ch; + SWBuf modName = (module)?module->Name():""; + // add TR to w src in KJV then remove this next line + SWBuf wordSrcPrefix = (modName == "KJV")?SWBuf("TR"):modName; +@@ -143,7 +140,7 @@ + } + wordID.appendFormatted("_%s", src.c_str()); + // clean up our word ID for XHTML +- for (int i = 0; i < wordID.size(); i++) { ++ for (unsigned int i = 0; i < wordID.size(); i++) { + if ((!isdigit(wordID[i])) && (!isalpha(wordID[i]))) { + wordID[i] = '_'; + } +Index: sword-1.5.9/src/modules/filters/teiplain.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/teiplain.cpp 2006-11-25 12:38:04.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/teiplain.cpp 2006-11-25 12:38:56.000000000 +0000 +@@ -42,7 +42,7 @@ + bool TEIPlain::handleToken(SWBuf &buf, const char *token, BasicFilterUserData *userData) {
+ // manually process if it wasn't a simple substitution
+ if (!substituteToken(buf, token)) {
+- MyUserData *u = (MyUserData *)userData;
++ //MyUserData *u = (MyUserData *)userData;
+ XMLTag tag(token);
+
+ // <p> paragraph tag
+Index: sword-1.5.9/src/modules/filters/teirtf.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/teirtf.cpp 2006-11-25 12:38:34.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/teirtf.cpp 2006-11-25 12:38:48.000000000 +0000 +@@ -54,7 +54,7 @@ + bool TEIRTF::handleToken(SWBuf &buf, const char *token, BasicFilterUserData *userData) {
+ // manually process if it wasn't a simple substitution
+ if (!substituteToken(buf, token)) {
+- MyUserData *u = (MyUserData *)userData;
++ //MyUserData *u = (MyUserData *)userData;
+ XMLTag tag(token);
+
+ // <p> paragraph tag
+Index: sword-1.5.9/src/modules/filters/thmlgbf.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/thmlgbf.cpp 2006-11-25 12:32:12.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/thmlgbf.cpp 2006-11-25 12:32:19.000000000 +0000 +@@ -31,7 +31,6 @@ + char token[2048]; + int tokpos = 0; + bool intoken = false; +- int len; + bool ampersand = false; + bool sechead = false; + bool title = false; +Index: sword-1.5.9/src/modules/filters/thmlhtmlhref.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/thmlhtmlhref.cpp 2006-11-25 12:33:24.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/thmlhtmlhref.cpp 2006-11-25 12:33:54.000000000 +0000 +@@ -45,7 +45,6 @@ + + + bool ThMLHTMLHREF::handleToken(SWBuf &buf, const char *token, BasicFilterUserData *userData) { +- const char *tok; + if (!substituteToken(buf, token)) { // manually process if it wasn't a simple substitution + MyUserData *u = (MyUserData *)userData; + +@@ -88,7 +87,7 @@ + if (!tag.isEmpty()) { + SWBuf type = tag.getAttribute("type"); + SWBuf footnoteNumber = tag.getAttribute("swordFootnote"); +- VerseKey *vkey; ++ VerseKey *vkey = NULL; + // see if we have a VerseKey * or descendant + SWTRY { + vkey = SWDYNAMIC_CAST(VerseKey, u->key); +@@ -133,7 +132,7 @@ + } + else { + SWBuf footnoteNumber = u->startTag.getAttribute("swordFootnote"); +- VerseKey *vkey; ++ VerseKey *vkey = NULL; + // see if we have a VerseKey * or descendant + SWTRY { + vkey = SWDYNAMIC_CAST(VerseKey, u->key); +Index: sword-1.5.9/src/modules/filters/thmlosis.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/thmlosis.cpp 2006-11-25 12:36:53.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/thmlosis.cpp 2006-11-25 12:37:16.000000000 +0000 +@@ -36,17 +36,16 @@ + // static QuoteStack quoteStack; + + bool lastspace = false; +- int word = 1; + char val[128]; + SWBuf buf; + char *valto; + char *ch; + + const char *wordStart = text.c_str(); +- const char *wordEnd; ++ const char *wordEnd = NULL; + +- const char *textStart; +- const char *textEnd; ++ const char *textStart = NULL; ++ const char *textEnd = NULL; + + bool suspendTextPassThru = false; + bool handled = false; +Index: sword-1.5.9/src/modules/filters/thmlrtf.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/thmlrtf.cpp 2006-11-25 12:32:32.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/thmlrtf.cpp 2006-11-25 12:33:03.000000000 +0000 +@@ -205,7 +205,6 @@ + + + bool ThMLRTF::handleToken(SWBuf &buf, const char *token, BasicFilterUserData *userData) { +- const char *tok; + if (!substituteToken(buf, token)) { // manually process if it wasn't a simple substitution + MyUserData *u = (MyUserData *)userData; + XMLTag tag(token); +@@ -238,7 +237,7 @@ + if (!tag.isEmpty()) { + SWBuf type = tag.getAttribute("type"); + SWBuf footnoteNumber = tag.getAttribute("swordFootnote"); +- VerseKey *vkey; ++ VerseKey *vkey = NULL; + // see if we have a VerseKey * or descendant + SWTRY { + vkey = SWDYNAMIC_CAST(VerseKey, u->key); +@@ -277,7 +276,7 @@ + } + else { + SWBuf footnoteNumber = u->startTag.getAttribute("swordFootnote"); +- VerseKey *vkey; ++ VerseKey *vkey = NULL; + // see if we have a VerseKey * or descendant + SWTRY { + vkey = SWDYNAMIC_CAST(VerseKey, u->key); +Index: sword-1.5.9/src/modules/filters/thmlstrongs.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/thmlstrongs.cpp 2006-11-25 12:31:42.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/thmlstrongs.cpp 2006-11-25 12:31:47.000000000 +0000 +@@ -34,7 +34,6 @@ + const char *from; + int tokpos = 0; + bool intoken = false; +- int len; + bool lastspace = false; + int word = 1; + char val[128]; +Index: sword-1.5.9/src/modules/filters/thmlwebif.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/thmlwebif.cpp 2006-11-25 12:34:07.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/thmlwebif.cpp 2006-11-25 12:34:17.000000000 +0000 +@@ -28,7 +28,6 @@ + } + + bool ThMLWEBIF::handleToken(SWBuf &buf, const char *token, BasicFilterUserData *userData) { +- const char *tok; + + if (!substituteToken(buf, token)) { // manually process if it wasn't a simple substitution + MyUserData *u = (MyUserData *)userData; +Index: sword-1.5.9/src/modules/filters/thmlwordjs.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/thmlwordjs.cpp 2006-11-25 12:34:28.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/thmlwordjs.cpp 2006-11-25 12:35:05.000000000 +0000 +@@ -50,7 +50,6 @@ + char *ch; + char wordstr[5]; + unsigned int textStart = 0, lastAppendLen = 0, textEnd = 0; +- char gh = 0; + SWBuf tmp; + bool newText = false; + bool needWordOut = false; +@@ -179,7 +178,7 @@ + else { + wordID = key->getText(); + } +- for (int i = 0; i < wordID.size(); i++) { ++ for (unsigned int i = 0; i < wordID.size(); i++) { + if ((!isdigit(wordID[i])) && (!isalpha(wordID[i]))) { + wordID[i] = '_'; + } +@@ -271,7 +270,7 @@ + else { + wordID = key->getText(); + } +- for (int i = 0; i < wordID.size(); i++) { ++ for (unsigned int i = 0; i < wordID.size(); i++) { + if ((!isdigit(wordID[i])) && (!isalpha(wordID[i]))) { + wordID[i] = '_'; + } +Index: sword-1.5.9/src/modules/filters/utf8html.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/utf8html.cpp 2006-11-25 12:17:04.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/utf8html.cpp 2006-11-25 12:17:35.000000000 +0000 +@@ -59,7 +59,7 @@ + from += subsequent; + text += '&'; + text += '#'; +- sprintf(digit, "%d", ch); ++ sprintf(digit, "%ld", ch); + for (char *dig = digit; *dig; dig++) + text += *dig; + text += ';'; +Index: sword-1.5.9/src/modules/filters/utf8utf16.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/filters/utf8utf16.cpp 2006-11-25 12:16:34.000000000 +0000 ++++ sword-1.5.9/src/modules/filters/utf8utf16.cpp 2006-11-25 12:16:44.000000000 +0000 +@@ -17,7 +17,6 @@ + + char UTF8UTF16::processText(SWBuf &text, const SWKey *key, const SWModule *module) { + const unsigned char *from; +- char digit[10]; + unsigned long ch; + signed short utf16; + unsigned char from2[7]; +Index: sword-1.5.9/src/modules/swmodule.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/swmodule.cpp 2006-11-25 12:11:17.000000000 +0000 ++++ sword-1.5.9/src/modules/swmodule.cpp 2006-11-25 12:11:32.000000000 +0000 +@@ -680,7 +680,6 @@ + + // entry attributes + else if (searchType == -3) { +- int i; + RenderText(); // force parse + AttributeTypeList &entryAttribs = getEntryAttributes(); + AttributeTypeList::iterator i1Start, i1End; +Index: sword-1.5.9/src/modules/texts/swtext.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/texts/swtext.cpp 2006-11-25 12:39:28.000000000 +0000 ++++ sword-1.5.9/src/modules/texts/swtext.cpp 2006-11-25 12:39:44.000000000 +0000 +@@ -82,7 +82,7 @@ + + + VerseKey &SWText::getVerseKey() const { +- VerseKey *key; ++ VerseKey *key = NULL; + // see if we have a VerseKey * or decendant + SWTRY { + key = SWDYNAMIC_CAST(VerseKey, this->key); +Index: sword-1.5.9/src/modules/comments/rawfiles/rawfiles.cpp +=================================================================== +--- sword-1.5.9.orig/src/modules/comments/rawfiles/rawfiles.cpp 2006-11-25 12:40:48.000000000 +0000 ++++ sword-1.5.9/src/modules/comments/rawfiles/rawfiles.cpp 2006-11-25 12:41:09.000000000 +0000 +@@ -57,7 +57,6 @@ + FileDesc *datafile; + long start = 0; + unsigned short size = 0; +- char *tmpbuf; + VerseKey *key = 0; + + SWTRY { +@@ -155,7 +154,6 @@ + + long start; + unsigned short size; +- char *tmpbuf; + const VerseKey *key = 0; + + SWTRY { diff --git a/debian/patches/07_warn_tools.diff b/debian/patches/07_warn_tools.diff new file mode 100644 index 0000000..733a4d0 --- /dev/null +++ b/debian/patches/07_warn_tools.diff @@ -0,0 +1,193 @@ +Index: sword-1.5.9/utilities/cipherraw.cpp +=================================================================== +--- sword-1.5.9.orig/utilities/cipherraw.cpp 2006-11-25 13:18:10.000000000 +0000 ++++ sword-1.5.9/utilities/cipherraw.cpp 2006-11-25 13:18:53.000000000 +0000 +@@ -65,10 +65,10 @@ + key.Headings(1); + for (key.Index(0); (!key.Error()); key++) { + rawdrv->findOffset(key.Testament(), key.Index(), &offset, &size); +- printf("%s: OLD offset: %d; size: %d\n", (const char *)key, offset, size); ++ printf("%s: OLD offset: %ld; size: %d\n", (const char *)key, offset, size); + + if ((offset == loffset) && (size == lsize)) { +- printf("using previous offset,size\n", size); ++ printf("using previous offset,size %d\n", size); + offset = lseek(oxfd[key.Testament() - 1], 0, SEEK_CUR); + printf("%ld %ld %d \n", offset, lzoffset, lzsize); + write(oxfd[key.Testament() - 1], &lzoffset, 4); +Index: sword-1.5.9/utilities/diatheke/osiscgi.cpp +=================================================================== +--- sword-1.5.9.orig/utilities/diatheke/osiscgi.cpp 2006-11-25 13:09:51.000000000 +0000 ++++ sword-1.5.9/utilities/diatheke/osiscgi.cpp 2006-11-25 13:11:07.000000000 +0000 +@@ -80,17 +80,17 @@ + + const char *attrib; + const char *val; +- if (attrib = tag.getAttribute("xlit")) { ++ if ((attrib = tag.getAttribute("xlit"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + buf.appendFormatted(" %s", val); + } +- if (attrib = tag.getAttribute("gloss")) { ++ if ((attrib = tag.getAttribute("gloss"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + buf.appendFormatted(" %s", val); + } +- if (attrib = tag.getAttribute("lemma")) { ++ if ((attrib = tag.getAttribute("lemma"))) { + int count = tag.getAttributePartCount("lemma"); + int i = (count > 1) ? 0 : -1; // -1 for whole value cuz it's faster, but does the same thing as 0 + do { +@@ -140,7 +140,7 @@ + } while (++i < count); + } + } +- if (attrib = tag.getAttribute("POS")) { ++ if ((attrib = tag.getAttribute("POS"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + buf.appendFormatted(" %s", val); +@@ -160,7 +160,7 @@ + if (type != "x-strongsMarkup" && // leave strong's markup notes out, in the future we'll probably have different option filters to turn different note types on or off + type != "strongsMarkup") { // deprecated + SWBuf footnoteNumber = tag.getAttribute("swordFootnote"); +- VerseKey *vkey; ++ VerseKey *vkey = NULL; + // see if we have a VerseKey * or descendant + SWTRY { + vkey = SWDYNAMIC_CAST(VerseKey, u->key); +@@ -201,7 +201,7 @@ + + if ((!tag.isEndTag()) && (!tag.isEmpty())) { + buf += "<a href=\"!DIATHEKE_URL!verse="; +- if (attrib = tag.getAttribute("osisRef")) { ++ if ((attrib = tag.getAttribute("osisRef"))) { + val = strchr(attrib, ':'); + val = (val) ? (val + 1) : attrib; + buf.appendFormatted("%s", val); +Index: sword-1.5.9/utilities/gbfidx.cpp +=================================================================== +--- sword-1.5.9.orig/utilities/gbfidx.cpp 2006-11-25 13:19:07.000000000 +0000 ++++ sword-1.5.9/utilities/gbfidx.cpp 2006-11-25 13:21:06.000000000 +0000 +@@ -32,12 +32,12 @@ + char testmnt; + + +-main(int argc, char **argv) ++int main(int argc, char **argv) + { + long pos, offset; +- int num1, num2, rangemax, curbook = 0, curchap = 0, curverse = 0; +- char buf[127], startflag = 0; +- short size, tmp; ++ int num1, num2, rangemax; ++ char startflag = 0; ++ short size; + + checkparams(argc, argv); + +@@ -90,6 +90,7 @@ + close(cfp); + close(bfp); + close(fp); ++ return 0; + } + + +@@ -135,8 +136,6 @@ + + char startchap(char *buf) + { +- char loop; +- + if (buf[0] != '<') + return 0; + if (buf[1] != 'S') +@@ -159,8 +158,6 @@ + + char startentry(char *buf) + { +- char loop; +- + if (buf[0] != '<') + return 0; + if (buf[1] != 'S') +@@ -184,9 +181,7 @@ + char findbreak(int fp, long *offset, int *num1, int *num2, int *rangemax, short *size) + { + char buf[7]; +- char buf2[20]; +- char ch; +- char loop; ++ int loop; + long offset2; + int ch2, vs2, rm2; + bool flag; +Index: sword-1.5.9/utilities/imp2ld.cpp +=================================================================== +--- sword-1.5.9.orig/utilities/imp2ld.cpp 2006-11-25 13:14:54.000000000 +0000 ++++ sword-1.5.9/utilities/imp2ld.cpp 2006-11-25 13:17:57.000000000 +0000 +@@ -61,9 +61,9 @@ + } + } + +- zLD* modZ; +- RawLD* mod2; +- RawLD4* mod4; ++ zLD* modZ = NULL; ++ RawLD* mod2 = NULL; ++ RawLD4* mod4 = NULL; + SWKey* key; + + if (mode == 3) { +Index: sword-1.5.9/utilities/imp2vs.cpp +=================================================================== +--- sword-1.5.9.orig/utilities/imp2vs.cpp 2006-11-25 13:12:04.000000000 +0000 ++++ sword-1.5.9/utilities/imp2vs.cpp 2006-11-25 13:12:11.000000000 +0000 +@@ -23,7 +23,6 @@ + + const string helptext ="imp2vs 1.0 Bible/Commentary module creation tool for the SWORD Project\n usage:\n %s <filename> [output dir] \n"; + +- signed long i = 0; + string keybuffer = ""; + string entbuffer = ""; + string linebuffer = ""; +Index: sword-1.5.9/utilities/osis2mod.cpp +=================================================================== +--- sword-1.5.9.orig/utilities/osis2mod.cpp 2006-11-25 13:11:29.000000000 +0000 ++++ sword-1.5.9/utilities/osis2mod.cpp 2006-11-25 13:11:46.000000000 +0000 +@@ -165,8 +165,8 @@ + static bool inChapterHeader = false; + + // Flags to indicate whether we are in a book, chapter and/or verse +- static bool inBook = false; +- static bool inChapter = false; ++ //static bool inBook = false; ++ //static bool inChapter = false; + static bool inVerse = true; + + static SWBuf header = ""; +Index: sword-1.5.9/utilities/xml2gbs.cpp +=================================================================== +--- sword-1.5.9.orig/utilities/xml2gbs.cpp 2006-11-25 13:12:24.000000000 +0000 ++++ sword-1.5.9/utilities/xml2gbs.cpp 2006-11-25 13:14:05.000000000 +0000 +@@ -73,7 +73,7 @@ + } + + TreeKeyIdx * treeKey; +- RawGenBook * book; ++ RawGenBook * book = NULL; + + std::string divs[32]; + +@@ -288,7 +288,7 @@ + } + + int main(int argc, char **argv) { +- unsigned long i = 0; ++ int i = 0; + + char modname[256]; + *modname = 0; diff --git a/debian/patches/10_diatheke.diff b/debian/patches/10_diatheke.diff deleted file mode 100644 index 9e9896f..0000000 --- a/debian/patches/10_diatheke.diff +++ /dev/null @@ -1,14 +0,0 @@ -Index: sword-1.5.9/utilities/diatheke/cgi/diatheke.pl -=================================================================== ---- sword-1.5.9.orig/utilities/diatheke/cgi/diatheke.pl 2008-02-18 22:10:09.000000000 +0000 -+++ sword-1.5.9/utilities/diatheke/cgi/diatheke.pl 2008-02-18 22:30:25.000000000 +0000 -@@ -110,8 +110,7 @@ - $range = $mydata; - $range =~ tr/+/ /; - $range =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; -- $range = "-r \"$range\""; -- $range = shell_escape($range); -+ $range = "-r '" . shell_escape($range) . "'"; - } - - elsif ($varname eq "strongs") { diff --git a/debian/patches/series b/debian/patches/series index 56e3974..fc7f622 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,5 @@ -10_diatheke.diff -sword_c++.diff -libver.diff -clucene.diff +01_sword_c++.diff +02_libver.diff +03_clucene.diff +04_ziplock.diff +05_getline.diff |