infoPtr->Items = NULL;
}
+/***********************************************************************
+ * SYSLINK_StrCmpNIW
+ * Wrapper for StrCmpNIW to ensure 'len' is not too big.
+ */
+static INT SYSLINK_StrCmpNIW (LPCWSTR str, LPCWSTR comp, INT len)
+{
+ INT i;
+
+ for(i = 0; i < len; i++)
+ {
+ if(!str[i])
+ {
+ len = i + 1;
+ break;
+ }
+ }
+
+ return StrCmpNIW(str, comp, len);
+}
+
/***********************************************************************
* SYSLINK_ParseText
* Parses the window text string and creates a document. Returns the
{
if(*current == '<')
{
- if(!StrCmpNIW(current, SL_LINKOPEN, 2) && (CurrentType == slText))
+ if(!SYSLINK_StrCmpNIW(current, SL_LINKOPEN, 2) && (CurrentType == slText))
{
BOOL ValidParam = FALSE, ValidLink = FALSE;
CheckParameter:
/* compare the current position with all known parameters */
- if(!StrCmpNIW(tmp, SL_HREF, 6))
+ if(!SYSLINK_StrCmpNIW(tmp, SL_HREF, 6))
{
taglen += 6;
ValidParam = TRUE;
CurrentParameter = &lpUrl;
CurrentParameterLen = &lenUrl;
}
- else if(!StrCmpNIW(tmp, SL_ID, 4))
+ else if(!SYSLINK_StrCmpNIW(tmp, SL_ID, 4))
{
taglen += 4;
ValidParam = TRUE;
}
}
}
- else if(!StrCmpNIW(current, SL_LINKCLOSE, 4) && (CurrentType == slLink) && firsttag)
+ else if(!SYSLINK_StrCmpNIW(current, SL_LINKCLOSE, 4) && (CurrentType == slLink) && firsttag)
{
/* there's a <a...> tag opened, first add the previous text, if present */
if(textstart != NULL && textlen > 0 && firsttag > textstart)
for(Current = infoPtr->Items; Current != NULL; Current = Current->Next)
{
if((Current->Type == slLink) && SYSLINK_PtInDocItem(Current, *pt) &&
- (!MustBeEnabled || (MustBeEnabled && (Current->u.Link.state & LIS_ENABLED))))
+ (!MustBeEnabled || (Current->u.Link.state & LIS_ENABLED)))
{
if(LinkId != NULL)
{