else if ((data != NULL) && ((*data) != NULL))
else if ((data != NULL) && ((*data) != '\0'))
constructHTML(char *dynStr, HT_Resource node, void *token, uint32 tokenType){	struct tm		*time;	time_t			dateVal;	PRBool			isEditable;	char			*html = NULL, *temp1 = NULL, *temp2;	char			*data = NULL, *tokenName;	char			buffer[128];	XP_ASSERT(node != NULL);	XP_ASSERT(token != NULL);	if (findHtmlElement(token) != NULL)	return(dynStr);	isEditable = HT_IsNodeDataEditable(node, token, tokenType);	if ((!HT_GetNodeData (node, token, tokenType, &data)) || (data == NULL))	{		data = "";	}	else	{		switch(tokenType)		{			case	HT_COLUMN_RESOURCE:			data =  resourceID((RDF_Resource)token);			break;			case	HT_COLUMN_STRING:			break;			case	HT_COLUMN_DATE_STRING:			if ((dateVal = (time_t)atol((char *)data)) == 0)        break;			if ((time = localtime(&dateVal)) == NULL)       break;#ifdef	XP_WIN			strftime(buffer,sizeof(buffer),XP_GetString(RDF_HTML_WINDATE),time);#else			strftime(buffer,sizeof(buffer),XP_GetString(RDF_HTML_MACDATE),time);#endif			data = buffer;			break;			case	HT_COLUMN_DATE_INT:			if ((time = localtime((time_t *) &data)) == NULL)       break;#ifdef	XP_WIN			strftime(buffer,sizeof(buffer),XP_GetString(RDF_HTML_WINDATE),time);#else			strftime(buffer,sizeof(buffer),XP_GetString(RDF_HTML_MACDATE),time);#endif			data = buffer;			break;			case	HT_COLUMN_INT:			sprintf(buffer,"%d",(int)data);			data = buffer;			break;			case	HT_COLUMN_UNKNOWN:			default:			data = NULL;			return(dynStr);			break;		}	}		addHtmlElement(node, token, tokenType);	tokenName = (char *) RDF_GetSlotValue(gNCDB, token,					gCoreVocab->RDF_name,					RDF_STRING_TYPE, false, true);#ifndef	DEBUG_RDF_GetSlotValue_Memory_Needs_Freedom	if (tokenName != NULL)	{		tokenName = copyString(tokenName);	}#endif	if (tokenName == NULL)	{		tokenName = resourceID((RDF_Resource)token);		if (tokenName != NULL)		{			tokenName = copyString(tokenName);		}	}	if (isEditable)	{#ifdef	HT_PASSWORD_RTNS		if (token == gNavCenter->RDF_Password)		{			html = XP_GetString(RDF_HTML_STR_2);		}		else#endif		if (token == gWebData->RDF_description)		{			html = XP_GetString(RDF_HTML_STR_5);		}		else if ((token == gNavCenter->treeFGColor) || (token == gNavCenter->treeBGColor) ||			 (token == gNavCenter->selectionFGColor) || (token == gNavCenter->selectionBGColor) ||			 (token == gNavCenter->columnHeaderFGColor) || (token == gNavCenter->columnHeaderBGColor) ||			 (token == gNavCenter->sortColumnFGColor) || (token == gNavCenter->sortColumnBGColor) ||			 (token == gNavCenter->titleBarFGColor) || (token == gNavCenter->titleBarBGColor) ||			 (token == gNavCenter->selectedColumnHeaderFGColor) || (token == gNavCenter->selectedColumnHeaderBGColor) ||			 (token == gNavCenter->treeConnectionFGColor) || (token == gNavCenter->dividerColor))		{			/* yikes... need to find a better solution */			html = XP_GetString(RDF_HTML_COLOR_STR);			temp1 = PR_smprintf(html, tokenName, resourceID((RDF_Resource)token),					(data) ? data:"", resourceID((RDF_Resource)token),					resourceID((RDF_Resource)token));		}		else if (token == gNavCenter->RDF_HTMLHeight)		{			html = XP_GetString(RDF_HTML_STR_NUMBER);		}		else		{			html = XP_GetString(RDF_HTML_STR_1);		}		if (temp1 == NULL)		{			temp1 = PR_smprintf(html, tokenName, resourceID((RDF_Resource)token), (data) ? data:"");		}	}	else if ((data != NULL) && ((*data) != NULL))	{		html=XP_GetString(RDF_HTML_STR_3);		temp1 = PR_smprintf(html, tokenName, (data) ? data:"");	}	if (tokenName != NULL)	{		freeMem(tokenName);	}	if (temp1 != NULL)	{		if (dynStr != NULL)		{			temp2 = PR_smprintf("%s%s",dynStr, temp1);			XP_FREE(temp1);			XP_FREE(dynStr);			dynStr = temp2;		}		else		{			dynStr = temp1;		}	}	return(dynStr);}