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