From 1db0b0f050e30839db90f83be87d7bd5e17c9141 Mon Sep 17 00:00:00 2001 From: kientzle Date: Wed, 22 Dec 2004 06:12:40 +0000 Subject: Add __archive_strappend_int to format a decimal number into a variable-length archive_string. --- lib/libarchive/archive_string.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib/libarchive/archive_string.c') diff --git a/lib/libarchive/archive_string.c b/lib/libarchive/archive_string.c index 0e92836..b18f31d 100644 --- a/lib/libarchive/archive_string.c +++ b/lib/libarchive/archive_string.c @@ -96,3 +96,18 @@ __archive_strappend_char(struct archive_string *as, char c) { return (__archive_string_append(as, &c, 1)); } + +struct archive_string * +__archive_strappend_int(struct archive_string *as, int d, int base) +{ + static const char *digits = "0123457890abcdef"; + + if (d < 0) { + __archive_strappend_char(as, '-'); + d = -d; + } + if (d >= base) + __archive_strappend_int(as, d/base, base); + __archive_strappend_char(as, digits[d % base]); + return (as); +} -- cgit v1.1