-long FourHash(const char *key, long length)
-{
- int i;
- int ret = 0;
- const unsigned char *ptr = (const unsigned char*)key;
-
- for (i = 0; i < 4; i++, ptr ++)
- ret = (ret << 8) |
- ( ((*ptr >= 'a') &&
- (*ptr <= 'z'))?
- *ptr - 'a' + 'A':
- *ptr);
-
- return ret;
-}
-
-void CtdlRegisterDebugFlagHook(const char *Name, long Len, CtdlDbgFunction F, const int *LogP)
-{
- LogDebugEntry *E;
- if (LogDebugEntryTable == NULL)
- LogDebugEntryTable = NewHash(1, NULL);
- E = (LogDebugEntry*) malloc(sizeof(LogDebugEntry));
- E->F = F;
- E->Name = Name;
- E->Len = Len;
- E->LogP = LogP;
- Put(LogDebugEntryTable, Name, Len, E, NULL);
-
-}
-void CtdlSetDebugLogFacilities(const char **Str, long n)
-{
- StrBuf *Token = NULL;
- StrBuf *Buf = NULL;
- const char *ch;
- int i;
- int DoAll = 0;
- void *vptr;
-
- for (i=0; i < n; i++){
- if ((Str[i] != NULL) && !IsEmptyStr(Str[i])) {
- if (strcmp(Str[i], "all") == 0) {
- DoAll = 1;
- continue;
- }
- Buf = NewStrBufPlain(Str[i], -1);
- ch = NULL;
- if (Token == NULL)
- Token = NewStrBufPlain(NULL, StrLength(Buf));
- while ((ch != StrBufNOTNULL) &&
- StrBufExtract_NextToken(Token, Buf, &ch, ',')) {
- if (GetHash(LogDebugEntryTable, SKEY(Token), &vptr) &&
- (vptr != NULL))
- {
- LogDebugEntry *E = (LogDebugEntry*)vptr;
- E->F(1);
- }
- }
- }
- FreeStrBuf(&Buf);
- }
- FreeStrBuf(&Token);
- if (DoAll) {
- long HKLen;
- const char *ch;
- HashPos *Pos;
-
- Pos = GetNewHashPos(LogDebugEntryTable, 0);
- while (GetNextHashPos(LogDebugEntryTable, Pos, &HKLen, &ch, &vptr)) {
- LogDebugEntry *E = (LogDebugEntry*)vptr;
- E->F(1);
- }
-
- DeleteHashPos(&Pos);
- }
-}
-void CtdlDestroyDebugTable(void)
-{
-
- DeleteHash(&LogDebugEntryTable);
-}