#include "mutt_crypt.h"
#include "mutt_menu.h"
#include "mutt_curses.h"
+#include "ascii.h"
+#include "handler.h"
+#include "enter.h"
#include "mime.h"
#include "copy.h"
#include "pager.h"
+#include "recvattach.h"
#include "sort.h"
#include "lib/mem.h"
saved_b_length = b->length;
memset (&s, 0, sizeof (s));
s.fpin = fpin;
- fseek (s.fpin, b->offset, 0);
+ fseeko (s.fpin, b->offset, 0);
mutt_mktemp (tempfile);
if (!(tmpfp = safe_fopen (tempfile, "w+"))) {
mutt_perror (tempfile);
s.fpout = tmpfp;
mutt_decode_attachment (b, &s);
fflush (tmpfp);
- b->length = ftell (s.fpout);
+ b->length = ftello (s.fpout);
b->offset = 0;
rewind (tmpfp);
saved_b_length = bb->length;
memset (&s, 0, sizeof (s));
s.fpin = *fpout;
- fseek (s.fpin, bb->offset, 0);
+ fseeko (s.fpin, bb->offset, 0);
mutt_mktemp (tempfile);
if (!(tmpfp = safe_fopen (tempfile, "w+"))) {
mutt_perror (tempfile);
s.fpout = tmpfp;
mutt_decode_attachment (bb, &s);
fflush (tmpfp);
- bb->length = ftell (s.fpout);
+ bb->length = ftello (s.fpout);
bb->offset = 0;
rewind (tmpfp);
fclose (*fpout);
/* Support for classic_application/pgp */
-void pgp_gpgme_application_handler (BODY * m, STATE * s)
+int pgp_gpgme_application_handler (BODY * m, STATE * s)
{
int needpass = -1, pgp_keyblock = 0;
int clearsign = 0;
long start_pos = 0;
- long bytes, last_pos, offset;
+ long bytes;
+ LOFF_T last_pos, offset;
char buf[HUGE_STRING];
FILE *pgpout = NULL;
- gpgme_error_t err;
+ gpgme_error_t err = 0;
gpgme_data_t armored_data = NULL;
short maybe_goodsig = 1;
if (!mutt_get_body_charset (body_charset, sizeof (body_charset), m))
strfcpy (body_charset, "iso-8859-1", sizeof body_charset);
- fseek (s->fpin, m->offset, 0);
+ fseeko (s->fpin, m->offset, 0);
last_pos = m->offset;
for (bytes = m->length; bytes > 0;) {
if (fgets (buf, sizeof (buf), s->fpin) == NULL)
break;
- offset = ftell (s->fpin);
+ offset = ftello (s->fpin);
bytes -= (offset - last_pos); /* don't rely on str_len(buf) */
last_pos = offset;
armored_data = create_gpgme_data ();
gpgme_data_write (armored_data, buf, str_len (buf));
while (bytes > 0 && fgets (buf, sizeof (buf) - 1, s->fpin) != NULL) {
- offset = ftell (s->fpin);
+ offset = ftello (s->fpin);
bytes -= (offset - last_pos); /* don't rely on str_len(buf) */
last_pos = offset;
if (needpass == -1) {
state_attach_puts (_("[-- Error: could not find beginning"
" of PGP message! --]\n\n"), s);
- return;
+ return (-1);
}
debug_print (2, ("Leaving pgp_application_pgp handler\n"));
+ return (err);
}
/*
*/
/* MIME handler for pgp/mime encrypted messages. */
-void pgp_gpgme_encrypted_handler (BODY * a, STATE * s)
+int pgp_gpgme_encrypted_handler (BODY * a, STATE * s)
{
char tempfile[_POSIX_PATH_MAX];
FILE *fpout;
BODY *tattach;
BODY *orig_body = a;
int is_signed;
+ int rc = 0;
debug_print (2, ("Entering pgp_encrypted handler\n"));
a = a->parts;
if (s->flags & M_DISPLAY)
state_attach_puts (_("[-- Error: malformed PGP/MIME message! --]\n\n"),
s);
- return;
+ return (-1);
}
/* Move forward to the application/pgp-encrypted body. */
if (s->flags & M_DISPLAY)
state_attach_puts (_("[-- Error: could not create temporary file! "
"--]\n"), s);
- return;
+ return (-1);
}
tattach = decrypt_part (a, s, fpout, 0, &is_signed);
if (s->flags & M_DISPLAY)
state_attach_puts (is_signed ?
_
- ("[-- The following data is PGP/MIME signed and encrypted --]\n\n")
- :
- _
- ("[-- The following data is PGP/MIME encrypted --]\n\n"),
- s);
+ ("[-- The following data is PGP/MIME signed and encrypted --]\n\n") :
+ _("[-- The following data is PGP/MIME encrypted --]\n\n"), s);
{
FILE *savefp = s->fpin;
s->fpin = fpout;
- mutt_body_handler (tattach, s);
+ rc = mutt_body_handler (tattach, s);
s->fpin = savefp;
}
fclose (fpout);
mutt_unlink (tempfile);
debug_print (2, ("Leaving pgp_encrypted handler\n"));
+ return (rc);
}
/* Support for application/smime */
-void smime_gpgme_application_handler (BODY * a, STATE * s)
+int smime_gpgme_application_handler (BODY * a, STATE * s)
{
char tempfile[_POSIX_PATH_MAX];
FILE *fpout;
BODY *tattach;
int is_signed;
-
+ int rc = 0;
debug_print (2, ("Entering smime_encrypted handler\n"));
if (s->flags & M_DISPLAY)
state_attach_puts (_("[-- Error: could not create temporary file! "
"--]\n"), s);
- return;
+ return (-1);
}
tattach = decrypt_part (a, s, fpout, 1, &is_signed);
if (s->flags & M_DISPLAY)
state_attach_puts (is_signed ?
- _("[-- The following data is S/MIME signed --]\n\n")
- :
- _
- ("[-- The following data is S/MIME encrypted --]\n\n"),
- s);
+ _("[-- The following data is S/MIME signed --]\n\n") :
+ _("[-- The following data is S/MIME encrypted --]\n\n"), s);
{
FILE *savefp = s->fpin;
s->fpin = fpout;
- mutt_body_handler (tattach, s);
+ rc = mutt_body_handler (tattach, s);
s->fpin = savefp;
}
fclose (fpout);
mutt_unlink (tempfile);
debug_print (2, ("Leaving smime_encrypted handler\n"));
+ return (rc);
}
continue;
s = uid->uid;
- fprintf (fp, "%s ......: ", idx ? _(" aka") : _("Name"));
+ fputs (idx ? _(" aka ......: ") :_("Name ......: "), fp);
+
if (uid->invalid) {
fputs (_("[Invalid]"), fp);
putc (' ', fp);
#else
strftime (shortbuf, sizeof shortbuf, "%c", tm);
#endif
- fprintf (fp, "Valid From : %s\n", shortbuf);
+ fprintf (fp, _("Valid From : %s\n"), shortbuf);
}
if (key->subkeys && (key->subkeys->expires > 0)) {
#else
strftime (shortbuf, sizeof shortbuf, "%c", tm);
#endif
- fprintf (fp, "Valid To ..: %s\n", shortbuf);
+ fprintf (fp, _("Valid To ..: %s\n"), shortbuf);
}
if (key->subkeys)
if (key->subkeys)
aval = key->subkeys->length;
- fprintf (fp, "Key Type ..: %s, %lu bit %s\n", s2, aval, s);
+ fprintf (fp, _("Key Type ..: %s, %lu bit %s\n"), s2, aval, s);
- fprintf (fp, "Key Usage .: ");
+ fprintf (fp, _("Key Usage .: "));
delim = "";
if (key_check_cap (key, KEY_CAP_CAN_ENCRYPT)) {
fprintf (fp, "%s%s", delim, _("encryption"));
- delim = ", ";
+ delim = _(", ");
}
if (key_check_cap (key, KEY_CAP_CAN_SIGN)) {
fprintf (fp, "%s%s", delim, _("signing"));
- delim = ", ";
+ delim = _(", ");
}
if (key_check_cap (key, KEY_CAP_CAN_CERTIFY)) {
fprintf (fp, "%s%s", delim, _("certification"));
- delim = ", ";
+ delim = _(", ");
}
putc ('\n', fp);
if (key->issuer_serial) {
s = key->issuer_serial;
if (s)
- fprintf (fp, "Serial-No .: 0x%s\n", s);
+ fprintf (fp, _("Serial-No .: 0x%s\n"), s);
}
if (key->issuer_name) {
s = key->issuer_name;
if (s) {
- fprintf (fp, "Issued By .: ");
+ fprintf (fp, _("Issued By .: "));
parse_and_print_user_id (fp, s);
putc ('\n', fp);
}
putc ('\n', fp);
if (str_len (s) == 16)
s += 8; /* display only the short keyID */
- fprintf (fp, "Subkey ....: 0x%s", s);
+ fprintf (fp, _("Subkey ....: 0x%s"), s);
if (subkey->revoked) {
putc (' ', fp);
fputs (_("[Revoked]"), fp);
#else
strftime (shortbuf, sizeof shortbuf, "%c", tm);
#endif
- fprintf (fp, "Valid From : %s\n", shortbuf);
+ fprintf (fp, _("Valid From : %s\n"), shortbuf);
}
if (subkey->expires > 0) {
#else
strftime (shortbuf, sizeof shortbuf, "%c", tm);
#endif
- fprintf (fp, "Valid To ..: %s\n", shortbuf);
+ fprintf (fp, _("Valid To ..: %s\n"), shortbuf);
}
if (subkey)
else
aval = 0;
- fprintf (fp, "Key Type ..: %s, %lu bit %s\n", "PGP", aval, s);
+ fprintf (fp, _("Key Type ..: %s, %lu bit %s\n"), "PGP", aval, s);
- fprintf (fp, "Key Usage .: ");
+ fprintf (fp, _("Key Usage .: "));
delim = "";
if (subkey->can_encrypt) {
fprintf (fp, "%s%s", delim, _("encryption"));
- delim = ", ";
+ delim = _(", ");
}
if (subkey->can_sign) {
fprintf (fp, "%s%s", delim, _("signing"));
- delim = ", ";
+ delim = _(", ");
}
if (subkey->can_certify) {
fprintf (fp, "%s%s", delim, _("certification"));
- delim = ", ";
+ delim = _(", ");
}
putc ('\n', fp);
}