X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/mLib/blobdiff_plain/17119f584e90f494da54aa9e2d1d10227213d96b..bb1cbbe82a40a9cffb8d143bed2e3aa245595450:/fdflags.c diff --git a/fdflags.c b/fdflags.c index 6f401e4..af8663f 100644 --- a/fdflags.c +++ b/fdflags.c @@ -7,7 +7,7 @@ * (c) 1999 Straylight/Edgeware */ -/*----- Licensing notice --------------------------------------------------* +/*----- Licensing notice --------------------------------------------------* * * This file is part of the mLib utilities library. * @@ -15,12 +15,12 @@ * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. - * + * * mLib is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. - * + * * You should have received a copy of the GNU Library General Public * License along with mLib; if not, write to the Free * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, @@ -59,14 +59,14 @@ int fdflags(int fd, unsigned fbic, unsigned fxor, if (fbic || fxor) { if ((f = fcntl(fd, F_GETFL)) == -1) return (-1); - ff = (f & fbic) ^ fxor; + ff = (f & ~fbic) ^ fxor; if (f != ff && fcntl(fd, F_SETFL, ff) == -1) return (-1); } if (fdbic || fdxor) { if ((f = fcntl(fd, F_GETFD)) == -1) return (-1); - ff = (f & fdbic) ^ fdxor; + ff = (f & ~fdbic) ^ fdxor; if (f != ff && fcntl(fd, F_SETFD, ff) == -1) return (-1); }