1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

dtinfogen: replace Xt-related functions.

This commit is contained in:
Liang Chang 2021-12-11 06:07:37 +08:00
parent ad58dca2aa
commit 3212d19a78

View file

@ -31,6 +31,7 @@
* (c) Copyright 1996 Hitachi. * (c) Copyright 1996 Hitachi.
*/ */
#include <stdbool.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdarg.h> #include <stdarg.h>
@ -45,13 +46,12 @@
#endif #endif
#include <sys/param.h> #include <sys/param.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <X11/Intrinsic.h>
#include <Dt/Utility.h> #include <Dt/Utility.h>
#define LANG_COMMON "ja_JP.UTF-8" /* default os language */ #define LANG_COMMON "ja_JP.UTF-8" /* default os language */
#define XtsNewString(str) \ #define XtsNewString(str) \
((str) != NULL ? (char *)(memcpy(XtMalloc((unsigned)strlen(str) + 1), \ ((str) != NULL ? (char *)(memcpy(malloc((unsigned)strlen(str) + 1), \
str, (unsigned)strlen(str) + 1)) : NULL) str, (unsigned)strlen(str) + 1)) : NULL)
typedef enum typedef enum
@ -103,8 +103,8 @@ typedef struct _GlobalsStruct
char *searchEngine; char *searchEngine;
char *parser; char *parser;
Boolean verbose; bool verbose;
Boolean keepWorkDir; bool keepWorkDir;
char *workDir; char *workDir;
char *library; char *library;
@ -113,7 +113,7 @@ typedef struct _GlobalsStruct
char *libName; char *libName;
char *outFile; char *outFile;
char *saveESIS; char *saveESIS;
Boolean loadESIS; bool loadESIS;
int tocElemIndex; int tocElemIndex;
char *id; char *id;
char *title; char *title;
@ -203,23 +203,23 @@ static void dieRWD(int exitCode, char *format, ...);
static void die(int exitCode, char *format, ...); static void die(int exitCode, char *format, ...);
static void sigHandler(int sig); static void sigHandler(int sig);
static void touchFile(char *fileName); static void touchFile(char *fileName);
static Boolean checkStat(char *fileName, unsigned int flags); static bool checkStat(char *fileName, unsigned int flags);
static void checkDir(char *dirName); static void checkDir(char *dirName);
static void checkExec(char *execName); static void checkExec(char *execName);
static char *makeTmpFile(void); static char *makeTmpFile(void);
static char *makeWorkDir(void); static char *makeWorkDir(void);
static void removeWorkDir(void); static void removeWorkDir(void);
static void runShellCmd(char *cmd); static void runShellCmd(char *cmd);
static Boolean doAdmin(int argc, char *argv[]); static bool doAdmin(int argc, char *argv[]);
static Boolean doBuild(int argc, char *argv[]); static bool doBuild(int argc, char *argv[]);
static Boolean doTocgen(int argc, char *argv[]); static bool doTocgen(int argc, char *argv[]);
static Boolean doUpdate(int argc, char *argv[]); static bool doUpdate(int argc, char *argv[]);
static Boolean doValidate(int argc, char *argv[]); static bool doValidate(int argc, char *argv[]);
static Boolean doHelp(int argc, char *argv[]); static bool doHelp(int argc, char *argv[]);
static void appendStr(char **str, int *curLen, int *maxLen, char *strToAppend); static void appendStr(char **str, int *curLen, int *maxLen, char *strToAppend);
static char *makeAbsPathEnv(char *var); static char *makeAbsPathEnv(char *var);
static char *makeAbsPathStr(char *str); static char *makeAbsPathStr(char *str);
static char *addToEnv(char *var, char *addMe, Boolean prepend); static char *addToEnv(char *var, char *addMe, bool prepend);
static char *buildPath(char *format, ...); static char *buildPath(char *format, ...);
static char *buildSGML(void); static char *buildSGML(void);
static char *buildDecl(void); static char *buildDecl(void);
@ -232,7 +232,7 @@ static char *parseDocument(int runCmd, ...);
static void buildBookcase(char *cmdSrc, char *dirName); static void buildBookcase(char *cmdSrc, char *dirName);
static char *storeBookCase(char *cmdSrc, char *tocOpt, char *dbName, static char *storeBookCase(char *cmdSrc, char *tocOpt, char *dbName,
char *dirName); char *dirName);
static Boolean findBookCaseNameAndDesc(char *tmpFile, char *bookCaseName, static bool findBookCaseNameAndDesc(char *tmpFile, char *bookCaseName,
char *bookCaseDesc); char *bookCaseDesc);
static void validateBookCaseName(char *bookCaseName); static void validateBookCaseName(char *bookCaseName);
static void validateBookCase(char *mapName, char *bookCaseName); static void validateBookCase(char *mapName, char *bookCaseName);
@ -293,7 +293,7 @@ die(int exitCode, char *format, ...)
static void static void
sigHandler(int sig) sigHandler(int sig)
{ {
gStruct->keepWorkDir = False; /* Always clean up on signal. */ gStruct->keepWorkDir = false; /* Always clean up on signal. */
dieRWD(-1, "Received signal; exiting...\n"); dieRWD(-1, "Received signal; exiting...\n");
} }
@ -312,33 +312,33 @@ touchFile(char *fileName)
fclose(fp); fclose(fp);
} }
static Boolean static bool
checkStat(char *fileName, unsigned int flags) checkStat(char *fileName, unsigned int flags)
{ {
struct stat statBuf; struct stat statBuf;
Boolean userOwnsFile; bool userOwnsFile;
Boolean userInGroup; bool userInGroup;
if (!fileName) if (!fileName)
return False; return false;
errno = 0; errno = 0;
if (stat(fileName, &statBuf) != 0) if (stat(fileName, &statBuf) != 0)
return False; return false;
if ((flags & FSTAT_IS_FILE) && if ((flags & FSTAT_IS_FILE) &&
(!S_ISREG(statBuf.st_mode))) (!S_ISREG(statBuf.st_mode)))
{ {
errno = ENOENT; errno = ENOENT;
return False; return false;
} }
if ((flags & FSTAT_IS_DIR) && if ((flags & FSTAT_IS_DIR) &&
(!S_ISDIR(statBuf.st_mode))) (!S_ISDIR(statBuf.st_mode)))
{ {
errno = ENOTDIR; errno = ENOTDIR;
return False; return false;
} }
userOwnsFile = (getuid() == statBuf.st_uid); userOwnsFile = (getuid() == statBuf.st_uid);
@ -350,15 +350,15 @@ checkStat(char *fileName, unsigned int flags)
if (userOwnsFile) if (userOwnsFile)
{ {
if (!(statBuf.st_mode & S_IRUSR)) if (!(statBuf.st_mode & S_IRUSR))
return False; return false;
} }
else if (userInGroup) else if (userInGroup)
{ {
if (!(statBuf.st_mode & S_IRGRP)) if (!(statBuf.st_mode & S_IRGRP))
return False; return false;
} }
else if (!(statBuf.st_mode & S_IROTH)) else if (!(statBuf.st_mode & S_IROTH))
return False; return false;
} }
if (flags & FSTAT_IS_WRITABLE) if (flags & FSTAT_IS_WRITABLE)
@ -366,15 +366,15 @@ checkStat(char *fileName, unsigned int flags)
if (userOwnsFile) if (userOwnsFile)
{ {
if (!(statBuf.st_mode & S_IWUSR)) if (!(statBuf.st_mode & S_IWUSR))
return False; return false;
} }
else if (userInGroup) else if (userInGroup)
{ {
if (!(statBuf.st_mode & S_IWGRP)) if (!(statBuf.st_mode & S_IWGRP))
return False; return false;
} }
else if (!(statBuf.st_mode & S_IWOTH)) else if (!(statBuf.st_mode & S_IWOTH))
return False; return false;
} }
if (flags & FSTAT_IS_EXECUTABLE) if (flags & FSTAT_IS_EXECUTABLE)
@ -382,19 +382,19 @@ checkStat(char *fileName, unsigned int flags)
if (userOwnsFile) if (userOwnsFile)
{ {
if (!(statBuf.st_mode & S_IXUSR)) if (!(statBuf.st_mode & S_IXUSR))
return False; return false;
} }
else if (userInGroup) else if (userInGroup)
{ {
if (!(statBuf.st_mode & S_IXGRP)) if (!(statBuf.st_mode & S_IXGRP))
return False; return false;
} }
else if (!(statBuf.st_mode & S_IXOTH)) else if (!(statBuf.st_mode & S_IXOTH))
return False; return false;
} }
errno = 0; errno = 0;
return True; return true;
} }
static void static void
@ -417,20 +417,20 @@ checkDir(char *dirName)
runShellCmd(cmdBuf); runShellCmd(cmdBuf);
} }
static Boolean static bool
testExec(char *execName, Boolean tellIt) testExec(char *execName, bool tellIt)
{ {
char *path; char *path;
char **pathVector; char **pathVector;
int i; int i;
char execBuf[MAXPATHLEN + 1]; char execBuf[MAXPATHLEN + 1];
Boolean found; bool found;
if (!execName) if (!execName)
return True; return true;
if ((path = getenv("PATH")) == (char *)NULL) if ((path = getenv("PATH")) == (char *)NULL)
return True; return true;
path = XtsNewString(path); path = XtsNewString(path);
pathVector = _DtVectorizeInPlace(path, ':'); pathVector = _DtVectorizeInPlace(path, ':');
@ -444,8 +444,8 @@ testExec(char *execName, Boolean tellIt)
found = (pathVector[i] != (char *)NULL); found = (pathVector[i] != (char *)NULL);
XtFree((char *)pathVector); free((char *)pathVector);
XtFree(path); free(path);
if (found && tellIt) if (found && tellIt)
fprintf(stderr, "%s ==> %s\n", execName, execBuf); fprintf(stderr, "%s ==> %s\n", execName, execBuf);
@ -474,7 +474,7 @@ makeTmpFile(void)
if (!checkStat(tmpFile, FSTAT_EXISTS)) if (!checkStat(tmpFile, FSTAT_EXISTS))
return tmpFile; return tmpFile;
XtFree(tmpFile); free(tmpFile);
} }
dieRWD(-1, "%s: could not create tmp file.\n", EXEC_NAME); dieRWD(-1, "%s: could not create tmp file.\n", EXEC_NAME);
@ -512,7 +512,7 @@ makeWorkDir(void)
return workDir; return workDir;
} }
XtFree(workDir); free(workDir);
} }
dieRWD(-1, "%s: could not create work directory.\n", EXEC_NAME); dieRWD(-1, "%s: could not create work directory.\n", EXEC_NAME);
@ -532,7 +532,7 @@ removeWorkDir(void)
snprintf(cmdBuf, sizeof(cmdBuf), "rm -rf %s", gStruct->workDir); snprintf(cmdBuf, sizeof(cmdBuf), "rm -rf %s", gStruct->workDir);
ret = system(cmdBuf); ret = system(cmdBuf);
if(ret != 0) die(-1, "system for rm failed; exiting...\n"); if(ret != 0) die(-1, "system for rm failed; exiting...\n");
XtFree(gStruct->workDir); free(gStruct->workDir);
gStruct->workDir = (char *)NULL; gStruct->workDir = (char *)NULL;
} }
} }
@ -547,7 +547,7 @@ runShellCmd(char *cmd)
dieRWD(-1, "%s: command failed: %s\n", EXEC_NAME, cmd); dieRWD(-1, "%s: command failed: %s\n", EXEC_NAME, cmd);
} }
static Boolean static bool
doAdmin(int argc, char *argv[]) doAdmin(int argc, char *argv[])
{ {
if (strcmp(argv[1], "admin") == 0) if (strcmp(argv[1], "admin") == 0)
@ -557,13 +557,13 @@ doAdmin(int argc, char *argv[])
runShellCmd("Librarian"); runShellCmd("Librarian");
return True; return true;
} }
return False; return false;
} }
static Boolean static bool
doBuild(int argc, char *argv[]) doBuild(int argc, char *argv[])
{ {
if (strcmp(argv[1], "build") == 0) if (strcmp(argv[1], "build") == 0)
@ -604,7 +604,7 @@ doBuild(int argc, char *argv[])
if ((dirName = dirname(bcCopy)) == (char *)NULL) if ((dirName = dirname(bcCopy)) == (char *)NULL)
dirName = "."; dirName = ".";
dirName = XtsNewString(dirName); dirName = XtsNewString(dirName);
XtFree(bcCopy); free(bcCopy);
if (gStruct->loadESIS) if (gStruct->loadESIS)
{ {
@ -612,13 +612,13 @@ doBuild(int argc, char *argv[])
} }
else else
{ {
cmdSrc = parseDocument(False, bookcase, 0); cmdSrc = parseDocument(false, bookcase, 0);
} }
buildBookcase(cmdSrc, dirName); buildBookcase(cmdSrc, dirName);
XtFree(cmdSrc); free(cmdSrc);
XtFree(dirName); free(dirName);
} }
if (!gStruct->libName) if (!gStruct->libName)
@ -626,15 +626,15 @@ doBuild(int argc, char *argv[])
fileToTouch = buildPath("%s/%s.oli", fileToTouch = buildPath("%s/%s.oli",
gStruct->library, gStruct->libName); gStruct->library, gStruct->libName);
touchFile(fileToTouch); touchFile(fileToTouch);
XtFree(fileToTouch); free(fileToTouch);
return True; return true;
} }
return False; return false;
} }
static Boolean static bool
doTocgen(int argc, char *argv[]) doTocgen(int argc, char *argv[])
{ {
if (strcmp(argv[1], "tocgen") == 0) if (strcmp(argv[1], "tocgen") == 0)
@ -658,12 +658,12 @@ doTocgen(int argc, char *argv[])
buildTOC(argc - argsProcessed, &argv[argsProcessed]); buildTOC(argc - argsProcessed, &argv[argsProcessed]);
return True; return true;
} }
return False; return false;
} }
static Boolean static bool
doUpdate(int argc, char *argv[]) doUpdate(int argc, char *argv[])
{ {
if (strcmp(argv[1], "update") == 0) if (strcmp(argv[1], "update") == 0)
@ -700,22 +700,22 @@ doUpdate(int argc, char *argv[])
if (!checkStat(styleSheet, FSTAT_IS_READABLE)) if (!checkStat(styleSheet, FSTAT_IS_READABLE))
die(-1, "%s: %s: %s\n", EXEC_NAME, styleSheet, strerror(errno)); die(-1, "%s: %s: %s\n", EXEC_NAME, styleSheet, strerror(errno));
cmdSrc = parseDocument(False, cmdSrc = parseDocument(false,
gStruct->styleProlog, styleSheet, 0); gStruct->styleProlog, styleSheet, 0);
cmd = buildPath("%s | StyleUpdate %s %s", cmd = buildPath("%s | StyleUpdate %s %s",
cmdSrc, gStruct->library, gStruct->bookCase); cmdSrc, gStruct->library, gStruct->bookCase);
runShellCmd(cmd); runShellCmd(cmd);
XtFree(cmdSrc); free(cmdSrc);
XtFree(cmd); free(cmd);
return True; return true;
} }
return False; return false;
} }
static Boolean static bool
doValidate(int argc, char *argv[]) doValidate(int argc, char *argv[])
{ {
if (strcmp(argv[1], "validate") == 0) if (strcmp(argv[1], "validate") == 0)
@ -739,25 +739,25 @@ doValidate(int argc, char *argv[])
if (gStruct->saveESIS) if (gStruct->saveESIS)
{ {
cmdSrc = parseDocument(False, bookcase, 0); cmdSrc = parseDocument(false, bookcase, 0);
cmd = buildPath("%s > %s", cmdSrc, gStruct->saveESIS); cmd = buildPath("%s > %s", cmdSrc, gStruct->saveESIS);
runShellCmd(cmd); runShellCmd(cmd);
XtFree(cmdSrc); free(cmdSrc);
XtFree(cmd); free(cmd);
} }
else else
{ {
parseDocument(True, bookcase, 0); parseDocument(true, bookcase, 0);
} }
} }
return True; return true;
} }
return False; return false;
} }
static Boolean static bool
doHelp(int argc, char *argv[]) doHelp(int argc, char *argv[])
{ {
if (strcmp(argv[1], "-h") == 0) if (strcmp(argv[1], "-h") == 0)
@ -765,10 +765,10 @@ doHelp(int argc, char *argv[])
printUsage((char *)NULL, 0); printUsage((char *)NULL, 0);
/* NOTREACHED */ /* NOTREACHED */
return True; return true;
} }
return False; return false;
} }
static void static void
@ -782,7 +782,7 @@ appendStr(char **str, int *curLen, int *maxLen, char *strToAppend)
len = strlen(strToAppend); len = strlen(strToAppend);
while (*curLen + len >= *maxLen) while (*curLen + len >= *maxLen)
{ {
newStr = XtRealloc(*str, (*maxLen + MAXPATHLEN) * sizeof(char)); newStr = realloc(*str, (*maxLen + MAXPATHLEN) * sizeof(char));
if (!newStr) if (!newStr)
return; return;
@ -815,11 +815,11 @@ makeAbsPathEnv(char *var)
var, oldPath, newPath); var, oldPath, newPath);
pathlen = strlen(var) + strlen(newPath) + 2; pathlen = strlen(var) + strlen(newPath) + 2;
newVar = XtMalloc(pathlen); newVar = malloc(pathlen);
snprintf(newVar, pathlen, "%s=%s", var, newPath); snprintf(newVar, pathlen, "%s=%s", var, newPath);
putenv(newVar); putenv(newVar);
XtFree(newPath); free(newPath);
return newVar; return newVar;
} }
@ -893,18 +893,18 @@ makeAbsPathStr(char *str)
} }
} }
XtFree((char *)dirVector); free((char *)dirVector);
} }
XtFree((char *)pathVector); free((char *)pathVector);
XtFree((char *)cwdVector); free((char *)cwdVector);
XtFree(str); free(str);
return newPath; return newPath;
} }
static char * static char *
addToEnv(char *var, char *addMe, Boolean prepend) addToEnv(char *var, char *addMe, bool prepend)
{ {
char *envStr; char *envStr;
int len, ptrlen; int len, ptrlen;
@ -920,7 +920,7 @@ addToEnv(char *var, char *addMe, Boolean prepend)
len = strlen(var) + strlen(STR(envStr)) + strlen(addMe) + 3; len = strlen(var) + strlen(STR(envStr)) + strlen(addMe) + 3;
ptrlen = len * sizeof(char); ptrlen = len * sizeof(char);
if ((ptr = XtMalloc(ptrlen)) != (char *)NULL) if ((ptr = malloc(ptrlen)) != (char *)NULL)
{ {
if (envStr) if (envStr)
{ {
@ -990,7 +990,7 @@ defaultGlobals(void)
{ {
memset((void *)gStruct, 0, sizeof(GlobalsStruct)); memset((void *)gStruct, 0, sizeof(GlobalsStruct));
gStruct->verbose = False; gStruct->verbose = false;
/* Clear out the ENV environment variable. */ /* Clear out the ENV environment variable. */
if (getenv("ENV") != (char *)NULL) if (getenv("ENV") != (char *)NULL)
@ -1069,7 +1069,7 @@ defaultGlobals(void)
gStruct->dirMode = 0775; gStruct->dirMode = 0775;
gStruct->searchEngine = "dtsearch"; gStruct->searchEngine = "dtsearch";
gStruct->parser = "onsgmls"; gStruct->parser = "onsgmls";
gStruct->keepWorkDir = False; gStruct->keepWorkDir = false;
gStruct->workDir = (char *)NULL; gStruct->workDir = (char *)NULL;
gStruct->tocElemIndex = 0; gStruct->tocElemIndex = 0;
@ -1125,7 +1125,7 @@ checkGlobals(void)
STR(langtbl[gStruct->dtsridx].name)); STR(langtbl[gStruct->dtsridx].name));
if (!checkStat(gStruct->dtsrlib, FSTAT_IS_DIR)) { if (!checkStat(gStruct->dtsrlib, FSTAT_IS_DIR)) {
XtFree(gStruct->dtsrlib); free(gStruct->dtsrlib);
gStruct->dtsrlib = buildPath("%s/infolib/etc/%s/dtsr", gStruct->dtsrlib = buildPath("%s/infolib/etc/%s/dtsr",
gStruct->install, LANG_COMMON); gStruct->install, LANG_COMMON);
} }
@ -1141,7 +1141,7 @@ checkGlobals(void)
} }
static void static void
addCatFile(char *catalog, Bool needed) addCatFile(char *catalog, bool needed)
{ {
char pathBuf[(2 * MAXPATHLEN) + 10]; char pathBuf[(2 * MAXPATHLEN) + 10];
char *ptr1, *ptr2; char *ptr1, *ptr2;
@ -1158,7 +1158,7 @@ addCatFile(char *catalog, Bool needed)
snprintf(pathBuf, sizeof(pathBuf), "-c%s ", ptr1); snprintf(pathBuf, sizeof(pathBuf), "-c%s ", ptr1);
appendStr(&gStruct->sgmlCatFiles, &gStruct->sgmlCatFilesLen, appendStr(&gStruct->sgmlCatFiles, &gStruct->sgmlCatFilesLen,
&gStruct->sgmlCatFilesMaxLen, pathBuf); &gStruct->sgmlCatFilesMaxLen, pathBuf);
XtFree(ptr1); free(ptr1);
} }
static int static int
@ -1223,7 +1223,7 @@ parseArgs(int argc, char *argv[])
} }
else if (strcmp(argv[i], "-v") == 0) else if (strcmp(argv[i], "-v") == 0)
{ {
gStruct->verbose = True; gStruct->verbose = true;
} }
else if (strcmp(argv[i], "-h") == 0) else if (strcmp(argv[i], "-h") == 0)
{ {
@ -1240,7 +1240,7 @@ parseArgs(int argc, char *argv[])
else if (strcmp(argv[i], "-m") == 0) else if (strcmp(argv[i], "-m") == 0)
{ {
if (++i < argc) if (++i < argc)
addCatFile(argv[i], True); addCatFile(argv[i], true);
} }
else if (strcmp(argv[i], "-s") == 0) else if (strcmp(argv[i], "-s") == 0)
{ {
@ -1255,7 +1255,7 @@ parseArgs(int argc, char *argv[])
else if (strcmp(argv[i], "--load-esis") == 0) else if (strcmp(argv[i], "--load-esis") == 0)
{ {
if (++i < argc) if (++i < argc)
gStruct->loadESIS = True; gStruct->loadESIS = true;
} }
else if (strcmp(argv[i], "--bin") == 0) else if (strcmp(argv[i], "--bin") == 0)
{ {
@ -1263,18 +1263,18 @@ parseArgs(int argc, char *argv[])
{ {
char *ptr1, *ptr2; char *ptr1, *ptr2;
ptr1 = addToEnv("PATH", argv[i], True); ptr1 = addToEnv("PATH", argv[i], true);
ptr2 = makeAbsPathEnv("PATH"); ptr2 = makeAbsPathEnv("PATH");
if (gStruct->pathEnv) if (gStruct->pathEnv)
XtFree(gStruct->pathEnv); free(gStruct->pathEnv);
if (ptr1) if (ptr1)
XtFree(ptr1); free(ptr1);
gStruct->pathEnv = ptr2; gStruct->pathEnv = ptr2;
} }
} }
else if (strcmp(argv[i], "--keep") == 0) else if (strcmp(argv[i], "--keep") == 0)
{ {
gStruct->keepWorkDir = True; gStruct->keepWorkDir = true;
} }
else if (strcmp(argv[i], "-chapter") == 0) else if (strcmp(argv[i], "-chapter") == 0)
{ {
@ -1319,10 +1319,10 @@ parseDocument(int runCmd, ...)
EXEC_NAME, strerror(errno)); EXEC_NAME, strerror(errno));
addCatFile(buildPath("%s/infolib/sgml/catalog", addCatFile(buildPath("%s/infolib/sgml/catalog",
STR(gStruct->install)), True); STR(gStruct->install)), true);
if (!gStruct->sgmlSearchPathEnv) if (!gStruct->sgmlSearchPathEnv)
gStruct->sgmlSearchPathEnv = addToEnv("SGML_SEARCH_PATH", ".", False); gStruct->sgmlSearchPathEnv = addToEnv("SGML_SEARCH_PATH", ".", false);
appendStr(&cmd, &cmdLen, &maxLen, gStruct->parser); appendStr(&cmd, &cmdLen, &maxLen, gStruct->parser);
appendStr(&cmd, &cmdLen, &maxLen, " "); appendStr(&cmd, &cmdLen, &maxLen, " ");
@ -1341,7 +1341,7 @@ parseDocument(int runCmd, ...)
va_end(ap); va_end(ap);
runShellCmd(cmd); runShellCmd(cmd);
XtFree(cmd); free(cmd);
return (char *)NULL; return (char *)NULL;
} }
@ -1378,7 +1378,7 @@ buildBookcase(char *cmdSrc, char *dirName)
tmpFile = storeBookCase(cmdSrc, "all", dataBase, dirName); tmpFile = storeBookCase(cmdSrc, "all", dataBase, dirName);
newMmdbPathEnv = buildPath("MMDB_PATH=%s", STR(gStruct->library)); newMmdbPathEnv = buildPath("MMDB_PATH=%s", STR(gStruct->library));
if (gStruct->mmdbPathEnv) if (gStruct->mmdbPathEnv)
XtFree(gStruct->mmdbPathEnv); free(gStruct->mmdbPathEnv);
gStruct->mmdbPathEnv = newMmdbPathEnv; gStruct->mmdbPathEnv = newMmdbPathEnv;
putenv(newMmdbPathEnv); putenv(newMmdbPathEnv);
@ -1387,7 +1387,7 @@ buildBookcase(char *cmdSrc, char *dirName)
if (!findBookCaseNameAndDesc(tmpFile, bookCaseName, bookCaseDesc)) if (!findBookCaseNameAndDesc(tmpFile, bookCaseName, bookCaseDesc))
dieRWD(-1, "%s: Missing Bookcase name\n", EXEC_NAME); dieRWD(-1, "%s: Missing Bookcase name\n", EXEC_NAME);
XtFree(tmpFile); free(tmpFile);
bookCaseDir = buildPath("%s/%s", STR(gStruct->library), bookCaseName); bookCaseDir = buildPath("%s/%s", STR(gStruct->library), bookCaseName);
if (checkStat(bookCaseDir, FSTAT_IS_DIR)) if (checkStat(bookCaseDir, FSTAT_IS_DIR))
@ -1428,7 +1428,7 @@ buildBookcase(char *cmdSrc, char *dirName)
snprintf(cmd, sizeof(cmd), "rm -f %s", style_file); snprintf(cmd, sizeof(cmd), "rm -f %s", style_file);
ret1 = system(cmd); ret1 = system(cmd);
if(ret1 != 0) die(-1, "system for rm failed; exiting...\n"); if(ret1 != 0) die(-1, "system for rm failed; exiting...\n");
XtFree((char*)style_file); free((char*)style_file);
} }
@ -1448,7 +1448,7 @@ buildBookcase(char *cmdSrc, char *dirName)
snprintf(cmd, sizeof(cmd), "rm -f %s", compress_file); snprintf(cmd, sizeof(cmd), "rm -f %s", compress_file);
ret1 = system(cmd); ret1 = system(cmd);
if(ret1 != 0) die(-1, "system for rm failed; exiting...\n"); if(ret1 != 0) die(-1, "system for rm failed; exiting...\n");
XtFree((char*)compress_file); free((char*)compress_file);
} }
@ -1468,11 +1468,11 @@ buildBookcase(char *cmdSrc, char *dirName)
snprintf(cmd, sizeof(cmd), "rm -f %s", anonym_file); snprintf(cmd, sizeof(cmd), "rm -f %s", anonym_file);
ret1 = system(cmd); ret1 = system(cmd);
if(ret1 != 0) die(-1, "system for rm failed; exiting...\n"); if(ret1 != 0) die(-1, "system for rm failed; exiting...\n");
XtFree((char*)anonym_file); free((char*)anonym_file);
} }
validateBookCase(bookCaseMap, bookCaseName); validateBookCase(bookCaseMap, bookCaseName);
XtFree(bookCaseMap); free(bookCaseMap);
if (strcmp(gStruct->searchEngine, "dtsearch") == 0) if (strcmp(gStruct->searchEngine, "dtsearch") == 0)
{ {
@ -1549,7 +1549,7 @@ buildBookcase(char *cmdSrc, char *dirName)
dieRWD(-1, "%s: Cannot find %s: %s\n", dieRWD(-1, "%s: Cannot find %s: %s\n",
EXEC_NAME, curDir, strerror(errno)); EXEC_NAME, curDir, strerror(errno));
} }
XtFree(bookCaseDir); free(bookCaseDir);
if (!gStruct->keepWorkDir) if (!gStruct->keepWorkDir)
removeWorkDir(); removeWorkDir();
@ -1583,15 +1583,15 @@ storeBookCase(char *cmdSrc, char *tocOpt, char *dbName,
cmd = buildPath("rm -f %s", onsgmls_file); cmd = buildPath("rm -f %s", onsgmls_file);
ret = system(cmd); ret = system(cmd);
if(ret != 0) die(-1, "system for rm failed; exiting...\n"); if(ret != 0) die(-1, "system for rm failed; exiting...\n");
XtFree((char*)onsgmls_file); free((char*)onsgmls_file);
} }
XtFree(cmd); free(cmd);
return tmpFile; return tmpFile;
} }
static Boolean static bool
findBookCaseNameAndDesc(char *tmpFile, char *bookCaseName, findBookCaseNameAndDesc(char *tmpFile, char *bookCaseName,
char *bookCaseDesc) char *bookCaseDesc)
{ {
@ -1623,20 +1623,20 @@ findBookCaseNameAndDesc(char *tmpFile, char *bookCaseName,
*((char *) memcpy(bookCaseDesc, p1, len) + len) = '\0'; *((char *) memcpy(bookCaseDesc, p1, len) + len) = '\0';
fclose(fp); fclose(fp);
return True; return true;
} }
} }
} }
} }
fclose(fp); fclose(fp);
return False; return false;
} }
static void static void
validateBookCaseName(char *bookCaseName) validateBookCaseName(char *bookCaseName)
{ {
Boolean isOk = False; bool isOk = false;
if (strlen(bookCaseName) <= 8) if (strlen(bookCaseName) <= 8)
{ {
@ -1707,14 +1707,14 @@ editMapFile(char *bookCaseName, char *bookCaseMap)
char *lastLine; char *lastLine;
int i; int i;
int bcNameLen; int bcNameLen;
Boolean replaced = False; bool replaced = false;
if ((stat(bookCaseMap, &statBuf) != 0) || if ((stat(bookCaseMap, &statBuf) != 0) ||
((fp = fopen(bookCaseMap, "r")) == (FILE *)NULL)) ((fp = fopen(bookCaseMap, "r")) == (FILE *)NULL))
dieRWD(-1, "%s: %s: %s\n", EXEC_NAME, bookCaseMap, dieRWD(-1, "%s: %s: %s\n", EXEC_NAME, bookCaseMap,
strerror(errno)); strerror(errno));
file = XtMalloc((statBuf.st_size + 1) * sizeof(char)); file = malloc((statBuf.st_size + 1) * sizeof(char));
ret = fread(file, statBuf.st_size, sizeof(char), fp); ret = fread(file, statBuf.st_size, sizeof(char), fp);
if(ret == 0) die(-1, "fread failed; exiting...\n"); if(ret == 0) die(-1, "fread failed; exiting...\n");
if (file[statBuf.st_size - 1] == '\n') if (file[statBuf.st_size - 1] == '\n')
@ -1730,7 +1730,7 @@ editMapFile(char *bookCaseName, char *bookCaseMap)
libID = lineVector[1]; libID = lineVector[1];
else else
libID = (char *)NULL; libID = (char *)NULL;
XtFree((char *)lineVector); free((char *)lineVector);
if ((libDesc = gStruct->libDesc) == (char *)NULL) if ((libDesc = gStruct->libDesc) == (char *)NULL)
libDesc = oldDesc; libDesc = oldDesc;
@ -1745,7 +1745,7 @@ editMapFile(char *bookCaseName, char *bookCaseMap)
bcNameLen = strlen(bookCaseName); bcNameLen = strlen(bookCaseName);
fprintf(fp, "%s\t%s\n", STR(libDesc), STR(libID)); fprintf(fp, "%s\t%s\n", STR(libDesc), STR(libID));
XtFree(firstLine); free(firstLine);
for (i = 1; fileVector[i] != (char *)NULL; i++) for (i = 1; fileVector[i] != (char *)NULL; i++)
{ {
@ -1756,7 +1756,7 @@ editMapFile(char *bookCaseName, char *bookCaseMap)
if (!replaced) if (!replaced)
{ {
fprintf(fp, "%s\n", lastLine); fprintf(fp, "%s\n", lastLine);
replaced = True; replaced = true;
} }
} }
else else
@ -1770,8 +1770,8 @@ editMapFile(char *bookCaseName, char *bookCaseMap)
fclose(fp); fclose(fp);
XtFree((char *)fileVector); free((char *)fileVector);
XtFree(file); free(file);
} }
static void static void
@ -1833,15 +1833,15 @@ buildTOC(int argc, char *argv[])
} }
tocBC = tocBookcase(argc, argv); tocBC = tocBookcase(argc, argv);
cmdSrc = parseDocument(False, tocBC, 0); cmdSrc = parseDocument(false, tocBC, 0);
if ((tocDir = dirname(tocBC)) == (char *)NULL) if ((tocDir = dirname(tocBC)) == (char *)NULL)
tocDir = "."; tocDir = ".";
tocDir = XtsNewString(tocDir); tocDir = XtsNewString(tocDir);
p1 = storeBookCase(cmdSrc, "toc", makeWorkDir(), tocDir); p1 = storeBookCase(cmdSrc, "toc", makeWorkDir(), tocDir);
XtFree(p1); free(p1);
XtFree(tocDir); free(tocDir);
XtFree(cmdSrc); free(cmdSrc);
XtFree(tocBC); free(tocBC);
makeTOC(idBuf, titleBuf); makeTOC(idBuf, titleBuf);
@ -1948,14 +1948,14 @@ makeTOC(char *id, char *title)
ptr1 = replaceData(STR(tocRecord->loc), "&", "&#38;"); ptr1 = replaceData(STR(tocRecord->loc), "&", "&#38;");
ptr2 = replaceData(ptr1, "\"", "&#34;"); ptr2 = replaceData(ptr1, "\"", "&#34;");
XtFree(ptr1); free(ptr1);
snprintf(lineBuf, sizeof(lineBuf), snprintf(lineBuf, sizeof(lineBuf),
"<TOCEntry LinkEnd=\"%s\">%s</> <!-- %s:%s -->\n", "<TOCEntry LinkEnd=\"%s\">%s</> <!-- %s:%s -->\n",
ptr2, trTitle, STR(tocRecord->file), ptr2, trTitle, STR(tocRecord->file),
STR(tocRecord->line)); STR(tocRecord->line));
XtFree(ptr2); free(ptr2);
XtFree(trTitle); free(trTitle);
newTOCEntry.ord = STR(tocRecord->ord); newTOCEntry.ord = STR(tocRecord->ord);
newTOCEntry.entry = lineBuf; newTOCEntry.entry = lineBuf;
@ -1973,7 +1973,7 @@ makeTOC(char *id, char *title)
"<TOC id=\"%s\">\n" "<TOC id=\"%s\">\n"
"<TITLE>%s</TITLE>\n", "<TITLE>%s</TITLE>\n",
id, tocTitle); id, tocTitle);
XtFree(tocTitle); free(tocTitle);
level = -1; level = -1;
@ -2034,8 +2034,8 @@ sgmlData(char *inData)
p2 = replaceData(p1, "<", "&lt;"); p2 = replaceData(p1, "<", "&lt;");
outData = replaceData(p2, ">", "&gt;"); outData = replaceData(p2, ">", "&gt;");
XtFree(p1); free(p1);
XtFree(p2); free(p2);
return outData; return outData;
} }
@ -2061,7 +2061,7 @@ replaceData(char *inData, char *replaceMe, char *replacement)
return XtsNewString(inData); return XtsNewString(inData);
newLen = strlen(inData) + (i * (strlen(replacement) - replaceMeLen)); newLen = strlen(inData) + (i * (strlen(replacement) - replaceMeLen));
newData = XtMalloc((newLen + 1) * sizeof(char)); newData = malloc((newLen + 1) * sizeof(char));
newData[0] = '\0'; newData[0] = '\0';
p = inData; p = inData;
while ((endP = strstr(p, replaceMe)) != (char *)NULL) while ((endP = strstr(p, replaceMe)) != (char *)NULL)
@ -2091,7 +2091,7 @@ addTOCEntry(TOCEntry **tocEntries, int *nTOCEntries, int *maxEntries,
TOCEntry *newArray; TOCEntry *newArray;
newArray = newArray =
(TOCEntry *)XtRealloc((char *)*tocEntries, (TOCEntry *)realloc((char *)*tocEntries,
(*maxEntries + 10) * sizeof(TOCEntry)); (*maxEntries + 10) * sizeof(TOCEntry));
if (!newArray) if (!newArray)
return; return;
@ -2128,11 +2128,11 @@ freeTOCEntries(TOCEntry *tocEntries, int nTOCEntries)
for (i = 0; i < nTOCEntries; i++) for (i = 0; i < nTOCEntries; i++)
{ {
XtFree(tocEntries[i].ord); free(tocEntries[i].ord);
XtFree(tocEntries[i].entry); free(tocEntries[i].entry);
} }
XtFree((char *)tocEntries); free((char *)tocEntries);
} }
static TOCRecord * static TOCRecord *
@ -2143,11 +2143,11 @@ getTOCRecord(FILE *fp)
TOCRecord *tocRecord; TOCRecord *tocRecord;
char *ptr; char *ptr;
tocRecord = (TOCRecord *)XtMalloc(sizeof(TOCRecord)); tocRecord = (TOCRecord *)malloc(sizeof(TOCRecord));
if (fgets(lineBuf, MAXPATHLEN, fp) == (char *)NULL) if (fgets(lineBuf, MAXPATHLEN, fp) == (char *)NULL)
{ {
XtFree((char *)tocRecord); free((char *)tocRecord);
return (TOCRecord *)NULL; return (TOCRecord *)NULL;
} }
@ -2155,20 +2155,20 @@ getTOCRecord(FILE *fp)
if (fgets(lineBuf, MAXPATHLEN, fp) == (char *)NULL) if (fgets(lineBuf, MAXPATHLEN, fp) == (char *)NULL)
{ {
XtFree((char *)tocRecord); free((char *)tocRecord);
return (TOCRecord *)NULL; return (TOCRecord *)NULL;
} }
cols = atoi(lineBuf); cols = atoi(lineBuf);
if (cols < TOC_REC_COLS) if (cols < TOC_REC_COLS)
{ {
XtFree((char *)tocRecord); free((char *)tocRecord);
return (TOCRecord *)NULL; return (TOCRecord *)NULL;
} }
/* DISCARD first item (book). */ /* DISCARD first item (book). */
ptr = getTOCField(fp); ptr = getTOCField(fp);
XtFree(ptr); free(ptr);
cols--; cols--;
tocRecord->loc = getTOCField(fp); tocRecord->loc = getTOCField(fp);
@ -2189,7 +2189,7 @@ getTOCRecord(FILE *fp)
while (cols > 0) while (cols > 0)
{ {
ptr = getTOCField(fp); ptr = getTOCField(fp);
XtFree(ptr); free(ptr);
cols--; cols--;
} }
@ -2199,13 +2199,13 @@ getTOCRecord(FILE *fp)
static void static void
freeTOCRecord(TOCRecord *tocRecord) freeTOCRecord(TOCRecord *tocRecord)
{ {
XtFree(tocRecord->loc); free(tocRecord->loc);
XtFree(tocRecord->file); free(tocRecord->file);
XtFree(tocRecord->line); free(tocRecord->line);
XtFree(tocRecord->ord); free(tocRecord->ord);
XtFree(tocRecord->title); free(tocRecord->title);
XtFree((char *)tocRecord); free((char *)tocRecord);
} }
static char * static char *
@ -2264,7 +2264,7 @@ getTOCField(FILE *fp)
appendStr(&longField, &lfLen, &maxLen, "#"); appendStr(&longField, &lfLen, &maxLen, "#");
appendStr(&longField, &lfLen, &maxLen, ptr); appendStr(&longField, &lfLen, &maxLen, ptr);
XtFree(ptr); free(ptr);
} }
ptr = longField; ptr = longField;
@ -2313,7 +2313,7 @@ getTOCField(FILE *fp)
ptr = XtsNewString(ptr); ptr = XtsNewString(ptr);
if (longField != (char *)NULL) if (longField != (char *)NULL)
XtFree(longField); free(longField);
return ptr; return ptr;
} }