aboutsummaryrefslogtreecommitdiffstats
path: root/g10
diff options
context:
space:
mode:
Diffstat (limited to 'g10')
-rw-r--r--g10/ChangeLog9
-rw-r--r--g10/compress.c23
-rw-r--r--g10/misc.c2
-rw-r--r--g10/sign.c6
4 files changed, 30 insertions, 10 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 3a879b706..bbebbd920 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,12 @@
+Wed Dec 9 13:41:06 CET 1998 Werner Koch <[email protected]>
+
+ * misc.c (trap_unaligned) [ALPHA]: Only if UAC_SIGBUS is defined.
+
+ * sign.c (write_dash_escaped): Add the forgotten patch by Brian Moore.
+
+ * compress.c (do_uncompress): Fixed the inflating bug.
+
+
Tue Dec 8 13:15:16 CET 1998 Werner Koch <[email protected]>
* trustdb.c (upd_uid_record): Now uses the newest self-signature
diff --git a/g10/compress.c b/g10/compress.c
index 917a96033..6a2f8f8c5 100644
--- a/g10/compress.c
+++ b/g10/compress.c
@@ -76,8 +76,8 @@ do_compress( compress_filter_context_t *zfx, z_stream *zs, int flush, IOBUF a )
zs->next_out = zfx->outbuf;
zs->avail_out = zfx->outbufsize;
if( DBG_FILTER )
- log_debug("call deflate: avail_in=%u, avail_out=%u\n",
- (unsigned)zs->avail_in, (unsigned)zs->avail_out);
+ log_debug("enter deflate: avail_in=%u, avail_out=%u, flush=%d\n",
+ (unsigned)zs->avail_in, (unsigned)zs->avail_out, flush );
zrc = deflate( zs, flush );
if( zrc == Z_STREAM_END && flush == Z_FINISH )
;
@@ -89,8 +89,10 @@ do_compress( compress_filter_context_t *zfx, z_stream *zs, int flush, IOBUF a )
}
n = zfx->outbufsize - zs->avail_out;
if( DBG_FILTER )
- log_debug("deflate returned: avail_in=%u, avail_out=%u, n=%u\n",
- (unsigned)zs->avail_in, (unsigned)zs->avail_out, (unsigned)n );
+ log_debug("leave deflate: "
+ "avail_in=%u, avail_out=%u, n=%u, zrc=%d\n",
+ (unsigned)zs->avail_in, (unsigned)zs->avail_out,
+ (unsigned)n, zrc );
if( iobuf_write( a, zfx->outbuf, n ) ) {
log_debug("deflate: iobuf_write failed\n");
@@ -132,12 +134,14 @@ do_uncompress( compress_filter_context_t *zfx, z_stream *zs,
size_t n;
byte *p;
int c;
+ int refill = !zs->avail_in;
if( DBG_FILTER )
- log_debug("do_uncompress: avail_in=%u, avail_out=%u\n",
- (unsigned)zs->avail_in, (unsigned)zs->avail_out);
+ log_debug("begin inflate: avail_in=%u, avail_out=%u, inbuf=%u\n",
+ (unsigned)zs->avail_in, (unsigned)zs->avail_out,
+ (unsigned)zfx->inbufsize );
do {
- if( zs->avail_in < zfx->inbufsize ) {
+ if( zs->avail_in < zfx->inbufsize && refill ) {
n = zs->avail_in;
if( !n )
zs->next_in = zfx->inbuf;
@@ -148,8 +152,9 @@ do_uncompress( compress_filter_context_t *zfx, z_stream *zs,
}
zs->avail_in = n;
}
+ refill = 1;
if( DBG_FILTER )
- log_debug("call inflate: avail_in=%u, avail_out=%u\n",
+ log_debug("enter inflate: avail_in=%u, avail_out=%u\n",
(unsigned)zs->avail_in, (unsigned)zs->avail_out);
#ifdef Z_SYNC_FLUSH
zrc = inflate( zs, Z_SYNC_FLUSH );
@@ -157,7 +162,7 @@ do_uncompress( compress_filter_context_t *zfx, z_stream *zs,
zrc = inflate( zs, Z_PARTIAL_FLUSH );
#endif
if( DBG_FILTER )
- log_debug("inflate returned: avail_in=%u, avail_out=%u, zrc=%d\n",
+ log_debug("leave inflate: avail_in=%u, avail_out=%u, zrc=%d\n",
(unsigned)zs->avail_in, (unsigned)zs->avail_out, zrc);
if( zrc == Z_STREAM_END )
rc = -1; /* eof */
diff --git a/g10/misc.c b/g10/misc.c
index 3336f2b92..adab4321f 100644
--- a/g10/misc.c
+++ b/g10/misc.c
@@ -50,7 +50,7 @@ pull_in_libs(void)
}
-#if defined(__linux__) && defined(__alpha__)
+#if defined(__linux__) && defined(__alpha__) && defined(UAC_SIGBUS)
#warning using trap_unaligned
static int
setsysinfo(unsigned long op, void *buffer, unsigned long size,
diff --git a/g10/sign.c b/g10/sign.c
index ffa72c0d7..012b7e85a 100644
--- a/g10/sign.c
+++ b/g10/sign.c
@@ -512,6 +512,12 @@ write_dash_escaped( IOBUF inp, IOBUF out, MD_HANDLE md )
}
if( state == 1 )
md_putc(md, '\r');
+ else if( state == 2 ) { /* file ended with a new line */
+ md_putc(md, '\r');
+ md_putc(md, '\n');
+ iobuf_put( out, '\n');
+ }
+
if( !lastlf )
iobuf_put( out, '\n' );