diff options
| author | Werner Koch <[email protected]> | 2008-12-09 08:58:02 +0000 |
|---|---|---|
| committer | Werner Koch <[email protected]> | 2008-12-09 08:58:02 +0000 |
| commit | 382d2f8efbb31b1eee16c1bbcd521099eb42c622 (patch) | |
| tree | 514044051e08dcc8906d00ddc89a50053483a25b /g10/keylist.c | |
| parent | Align ticker to the full or half second. (diff) | |
| download | gnupg-382d2f8efbb31b1eee16c1bbcd521099eb42c622.tar.gz gnupg-382d2f8efbb31b1eee16c1bbcd521099eb42c622.zip | |
Minor fixes.
Diffstat (limited to 'g10/keylist.c')
| -rw-r--r-- | g10/keylist.c | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/g10/keylist.c b/g10/keylist.c index 5f86a38e4..91b337407 100644 --- a/g10/keylist.c +++ b/g10/keylist.c @@ -24,6 +24,9 @@ #include <string.h> #include <errno.h> #include <assert.h> +#ifdef HAVE_DOSISH_SYSTEM +#include <fcntl.h> /* for setmode() */ +#endif #include "gpg.h" #include "options.h" @@ -50,7 +53,8 @@ struct sig_stats int oth_err; }; -static FILE *attrib_fp=NULL; +/* The stream used to write attribute packets to. */ +static FILE *attrib_fp = NULL; /**************** * List the keys @@ -745,6 +749,7 @@ dump_attribs(const PKT_user_id *uid,PKT_public_key *pk,PKT_secret_key *sk) } fwrite(uid->attribs[i].data,uid->attribs[i].len,1,attrib_fp); + fflush (attrib_fp); } } @@ -1609,29 +1614,35 @@ print_card_serialno (PKT_secret_key *sk) -void set_attrib_fd(int fd) +void +set_attrib_fd (int fd) { static int last_fd=-1; if ( fd != -1 && last_fd == fd ) return; - if ( attrib_fp && attrib_fp != stdout && attrib_fp != stderr ) + if ( attrib_fp && attrib_fp != stdout && attrib_fp != stderr + && attrib_fp != log_get_stream () ) fclose (attrib_fp); attrib_fp = NULL; if ( fd == -1 ) return; +#ifdef HAVE_DOSISH_SYSTEM + setmode ( fileno(fp) , O_BINARY ); +#endif if( fd == 1 ) attrib_fp = stdout; else if( fd == 2 ) attrib_fp = stderr; else - attrib_fp = fdopen( fd, "wb" ); - if( !attrib_fp ) { - log_fatal("can't open fd %d for attribute output: %s\n", - fd, strerror(errno)); - } - + attrib_fp = fdopen (fd, "wb"); + if (!attrib_fp) + { + log_fatal("can't open fd %d for attribute output: %s\n", + fd, strerror(errno)); + } + last_fd = fd; } |
