Module Name:    src
Committed By:   christos
Date:           Sat Jan 21 16:38:41 UTC 2012

Modified Files:
        src/bin/rm: rm.c

Log Message:
Siginfo support from Daniel Loffgren


To generate a diff of this commit:
cvs rdiff -u -r1.50 -r1.51 src/bin/rm/rm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/bin/rm/rm.c
diff -u src/bin/rm/rm.c:1.50 src/bin/rm/rm.c:1.51
--- src/bin/rm/rm.c:1.50	Mon Aug 29 10:48:46 2011
+++ src/bin/rm/rm.c	Sat Jan 21 11:38:41 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: rm.c,v 1.50 2011/08/29 14:48:46 joerg Exp $ */
+/* $NetBSD: rm.c,v 1.51 2012/01/21 16:38:41 christos Exp $ */
 
 /*-
  * Copyright (c) 1990, 1993, 1994, 2003
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1990, 19
 #if 0
 static char sccsid[] = "@(#)rm.c	8.8 (Berkeley) 4/27/95";
 #else
-__RCSID("$NetBSD: rm.c,v 1.50 2011/08/29 14:48:46 joerg Exp $");
+__RCSID("$NetBSD: rm.c,v 1.51 2012/01/21 16:38:41 christos Exp $");
 #endif
 #endif /* not lint */
 
@@ -54,15 +54,18 @@ __RCSID("$NetBSD: rm.c,v 1.50 2011/08/29
 #include <grp.h>
 #include <locale.h>
 #include <pwd.h>
+#include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
 static int dflag, eval, fflag, iflag, Pflag, stdin_ok, vflag, Wflag;
+static sig_atomic_t pinfo;
 
 static int	check(char *, char *, struct stat *);
 static void	checkdot(char **);
+static void	progress(int);
 static void	rm_file(char **);
 static int	rm_overwrite(char *, struct stat *);
 static void	rm_tree(char **);
@@ -131,6 +134,8 @@ main(int argc, char *argv[])
 		usage();
 	}
 
+	(void)signal(SIGINFO, progress);
+
 	checkdot(argv);
 
 	if (*argv) {
@@ -252,8 +257,10 @@ rm_tree(char **argv)
 		if (rval != 0) {
 			warn("%s", p->fts_path);
 			eval = 1;
-		} else if (vflag)
+		} else if (vflag || pinfo) {
+			pinfo = 0;
 			(void)printf("%s\n", p->fts_path);
+		}
 	}
 	if (errno)
 		err(1, "fts_read");
@@ -579,3 +586,10 @@ usage(void)
 	exit(1);
 	/* NOTREACHED */
 }
+
+static void
+progress(int sig __unused)
+{
+	
+	pinfo++;
+}

Reply via email to