static void initKeywordsTable(void) { int i; char **table = g_tlang.keywordsTable; keywordsTable = createHTable(512, (pHashFunc)stringiHashFunc, (pHashElemCmp)stricmp); for (i = 0; table[i] != NULL; i++) { addHTableElem(keywordsTable, table[i]); } }
static FILE *_openIncludeFile(char *fname, char **newAllocName) { FILE *file = NULL; char fullName[_MAX_PATH]; pFDReadInd dir = NULL; char *fullNameCopy; strcpy(fullName, fname); rewindCurrSLListPos(g_opt.incPathList); do { setDefaultExt(fullName, "h"); if (fileReadable(fullName)) { file = wicFopen(fullName, "r"); if (file != NULL) { pFDReadInd newElem; fullNameCopy = wicStrdup(fullName); newElem = createFDReadInd(fullNameCopy, dir == NULL ? 0 : dir->readOnly); if (!addHTableElem(g_fileTable, newElem)) { reportError(ERR_FILE_WAS_INCLUDED, fullNameCopy); wicFclose(file); zapFDReadInd(newElem); file = NULL; } break; } } if (!getCurrSLListPosElem(g_opt.incPathList, &dir)) { strcpy(fullName, fname); setDefaultExt(fullName, "h"); reportError(ERR_INC_FILE_NOT_FOUND, fullName); break; } sprintf(fullName, "%s\\%s", dir->name, fname); incCurrSLListPos(g_opt.incPathList); } while (1); if (file == NULL) { *newAllocName = NULL; } else { *newAllocName = fullNameCopy; } return file; }