]> git.cameronkatri.com Git - bsd-progress.git/blobdiff - progressbar.c
updatre with latest from tzcode.
[bsd-progress.git] / progressbar.c
index 91a3069b81b2758e86020d097cd8f56d6abcfbf6..2350776d6bb24102c85de3ba5fe356d99743d758 100644 (file)
@@ -1,7 +1,7 @@
-/*     $NetBSD: progressbar.c,v 1.16 2007/05/05 16:57:54 christos Exp $        */
+/*     $NetBSD: progressbar.c,v 1.22 2012/06/27 22:07:36 riastradh Exp $       */
 
 /*-
 
 /*-
- * Copyright (c) 1997-2007 The NetBSD Foundation, Inc.
+ * Copyright (c) 1997-2009 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
  * This code is derived from software contributed to The NetBSD Foundation
  * All rights reserved.
  *
  * This code is derived from software contributed to The NetBSD Foundation
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the NetBSD
- *     Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  *
  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 
 #include <sys/cdefs.h>
 #ifndef lint
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: progressbar.c,v 1.16 2007/05/05 16:57:54 christos Exp $");
+__RCSID("$NetBSD: progressbar.c,v 1.22 2012/06/27 22:07:36 riastradh Exp $");
 #endif /* not lint */
 
 /*
  * FTP User Program -- Misc support routines
  */
 #endif /* not lint */
 
 /*
  * FTP User Program -- Misc support routines
  */
-#include <sys/types.h>
 #include <sys/param.h>
 #include <sys/param.h>
+#include <sys/types.h>
+#include <sys/time.h>
 
 #include <err.h>
 #include <errno.h>
 
 #include <err.h>
 #include <errno.h>
@@ -93,7 +87,7 @@ updateprogressmeter(int dummy)
 /*
  * List of order of magnitude suffixes, per IEC 60027-2.
  */
 /*
  * List of order of magnitude suffixes, per IEC 60027-2.
  */
-static const char *suffixes[] = {
+static const char * const suffixes[] = {
        "",     /* 2^0  (byte) */
        "KiB",  /* 2^10 Kibibyte */
        "MiB",  /* 2^20 Mebibyte */
        "",     /* 2^0  (byte) */
        "KiB",  /* 2^10 Kibibyte */
        "MiB",  /* 2^20 Mebibyte */
@@ -107,7 +101,7 @@ static const char *suffixes[] = {
        "YiB",  /* 2^80 Yobibyte */
 #endif
 };
        "YiB",  /* 2^80 Yobibyte */
 #endif
 };
-#define NSUFFIXES      (sizeof(suffixes) / sizeof(suffixes[0]))
+#define NSUFFIXES      (int)(sizeof(suffixes) / sizeof(suffixes[0]))
 
 /*
  * Display a transfer progress bar if progress is non-zero.
 
 /*
  * Display a transfer progress bar if progress is non-zero.
@@ -180,8 +174,8 @@ progressmeter(int flag)
                            "transfer aborted because stalled for %lu sec.\r\n",
                            getprogname(), (unsigned long)wait.tv_sec);
                        (void)write(fileno(ttyout), buf, len);
                            "transfer aborted because stalled for %lu sec.\r\n",
                            getprogname(), (unsigned long)wait.tv_sec);
                        (void)write(fileno(ttyout), buf, len);
-                       (void)xsignal(SIGALRM, SIG_DFL);
                        alarmtimer(0);
                        alarmtimer(0);
+                       (void)xsignal(SIGALRM, SIG_DFL);
                        siglongjmp(toplevel, 1);
                }
 #endif /* !STANDALONE_PROGRESS */
                        siglongjmp(toplevel, 1);
                }
 #endif /* !STANDALONE_PROGRESS */
@@ -198,8 +192,8 @@ progressmeter(int flag)
                        (void)xsignal_restart(SIGALRM, updateprogressmeter, 1);
                        alarmtimer(1);          /* set alarm timer for 1 Hz */
                } else if (flag == 1) {
                        (void)xsignal_restart(SIGALRM, updateprogressmeter, 1);
                        alarmtimer(1);          /* set alarm timer for 1 Hz */
                } else if (flag == 1) {
-                       (void)xsignal(SIGALRM, SIG_DFL);
                        alarmtimer(0);
                        alarmtimer(0);
+                       (void)xsignal(SIGALRM, SIG_DFL);
                }
        }
 #ifndef NO_PROGRESS
                }
        }
 #ifndef NO_PROGRESS
@@ -226,7 +220,7 @@ progressmeter(int flag)
                         * calculate the length of the `*' bar, ensuring that
                         * the number of stars won't exceed the buffer size
                         */
                         * calculate the length of the `*' bar, ensuring that
                         * the number of stars won't exceed the buffer size
                         */
-               barlength = MIN(sizeof(buf) - 1, ttywidth) - BAROVERHEAD;
+               barlength = MIN((int)(sizeof(buf) - 1), ttywidth) - BAROVERHEAD;
                if (prefix)
                        barlength -= (int)strlen(prefix);
                if (barlength > 0) {
                if (prefix)
                        barlength -= (int)strlen(prefix);
                if (barlength > 0) {