]> git.saurik.com Git - apple/libc.git/blobdiff - locale/FreeBSD/mbrlen.c
Libc-1082.50.1.tar.gz
[apple/libc.git] / locale / FreeBSD / mbrlen.c
index 0d49fe5abac5bed4540186b5d45466e68fb681f3..2f0227ad977216bdd6819e8983bb5fbca24829fe 100644 (file)
@@ -1,5 +1,5 @@
 /*-
 /*-
- * Copyright (c) 2002 Tim J. Robbins.
+ * Copyright (c) 2002-2004 Tim J. Robbins.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  */
 
 #include <sys/cdefs.h>
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/locale/mbrlen.c,v 1.2 2002/09/06 11:23:45 tjr Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/locale/mbrlen.c,v 1.4 2004/05/12 14:26:54 tjr Exp $");
+
+#include "xlocale_private.h"
 
 #include <wchar.h>
 
 #include <wchar.h>
+#include "mblocal.h"
 
 size_t
 
 size_t
-mbrlen(const char * __restrict s, size_t n, mbstate_t * __restrict ps __unused)
+mbrlen_l(const char * __restrict s, size_t n, mbstate_t * __restrict ps,
+    locale_t loc)
 {
 {
+       NORMALIZE_LOCALE(loc);
+       if (ps == NULL)
+               ps = &loc->__mbs_mbrlen;
+       return (loc->__lc_ctype->__mbrtowc(NULL, s, n, ps, loc));
+}
 
 
-       return (mbrtowc(NULL, s, n, NULL));
+size_t
+mbrlen(const char * __restrict s, size_t n, mbstate_t * __restrict ps)
+{
+       return mbrlen_l(s, n, ps, __current_locale());
 }
 }