static char * pdkim_decode_qp(char *str) { int nchar = 0; char *q; char *p = str; char *n = malloc(strlen(p)+1); if (!n) return NULL; *n = '\0'; q = n; while (*p != '\0') { if (*p == '=') { p = pdkim_decode_qp_char(p, &nchar); if (nchar >= 0) { *q++ = nchar; continue; } } else *q++ = *p; p++; } *q = '\0'; return n; }
static uschar * pdkim_decode_qp(uschar * str) { int nchar = 0; uschar * q; uschar * p = str; uschar * n = store_get(Ustrlen(str)+1); *n = '\0'; q = n; while (*p) { if (*p == '=') { p = pdkim_decode_qp_char(p, &nchar); if (nchar >= 0) { *q++ = nchar; continue; } } else *q++ = *p; p++; } *q = '\0'; return n; }