NS_ASSERTION(0, ".p and .u files differ in header");
si_ReadLine  (nsInputFileStream strmu, nsInputFileStream strmp, nsAutoString& lineBuffer,PRBool obscure,    nsKeyType saveCount = 0, nsKeyType * readCount = 0, PRBool inHeader = PR_FALSE) {  lineBuffer = nsAutoString("");  /* read the line */  PRUnichar c, c2;  for (;;) {    if (inHeader) {      c = Wallet_UTF8Get(strmu);      if (obscure) {        c2 = Wallet_UTF8Get(strmp);        if (c != c2) {          return -1;        }      }    } else if (obscure) {      c = Wallet_UTF8Get(strmu); /* get past the asterisk */      if ((c != '*') && (c != '\n') && (c != '\r')) {        return -1;      }      c = Wallet_UTF8Get(strmp)^si_GetKey(saveCount, (*readCount)++); /* get the real character */    } else {      c = Wallet_UTF8Get(strmu);    }    /* note that eof is not set until we read past the end of the file */    if (strmu.eof()) {      return -1;    }    if (c == '\n') {      break;    }    if (c != '\r') {      lineBuffer += c;    }  }  return 0;}