Browse Source

(unicode_to_mb): Return int, not void. New arg for failure callback.
(print_unicode_success, print_unicode_failure): New decls.
(print_unicode_char): Return int, not void.

Paul Eggert 23 years ago
parent
commit
06e4c77310
1 changed files with 37 additions and 6 deletions
  1. 37 6
      lib/unicodeio.h

+ 37 - 6
lib/unicodeio.h

@@ -1,3 +1,21 @@
+/* Unicode character output to streams with locale dependent encoding.
+
+   Copyright (C) 2000, 2001 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
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program 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 this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
 #ifndef UNICODEIO_H
 # define UNICODEIO_H
 
@@ -13,14 +31,27 @@
 
 /* Converts the Unicode character CODE to its multibyte representation
    in the current locale and calls the CALLBACK on the resulting byte
-   sequence.  */
-extern void unicode_to_mb
+   sequence.  If an error occurs, invokes ERROR_CALLBACK instead,
+   passing it CODE with errno set appropriately.  Returns whatever the
+   callback returns.  */
+extern int unicode_to_mb
 	    PARAMS ((unsigned int code,
-		     void (*callback) PARAMS ((const char *buf, size_t buflen,
-					       void *callback_arg)),
+		     int (*callback) PARAMS ((const char *buf, size_t buflen,
+					      void *callback_arg)),
+		     int (*error_callback) PARAMS ((unsigned int code,
+						    void * callback_arg)),
 		     void *callback_arg));
 
-/* Outputs the Unicode character CODE to the output stream STREAM.  */
-extern void print_unicode_char PARAMS((FILE *stream, unsigned int code));
+/* Success callback that outputs the conversion of the character.  */
+extern int print_unicode_success PARAMS((const char *buf, size_t buflen,
+					 void *callback_arg));
+
+/* Failure callback that outputs an ASCII representation.  */
+extern int print_unicode_failure PARAMS((unsigned int code,
+					 void *callback_arg));
+
+/* Outputs the Unicode character CODE to the output stream STREAM.
+   Returns -1 (setting errno) if unsuccessful.  */
+extern int print_unicode_char PARAMS((FILE *stream, unsigned int code));
 
 #endif