]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
* src/copy.c (copy_internal): Use mknod rather than mkfifo to copy
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 18 Oct 2006 22:33:06 +0000 (22:33 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 18 Oct 2006 22:33:06 +0000 (22:33 +0000)
a fifo.  This preserves the special mode bits on Solaris 10, which
is compatible with what Solaris 10 cp -R does.

ChangeLog
src/copy.c

index 7aabf939f0805a3a215ba1760107b1d7bdc9f6ea..86e7d849beab31d54b9fcb56f5d10eff2dcc9e56 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2006-10-18  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * src/copy.c (copy_internal): Use mknod rather than mkfifo to copy
+       a fifo.  This preserves the special mode bits on Solaris 10, which
+       is compatible with what Solaris 10 cp -R does.
+
        * src/copy.c (copy_internal): Remove redundant and confusing local
        variable src_type.
 
index 5625ca9ce657453bab0cd9c10009b12bfd3a0725..d9a727aa9146f2fdbbd28673b06e61f3b4e611e3 100644 (file)
@@ -1638,7 +1638,7 @@ copy_internal (char const *src_name, char const *dst_name,
     }
   else if (S_ISFIFO (src_mode))
     {
-      if (mkfifo (dst_name, src_mode))
+      if (mknod (dst_name, src_mode, 0) != 0)
        {
          error (0, errno, _("cannot create fifo %s"), quote (dst_name));
          goto un_backup;
@@ -1646,7 +1646,7 @@ copy_internal (char const *src_name, char const *dst_name,
     }
   else if (S_ISBLK (src_mode) || S_ISCHR (src_mode) || S_ISSOCK (src_mode))
     {
-      if (mknod (dst_name, src_mode, src_sb.st_rdev))
+      if (mknod (dst_name, src_mode, src_sb.st_rdev) != 0)
        {
          error (0, errno, _("cannot create special file %s"),
                 quote (dst_name));