diff options
author | Werner Koch <[email protected]> | 1998-12-17 17:36:05 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 1998-12-17 17:36:05 +0000 |
commit | b1e5c79926a15ba77dc7ed070ba0080d167056d7 (patch) | |
tree | ec27dd5bf25a6bf79fa6c85db197eb9f935ed6f7 /g10/sign.c | |
parent | See ChangeLog: Mon Dec 14 21:18:49 CET 1998 Werner Koch (diff) | |
download | gnupg-b1e5c79926a15ba77dc7ed070ba0080d167056d7.tar.gz gnupg-b1e5c79926a15ba77dc7ed070ba0080d167056d7.zip |
See ChangeLog: Thu Dec 17 18:31:15 CET 1998 Werner Koch
Diffstat (limited to 'g10/sign.c')
-rw-r--r-- | g10/sign.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/g10/sign.c b/g10/sign.c index 9b78acf7e..f3373ed4f 100644 --- a/g10/sign.c +++ b/g10/sign.c @@ -475,12 +475,35 @@ write_dash_escaped( IOBUF inp, IOBUF out, MD_HANDLE md ) } while( (c = iobuf_get(inp)) != -1 ) { - /* Note: We don't escape "From " because the MUA should cope with it */ if( lastlf ) { if( c == '-' ) { iobuf_put( out, c ); iobuf_put( out, ' ' ); } + else if( c == 'F' && opt.escape_from ) { + int i; + + if( state >= 1 ) + md_putc(md, '\r'); + if( state >= 2 ) + md_putc(md, '\n'); + state = 0; + + for( i=1; i < 5 && (c = iobuf_get(inp)) != -1; i++ ) { + if( "From "[i] != c ) + break; + } + if( i < 5 ) { + iobuf_write( out, "From", i ); + md_write( md, "From", i ); + if( c == -1 ) + break; + } + else { + iobuf_writestr( out, "- From" ); + md_write( md, "From", 4 ); + } + } } again: @@ -614,7 +637,7 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile ) PKT_secret_key *sk = sk_rover->sk; md_enable(textmd, hash_for(sk->pubkey_algo)); } - /*md_start_debug( textmd, "create" );*/ + md_start_debug( textmd, "create" ); if( !opt.not_dash_escaped ) iobuf_push_filter( inp, text_filter, &tfx ); rc = write_dash_escaped( inp, out, textmd ); |