aboutsummaryrefslogtreecommitdiff
path: root/wcsmbs/mbsinit.c
diff options
context:
space:
mode:
Diffstat (limited to 'wcsmbs/mbsinit.c')
-rw-r--r--wcsmbs/mbsinit.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/wcsmbs/mbsinit.c b/wcsmbs/mbsinit.c
index efbfd09347..f56ce20331 100644
--- a/wcsmbs/mbsinit.c
+++ b/wcsmbs/mbsinit.c
@@ -1,6 +1,6 @@
/* Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>
+Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
@@ -20,15 +20,17 @@ Boston, MA 02111-1307, USA. */
#include <string.h>
#include <wchar.h>
-
+/* In GNU libc the conversion functions only can convert between the
+ fixed wide character representation and the multibyte
+ representation of the same character set. Since we use ISO 10646
+ in UCS4 encoding for wide characters the best solution for
+ multibyte characters is the UTF8 encoding. I.e., the only state
+ information is a counter of the processed bytes so far and the
+ value collected so far. Especially, we don't have different shift
+ states. */
int
mbsinit (ps)
const mbstate_t *ps;
{
- /*************************************************************\
- |* This is no complete implementation. While the multi-byte *|
- |* character handling is not finished this will do. *|
- \*************************************************************/
-
- return ps == NULL || *ps == 0;
+ return ps == NULL || ps->count == 0;
}