42 char *qp =
"0123456789ABCDEFabcdef";
44 if ((in == NULL) || (out == NULL))
47 for (p = in; (*p !=
'\0') && (nb < sz); p++) {
54 if (*p ==
'\r' || *p ==
'\n')
56 if (strspn (p, qp) > 1) {
61 r =
strchr (qp, toupper(*p));
63 c = ((int ) (r - qp)) << 4;
65 c = (
strchr (qp, toupper(*p)) - qp) << 4;
70 r =
strchr (qp, toupper(*p));
72 c += ((int ) (r - qp));
74 c += (
strchr (qp, toupper(*p)) - qp);
89 #define QPCHARS "0123456789ABCDEF" 101 if ((in == NULL) || (out == NULL))
105 while (*p !=
'\0' && nb < sz)
107 while (*p !=
'\0' && *p !=
'=' && nb < sz)
112 if (nb >= sz || *p ==
'\0')
119 if (*p ==
'\r' || *p ==
'\n')
int new_qp_decode(char *out, char *in, size_t sz)