]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
(set_fd_flags): Don't OR in -1 when fcntl fails.
authorJim Meyering <jim@meyering.net>
Thu, 8 Apr 2004 15:20:33 +0000 (15:20 +0000)
committerJim Meyering <jim@meyering.net>
Thu, 8 Apr 2004 15:20:33 +0000 (15:20 +0000)
Rename parameter, flags, to avoid shadowing global.

src/dd.c

index 9b72a63124caaf60a8325ee3280fc5a625aeb24e..4df58ed9f38360a702c7bfb52683507e045fb8f2 100644 (file)
--- a/src/dd.c
+++ b/src/dd.c
@@ -1017,12 +1017,12 @@ copy_with_unblock (char const *buf, size_t nread)
    in FLAGS.  The file's name is NAME.  */
 
 static void
-set_fd_flags (int fd, int flags, char const *name)
+set_fd_flags (int fd, int add_flags, char const *name)
 {
-  if (flags)
+  if (add_flags)
     {
       int old_flags = fcntl (fd, F_GETFL);
-      int new_flags = old_flags | flags;
+      int new_flags = old_flags < 0 ? add_flags : (old_flags | add_flags);
       if (old_flags < 0
          || (new_flags != old_flags && fcntl (fd, F_SETFL, new_flags) == -1))
        error (EXIT_FAILURE, errno, _("setting flags for %s"), quote (name));