diff --git a/shf.c b/shf.c index c50c5ff..2444326 100644 --- a/shf.c +++ b/shf.c @@ -2,7 +2,7 @@ #include "sh.h" -__RCSID("$MirOS: src/bin/mksh/shf.c,v 1.25 2009/03/14 18:12:55 tg Exp $"); +__RCSID("$MirOS: src/bin/mksh/shf.c,v 1.26 2009/04/07 19:08:25 tg Exp $"); /* flags to shf_emptybuf() */ #define EB_READSW 0x01 /* about to switch to reading */ @@ -175,8 +175,7 @@ struct shf * shf_sopen(char *buf, int bsize, int sflags, struct shf *shf) { /* can't have a read+write string */ - if (!(sflags & (SHF_RD | SHF_WR)) || - (sflags & (SHF_RD | SHF_WR)) == (SHF_RD | SHF_WR)) + if (!(sflags & SHF_RD) ^ !(sflags & SHF_WR)) internal_errorf("shf_sopen: flags 0x%x", sflags); if (!shf) {