aboutsummaryrefslogtreecommitdiffstats
path: root/src/util.c
diff options
context:
space:
mode:
authorroot <root>2007-09-10 09:53:07 +0000
committerroot <root>2007-09-10 09:53:07 +0000
commit529b3f6fffd9ed9742009162077ea5c98325d2a9 (patch)
treeedee67eb0b8f16c7b6cb00ee662c1a34ac885fa5 /src/util.c
parent61c1751407b35ed4fe98d5e1e39608c7940349d2 (diff)
downloadgpt-529b3f6fffd9ed9742009162077ea5c98325d2a9.tar.gz
gpt-529b3f6fffd9ed9742009162077ea5c98325d2a9.tar.bz2
gpt-529b3f6fffd9ed9742009162077ea5c98325d2a9.zip
*** empty log message ***
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c39
1 files changed, 38 insertions, 1 deletions
diff --git a/src/util.c b/src/util.c
index 104a16c..f59ccb9 100644
--- a/src/util.c
+++ b/src/util.c
@@ -53,8 +53,11 @@ hexdump (FILE * f, uint8_t * data, int s, int l)
}
void
-utf16_to_ascii (uint16_t * u16, int u16_len, uint8_t * u8, int u8_len)
+utf16_to_ascii (void * _u16, int u16_len, void * _u8, int u8_len)
{
+ uint16_t *u16=(uint16_t *) _u16;
+ uint8_t *u8=(uint8_t *) _u8;
+
u16_len >>= 1;
if (u8_len == 1)
@@ -78,3 +81,37 @@ utf16_to_ascii (uint16_t * u16, int u16_len, uint8_t * u8, int u8_len)
*u8 = 0;
return;
}
+
+void
+ascii_to_utf16 (void * _u8, int u8_len, void * _u16, int u16_len)
+{
+ uint16_t *u16=(uint16_t *) _u16;
+ uint8_t *u8=(uint8_t *) _u8;
+
+ u16_len >>= 1;
+
+ if (u16_len == 1)
+ {
+ *u16 = 0;
+ return;
+ }
+ while (*u8 && u8_len)
+ {
+ *(u16++) = *(u8++);
+ u16_len--;
+ u8_len--;
+
+ if (u16_len == 1)
+ {
+ *u16 = 0;
+ return;
+ }
+ }
+
+ *u16 = 0;
+ return;
+}
+
+
+
+