len = PL_strlen(subject);
len = nsCRT::strlen(subject);
static char *intlmime_encode_qp_buf(char *subject){  char *output = 0;  unsigned char *p, *pDest ;  int i, n, len ;  if (subject == NULL || *subject == '\0')    return NULL;  len = PL_strlen(subject);  output = (char *) PR_Malloc(len * 3 + 1);  if (output == NULL)    return NULL;  p = (unsigned char*)subject;  pDest = (unsigned char*)output ;  for (i = 0; i < len; i++)  {    /* XP_IS_ALPHA(*p) || XP_IS_DIGIT(*p)) */    if ((*p < 0x80) &&        (((*p >= 'a') && (*p <= 'z')) ||         ((*p >= 'A') && (*p <= 'Z')) ||         ((*p >= '0') && (*p <= '9')))       )      *pDest = *p;    else    {      *pDest++ = '=';      n = (*p & 0xF0) >> 4; /* high byte */      if (n < 10)        *pDest = '0' + n;      else        *pDest = 'A' + n - 10;      pDest ++ ;      n = *p & 0x0F;                  /* low byte */      if (n < 10)        *pDest = '0' + n;      else        *pDest = 'A' + n - 10;    }    p ++;    pDest ++;  }  *pDest = '\0';  return output;}