Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/bin/csh use strpct(3) from libutil.
details: https://anonhg.NetBSD.org/src/rev/5d1b7cd13195
branches: trunk
changeset: 768864:5d1b7cd13195
user: christos <christos%NetBSD.org@localhost>
date: Sun Aug 28 07:49:16 2011 +0000
description:
use strpct(3) from libutil.
diffstat:
bin/csh/Makefile | 8 +++-
bin/csh/strpct.c | 93 --------------------------------------------------------
bin/csh/time.c | 10 +++--
3 files changed, 11 insertions(+), 100 deletions(-)
diffs (170 lines):
diff -r bb38c0047fb5 -r 5d1b7cd13195 bin/csh/Makefile
--- a/bin/csh/Makefile Sun Aug 28 07:48:50 2011 +0000
+++ b/bin/csh/Makefile Sun Aug 28 07:49:16 2011 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.32 2011/08/25 15:44:51 joerg Exp $
+# $NetBSD: Makefile,v 1.33 2011/08/28 07:49:16 christos Exp $
# @(#)Makefile 8.1 (Berkeley) 5/31/93
#
# C Shell with process control; VM/UNIX VAX Makefile
@@ -13,7 +13,7 @@
CPPFLAGS+=-I${.CURDIR} -I. ${DFLAGS}
SRCS= alloc.c char.c const.c csh.c dir.c dol.c err.c exec.c exp.c file.c \
func.c glob.c hist.c init.c lex.c misc.c parse.c printf.c proc.c \
- sem.c set.c str.c strpct.c time.c
+ sem.c set.c str.c time.c
.PATH: ${NETBSDSRCDIR}/usr.bin/printf
MLINKS= csh.1 limit.1 csh.1 alias.1 csh.1 bg.1 csh.1 dirs.1 csh.1 fg.1 \
@@ -55,7 +55,9 @@
COPTS.err.c = -Wno-format-nonliteral
COPTS.printf.c = -Wno-format-nonliteral
COPTS.proc.c = -Wno-format-nonliteral
-COPTS.strpct.c = -Wno-format-nonliteral
+
+LDADD+=-lutil
+DPADD+=${LIBUTIL}
.include <bsd.prog.mk>
.include <bsd.subdir.mk>
diff -r bb38c0047fb5 -r 5d1b7cd13195 bin/csh/strpct.c
--- a/bin/csh/strpct.c Sun Aug 28 07:48:50 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/* $NetBSD: strpct.c,v 1.8 2009/02/13 00:46:25 abs Exp $ */
-
-/*-
- * Copyright (c) 1998 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Erik E. Fair
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * Calculate a percentage without resorting to floating point
- * and return a pointer to a string
- *
- * "digits" is the number of digits past the decimal place you want
- * (zero being the straight percentage with no decimals)
- *
- * Erik E. Fair <fair%clock.org@localhost>, May 8, 1997
- */
-
-#include <sys/cdefs.h>
-__RCSID("$NetBSD: strpct.c,v 1.8 2009/02/13 00:46:25 abs Exp $");
-
-#include <sys/types.h>
-
-#include <limits.h>
-#include <stdio.h>
-
-char *strpct(u_long, u_long, u_int);
-
-char *
-strpct(u_long numerator, u_long denominator, u_int digits)
-{
- static char percent[32];
- u_long factor, result;
- u_int u;
-
- /* I should check for digit overflow here, too XXX */
- factor = 100L;
- for (u = 0; u < digits; u++) {
- factor *= 10;
- }
-
- /* watch out for overflow! */
- if (numerator < (ULONG_MAX / factor))
- numerator *= factor;
- else {
- /* toss some of the bits of lesser significance */
- denominator /= factor;
- }
-
- if (denominator == 0L)
- denominator = 1L;
-
- result = numerator / denominator;
-
- if (digits == 0)
- (void)snprintf(percent, sizeof(percent), "%lu%%", result);
- else {
- char fmt[32];
-
- /* indirection to produce the right output format */
- (void)snprintf(fmt, sizeof(fmt), "%%lu.%%0%ulu%%%%", digits);
-
- factor /= 100L; /* undo initialization */
-
- (void)snprintf(percent, sizeof(percent), fmt, result / factor,
- result % factor);
- }
-
- return (percent);
-}
diff -r bb38c0047fb5 -r 5d1b7cd13195 bin/csh/time.c
--- a/bin/csh/time.c Sun Aug 28 07:48:50 2011 +0000
+++ b/bin/csh/time.c Sun Aug 28 07:49:16 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: time.c,v 1.17 2008/02/24 05:20:17 dholland Exp $ */
+/* $NetBSD: time.c,v 1.18 2011/08/28 07:49:16 christos Exp $ */
/*-
* Copyright (c) 1980, 1991, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)time.c 8.1 (Berkeley) 5/31/93";
#else
-__RCSID("$NetBSD: time.c,v 1.17 2008/02/24 05:20:17 dholland Exp $");
+__RCSID("$NetBSD: time.c,v 1.18 2011/08/28 07:49:16 christos Exp $");
#endif
#endif /* not lint */
@@ -44,13 +44,13 @@
#include "csh.h"
#include "extern.h"
#endif
+#include <util.h>
/*
* C Shell - routines handling process timing and niceing
*/
static void pdeltat(FILE *, struct timeval *, struct timeval *);
static void pcsecs(FILE *, long);
-extern char *strpct(u_long, u_long, u_int);
#ifndef NOT_CSH
void
@@ -186,7 +186,9 @@
if (ms == 0) {
(void)fputs("0.0%", fp);
} else {
- (void)fputs(strpct((ulong)t, (ulong)ms, 1), fp);
+ char pb[32];
+ (void)fputs(strpct(pb, sizeof(pb), t, ms, 1), fp);
+ (void)fputc('%', fp);
}
break;
case 'R': /* page reclaims */
Home |
Main Index |
Thread Index |
Old Index