diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /intl/icu/source/common/ustrfmt.cpp | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'intl/icu/source/common/ustrfmt.cpp')
-rw-r--r-- | intl/icu/source/common/ustrfmt.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/intl/icu/source/common/ustrfmt.cpp b/intl/icu/source/common/ustrfmt.cpp new file mode 100644 index 0000000000..3db9f35821 --- /dev/null +++ b/intl/icu/source/common/ustrfmt.cpp @@ -0,0 +1,59 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html +/* +********************************************************************** +* Copyright (C) 2001-2006, International Business Machines +* Corporation and others. All Rights Reserved. +********************************************************************** +*/ + +#include "cstring.h" +#include "ustrfmt.h" + + +/*** + * Fills in a char16_t* string with the radix-based representation of a + * uint32_t number padded with zeroes to minwidth. The result + * will be null terminated if there is room. + * + * @param buffer char16_t buffer to receive result + * @param capacity capacity of buffer + * @param i the unsigned number to be formatted + * @param radix the radix from 2..36 + * @param minwidth the minimum width. If the result is narrower than + * this, '0's will be added on the left. Must be <= + * capacity. + * @return the length of the result, not including any terminating + * null + */ +U_CAPI int32_t U_EXPORT2 +uprv_itou (char16_t * buffer, int32_t capacity, + uint32_t i, uint32_t radix, int32_t minwidth) +{ + int32_t length = 0; + int digit; + int32_t j; + char16_t temp; + + do{ + digit = (int)(i % radix); + buffer[length++]=(char16_t)(digit<=9?(0x0030+digit):(0x0030+digit+7)); + i=i/radix; + } while(i && length<capacity); + + while (length < minwidth){ + buffer[length++] = (char16_t) 0x0030;/*zero padding */ + } + /* null terminate the buffer */ + if(length<capacity){ + buffer[length] = (char16_t) 0x0000; + } + + /* Reverses the string */ + for (j = 0; j < (length / 2); j++){ + temp = buffer[(length-1) - j]; + buffer[(length-1) - j] = buffer[j]; + buffer[j] = temp; + } + return length; +} |