PRDirEntry* de = PR_ReadDir((PRDir*)c->pdata, c->count++);
PRDirEntry* de = PR_ReadDir((PRDir*)c->pdata, (PRDirFlags)(c->count++));
pmNextValue (RDFT rdf, RDF_Cursor c){    PRFileInfo fn;    int len, pathnameStart=0;    char *encoded = NULL, *pos;  if (c == NULL) {    return NULL;  } else {    PRDirEntry* de = PR_ReadDir((PRDir*)c->pdata, c->count++);    if (de == NULL) {      PR_CloseDir((PRDir*)c->pdata);	  c->pdata = NULL;      return NULL;	} else if ((resourceType((RDF_Resource)(c->u)) == IM_RT) || (endsWith(".snm", (char *)de->name)) || (endsWith(".sbd", (char *)de->name)))	{/*    } else if (endsWith(".snm", (char*)de->name) || (endsWith(".dat", (char*)de->name))){*/      char nname[512], *base;      PRBool isDir = false, sep = (( resourceID(c->u))[strlen( resourceID(c->u))-1] == '/');	      base = NET_Escape(de->name, URL_PATH);      if (base != NULL)	{        if (sep) {        sprintf(nname, "%s%s",  resourceID(c->u), base);        } else        sprintf(nname, "%s/%s",  resourceID(c->u), base);        XP_FREE(base);      }       if (resourceType(c->u) == PM_RT)  {           pathnameStart = POPMAIL_URL_OFFSET;           encoded = unescapeURL(&nname[pathnameStart]);         }       else if (resourceType(c->u) == IM_RT)  {           pathnameStart = IMAPMAIL_URL_OFFSET;         }        encoded = unescapeURL(&nname[pathnameStart]);	if (encoded != NULL)	{#ifdef  XP_WIN            if (encoded[1] == '|') encoded[1] = ':';#endif	    PR_GetFileInfo(encoded, &fn);		if (fn.type == PR_FILE_DIRECTORY)	{			isDir = true; 			len=strlen(nname);			nname[len] = '/';			nname[len+1] = '\0';			}		else if (resourceType(c->u) == IM_RT)	{			if ((pos=strstr(encoded,"IMAPMail/")) != NULL)	{				sprintf(nname,"imap://%s",pos+9);				}			}		freeMem(encoded);		}      return CreatePMUnit(nname, resourceType(c->u), isDir);    } else {	return pmNextValue(rdf, c);}  }}