diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-07-01 02:20:08 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-07-01 02:20:08 +0000 |
commit | 953c525d7589178629f3e91e4bf4ea805a92a5b4 (patch) | |
tree | 9411cddbd2f213fe4edf2150e2e8b02a9d27b4bf /libpipe/seqpack.c | |
parent | 13ea39a34766fcbecd96ab94bcdf798b08e9bb60 (diff) | |
parent | 5430151902aa7cb17458c0d71722a05fd379babf (diff) | |
download | hurd-953c525d7589178629f3e91e4bf4ea805a92a5b4.tar.gz hurd-953c525d7589178629f3e91e4bf4ea805a92a5b4.tar.bz2 hurd-953c525d7589178629f3e91e4bf4ea805a92a5b4.zip |
Merge branch 'master' into xkb
Conflicts:
console-client/Makefile
Diffstat (limited to 'libpipe/seqpack.c')
-rw-r--r-- | libpipe/seqpack.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libpipe/seqpack.c b/libpipe/seqpack.c index 44a15a03..041abb74 100644 --- a/libpipe/seqpack.c +++ b/libpipe/seqpack.c @@ -43,8 +43,17 @@ static error_t seqpack_read (struct packet *packet, int *dequeue, unsigned *flags, char **data, size_t *data_len, size_t amount) { - error_t err = packet_read (packet, data, data_len, amount); - *dequeue = (packet_readable (packet) == 0); + error_t err; + if (flags && *flags & MSG_PEEK) + { + err = packet_peek (packet, data, data_len, amount); + *dequeue = 0; + } + else + { + err = packet_read (packet, data, data_len, amount); + *dequeue = (packet_readable (packet) == 0); + } return err; } |