infomap.h revision 1.1.1.1
1/* $NetBSD: infomap.h,v 1.1.1.1 2016/01/14 00:11:29 christos Exp $ */ 2 3/* infomap.h -- description of a keymap in Info and related functions. 4 Id: infomap.h,v 1.3 2004/04/11 17:56:46 karl Exp 5 6 Copyright (C) 1993, 2001, 2004 Free Software Foundation, Inc. 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 2, or (at your option) 11 any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program; if not, write to the Free Software 20 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 21 22 Written by Brian Fox (bfox@ai.mit.edu). */ 23 24#ifndef INFOMAP_H 25#define INFOMAP_H 26 27#include "info.h" 28 29#define ESC '\033' 30#define DEL '\177' 31#define TAB '\011' 32#define RET '\r' 33#define LFD '\n' 34#define SPC ' ' 35 36#define meta_character_threshold (DEL + 1) 37#define control_character_threshold (SPC) 38 39#define meta_character_bit 0x80 40#define control_character_bit 0x40 41 42#define Meta_p(c) (((c) > meta_character_threshold)) 43#define Control_p(c) ((c) < control_character_threshold) 44 45#define Meta(c) ((c) | (meta_character_bit)) 46#define UnMeta(c) ((c) & (~meta_character_bit)) 47#define Control(c) ((toupper (c)) & (~control_character_bit)) 48#define UnControl(c) (tolower ((c) | control_character_bit)) 49 50/* A keymap contains one entry for each key in the ASCII set. 51 Each entry consists of a type and a pointer. 52 FUNCTION is the address of a function to run, or the 53 address of a keymap to indirect through. 54 TYPE says which kind of thing FUNCTION is. */ 55typedef struct keymap_entry 56{ 57 char type; 58 InfoCommand *function; 59} KEYMAP_ENTRY; 60 61typedef KEYMAP_ENTRY *Keymap; 62 63/* The values that TYPE can have in a keymap entry. */ 64#define ISFUNC 0 65#define ISKMAP 1 66 67extern Keymap info_keymap; 68extern Keymap echo_area_keymap; 69 70/* Return a new keymap which has all the uppercase letters mapped to run 71 the function info_do_lowercase_version (). */ 72extern Keymap keymap_make_keymap (void); 73 74/* Return a new keymap which is a copy of MAP. */ 75extern Keymap keymap_copy_keymap (Keymap map, Keymap rootmap, 76 Keymap newroot); 77 78/* Free MAP and it's descendents. */ 79extern void keymap_discard_keymap (Keymap map, Keymap rootmap); 80 81/* Initialize the info keymaps. */ 82extern void initialize_info_keymaps (void); 83 84#endif /* not INFOMAP_H */ 85