Author: imp
Date: Thu Apr 30 01:24:53 2009
New Revision: 191677
URL: http://svn.freebsd.org/changeset/base/191677

Log:
  Report the next directory being scanned when a ^T is pressed (or any
  SIGINFO).  Provides some progress report for the impatient.  This
  won't report that we're blocking in our walk due to disk/network
  problems, however.  There's no really good way to report that
  condition that I'm aware of...

Modified:
  head/usr.bin/du/du.c

Modified: head/usr.bin/du/du.c
==============================================================================
--- head/usr.bin/du/du.c        Wed Apr 29 23:04:31 2009        (r191676)
+++ head/usr.bin/du/du.c        Thu Apr 30 01:24:53 2009        (r191677)
@@ -77,10 +77,12 @@ static void prthumanval(int64_t);
 static void    ignoreadd(const char *);
 static void    ignoreclean(void);
 static int     ignorep(FTSENT *);
+static void    siginfo(int __unused);
 
 static int     nodumpflag = 0;
 static int     Aflag;
 static long    blocksize, cblocksize;
+static volatile sig_atomic_t info;
 
 int
 main(int argc, char *argv[])
@@ -248,6 +250,8 @@ main(int argc, char *argv[])
 
        rval = 0;
 
+       (void)signal(SIGINFO, siginfo);
+
        if ((fts = fts_open(argv, ftsoptions, NULL)) == NULL)
                err(1, "fts_open");
 
@@ -278,6 +282,10 @@ main(int argc, char *argv[])
                                            p->fts_path);
                                }
                        }
+                       if (info) {
+                               info = 0;
+                               (void)printf("\t%s\n", p->fts_path);
+                       }
                        break;
                case FTS_DC:                    /* Ignore. */
                        break;
@@ -531,3 +539,10 @@ ignorep(FTSENT *ent)
                        return 1;
        return 0;
 }
+
+static void
+siginfo(int sig __unused)
+{
+
+       info = 1;
+}
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to