Siginfo support from Daniel Loffgren
This commit is contained in:
parent
65ab8f813e
commit
df65f3e2c9
20
bin/rm/rm.c
20
bin/rm/rm.c
|
@ -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
|
* Copyright (c) 1990, 1993, 1994, 2003
|
||||||
|
@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1990, 1993, 1994\
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)rm.c 8.8 (Berkeley) 4/27/95";
|
static char sccsid[] = "@(#)rm.c 8.8 (Berkeley) 4/27/95";
|
||||||
#else
|
#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
|
||||||
#endif /* not lint */
|
#endif /* not lint */
|
||||||
|
|
||||||
|
@ -54,15 +54,18 @@ __RCSID("$NetBSD: rm.c,v 1.50 2011/08/29 14:48:46 joerg Exp $");
|
||||||
#include <grp.h>
|
#include <grp.h>
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
|
#include <signal.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
static int dflag, eval, fflag, iflag, Pflag, stdin_ok, vflag, Wflag;
|
static int dflag, eval, fflag, iflag, Pflag, stdin_ok, vflag, Wflag;
|
||||||
|
static sig_atomic_t pinfo;
|
||||||
|
|
||||||
static int check(char *, char *, struct stat *);
|
static int check(char *, char *, struct stat *);
|
||||||
static void checkdot(char **);
|
static void checkdot(char **);
|
||||||
|
static void progress(int);
|
||||||
static void rm_file(char **);
|
static void rm_file(char **);
|
||||||
static int rm_overwrite(char *, struct stat *);
|
static int rm_overwrite(char *, struct stat *);
|
||||||
static void rm_tree(char **);
|
static void rm_tree(char **);
|
||||||
|
@ -131,6 +134,8 @@ main(int argc, char *argv[])
|
||||||
usage();
|
usage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(void)signal(SIGINFO, progress);
|
||||||
|
|
||||||
checkdot(argv);
|
checkdot(argv);
|
||||||
|
|
||||||
if (*argv) {
|
if (*argv) {
|
||||||
|
@ -252,8 +257,10 @@ rm_tree(char **argv)
|
||||||
if (rval != 0) {
|
if (rval != 0) {
|
||||||
warn("%s", p->fts_path);
|
warn("%s", p->fts_path);
|
||||||
eval = 1;
|
eval = 1;
|
||||||
} else if (vflag)
|
} else if (vflag || pinfo) {
|
||||||
|
pinfo = 0;
|
||||||
(void)printf("%s\n", p->fts_path);
|
(void)printf("%s\n", p->fts_path);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (errno)
|
if (errno)
|
||||||
err(1, "fts_read");
|
err(1, "fts_read");
|
||||||
|
@ -579,3 +586,10 @@ usage(void)
|
||||||
exit(1);
|
exit(1);
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
progress(int sig __unused)
|
||||||
|
{
|
||||||
|
|
||||||
|
pinfo++;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue