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
 #ifndef UNICODEIO_H
 # define UNICODEIO_H
 # define UNICODEIO_H
 
 
@@ -13,14 +31,27 @@
 
 
 /* Converts the Unicode character CODE to its multibyte representation
 /* Converts the Unicode character CODE to its multibyte representation
    in the current locale and calls the CALLBACK on the resulting byte
    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,
 	    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));
 		     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
 #endif