if ((de = PR_ReadDir((PRDir*)c->pdata, c->count++)) != NULL)
if ((de = PR_ReadDir((PRDir*)c->pdata, (PRDirFlags)(c->count++))) != NULL)
AtalkNextValue (RDFT rdf, RDF_Cursor c){	PRBool			passThru = PR_TRUE, isDirectoryFlag = false, sep;	PRDirEntry		*de;	PRFileInfo		fn;	RDF_Resource		r;	XP_Bool			noHierarchyFlag;	char			*base, *slash, *temp = NULL, *encoded = NULL, *url, *url2;	void			*retVal = NULL;	XP_ASSERT(c != NULL);	if (c == NULL)		return(NULL);	if ((((c->s == gCoreVocab->RDF_child) && (!c->inversep)) ||		((c->s == gCoreVocab->RDF_parent) && (c->inversep))) &&		(c->type == RDF_RESOURCE_TYPE) && (c->tv))	{		if (c->u == gNavCenter->RDF_LocalFiles)		{			passThru = PR_FALSE;			do			{				retVal = NULL;				if ((url = getVolume(c->count++, PR_TRUE)) != NULL)				{					if ((r = RDF_GetResource(NULL, url, 1)) != NULL)					{						setContainerp(r, 1);						setResourceType(r, ATALK_RT);						retVal = (void *)r;					}					XP_FREE(url);				}			} while((retVal == NULL) && (c->count <= 26));		}		else if (startsWith("afp:/", resourceID(c->u)) && (c->pdata != NULL))		{			passThru = PR_FALSE;			if ((de = PR_ReadDir((PRDir*)c->pdata, c->count++)) != NULL)			{				if ((base = NET_Escape(de->name, URL_XALPHAS)) != NULL)		/* URL_PATH */				{					sep = ((resourceID(c->u))[strlen(resourceID(c->u))-1] == XP_DIRECTORY_SEPARATOR);					if (sep)					{						url = PR_smprintf("%s%s",  resourceID(c->u), base);					}					else					{						url = PR_smprintf("%s/%s",  resourceID(c->u), base);					}					XP_FREE(base);					if (url != NULL)					{						/* mangle AFP URLs (with associated volume info) to file URL */						if ((slash = strstr(url, "/")) != NULL)						{							if ((slash = strstr(slash+1, "/")) != NULL)							{								if ((slash = strstr(slash+1, "/")) != NULL)								{									temp = append2Strings("file://", slash);								}							}						}						if (temp != NULL)						{							encoded = unescapeURL(&temp[FS_URL_OFFSET]);							if (encoded != NULL)							{								PR_GetFileInfo(encoded, &fn);								if (fn.type == PR_FILE_DIRECTORY)								{									isDirectoryFlag = TRUE;									url2 = PR_smprintf("%s/", url);									XP_FREE(url);									url = url2;								}								freeMem(encoded);							}							freeMem(temp);							retVal = (void *)CreateAFPFSUnit(url, isDirectoryFlag);						}						XP_FREE(url);					}				}			}		}	}	else if (((c->u == gNavCenter->RDF_Appletalk) || (startsWith("virtualat://", resourceID(c->u))) ||		startsWith("at://", resourceID(c->u))) && (c->s == gNavCenter->RDF_Command) &&		(c->type == RDF_RESOURCE_TYPE))	{		passThru = PR_FALSE;		/* return cookie commands here */		switch(c->count)		{			case	0:			noHierarchyFlag = false;			PREF_GetBoolPref(ATALK_NOHIERARCHY_PREF, &noHierarchyFlag);			if (noHierarchyFlag == PR_TRUE)			{				retVal = gNavCenter->RDF_Command_Atalk_Hierarchy;			}			else			{				retVal = gNavCenter->RDF_Command_Atalk_FlatHierarchy;			}			break;		}		++(c->count);	}	if (passThru == PR_TRUE)	{		retVal = remoteStoreNextValue(rdf, c);	}	return(retVal);}