148edc7cfSGordon Ross /* 248edc7cfSGordon Ross * This file and its contents are supplied under the terms of the 348edc7cfSGordon Ross * Common Development and Distribution License ("CDDL"), version 1.0. 448edc7cfSGordon Ross * You may only use this file in accordance with the terms of version 548edc7cfSGordon Ross * 1.0 of the CDDL. 648edc7cfSGordon Ross * 748edc7cfSGordon Ross * A full copy of the text of the CDDL should have accompanied this 848edc7cfSGordon Ross * source. A copy is of the CDDL is also available via the Internet 948edc7cfSGordon Ross * at http://www.illumos.org/license/CDDL. 1048edc7cfSGordon Ross */ 1148edc7cfSGordon Ross 1248edc7cfSGordon Ross /* 1348edc7cfSGordon Ross * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 1448edc7cfSGordon Ross */ 1548edc7cfSGordon Ross 1648edc7cfSGordon Ross #ifndef _CHARMAP_H 1748edc7cfSGordon Ross #define _CHARMAP_H 1848edc7cfSGordon Ross 1948edc7cfSGordon Ross /* 2048edc7cfSGordon Ross * CHARMAP file handling for iconv. 2148edc7cfSGordon Ross */ 2248edc7cfSGordon Ross 2348edc7cfSGordon Ross /* Common header files. */ 2448edc7cfSGordon Ross #include <stdio.h> 2548edc7cfSGordon Ross #include <stdlib.h> 2648edc7cfSGordon Ross #include <stdarg.h> 2748edc7cfSGordon Ross #include <sys/types.h> 2848edc7cfSGordon Ross #include <libintl.h> 2948edc7cfSGordon Ross 3048edc7cfSGordon Ross enum cmap_pass { 3148edc7cfSGordon Ross CMAP_PASS_FROM, 3248edc7cfSGordon Ross CMAP_PASS_TO 3348edc7cfSGordon Ross }; 3448edc7cfSGordon Ross 3548edc7cfSGordon Ross extern int com_char; 3648edc7cfSGordon Ross extern int esc_char; 3748edc7cfSGordon Ross extern int mb_cur_max; 3848edc7cfSGordon Ross extern int mb_cur_min; 3948edc7cfSGordon Ross extern int last_kw; 4048edc7cfSGordon Ross extern int verbose; 4148edc7cfSGordon Ross extern int yydebug; 4248edc7cfSGordon Ross extern int lineno; 4348edc7cfSGordon Ross extern int debug; 4448edc7cfSGordon Ross extern int warnings; 4548edc7cfSGordon Ross extern int cflag; 4648edc7cfSGordon Ross extern int sflag; 4748edc7cfSGordon Ross 4848edc7cfSGordon Ross int yyparse(void); 49*1a90c98dSToomas Soome int yyerror(const char *) __NORETURN; 5048edc7cfSGordon Ross void errf(const char *, ...); 5148edc7cfSGordon Ross void warn(const char *, ...); 5248edc7cfSGordon Ross 5348edc7cfSGordon Ross void reset_scanner(const char *); 5448edc7cfSGordon Ross void scan_to_eol(void); 5548edc7cfSGordon Ross 5648edc7cfSGordon Ross /* charmap.c - CHARMAP handling */ 5748edc7cfSGordon Ross void init_charmap(void); 5848edc7cfSGordon Ross void add_charmap(char *, char *); 5948edc7cfSGordon Ross void add_charmap_posix(void); 6048edc7cfSGordon Ross void add_charmap_range(char *, char *, char *); 6148edc7cfSGordon Ross 6248edc7cfSGordon Ross void charmap_init(char *to, char *fr); 6348edc7cfSGordon Ross size_t cm_iconv(const char **iptr, size_t *ileft, char **optr, size_t *oleft); 6448edc7cfSGordon Ross void charmap_dump(void); 6548edc7cfSGordon Ross 6648edc7cfSGordon Ross #define _(x) gettext(x) 6748edc7cfSGordon Ross 6848edc7cfSGordon Ross #endif /* _CHARMAP_H */ 69