Blame view
include/charset.h
2.24 KB
78178bb0c lib: add some utf... |
1 2 3 4 5 6 7 8 9 10 |
/* * charset conversion utils * * Copyright (c) 2017 Rob Clark * * SPDX-License-Identifier: GPL-2.0+ */ #ifndef __CHARSET_H_ #define __CHARSET_H_ |
f58c5ecb8 efi_loader: new f... |
11 |
#include <linux/types.h> |
984f251fe efi_loader: MAX_U... |
12 |
#define MAX_UTF8_PER_UTF16 3 |
78178bb0c lib: add some utf... |
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
/** * utf16_strlen() - Get the length of an utf16 string * * Returns the number of 16 bit characters in an utf16 string, not * including the terminating NULL character. * * @in the string to measure * @return the string length */ size_t utf16_strlen(const uint16_t *in); /** * utf16_strnlen() - Get the length of a fixed-size utf16 string. * * Returns the number of 16 bit characters in an utf16 string, * not including the terminating NULL character, but at most * 'count' number of characters. In doing this, utf16_strnlen() * looks at only the first 'count' characters. * * @in the string to measure * @count the maximum number of characters to count * @return the string length, up to a maximum of 'count' */ size_t utf16_strnlen(const uint16_t *in, size_t count); /** * utf16_strcpy() - UTF16 equivalent of strcpy() */ uint16_t *utf16_strcpy(uint16_t *dest, const uint16_t *src); /** * utf16_strdup() - UTF16 equivalent of strdup() */ uint16_t *utf16_strdup(const uint16_t *s); /** * utf16_to_utf8() - Convert an utf16 string to utf8 * * Converts 'size' characters of the utf16 string 'src' to utf8 * written to the 'dest' buffer. * |
984f251fe efi_loader: MAX_U... |
55 |
* NOTE that a single utf16 character can generate up to 3 utf8 |
78178bb0c lib: add some utf... |
56 57 58 59 60 61 62 63 |
* characters. See MAX_UTF8_PER_UTF16. * * @dest the destination buffer to write the utf8 characters * @src the source utf16 string * @size the number of utf16 characters to convert * @return the pointer to the first unwritten byte in 'dest' */ uint8_t *utf16_to_utf8(uint8_t *dest, const uint16_t *src, size_t size); |
f58c5ecb8 efi_loader: new f... |
64 65 66 67 68 69 70 71 72 73 74 75 |
/** * utf8_to_utf16() - Convert an utf8 string to utf16 * * Converts up to 'size' characters of the utf16 string 'src' to utf8 * written to the 'dest' buffer. Stops at 0x00. * * @dest the destination buffer to write the utf8 characters * @src the source utf16 string * @size maximum number of utf16 characters to convert * @return the pointer to the first unwritten byte in 'dest' */ uint16_t *utf8_to_utf16(uint16_t *dest, const uint8_t *src, size_t size); |
78178bb0c lib: add some utf... |
76 |
#endif /* __CHARSET_H_ */ |