X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=pgp.c;h=4b586e94991aadc738684d942c865ea03989a493;hb=5f6b586de5a46f2359a4fc392fd89f1716d847a3;hp=5580c6936e0e6d8068d2e86bf8c983b7dba6f870;hpb=9a448de49a40f076d27e96a9a8f8a9034c08e6a9;p=apps%2Fmadmutt.git diff --git a/pgp.c b/pgp.c index 5580c69..4b586e9 100644 --- a/pgp.c +++ b/pgp.c @@ -109,14 +109,8 @@ int pgp_use_gpg_agent (void) { if (!option (OPTUSEGPGAGENT) || !getenv ("GPG_AGENT_INFO")) return 0; - if ((tty = ttyname(0))) { - char tmp[SHORT_STRING]; - snprintf (tmp, sizeof (tmp), "GPG_TTY=%s", tty); - putenv (tmp); -#if 0 - setenv("GPG_TTY", tty, 0); -#endif - } + if ((tty = ttyname(0))) + setenv ("GPG_TTY", tty, 0); return 1; } @@ -243,7 +237,8 @@ int pgp_application_pgp_handler (BODY * m, STATE * s) int c = 1; int clearsign = 0, rv, rc; long start_pos = 0; - long bytes, last_pos, offset; + long bytes; + LOFF_T last_pos, offset; char buf[HUGE_STRING]; char outfile[_POSIX_PATH_MAX]; char tmpfname[_POSIX_PATH_MAX]; @@ -260,14 +255,14 @@ int pgp_application_pgp_handler (BODY * m, STATE * s) rc = 0; /* silence false compiler warning if (s->flags & M_DISPLAY) */ - 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; @@ -305,7 +300,7 @@ int pgp_application_pgp_handler (BODY * m, STATE * s) fputs (buf, tmpfp); 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; @@ -381,6 +376,7 @@ int pgp_application_pgp_handler (BODY * m, STATE * s) } /* treat empty result as sign of failure */ + /* TODO: maybe on failure mutt should include the original undecoded text. */ if (pgpout) { rewind (pgpout); c = fgetc (pgpout); @@ -390,8 +386,10 @@ int pgp_application_pgp_handler (BODY * m, STATE * s) mutt_error _("Could not decrypt PGP message"); mutt_sleep (1); pgp_void_passphrase (); - rc = -1; - goto out; + if (!(s->flags & M_DISPLAY)) { + rc = -1; + goto out; + } } } @@ -567,7 +565,7 @@ int pgp_verify_one (BODY * sigbdy, STATE * s, const char *tempfile) return -1; } - fseek (s->fpin, sigbdy->offset, 0); + fseeko (s->fpin, sigbdy->offset, 0); mutt_copy_bytes (s->fpin, fp, sigbdy->length); fclose (fp); @@ -749,7 +747,7 @@ BODY *pgp_decrypt_part (BODY * a, STATE * s, FILE * fpout, BODY * p) * the temporary file. */ - fseek (s->fpin, a->offset, 0); + fseeko (s->fpin, a->offset, 0); mutt_copy_bytes (s->fpin, pgptmp, a->length); fclose (pgptmp);