1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
|
/*
* $Id: edef.h 900 2008-01-05 01:13:26Z hubert@u.washington.edu $
*
* ========================================================================
* Copyright 2006 University of Washington
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* ========================================================================
*
* Program: Global definitions and initializations
*/
/* EDEF: Global variable definitions for
MicroEMACS 3.2
written by Dave G. Conroy
modified by Steve Wilhite, George Jones
greatly modified by Daniel Lawrence
*/
#ifndef EDEF_H
#define EDEF_H
#ifdef maindef
/* for MAIN.C */
/* initialized global definitions */
int direction = 0; /* direction of writing */
int fillcol = 72; /* Current fill column */
int userfillcol = -1; /* Fillcol set from cmd line */
UCS pat[NPAT]; /* Search pattern */
UCS rpat[NPAT]; /* Replace pattern */
int sgarbk = TRUE; /* TRUE if keyhelp garbaged */
int sup_keyhelp = FALSE; /* TRUE if keyhelp is suppressed*/
int mline_open = FALSE; /* TRUE if message line is open */
int ComposerTopLine = 2; /* TRUE if message line is open */
int ComposerEditing = FALSE; /* TRUE if editing the headers */
char modecode[] = "WCSEVO"; /* letters to represent modes */
long gmode = MDWRAP|MDREPLACE; /* global editor mode */
int sgarbf = TRUE; /* TRUE if screen is garbage */
int mpresf = FALSE; /* TRUE if message in last line */
int clexec = FALSE; /* command line execution flag */
char *alt_speller = NULL; /* alt spell checking command */
int preserve_start_stop = FALSE; /* TRUE if pass ^S/^Q to term */
UCS *glo_quote_str = NULL; /* points to quote string if set*/
char *glo_quote_str_orig = NULL;
int use_system_translation = FALSE;
char *display_character_set = NULL;
char *keyboard_character_set = NULL;
UCS *glo_wordseps = NULL; /* points to word separators if set */
char *glo_wordseps_orig = NULL;
#ifdef _WINDOWS
char **dictionary = NULL; /* speller dictionary */
int chosen_dict = -1; /* the dictionary chosen */
#endif /* _WINDOWS */
/* uninitialized global definitions */
int currow; /* Cursor row */
int curcol; /* Cursor column */
int thisflag; /* Flags, this command */
int lastflag; /* Flags, last command */
int curgoal; /* Goal for C-P, C-N */
char opertree[NLINE+1]; /* operate within this tree */
char browse_dir[NLINE+1]; /* directory of last browse (cwd) */
WINDOW *curwp; /* Current window */
BUFFER *curbp; /* Current buffer */
WINDOW *wheadp; /* Head of list of windows */
BUFFER *bheadp; /* Head of list of buffers */
BUFFER *blistp; /* Buffer for C-X C-B */
BUFFER *bfind(char *, int, int); /* Lookup a buffer by name */
LINE *lalloc(int used); /* Allocate a line */
int km_popped; /* menu popped up */
#if defined(HAS_TERMCAP) || defined(HAS_TERMINFO) || defined(VMS)
KBESC_T *kbesc; /* keyboard esc sequence trie */
#endif /* HAS_TERMCAP/HAS_TERMINFO/VMS */
void *input_cs; /* passed to mbtow() via kbseq() */
#else /* maindef */
/* for all the other .C files */
/* initialized global external declarations */
extern int direction;
extern int fillcol; /* Fill column */
extern int userfillcol; /* Fillcol set from cmd line */
extern UCS pat[]; /* Search pattern */
extern UCS rpat[]; /* Replace pattern */
extern int sgarbk;
extern int sup_keyhelp;
extern int mline_open; /* Message line is open */
extern int ComposerTopLine; /* TRUE if message line is open */
extern int ComposerEditing; /* TRUE if message line is open */
extern char modecode[]; /* letters to represent modes */
extern KEYTAB keytab[]; /* key bind to functions table */
extern KEYTAB pkeytab[]; /* pico's function table */
extern long gmode; /* global editor mode */
extern int sgarbf; /* State of screen unknown */
extern int mpresf; /* Stuff in message line */
extern int clexec; /* command line execution flag */
extern char *alt_speller; /* alt spell checking command */
extern int preserve_start_stop; /* TRUE if pass ^S/^Q to term */
extern UCS *glo_quote_str; /* points to quote string if set*/
extern char *glo_quote_str_orig;
extern int use_system_translation;
extern char *display_character_set;
extern char *keyboard_character_set;
extern UCS *glo_wordseps;
extern char *glo_wordseps_orig;
#ifdef _WINDOWS
extern char **dictionary;
extern int chosen_dict;
#endif /* _WINDOWS */
/* initialized global external declarations */
extern int currow; /* Cursor row */
extern int curcol; /* Cursor column */
extern int thisflag; /* Flags, this command */
extern int lastflag; /* Flags, last command */
extern int curgoal; /* Goal for C-P, C-N */
extern char opertree[NLINE+1]; /* operate within this tree */
extern char browse_dir[NLINE+1]; /* directory of last browse (cwd) */
extern WINDOW *curwp; /* Current window */
extern BUFFER *curbp; /* Current buffer */
extern WINDOW *wheadp; /* Head of list of windows */
extern BUFFER *bheadp; /* Head of list of buffers */
extern BUFFER *blistp; /* Buffer for C-X C-B */
extern BUFFER *bfind(char *, int, int); /* Lookup a buffer by name */
extern LINE *lalloc(int used); /* Allocate a line */
extern int km_popped; /* menu popped up */
/*
* This is a weird one. It has to be defined differently for pico and for
* pine. It seems to need to be defined at startup as opposed to set later.
* It doesn't work to set it later in pico. When pico is used with a
* screen reader it seems to jump to the cursor every time through the
* mswin_charavail() loop in GetKey, and the timeout is this long. So we
* just need to set it higher than we do in pine. If we understood this
* we would probably see that we don't need any timer at all in pico, but
* we don't remember why it is here so we'd better leave it.
*
* This is defined in .../pico/main.c and in .../alpine/alpine.c.
*/
extern int my_timer_period; /* here so can be set */
#ifdef MOUSE
extern MENUITEM menuitems[]; /* key labels and functions */
extern MENUITEM *mfunc; /* single generic function */
extern mousehandler_t mtrack; /* func used to track the mouse */
#endif /* MOUSE */
#if defined(HAS_TERMCAP) || defined(HAS_TERMINFO) || defined(VMS)
extern KBESC_T *kbesc; /* keyboard esc sequence trie */
#endif /* HAS_TERMCAP/HAS_TERMINFO/VMS */
extern void *input_cs; /* passed to mbtow() via kbseq() */
#endif /* maindef */
/* terminal table defined only in TERM.C */
#ifndef termdef
#if defined(VMS) && !defined(__ALPHA)
globalref
#else
extern
#endif /* VMS */
TERM term; /* Terminal information. */
#endif /* termdef */
#endif /* EDEF_H */
|