static PyObject * api_rfc2047_encode (PyObject *self, PyObject *args) { int status; char *charset, *encoding, *text; char *buf = NULL; if (!PyArg_ParseTuple (args, "sss", &charset, &encoding, &text)) return NULL; status = mu_rfc2047_encode (charset, encoding, text, &buf); return status_object (status, PyString_FromString (buf ? buf : "")); }
static void vacation_subject (mu_sieve_machine_t mach, mu_list_t tags, mu_message_t msg, mu_header_t newhdr) { mu_sieve_value_t *arg; char *value; char *subject; int subject_allocated = 0; mu_header_t hdr; if (mu_sieve_tag_lookup (tags, "subject", &arg)) subject = arg->v.string; else if (mu_message_get_header (msg, &hdr) == 0 && mu_header_aget_value_unfold (hdr, MU_HEADER_SUBJECT, &value) == 0) { char *p; int rc = mu_rfc2047_decode (MU_SIEVE_CHARSET, value, &p); subject_allocated = 1; if (rc) { subject = value; value = NULL; } else { subject = p; } if (mu_sieve_tag_lookup (tags, "reply_regex", &arg)) { char *err = NULL; rc = mu_unre_set_regex (arg->v.string, 0, &err); if (rc) { mu_sieve_error (mach, _("%lu: cannot compile reply prefix regexp: %s: %s"), (unsigned long) mu_sieve_get_message_num (mach), mu_strerror (rc), err ? err : ""); } } if (mu_unre_subject (subject, NULL)) re_subject (mach, tags, &subject); free (value); } else subject = "Re: Your mail"; if (mu_rfc2047_encode (MU_SIEVE_CHARSET, "quoted-printable", subject, &value)) mu_header_set_value (newhdr, MU_HEADER_SUBJECT, subject, 0); else { mu_header_set_value (newhdr, MU_HEADER_SUBJECT, value, 0); free (value); } if (subject_allocated) free (subject); }