<pre style='margin:0'>
Aaron Madlon-Kay (amake) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/fadff969e758e6abd6c57c73291d18642a41944b">https://github.com/macports/macports-ports/commit/fadff969e758e6abd6c57c73291d18642a41944b</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new fadff969e75 gnupg2: backport fix for Emacs EasyPG compatibility
</span>fadff969e75 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit fadff969e758e6abd6c57c73291d18642a41944b
</span>Author: Aaron Madlon-Kay <amake@macports.org>
AuthorDate: Fri Dec 15 09:00:49 2023 +0900

<span style='display:block; white-space:pre;color:#404040;'>    gnupg2: backport fix for Emacs EasyPG compatibility
</span>---
 mail/gnupg2/Portfile                          |   4 +-
 mail/gnupg2/files/patch-fix-emacs-easypg.diff | 546 ++++++++++++++++++++++++++
 2 files changed, 549 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/gnupg2/Portfile b/mail/gnupg2/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 41173981cd3..fe217ab87c5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mail/gnupg2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mail/gnupg2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortSystem          1.0
</span> set my_name         gnupg
 name                ${my_name}2
 version             2.4.3
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> 
 # Putting the SHA1 hash because that is published on the website
 checksums           rmd160  390bc6ae2011fa691f09cc65f0dee38c6ca73f2f \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,6 +35,8 @@ default_variants    +openldap
</span> 
 # See: https://dev.gnupg.org/T6579
 patchfiles-append   patch-fix-build-without-openldap.diff
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# See: https://dev.gnupg.org/T6481
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-fix-emacs-easypg.diff
</span> 
 platform darwin {
     if {![variant_isset pinentry] && ![variant_isset pinentry_mac]} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/gnupg2/files/patch-fix-emacs-easypg.diff b/mail/gnupg2/files/patch-fix-emacs-easypg.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c603aab3853
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mail/gnupg2/files/patch-fix-emacs-easypg.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,546 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git common/iobuf.c common/iobuf.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 62cde27f9..e088812a6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- common/iobuf.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ common/iobuf.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3057,3 +3057,123 @@ iobuf_skip_rest (iobuf_t a, unsigned long n, int partial)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Check whether (BUF,LEN) is valid header for an OpenPGP compressed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * packet.  LEN should be at least 6.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++is_openpgp_compressed_packet (const unsigned char *buf, size_t len)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int c, ctb, pkttype;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int lenbytes;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ctb = *buf++; len--;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!(ctb & 0x80))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return 0; /* Invalid packet.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if ((ctb & 0x40)) /* New style (OpenPGP) CTB.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      pkttype = (ctb & 0x3f);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (!len)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return 0; /* Expected first length octet missing.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      c = *buf++; len--;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (c < 192)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else if (c < 224)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (!len)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return 0; /* Expected second length octet missing. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else if (c == 255)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (len < 4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return 0; /* Expected length octets missing */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else /* Old style CTB.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      pkttype = (ctb>>2)&0xf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      lenbytes = ((ctb&3)==3)? 0 : (1<<(ctb & 3));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (len < lenbytes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return 0; /* Not enough length bytes.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return (pkttype == 8);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Check if the file is compressed, by peeking the iobuf.  You need to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * pass the iobuf with INP.  Returns true if the buffer seems to be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * compressed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++is_file_compressed (iobuf_t inp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  char buf[32];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int buflen;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  struct magic_compress_s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    byte len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    byte extchk;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    byte magic[5];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } magic[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       { 3, 0, { 0x42, 0x5a, 0x68, 0x00 } }, /* bzip2 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       { 3, 0, { 0x1f, 0x8b, 0x08, 0x00 } }, /* gzip */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       { 4, 0, { 0x50, 0x4b, 0x03, 0x04 } }, /* (pk)zip */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       { 5, 0, { '%', 'P', 'D', 'F', '-'} }, /* PDF */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       { 4, 1, { 0xff, 0xd8, 0xff, 0xe0 } }, /* Maybe JFIF */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       { 5, 2, { 0x89, 'P','N','G', 0x0d} }  /* Likely PNG */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!inp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for ( ; inp->chain; inp = inp->chain )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  buflen = iobuf_ioctl (inp, IOBUF_IOCTL_PEEK, sizeof buf, buf);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (buflen < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      buflen = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      log_debug ("peeking at input failed\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if ( buflen < 6 )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return 0;  /* Too short to check - assume uncompressed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for ( i = 0; i < DIM (magic); i++ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (!memcmp( buf, magic[i].magic, magic[i].len))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          switch (magic[i].extchk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            case 0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              return 1; /* Is compressed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            case 1:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              if (buflen > 11 && !memcmp (buf + 6, "JFIF", 5))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                return 1; /* JFIF: this likely a compressed JPEG.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            case 2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              if (buflen > 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  && buf[5] == 0x0a && buf[6] == 0x1a && buf[7] == 0x0a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                return 1; /* This is a PNG.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (buflen >= 6 && is_openpgp_compressed_packet (buf, buflen))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return 1; /* Already compressed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return 0;  /* Not detected as compressed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git common/iobuf.h common/iobuf.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c132c2f3c..ad416fe86 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- common/iobuf.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ common/iobuf.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -629,6 +629,9 @@ void iobuf_set_partial_body_length_mode (iobuf_t a, size_t len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    from the following filter (which may or may not return EOF).  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void iobuf_skip_rest (iobuf_t a, unsigned long n, int partial);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Check if the file is compressed, by peeking the iobuf.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int is_file_compressed (iobuf_t inp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define iobuf_where(a)    "[don't know]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Each time a filter is allocated (via iobuf_alloc()), a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git common/miscellaneous.c common/miscellaneous.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f19cc539d..1a090b1f5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- common/miscellaneous.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ common/miscellaneous.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -415,112 +415,6 @@ decode_c_string (const char *src)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Check whether (BUF,LEN) is valid header for an OpenPGP compressed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * packet.  LEN should be at least 6.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-is_openpgp_compressed_packet (const unsigned char *buf, size_t len)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int c, ctb, pkttype;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int lenbytes;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ctb = *buf++; len--;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (!(ctb & 0x80))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return 0; /* Invalid packet.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if ((ctb & 0x40)) /* New style (OpenPGP) CTB.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      pkttype = (ctb & 0x3f);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if (!len)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return 0; /* Expected first length octet missing.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      c = *buf++; len--;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if (c < 192)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      else if (c < 224)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if (!len)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            return 0; /* Expected second length octet missing. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      else if (c == 255)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if (len < 4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            return 0; /* Expected length octets missing */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  else /* Old style CTB.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      pkttype = (ctb>>2)&0xf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      lenbytes = ((ctb&3)==3)? 0 : (1<<(ctb & 3));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if (len < lenbytes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return 0; /* Not enough length bytes.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return (pkttype == 8);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * Check if the file is compressed.  You need to pass the first bytes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * of the file as (BUF,BUFLEN).  Returns true if the buffer seems to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * be compressed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-is_file_compressed (const byte *buf, unsigned int buflen)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  struct magic_compress_s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    byte len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    byte extchk;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    byte magic[5];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  } magic[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       { 3, 0, { 0x42, 0x5a, 0x68, 0x00 } }, /* bzip2 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       { 3, 0, { 0x1f, 0x8b, 0x08, 0x00 } }, /* gzip */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       { 4, 0, { 0x50, 0x4b, 0x03, 0x04 } }, /* (pk)zip */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       { 5, 0, { '%', 'P', 'D', 'F', '-'} }, /* PDF */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       { 4, 1, { 0xff, 0xd8, 0xff, 0xe0 } }, /* Maybe JFIF */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       { 5, 2, { 0x89, 'P','N','G', 0x0d} }  /* Likely PNG */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if ( buflen < 6 )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      return 0;  /* Too short to check - assume uncompressed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  for ( i = 0; i < DIM (magic); i++ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if (!memcmp( buf, magic[i].magic, magic[i].len))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          switch (magic[i].extchk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            case 0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              return 1; /* Is compressed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            case 1:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              if (buflen > 11 && !memcmp (buf + 6, "JFIF", 5))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                return 1; /* JFIF: this likely a compressed JPEG.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            case 2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              if (buflen > 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  && buf[5] == 0x0a && buf[6] == 0x1a && buf[7] == 0x0a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                return 1; /* This is a PNG.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (buflen >= 6 && is_openpgp_compressed_packet (buf, buflen))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      return 1; /* Already compressed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return 0;  /* Not detected as compressed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Try match against each substring of multistr, delimited by | */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ match_multistr (const char *multistr,const char *match)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git common/util.h common/util.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index aa24e39e6..6b948510e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- common/util.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ common/util.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -360,8 +360,6 @@ char *try_make_printable_string (const void *p, size_t n, int delim);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char *make_printable_string (const void *p, size_t n, int delim);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char *decode_c_string (const char *src);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-int is_file_compressed (const byte *buf, unsigned int buflen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int match_multistr (const char *multistr,const char *match);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int gnupg_compare_version (const char *a, const char *b);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git g10/cipher-aead.c g10/cipher-aead.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 640d8432f..0c07e65de 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- g10/cipher-aead.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ g10/cipher-aead.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -174,8 +174,6 @@ write_header (cipher_filter_context_t *cfx, iobuf_t a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     log_debug ("aead packet: len=%lu extralen=%d\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                (unsigned long)ed.len, ed.extralen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  write_status_printf (STATUS_BEGIN_ENCRYPTION, "0 %d %d",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                       cfx->dek->algo, ed.aead_algo);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   print_cipher_algo_note (cfx->dek->algo);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (build_packet( a, &pkt))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -488,6 +486,11 @@ cipher_filter_aead (void *opaque, int control,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       mem2str (buf, "cipher_filter_aead", *ret_len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if (control == IOBUFCTRL_INIT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      write_status_printf (STATUS_BEGIN_ENCRYPTION, "0 %d %d",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                           cfx->dek->algo, cfx->dek->use_aead);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return rc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git g10/cipher-cfb.c g10/cipher-cfb.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3ba8eb738..29bf2477c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- g10/cipher-cfb.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ g10/cipher-cfb.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -72,9 +72,6 @@ write_header (cipher_filter_context_t *cfx, iobuf_t a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       log_info (_("Hint: Do not use option %s\n"), "--rfc2440");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  write_status_printf (STATUS_BEGIN_ENCRYPTION, "%d %d",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                       ed.mdc_method, cfx->dek->algo);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   init_packet (&pkt);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pkt.pkttype = cfx->dek->use_mdc? PKT_ENCRYPTED_MDC : PKT_ENCRYPTED;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pkt.pkt.encrypted = &ed;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -182,6 +179,12 @@ cipher_filter_cfb (void *opaque, int control,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       mem2str (buf, "cipher_filter_cfb", *ret_len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if (control == IOBUFCTRL_INIT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      write_status_printf (STATUS_BEGIN_ENCRYPTION, "%d %d",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                           cfx->dek->use_mdc ? DIGEST_ALGO_SHA1 : 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                           cfx->dek->algo);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return rc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git g10/encrypt.c g10/encrypt.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 687b4344e..a524326bb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- g10/encrypt.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ g10/encrypt.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -410,8 +410,6 @@ encrypt_simple (const char *filename, int mode, int use_seskey)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   text_filter_context_t tfx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   progress_filter_context_t *pfx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int do_compress = !!default_compress_algo();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  char peekbuf[32];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int  peekbuflen;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!gnupg_rng_is_compliant (opt.compliance))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -448,14 +446,6 @@ encrypt_simple (const char *filename, int mode, int use_seskey)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return rc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  peekbuflen = iobuf_ioctl (inp, IOBUF_IOCTL_PEEK, sizeof peekbuf, peekbuf);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (peekbuflen < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      peekbuflen = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if (DBG_FILTER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        log_debug ("peeking at input failed\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   handle_progress (pfx, inp, filename);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (opt.textmode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -517,17 +507,6 @@ encrypt_simple (const char *filename, int mode, int use_seskey)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  /**/             : "CFB");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (do_compress
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      && cfx.dek
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      && (cfx.dek->use_mdc || cfx.dek->use_aead)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      && !opt.explicit_compress_option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      && is_file_compressed (peekbuf, peekbuflen))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if (opt.verbose)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        log_info(_("'%s' already compressed\n"), filename? filename: "[stdin]");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      do_compress = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if ( rc || (rc = open_outfile (-1, filename, opt.armor? 1:0, 0, &out )))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       iobuf_cancel (inp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -598,6 +577,24 @@ encrypt_simple (const char *filename, int mode, int use_seskey)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     filesize = opt.set_filesize ? opt.set_filesize : 0; /* stdin */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Register the cipher filter. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (mode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    iobuf_push_filter (out,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                       cfx.dek->use_aead? cipher_filter_aead
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                       /**/             : cipher_filter_cfb,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                       &cfx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (do_compress
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && cfx.dek
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && (cfx.dek->use_mdc || cfx.dek->use_aead)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && !opt.explicit_compress_option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && is_file_compressed (inp))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (opt.verbose)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        log_info(_("'%s' already compressed\n"), filename? filename: "[stdin]");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      do_compress = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!opt.no_literal)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       /* Note that PT has been initialized above in !no_literal mode.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -617,13 +614,6 @@ encrypt_simple (const char *filename, int mode, int use_seskey)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       pkt.pkt.generic = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* Register the cipher filter. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (mode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    iobuf_push_filter (out,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                       cfx.dek->use_aead? cipher_filter_aead
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                       /**/             : cipher_filter_cfb,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                       &cfx );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Register the compress filter. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if ( do_compress )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -783,7 +773,7 @@ encrypt_crypt (ctrl_t ctrl, int filefd, const char *filename,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PKT_plaintext *pt = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DEK *symkey_dek = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   STRING2KEY *symkey_s2k = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int rc = 0, rc2 = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int rc = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   u32 filesize;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cipher_filter_context_t cfx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   armor_filter_context_t *afx = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -792,8 +782,6 @@ encrypt_crypt (ctrl_t ctrl, int filefd, const char *filename,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   progress_filter_context_t *pfx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PK_LIST pk_list;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int do_compress;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  char peekbuf[32];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int  peekbuflen;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (filefd != -1 && filename)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return gpg_error (GPG_ERR_INV_ARG);  /* Both given.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -866,14 +854,6 @@ encrypt_crypt (ctrl_t ctrl, int filefd, const char *filename,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (opt.verbose)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     log_info (_("reading from '%s'\n"), iobuf_get_fname_nonnull (inp));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  peekbuflen = iobuf_ioctl (inp, IOBUF_IOCTL_PEEK, sizeof peekbuf, peekbuf);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (peekbuflen < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      peekbuflen = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if (DBG_FILTER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        log_debug ("peeking at input failed\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   handle_progress (pfx, inp, filename);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (opt.textmode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -900,25 +880,6 @@ encrypt_crypt (ctrl_t ctrl, int filefd, const char *filename,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!cfx.dek->use_aead)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     cfx.dek->use_mdc = !!use_mdc (pk_list, cfx.dek->algo);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* Only do the is-file-already-compressed check if we are using a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   * MDC or AEAD.  This forces compressed files to be re-compressed if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   * we do not have a MDC to give some protection against chosen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   * ciphertext attacks. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (do_compress
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      && (cfx.dek->use_mdc || cfx.dek->use_aead)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      && !opt.explicit_compress_option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      && is_file_compressed (peekbuf, peekbuflen))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if (opt.verbose)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        log_info(_("'%s' already compressed\n"), filename? filename: "[stdin]");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      do_compress = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (rc2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      rc = rc2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      goto leave;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   make_session_key (cfx.dek);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (DBG_CRYPTO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     log_printhex (cfx.dek->key, cfx.dek->keylen, "DEK is: ");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -960,6 +921,26 @@ encrypt_crypt (ctrl_t ctrl, int filefd, const char *filename,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     filesize = opt.set_filesize ? opt.set_filesize : 0; /* stdin */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Register the cipher filter. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  iobuf_push_filter (out,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                     cfx.dek->use_aead? cipher_filter_aead
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                     /**/             : cipher_filter_cfb,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                     &cfx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Only do the is-file-already-compressed check if we are using a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   * MDC or AEAD.  This forces compressed files to be re-compressed if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   * we do not have a MDC to give some protection against chosen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   * ciphertext attacks. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (do_compress
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && (cfx.dek->use_mdc || cfx.dek->use_aead)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && !opt.explicit_compress_option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && is_file_compressed (inp))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (opt.verbose)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        log_info(_("'%s' already compressed\n"), filename? filename: "[stdin]");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      do_compress = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!opt.no_literal)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       pt->timestamp = make_timestamp();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -974,12 +955,6 @@ encrypt_crypt (ctrl_t ctrl, int filefd, const char *filename,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     cfx.datalen = filesize && !do_compress ? filesize : 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* Register the cipher filter. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  iobuf_push_filter (out,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                     cfx.dek->use_aead? cipher_filter_aead
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                     /**/             : cipher_filter_cfb,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                     &cfx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Register the compress filter. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (do_compress)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git g10/sign.c g10/sign.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b5e9d422d..fcb1bb749 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- g10/sign.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ g10/sign.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1035,9 +1035,6 @@ sign_file (ctrl_t ctrl, strlist_t filenames, int detached, strlist_t locusr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int multifile = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   u32 duration=0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pt_extra_hash_data_t extrahash = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  char peekbuf[32];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int  peekbuflen = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pfx = new_progress_context ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   afx = new_armor_context ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1096,14 +1093,6 @@ sign_file (ctrl_t ctrl, strlist_t filenames, int detached, strlist_t locusr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           goto leave;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      peekbuflen = iobuf_ioctl (inp, IOBUF_IOCTL_PEEK, sizeof peekbuf, peekbuf);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if (peekbuflen < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          peekbuflen = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if (DBG_FILTER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            log_debug ("peeking at input failed\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       handle_progress (pfx, inp, fname);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1261,7 +1250,7 @@ sign_file (ctrl_t ctrl, strlist_t filenames, int detached, strlist_t locusr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int compr_algo = opt.compress_algo;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (!opt.explicit_compress_option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          && is_file_compressed (peekbuf, peekbuflen))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          && is_file_compressed (inp))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (opt.verbose)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             log_info(_("'%s' already compressed\n"), fname? fname: "[stdin]");
</span></pre><pre style='margin:0'>

</pre>