diff --git a/mozilla/rdf/opendir/genopendir.c b/mozilla/rdf/opendir/genopendir.c
index b0b03ebc39d..b055a262bbb 100644
--- a/mozilla/rdf/opendir/genopendir.c
+++ b/mozilla/rdf/opendir/genopendir.c
@@ -26,6 +26,18 @@ void describeItem (WriteClientProc callBack, void* obj, RDF_Resource u) ;
void describeItemSimple (WriteClientProc callBack, void* obj, RDF_Resource u) ;
extern int startsWith(const char* prefix, const char* pattern);
+
+RDF_Resource gNarrow;
+RDF_Resource gLink;
+RDF_Resource gName;
+RDF_Resource gTopic;
+RDF_Resource gDesc;
+RDF_Resource gEditor;
+RDF_Resource gNewsGroup;
+char* gTemplate;
+int gInited = 0;
+#define MAX_TEMPLATE_SIZE 20000
+
RDF_Resource
getNodeFromQuery (char* query) {
RDF_Resource ans;
@@ -49,9 +61,9 @@ void
listParents(WriteClientProc callBack, void* obj, RDF_Resource node, int depth) {
RDF_Resource narrow = RDF_GetResource("narrow", 1);
RDF_Resource parent = RDF_OnePropSource(0, node, narrow);
- RDF_Resource name = RDF_GetResource("name", 1);
+
char* id = RDF_ResourceID(node);
- char* nm = (char*) RDF_OnePropValue(0, node, name, RDF_STRING_TYPE);
+ char* nm = (char*) RDF_OnePropValue(0, node, gName, RDF_STRING_TYPE);
char* cnm = strrchr(id, '/');
char buff[500];
if (!nm || strchr(nm, '/')) nm = (cnm ? cnm + 1 : id);
@@ -72,17 +84,6 @@ cookiePropValue (char* cookie, char* prop) {
}
}
-RDF_Resource gNarrow;
-RDF_Resource gLink;
-RDF_Resource gName;
-RDF_Resource gTopic;
-RDF_Resource gDesc;
-RDF_Resource gEditor;
-RDF_Resource gNewsGroup;
-char* gTemplate;
-int gInited = 0;
-#define MAX_TEMPLATE_SIZE 20000
-
void
Init () {
if (!gInited) {
@@ -92,9 +93,9 @@ Init () {
gInited = 1;
gNarrow = RDF_GetResource("narrow", 1);
gLink = RDF_GetResource("link", 1);
- gName = RDF_GetResource("name", 1);
+ gName = RDF_GetResource("Title", 1);
gTopic = RDF_GetResource("Topic", 1);
- gDesc = RDF_GetResource("description", 1);
+ gDesc = RDF_GetResource("Description", 1);
gEditor = RDF_GetResource("editor", 1);
gNewsGroup = RDF_GetResource("newsGroup", 1);
gTemplate = (char*) malloc(MAX_TEMPLATE_SIZE+1);
@@ -147,10 +148,10 @@ listSubTopics (WriteClientProc callBack, void* obj, RDF_Resource node, char* coo
if (w != 0) (*callBack)(obj, "");
(*callBack)(obj, "\n
\n\n");
}
- u = subTopicList[w];
+ u = subTopicList[n-w-1];
id = RDF_ResourceID(u);
if (p == gNarrow) {
- sprintf(buff, "- %s\n", id, resourceName(u));
+ sprintf(buff, "
- %s\n", id, resourceName(u));
} else {
char* des = (char*) RDF_OnePropValue(0, u, gDesc, RDF_STRING_TYPE);
sprintf(buff, "
- %s %s %s\n", id, resourceName(u),
@@ -182,8 +183,13 @@ AnswerOpenDirQuery (WriteClientProc callBack, void* obj, char *query, char* cook
listSubTopics(callBack, obj, node, cookie, gNarrow);
} else if (startsWith("&TopicItems;", pbegin)) {
listSubTopics(callBack, obj, node, cookie, gLink);
- }
-
+ } else if (startsWith("&TopicAddURL;", pbegin)) {
+ (*callBack)(obj, "http://directory.mozilla.org/cgi-bin/add.cgi?where=");
+ (*callBack)(obj, RDF_ResourceID(node));
+ } else if (startsWith("&TopicBecomeEditor;", pbegin)) {
+ (*callBack)(obj, "http://directory.mozilla.org/cgi-bin/apply.cgi?where=");
+ (*callBack)(obj, RDF_ResourceID(node));
+ }
begin = pbegin + (strchr(pbegin, ';') - pbegin) + 1;
}
@@ -195,7 +201,7 @@ AnswerOpenDirQuery (WriteClientProc callBack, void* obj, char *query, char* cook
void describeCategory (WriteClientProc callBack, void* obj, RDF_Resource u) {
char buff[1000];
sprintf(buff, "
- %s", RDF_ResourceID(u),
- RDF_ResourceID(u));
+ RDF_ResourceID(u));
(*callBack)(obj, buff);
}
@@ -219,9 +225,9 @@ stToProp (char c) {
if (!c || (c == 'a')) {
return 0;
} else if (c == 'n') {
- return RDF_GetResource("name", 1);
+ return gName;
} else if (c == 'd') {
- return RDF_GetResource("description", 1);
+ return gDesc;
} else return 0;
}
@@ -229,7 +235,6 @@ void
AnswerSearchQuery (WriteClientProc callBack, void* obj, char *query, char* cookie) {
char st = cookiePropValue(cookie, "searchTarget");
RDF_Cursor c = RDFGS_Search(0, query, stToProp(st));
- RDF_Resource name = RDF_GetResource("name", 1);
RDF_Resource topic = RDF_GetResource("Topic", 1);
RDF_Resource type = RDF_GetResource("type", 1);
RDF_Resource u ;
@@ -286,8 +291,7 @@ AnswerSearchQuery (WriteClientProc callBack, void* obj, char *query, char* cooki
void
describeItemSimple (WriteClientProc callBack, void* obj, RDF_Resource u) {
char buff[5000];
- RDF_Resource name = RDF_GetResource("name", 1);
- char* nm = (char*) RDF_OnePropValue(0, u, name, RDF_STRING_TYPE);
+ char* nm = (char*) RDF_OnePropValue(0, u, gName, RDF_STRING_TYPE);
char* id = RDF_ResourceID(u);
sprintf(buff, "
- %s", id, (nm ? nm : id));
(*callBack)(obj, buff);
@@ -296,11 +300,9 @@ describeItemSimple (WriteClientProc callBack, void* obj, RDF_Resource u) {
void
describeItem (WriteClientProc callBack, void* obj, RDF_Resource u) {
char buff[5000];
- RDF_Resource name = RDF_GetResource("name", 1);
- RDF_Resource desc = RDF_GetResource("description", 1);
- char* nm = (char*) RDF_OnePropValue(0, u, name, RDF_STRING_TYPE);
+ char* nm = (char*) RDF_OnePropValue(0, u, gName, RDF_STRING_TYPE);
char* id = RDF_ResourceID(u);
- char* des = (char*) RDF_OnePropValue(0, u, desc, RDF_STRING_TYPE);
+ char* des = (char*) RDF_OnePropValue(0, u, gDesc, RDF_STRING_TYPE);
sprintf(buff, "
- %s %s %s", id, (nm ? nm : id),
(des ? " : " : ""), (des ? des : ""));
(*callBack)(obj, buff);
diff --git a/mozilla/rdf/opendir/rdfparse.c b/mozilla/rdf/opendir/rdfparse.c
index efd055e44e4..0ce60caa9fa 100644
--- a/mozilla/rdf/opendir/rdfparse.c
+++ b/mozilla/rdf/opendir/rdfparse.c
@@ -266,17 +266,20 @@ parseNextRDFXMLBlobInt(RDFT f, char* blob, int size) {
if ((c == '<') || (c == '>')) {
last = n;
if (c == '<') {
- f->holdOver[0] = '<';
- f->holdOver[1] = '\0';
+ f->holdOver[0] = '<';
+ f->holdOver[1] = '\0';
}
if (somethingseenp == 1) {
- parseNextRDFToken(f, f->line);
- }
+ parseNextRDFToken(f, f->line);
+ }
} else if (size > last) {
memcpy(f->holdOver, f->line, m);
- f->holdOver[m+1] = '\0';
+ f->holdOver[m] = '\0';
}
- } else if (c == '<') f->holdOver[0] = '<';
+ } else if (c == '<') {
+ f->holdOver[0] = '<';
+ f->holdOver[1] = '\0';
+ }
}
return(1);
}
@@ -287,7 +290,10 @@ getAttributeValue (char** attlist, char* elName)
size_t n = 0;
if (!attlist) return NULL;
while ((n < 2*MAX_ATTRIBUTES) && (*(attlist + n) != NULL)) {
- if (strcmp(*(attlist + n), elName) == 0) return *(attlist + n + 1);
+ char* attname = *(attlist + n);
+ char* base = strchr(attname, ':');
+ if (base) attname = base + 1;
+ if (strcmp(attname, elName) == 0) return *(attlist + n + 1);
n = n + 2;
}
return NULL;
@@ -320,9 +326,10 @@ addElementProps (char** attlist, char* elementName, RDFT f, RDF_Resource obj)
while (count < 2*MAX_ATTRIBUTES) {
char* attName = attlist[count++];
char* attValue = attlist[count++];
- char* baseName = strchr(attName, ':');
+ char* baseName;
if ((attName == NULL) || (attValue == NULL)) break;
- if baseName attName = baseName + 1;
+ baseName = strchr(attName, ':');
+ if (baseName) attName = baseName + 1;
if (startsWith("xmlns", attName)) {
/* addNameSpace(attName, attValue, f); */
} else if (!stringEquals(attName, "resource") &&
@@ -368,7 +375,7 @@ parseNextRDFToken (RDFT f, char* token)
f->status = (f->status == EXPECTING_OBJECT ? EXPECTING_PROPERTY : EXPECTING_OBJECT);
return 1;
} else if ((f->status == 0) && (startsWith("", token))) {
+ startsWith("status = EXPECTING_OBJECT;
return 1;
} else {
@@ -414,6 +421,8 @@ parseNextRDFToken (RDFT f, char* token)
obj = getResource(url, 1);
addElementProps (attlist, elementName, f, obj) ;
remoteStoreAdd(f, f->stack[f->depth-1], eln, obj, RDF_RESOURCE_TYPE, 1);
+ /* printf("%s %s %s\n", RDF_ResourceID(f->stack[f->depth-1]),
+ RDF_ResourceID(eln), url); */
}
if (!emptyElementp) {
f->stack[f->depth++] = getResource(elementName, 1);
@@ -442,8 +451,6 @@ tokenizeElement (char* attr, char** attlist, char** elementName)
c = attr[n++];
}
*elementName = &attr[n-1];
- base = strchr(*elementName, ':');
- if (base) *elementName = base+1;
while (n < s) {
if (wsCharp(c)) break;
c = attr[n++];
@@ -480,5 +487,7 @@ tokenizeElement (char* attr, char** attlist, char** elementName)
}
inAttrNamep = (inAttrNamep ? 0 : 1);
}
+ base = strchr(*elementName, ':');
+ if (base) *elementName = base+1;
return 1;
}
diff --git a/mozilla/rdf/opendir/remstore.c b/mozilla/rdf/opendir/remstore.c
index e1d0ec7ac60..ddc80dccd19 100644
--- a/mozilla/rdf/opendir/remstore.c
+++ b/mozilla/rdf/opendir/remstore.c
@@ -81,7 +81,7 @@ remoteStoreAdd (RDFT mcf, RDF_Resource u, RDF_Resource s, void* v,
newAs->invNext = iu->rarg2;
iu->rarg2 = newAs;
}
- if (type == RDF_STRING_TYPE) RDFGS_AddSearchIndex(mcf, (char*) v, s, u);
+ /* if (type == RDF_STRING_TYPE) RDFGS_AddSearchIndex(mcf, (char*) v, s, u); */
return newAs;
}
diff --git a/mozilla/rdf/opendir/template.html b/mozilla/rdf/opendir/template.html
index 95408a5ff28..5c5eb9d77b8 100644
--- a/mozilla/rdf/opendir/template.html
+++ b/mozilla/rdf/opendir/template.html
@@ -89,7 +89,7 @@ SRC="http://adforce.imgis.com/?adiframe|2.0|9|20894|1|1|ADFORCE;">
Add URL -
Become an Editor
|
-| Category editor: | &TopicEditors;
|
+ | | Category editors: | &TopicEditors;
|
|