for (PRInt32 i = 0; i < len; i++) { if (szFile[i] == '\\') { szFile[i] = '/'; } if (szFile[i] == ':') { szFile[i] = '|'; } }
aOut.ReplaceChar(PRUnichar('\\'), PRUnichar('/')); aOut.ReplaceChar(PRUnichar(':'), PRUnichar('|'));
static void convertFileToURL(const nsString &aIn, nsString &aOut){  char szFile[1000];  aIn.ToCString(szFile, sizeof(szFile));#ifdef XP_PC  // Check for \ in the url-string (PC)  if (PL_strchr(szFile, '\\')) {#else#if XP_UNIX  // Check if it starts with / or \ (UNIX)  if (*(szFile) == '/' || *(szFile) == '\\') {#else  if (0) {    // Do nothing (All others for now) #endif#endif    PRInt32 len = strlen(szFile);    PRInt32 sum = len + sizeof(FILE_PROTOCOL);    char* lpszFileURL = (char *)PR_Malloc(sum + 1);#ifdef XP_PC    // Translate '\' to '/'    for (PRInt32 i = 0; i < len; i++) {      if (szFile[i] == '\\') {        szFile[i] = '/';      }      if (szFile[i] == ':') {        szFile[i] = '|';      }    }#endif    // Build the file URL    PR_snprintf(lpszFileURL, sum, "%s%s", FILE_PROTOCOL, szFile);    aOut = lpszFileURL;    PR_Free((void *)lpszFileURL);  }  else  {    aOut = aIn;  }}