1 /* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy is of the CDDL is also available via the Internet 9 * at http://www.illumos.org/license/CDDL. 10 */ 11 12 /* 13 * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 14 */ 15 16 /* 17 * CHARMAP file handling for iconv. 18 */ 19 20 /* Common header files. */ 21 #include <stdio.h> 22 #include <stdlib.h> 23 #include <stdarg.h> 24 #include <sys/types.h> 25 #include <libintl.h> 26 27 enum cmap_pass { 28 CMAP_PASS_FROM, 29 CMAP_PASS_TO }; 30 31 extern int com_char; 32 extern int esc_char; 33 extern int mb_cur_max; 34 extern int mb_cur_min; 35 extern int last_kw; 36 extern int verbose; 37 extern int yydebug; 38 extern int lineno; 39 extern int debug; 40 extern int warnings; 41 extern int cflag; 42 extern int sflag; 43 44 int yyparse(void); 45 void yyerror(const char *); 46 void errf(const char *, ...); 47 void warn(const char *, ...); 48 49 void reset_scanner(const char *); 50 void scan_to_eol(void); 51 52 /* charmap.c - CHARMAP handling */ 53 void init_charmap(void); 54 void add_charmap(char *, char *); 55 void add_charmap_posix(void); 56 void add_charmap_range(char *, char *, char *); 57 58 void charmap_init(char *to, char *fr); 59 size_t cm_iconv(const char **iptr, size_t *ileft, char **optr, size_t *oleft); 60 void charmap_dump(void); 61 62 #define _(x) gettext(x) 63 #define INTERR errf(_("internal fault (%s:%d)"), __FILE__, __LINE__)