Mercurial > octave
diff liboctave/wrappers/uniconv-wrappers.c @ 23123:c6ca5fe1505c
use wrappers for uniconv functions; style fixes for unicode conv fcns
* boostrap.conf (gnulib_modules): Include localcharset,
uniconv/u8-conv-from-enc, and uniconv/u8-conv-to-enc in the list.
Remove libunistring from the list.
* liboctave/wrappers/localcharset-wrapper.c,
liboctave/wrappers/localcharset-wrapper.h,
liboctave/wrappers/uniconv-wrappers.c,
liboctave/wrappers/uniconv-wrappers.h: New files.
* liboctave/wrappers/module.mk: Update.
* strfns.cc: Include uniconv-wrappers.h, not uniconv.
Assume uniconv functions are available (provided by gnulib).
(F__native2unicode__, F__unicode2native__): Use wrapper functions.
Simplify.
(F__unicode2native__): Return uint8 array.
* native2unicode.m, unicode2native.m: Style fixes.
Update tests. Use assert directly, not testif.
Use error <> ..., not fail.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 31 Jan 2017 13:51:42 -0500 |
parents | |
children | 194eb4bd202b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/liboctave/wrappers/uniconv-wrappers.c Tue Jan 31 13:51:42 2017 -0500 @@ -0,0 +1,50 @@ +/* + +Copyright (C) 2017 John W. Eaton + +This file is part of Octave. + +Octave is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. + +Octave is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Octave; see the file COPYING. If not, see +<http://www.gnu.org/licenses/>. + +*/ + +// The conversion functions are provided by gnulib. We don't include +// gnulib headers directly in Octave's C++ source files to avoid +// problems that may be caused by the way that gnulib overrides standard +// library functions. + +#if defined (HAVE_CONFIG_H) +# include "config.h" +#endif + +#include "uniconv.h" + +#include "uniconv-wrappers.h" + +uint8_t * +octave_u8_conv_from_encoding (const char *fromcode, const char *src, + size_t srclen, size_t *lengthp) +{ + return u8_conv_from_encoding (fromcode, iconveh_question_mark, + src, srclen, NULL, NULL, lengthp); +} + +extern char * +octave_u8_conv_to_encoding (const char *tocode, const uint8_t *src, + size_t srclen, size_t *lengthp) +{ + return u8_conv_to_encoding (tocode, iconveh_question_mark, + src, srclen, NULL, NULL, lengthp); +}