aboutsummaryrefslogtreecommitdiffstats
path: root/g10/textfilter.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/textfilter.c')
-rw-r--r--g10/textfilter.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/g10/textfilter.c b/g10/textfilter.c
index 3125925b6..dc143b354 100644
--- a/g10/textfilter.c
+++ b/g10/textfilter.c
@@ -183,11 +183,32 @@ copy_clearsig_text( IOBUF out, IOBUF inp, MD_HANDLE md,
iobuf_put( out, '-' );
iobuf_put( out, ' ' );
}
+ #ifdef __MINGW32__
+ /* make sure the lines do end in CR,LF */
+ if( n > 1 && ( (buffer[n-2] == '\r' && buffer[n-1] == '\n' )
+ || (buffer[n-2] == '\n' && buffer[n-1] == '\r'))) {
+ iobuf_write( out, buffer, n-2 );
+ iobuf_put( out, '\r');
+ iobuf_put( out, '\n');
+ }
+ else if( n && buffer[n-1] == '\n' ) {
+ iobuf_write( out, buffer, n-1 );
+ iobuf_put( out, '\r');
+ iobuf_put( out, '\n');
+ }
+ else
+ iobuf_write( out, buffer, n );
+
+ #else
iobuf_write( out, buffer, n );
+ #endif
}
/* at eof */
if( !pending_lf ) { /* make sure that the file ends with a LF */
+ #ifndef __MINGW32__
+ iobuf_put( out, '\r');
+ #endif
iobuf_put( out, '\n');
if( !escape_dash )
md_putc( md, '\n' );