Make patch break hardlinks even if not making backups.
authorSimon Schubert <corecode@dragonflybsd.org>
Fri, 3 Feb 2006 21:20:29 +0000 (21:20 +0000)
committerSimon Schubert <corecode@dragonflybsd.org>
Fri, 3 Feb 2006 21:20:29 +0000 (21:20 +0000)
usr.bin/patch/util.c

index 5fcb61d..d3d3c23 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * $OpenBSD: util.c,v 1.29 2004/11/19 20:00:57 otto Exp $
- * $DragonFly: src/usr.bin/patch/util.c,v 1.5 2006/01/19 04:51:30 corecode Exp $
+ * $DragonFly: src/usr.bin/patch/util.c,v 1.6 2006/02/03 21:20:29 corecode Exp $
  */
 
 /*
@@ -106,10 +106,13 @@ backup_file(const char *orig)
                return 0;                       /* nothing to do */
        /*
         * If the user used zero prefixes or suffixes, then
-        * he doesn't want backups
+        * he doesn't want backups.  Yet we have to remove
+        * orig to break possible hardlinks.
         */
-       if ((origprae && *origprae == 0) || *simple_backup_suffix == 0)
+       if ((origprae && *origprae == 0) || *simple_backup_suffix == 0) {
+               unlink(orig);
                return 0;
+       }
        orig_device = filestat.st_dev;
        orig_inode = filestat.st_ino;