Mercurial > hg > octave-kai > gnulib-hg
changeset 10799:90b7835bc271
Don't duplicate a function defined elsewhere in gnulib.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Wed, 12 Nov 2008 12:29:05 +0100 |
parents | 3363ce146c2f |
children | 0ed478c1380e |
files | ChangeLog lib/unicodeio.c lib/unicodeio.h modules/unicodeio |
diffstat | 4 files changed, 13 insertions(+), 44 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-11-12 Bruno Haible <bruno@clisp.org> + + * lib/unicodeio.c: Include unistr.h. + (utf8_wctomb): Remove function. + (unicode_to_mb): Use utf8_uctomb instead of utf8_wctomb. + 2008-11-12 Simon Josefsson <simon@josefsson.org> * m4/warnings.m4 (gl_WARN_INIT): Remove, suggested by Ralf
--- a/lib/unicodeio.c +++ b/lib/unicodeio.c @@ -1,6 +1,6 @@ /* Unicode character output to streams with locale dependent encoding. - Copyright (C) 2000-2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2000-2003, 2006, 2008 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,9 +17,6 @@ /* Written by Bruno Haible <haible@clisp.cons.org>. */ -/* Note: This file requires the locale_charset() function. See in - libiconv-1.8/libcharset/INTEGRATE for how to obtain it. */ - #include <config.h> /* Specification. */ @@ -40,6 +37,7 @@ #define N_(msgid) msgid #include "localcharset.h" +#include "unistr.h" /* When we pass a Unicode character to iconv(), we must pass it in a suitable encoding. The standardized Unicode encodings are @@ -53,42 +51,6 @@ So we use UTF-8. It supports characters up to \U7FFFFFFF and is unambiguously defined. */ -/* Stores the UTF-8 representation of the Unicode character wc in r[0..5]. - Returns the number of bytes stored, or -1 if wc is out of range. */ -static int -utf8_wctomb (unsigned char *r, unsigned int wc) -{ - int count; - - if (wc < 0x80) - count = 1; - else if (wc < 0x800) - count = 2; - else if (wc < 0x10000) - count = 3; - else if (wc < 0x200000) - count = 4; - else if (wc < 0x4000000) - count = 5; - else if (wc <= 0x7fffffff) - count = 6; - else - return -1; - - switch (count) - { - /* Note: code falls through cases! */ - case 6: r[5] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x4000000; - case 5: r[4] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x200000; - case 4: r[3] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x10000; - case 3: r[2] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x800; - case 2: r[1] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0xc0; - case 1: r[0] = wc; - } - - return count; -} - /* Luckily, the encoding's name is platform independent. */ #define UTF8_NAME "UTF-8" @@ -144,7 +106,7 @@ } /* Convert the character to UTF-8. */ - count = utf8_wctomb ((unsigned char *) inbuf, code); + count = utf8_uctomb ((unsigned char *) inbuf, code, sizeof (inbuf)); if (count < 0) return failure (code, N_("character out of range"), callback_arg);
--- a/lib/unicodeio.h +++ b/lib/unicodeio.h @@ -1,6 +1,6 @@ /* Unicode character output to streams with locale dependent encoding. - Copyright (C) 2000-2003, 2005 Free Software Foundation, Inc. + Copyright (C) 2000-2003, 2005, 2008 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -38,11 +38,11 @@ Upon failure, exit if exit_on_error is true, otherwise output a fallback notation. */ extern void print_unicode_char (FILE *stream, unsigned int code, - int exit_on_error); + int exit_on_error); /* Simple success callback that outputs the converted string. The STREAM is passed as callback_arg. */ extern long fwrite_success_callback (const char *buf, size_t buflen, - void *callback_arg); + void *callback_arg); #endif