hashtable fixes

git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@2610 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
Lee Salzman
2008-09-15 03:41:12 +00:00
parent 0865eb5762
commit cc6173460d
3 changed files with 21 additions and 23 deletions
+11 -11
View File
@@ -171,15 +171,17 @@ void docinvalid()
vector<const char *> inames;
identnames(inames, true);
inames.sort(stringsort);
enumerateht(docidents) if(!strchr(docidents.enumc->data.name, ' ') && !identexists(docidents.enumc->data.name))
conoutf(docidents.enumc->data.name);
enumerate(docidents, docident, d,
{
if(!strchr(d.name, ' ') && !identexists(d.name))
conoutf(d.name);
});
}
void docfind(char *search)
{
enumerateht(docidents)
enumerate(docidents, docident, i,
{
docident &i = docidents.enumc->data;
cvector srch;
srch.add(i.name);
srch.add(i.desc);
@@ -194,7 +196,7 @@ void docfind(char *search)
s_strncpy(match, r-srch[rline] > matchchars/2 ? r-matchchars/2 : srch[rline], matchchars/2);
conoutf("%-20s%s", i.name, match);
}
}
});
}
char *xmlstringenc(char *d, const char *s, size_t len)
@@ -242,9 +244,8 @@ void docwritebaseref(char *ref, char *schemalocation, char *transformation)
fprintf(f, "\t\t\t<identifiers>\n");
string name;
enumerateht(*idents)
enumerate(*idents, ident, id,
{
ident &id = idents->enumc->data;
if(id.type != ID_COMMAND) continue;
fprintf(f, "\t\t\t\t<command name=\"%s\">\n", xmlstringenc(name, id.name, _MAXDEFSTR));
fprintf(f, "\t\t\t\t\t%s\n", desc);
@@ -260,16 +261,15 @@ void docwritebaseref(char *ref, char *schemalocation, char *transformation)
fprintf(f, "\t\t\t\t\t</arguments>\n");
}
fprintf(f, "\t\t\t\t</command>\n");
}
enumerateht(*idents)
});
enumerate(*idents, ident, id,
{
ident &id = idents->enumc->data;
if(id.type != ID_VAR) continue;
fprintf(f, "\t\t\t\t<variable name=\"%s\">\n", xmlstringenc(name, id.name, _MAXDEFSTR));
fprintf(f, "\t\t\t\t\t<description>TODO</description>\n");
fprintf(f, "\t\t\t\t\t<value %s description=\"TODO\" minValue=\"%i\" maxValue=\"%i\" defaultValue=\"%i\" %s/>\n", id.minval>id.maxval ? "" : "token=\"N\"", id.minval, id.maxval, *id.storage.i, id.minval>id.maxval ? "readOnly=\"true\"" : "");
fprintf(f, "\t\t\t\t</variable>\n");
}
});
fprintf(f, "\t\t\t</identifiers>\n\t\t</section>\n\t</sections>\n</cuberef>\n");
fclose(f);