11a30de1fSmrg/* 21a30de1fSmrg 31a30de1fSmrgCopyright 1988, 1998 The Open Group 41a30de1fSmrg 51a30de1fSmrgPermission to use, copy, modify, distribute, and sell this software and its 61a30de1fSmrgdocumentation for any purpose is hereby granted without fee, provided that 71a30de1fSmrgthe above copyright notice appear in all copies and that both that 81a30de1fSmrgcopyright notice and this permission notice appear in supporting 91a30de1fSmrgdocumentation. 101a30de1fSmrg 111a30de1fSmrgThe above copyright notice and this permission notice shall be included 121a30de1fSmrgin all copies or substantial portions of the Software. 131a30de1fSmrg 141a30de1fSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 151a30de1fSmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 161a30de1fSmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 171a30de1fSmrgIN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR 181a30de1fSmrgOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 191a30de1fSmrgARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 201a30de1fSmrgOTHER DEALINGS IN THE SOFTWARE. 211a30de1fSmrg 221a30de1fSmrgExcept as contained in this notice, the name of The Open Group shall 231a30de1fSmrgnot be used in advertising or otherwise to promote the sale, use or 241a30de1fSmrgother dealings in this Software without prior written authorization 251a30de1fSmrgfrom The Open Group. 261a30de1fSmrg 271a30de1fSmrg*/ 28a733a5bfSmrg 29a733a5bfSmrg#ifdef HAVE_CONFIG_H 30a733a5bfSmrg# include "config.h" 31a733a5bfSmrg#endif 321a30de1fSmrg 331a30de1fSmrgextern const char *ProgramName; 341a30de1fSmrgextern Display *dpy; 351a30de1fSmrgextern int min_keycode, max_keycode; 361a30de1fSmrgextern Bool verbose; 371a30de1fSmrgextern Bool dontExecute; 381a30de1fSmrgextern const char *inputFilename; 391a30de1fSmrgextern int lineno; 401a30de1fSmrgextern int parse_errors; 411a30de1fSmrg 421a30de1fSmrgextern void initialize_map(void); 431a30de1fSmrgextern void process_file(const char *filename); 44a733a5bfSmrgextern void process_line(const char *buffer); 451a30de1fSmrgextern void handle_line(char *line, int len); 461a30de1fSmrgextern void print_work_queue(void); 471a30de1fSmrgextern int execute_work_queue(void); 481a30de1fSmrgextern void print_modifier_map(void); 491a30de1fSmrgextern void print_key_table(Bool exprs); 501a30de1fSmrgextern void print_pointer_map(void); 511a30de1fSmrg 521a30de1fSmrgextern int UpdateModifierMapping(XModifierKeymap *map); 531a30de1fSmrgextern int AddModifier(XModifierKeymap **mapp, KeyCode keycode, int modifier); 541a30de1fSmrgextern int RemoveModifier(XModifierKeymap **mapp, KeyCode keycode, 551a30de1fSmrg int modifier); 561a30de1fSmrgextern int ClearModifier(XModifierKeymap **mapp, int modifier); 571a30de1fSmrgextern void PrintModifierMapping(XModifierKeymap *map, FILE *fp); 581a30de1fSmrgextern void PrintKeyTable(Bool exprs, FILE *fp); 591a30de1fSmrgextern void PrintPointerMap(FILE *fp); 601a30de1fSmrgextern int SetPointerMap(unsigned char *map, int n); 611a30de1fSmrg 62a733a5bfSmrgextern void _X_NORETURN Exit(int status); 63