MySQL 5.6.14 Source Code Document
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
el.h
1
/* $NetBSD: el.h,v 1.25 2011/07/29 23:44:44 christos Exp $ */
2
3
/*-
4
* Copyright (c) 1992, 1993
5
* The Regents of the University of California. All rights reserved.
6
*
7
* This code is derived from software contributed to Berkeley by
8
* Christos Zoulas of Cornell University.
9
*
10
* Redistribution and use in source and binary forms, with or without
11
* modification, are permitted provided that the following conditions
12
* are met:
13
* 1. Redistributions of source code must retain the above copyright
14
* notice, this list of conditions and the following disclaimer.
15
* 2. Redistributions in binary form must reproduce the above copyright
16
* notice, this list of conditions and the following disclaimer in the
17
* documentation and/or other materials provided with the distribution.
18
* 3. Neither the name of the University nor the names of its contributors
19
* may be used to endorse or promote products derived from this software
20
* without specific prior written permission.
21
*
22
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32
* SUCH DAMAGE.
33
*
34
* @(#)el.h 8.1 (Berkeley) 6/4/93
35
*/
36
37
/*
38
* el.h: Internal structures.
39
*/
40
#ifndef _h_el
41
#define _h_el
42
/*
43
* Local defaults
44
*/
45
#define KSHVI
46
#define VIDEFAULT
47
#define ANCHOR
48
49
#include "histedit.h"
50
#include "chartype.h"
51
#include <stdio.h>
52
#include <sys/types.h>
53
54
#define EL_BUFSIZ ((size_t)4096)
/* Maximum line size */
55
56
#define HANDLE_SIGNALS 0x01
57
#define NO_TTY 0x02
58
#define EDIT_DISABLED 0x04
59
#define UNBUFFERED 0x08
60
#define CHARSET_IS_MULTIBYTE 0x10
61
#define IGNORE_EXTCHARS 0x20
/* Ignore characters read > 0xff */
62
#define NARROW_HISTORY 0x40
63
#define NARROW_READ 0x80
64
65
typedef
int
bool_t;
/* True or not */
66
67
typedef
unsigned
char
el_action_t;
/* Index to command array */
68
69
typedef
struct
coord_t
{
/* Position on the screen */
70
int
h;
71
int
v;
72
}
coord_t
;
73
74
typedef
struct
el_line_t
{
75
Char *buffer;
/* Input line */
76
Char *cursor;
/* Cursor position */
77
Char *lastchar;
/* Last character */
78
const
Char *limit;
/* Max position */
79
}
el_line_t
;
80
81
/*
82
* Editor state
83
*/
84
typedef
struct
el_state_t
{
85
int
inputmode;
/* What mode are we in? */
86
int
doingarg;
/* Are we getting an argument? */
87
int
argument;
/* Numeric argument */
88
int
metanext;
/* Is the next char a meta char */
89
el_action_t lastcmd;
/* Previous command */
90
el_action_t thiscmd;
/* this command */
91
Char thisch;
/* char that generated it */
92
}
el_state_t
;
93
94
/*
95
* Until we come up with something better...
96
*/
97
#define el_malloc(a) malloc(a)
98
#define el_realloc(a,b) realloc(a, b)
99
#define el_free(a) free(a)
100
101
#include "tty.h"
102
#include "prompt.h"
103
#include "keymacro.h"
104
#include "el_terminal.h"
105
#include "refresh.h"
106
#include "chared.h"
107
#include "common.h"
108
#include "search.h"
109
#include "hist.h"
110
#include "map.h"
111
#include "parse.h"
112
#include "sig.h"
113
#include "help.h"
114
#include "read.h"
115
116
struct
editline
{
117
Char *el_prog;
/* the program name */
118
FILE *el_infile;
/* Stdio stuff */
119
FILE *el_outfile;
/* Stdio stuff */
120
FILE *el_errfile;
/* Stdio stuff */
121
int
el_infd;
/* Input file descriptor */
122
int
el_outfd;
/* Output file descriptor */
123
int
el_errfd;
/* Error file descriptor */
124
int
el_flags;
/* Various flags. */
125
int
el_errno;
/* Local copy of errno */
126
coord_t
el_cursor;
/* Cursor location */
127
Char **el_display;
/* Real screen image = what is there */
128
Char **el_vdisplay;
/* Virtual screen image = what we see */
129
void
*el_data;
/* Client data */
130
el_line_t
el_line;
/* The current line information */
131
el_state_t
el_state;
/* Current editor state */
132
el_terminal_t
el_terminal;
/* Terminal dependent stuff */
133
el_tty_t
el_tty;
/* Tty dependent stuff */
134
el_refresh_t
el_refresh;
/* Refresh stuff */
135
el_prompt_t
el_prompt;
/* Prompt stuff */
136
el_prompt_t
el_rprompt;
/* Prompt stuff */
137
el_chared_t
el_chared;
/* Characted editor stuff */
138
el_map_t
el_map;
/* Key mapping stuff */
139
el_keymacro_t
el_keymacro;
/* Key binding stuff */
140
el_history_t
el_history;
/* History stuff */
141
el_search_t
el_search;
/* Search stuff */
142
el_signal_t
el_signal;
/* Signal handling stuff */
143
el_read_t
el_read;
/* Character reading stuff */
144
#ifdef WIDECHAR
145
ct_buffer_t el_scratch;
/* Scratch conversion buffer */
146
ct_buffer_t el_lgcyconv;
/* Buffer for legacy wrappers */
147
LineInfo
el_lgcylinfo;
/* Legacy LineInfo buffer */
148
#endif
149
};
150
151
protected
int
el_editmode(
EditLine
*,
int
,
const
Char **);
152
153
/* XXXMYSQL: Bug#23097 mysql can't insert korean on mysql prompt. */
154
#define el_isprint(x) ((unsigned char) (x) < 0x80 ? isprint(x) : 1)
155
156
#ifdef DEBUG
157
#define EL_ABORT(a) do { \
158
fprintf(el->el_errfile, "%s, %d: ", \
159
__FILE__, __LINE__); \
160
fprintf a; \
161
abort(); \
162
} while(
/*CONSTCOND*/
0);
163
#else
164
#define EL_ABORT(a) abort()
165
#endif
166
#endif
/* _h_el */
cmd-line-utils
libedit
el.h
Generated on Sat Nov 9 2013 01:24:39 for MySQL 5.6.14 Source Code Document by
1.8.1.2