summaryrefslogtreecommitdiff
path: root/libudffs/unicode.c
diff options
context:
space:
mode:
Diffstat (limited to 'libudffs/unicode.c')
-rw-r--r--libudffs/unicode.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/libudffs/unicode.c b/libudffs/unicode.c
index 6723466..d817e0e 100644
--- a/libudffs/unicode.c
+++ b/libudffs/unicode.c
@@ -25,12 +25,13 @@
* libudffs unicode handling functions
*/
-#include "libudffs.h"
#include "config.h"
-int decode_utf8(char *in, char *out, int inlen)
+#include "libudffs.h"
+
+size_t decode_utf8(dstring *in, char *out, size_t inlen)
{
- int len = 0, i;
+ size_t len = 0, i;
unsigned int c;
if (in[inlen-1] == 0)
@@ -64,10 +65,11 @@ int decode_utf8(char *in, char *out, int inlen)
return len;
}
-int encode_utf8(char *out, char *hdr, char *in, int outlen)
+size_t encode_utf8(dstring *out, char *hdr, char *in, size_t outlen)
{
- int inlen = strlen(in);
- int utf_cnt, len = 1, i;
+ size_t inlen = strlen(in);
+ size_t len = 1, i;
+ int utf_cnt;
uint32_t utf_char, max_val;
unsigned int c;
@@ -173,7 +175,7 @@ error_out:
return len;
}
-int decode_string(struct udf_disc *disc, char *in, char *out, int inlen)
+size_t decode_string(struct udf_disc *disc, dstring *in, char *out, size_t inlen)
{
if (disc->flags & FLAG_UTF8)
return decode_utf8(in, out, inlen);
@@ -186,9 +188,9 @@ int decode_string(struct udf_disc *disc, char *in, char *out, int inlen)
return 0;
}
-int encode_string(struct udf_disc *disc, char *out, char *hdr, char *in, int outlen)
+size_t encode_string(struct udf_disc *disc, dstring *out, char *hdr, char *in, size_t outlen)
{
- int i;
+ size_t i;
memset(out, 0x00, outlen);
if (disc->flags & FLAG_UTF8)