diff --git a/mozilla/rdf/datasource/src/nsSearchDataSource.cpp b/mozilla/rdf/datasource/src/nsSearchDataSource.cpp
index 06225d849dc..cf90df8ece8 100755
--- a/mozilla/rdf/datasource/src/nsSearchDataSource.cpp
+++ b/mozilla/rdf/datasource/src/nsSearchDataSource.cpp
@@ -1377,6 +1377,17 @@ SearchDataSource::GetInputs(nsString data, nsString text, nsString &input)
line.Mid(nameAttrib, startQuote+1, endQuote-startQuote-1);
}
}
+ else
+ {
+ nameAttrib = line;
+ nameAttrib.Cut(0, equal+1);
+ nameAttrib = nameAttrib.Trim(" \t");
+ PRInt32 space = nameAttrib.FindCharInSet(" \t");
+ if (space > 0)
+ {
+ nameAttrib.Truncate(space);
+ }
+ }
}
}
if (nameAttrib.Length() <= 0) continue;
@@ -1402,12 +1413,22 @@ SearchDataSource::GetInputs(nsString data, nsString text, nsString &input)
else
{
// if value attribute's "value" isn't quoted, get the first word... ?
+/*
PRInt32 theEnd = line.FindCharInSet(" >\t", equal);
if (theEnd >= 0)
{
line.Mid(valueAttrib, equal+1, theEnd-equal-1);
valueAttrib.Trim(" \t");
}
+*/
+ valueAttrib = line;
+ valueAttrib.Cut(0, equal+1);
+ valueAttrib = valueAttrib.Trim(" \t");
+ PRInt32 space = valueAttrib.FindCharInSet(" \t>");
+ if (space > 0)
+ {
+ valueAttrib.Truncate(space);
+ }
}
}
}
@@ -1418,7 +1439,7 @@ SearchDataSource::GetInputs(nsString data, nsString text, nsString &input)
// XXX should ignore if mode=browser is specified
// XXX need to do this better
- if (line.Find("mode=browser", PR_TRUE) >= 0)
+ if (line.RFind("mode=browser", PR_TRUE) >= 0)
continue;
if ((nameAttrib.Length() > 0) && (valueAttrib.Length() > 0))
@@ -1662,7 +1683,7 @@ SearchDataSourceCallback::OnStopBinding(nsIURL* aURL, nsresult aStatus, const PR
if (resultListStartStr.Length() > 0)
{
- PRInt32 resultListStart = htmlResults.Find(resultListStartStr /* , PR_TRUE */);
+ PRInt32 resultListStart = htmlResults.Find(resultListStartStr, PR_TRUE);
if (resultListStart >= 0)
{
htmlResults.Cut(0, resultListStart + resultListStartStr.Length());
@@ -1670,7 +1691,7 @@ SearchDataSourceCallback::OnStopBinding(nsIURL* aURL, nsresult aStatus, const PR
}
if (resultListEndStr.Length() > 0)
{
- PRInt32 resultListEnd = htmlResults.RFind(resultListEndStr, PR_TRUE);
+ PRInt32 resultListEnd = htmlResults.Find(resultListEndStr, PR_TRUE);
if (resultListEnd >= 0)
{
htmlResults.Truncate(resultListEnd);
@@ -1688,9 +1709,11 @@ SearchDataSourceCallback::OnStopBinding(nsIURL* aURL, nsresult aStatus, const PR
#endif
PRInt32 resultItemStart;
- while((resultItemStart = htmlResults.RFind(resultItemStartStr, PR_TRUE)) >= 0)
+ while((resultItemStart = htmlResults.Find(resultItemStartStr, PR_TRUE)) >= 0)
{
- PRInt32 resultItemEnd = htmlResults.RFind(resultItemEndStr, PR_TRUE );
+ htmlResults.Cut(0, resultItemStart + resultItemStartStr.Length());
+
+ PRInt32 resultItemEnd = htmlResults.Find(resultItemEndStr, PR_TRUE );
if (resultItemEnd < 0)
{
resultItemEnd = htmlResults.Length()-1;
@@ -1698,9 +1721,12 @@ SearchDataSourceCallback::OnStopBinding(nsIURL* aURL, nsresult aStatus, const PR
if (resultItemStart >= resultItemEnd) break;
nsAutoString resultItem("");
- htmlResults.Mid(resultItem, resultItemStart + resultItemStartStr.Length(), resultItemEnd - resultItemStart - resultItemStartStr.Length());
+// htmlResults.Mid(resultItem, resultItemStart + resultItemStartStr.Length(), resultItemEnd - resultItemStart - resultItemStartStr.Length());
+ htmlResults.Left(resultItem, resultItemEnd);
+
if (resultItem.Length() < 1) break;
- htmlResults.Truncate(resultItemStart);
+// htmlResults.Truncate(resultItemStart);
+ htmlResults.Cut(0, resultItemEnd + resultItemEndStr.Length());
#ifdef DEBUG
char *results = resultItem.ToNewCString();
@@ -1714,11 +1740,7 @@ SearchDataSourceCallback::OnStopBinding(nsIURL* aURL, nsresult aStatus, const PR
// look for href
// XXX need to make this more resilient
- PRInt32 hrefOffset = resultItem.Find("", hrefOffset);
if (quoteStartOffset < hrefOffset) continue;
- PRInt32 quoteEndOffset = resultItem.FindCharInSet("\"\'", quoteStartOffset + 1);
- if (quoteEndOffset < hrefOffset) continue;
- nsAutoString hrefStr;
+ PRInt32 quoteEndOffset;
+ if (resultItem[quoteStartOffset] == PRUnichar('>'))
+ {
+ // handle case where HREF isn't quoted
+ quoteEndOffset = quoteStartOffset;
+ quoteStartOffset = hrefOffset + strlen("