1 /* # skkinput (Simple Kana-Kanji Input)
2  *
3  * This file is part of skkinput.
4  * Copyright (C) 2002
5  * Takashi SAKAMOTO (PXG01715@nifty.ne.jp)
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2, or (at your option)
10  * any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with skkinput; see the file COPYING.  If not, write to
19  * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
20  */
21 #if !defined (lispfunc_h)
22 #define	lispfunc_h
23 
24 #include "lispmgr.h"
25 #include "Char.h"
26 #include "lentity.h"
27 #include "lbind.h"
28 #include "kfile.h"
29 #include "lispyevent.h"
30 
31 struct tagTLispBind ;
32 struct tagTLispEntity ;
33 struct tagTLispManager ;
34 
35 /*	Constants */
36 enum {
37 	/* �ǿ��Ǥ��뤳�ȡ�*/
38 	LISPMGR_SIZE_SYMBOL_HASH	= 127,
39 	LISPMGR_SIZE_INTEGER_HASH	= 13,
40 	LISPMGR_SIZE_SUBR_HASH		= 23,
41 	MAX_NEST_COUNT				= 128,
42 } ;
43 
44 enum {
45 	LISPMGR_INDEX_NIL	= 0,
46 	LISPMGR_INDEX_T,
47 	LISPMGR_INDEX_MINUS,
48 	LISPMGR_INDEX_LAMBDA,
49 	LISPMGR_INDEX_MACRO,
50 	LISPMGR_INDEX_OPTIONAL,
51 	LISPMGR_INDEX_REST,
52 	LISPMGR_INDEX_KEYMAP,
53 	LISPMGR_INDEX_ERROR,
54 	LISPMGR_INDEX_EXIT,
55 	LISPMGR_INDEX_QUIT,
56 	LISPMGR_INDEX_QUIT_FLAG,
57 	LISPMGR_INDEX_INHIBIT_QUIT,
58 	LISPMGR_INDEX_FEATURES,
59 	LISPMGR_INDEX_INTERACTIVE,
60 	LISPMGR_INDEX_THIS_COMMAND,
61 	LISPMGR_INDEX_LAST_COMMAND,
62 	LISPMGR_INDEX_UNREAD_COMMAND_EVENTS,
63 	LISPMGR_INDEX_PRE_COMMAND_HOOK,
64 	LISPMGR_INDEX_POST_COMMAND_HOOK,
65  	LISPMGR_INDEX_LAST_COMMAND_CHAR,
66 	LISPMGR_INDEX_LAST_COMMAND_EVENT,
67 	LISPMGR_INDEX_UNREAD_COMMAND_CHAR,
68 	LISPMGR_INDEX_GLOBAL_MAP,
69 	LISPMGR_INDEX_MINIBUFFER_LOCAL_MAP,
70 	LISPMGR_INDEX_MINOR_MODE_MAP_ALIST,
71 	LISPMGR_INDEX_WRONG_TYPE_ARGUMENT,
72 	LISPMGR_INDEX_BUFFER_FILE_NAME,
73 	LISPMGR_INDEX_MODE_LINE_FORMAT,
74 	LISPMGR_INDEX_LOAD_PATH,
75 	LISPMGR_INDEX_KILL_RING,
76 	LISPMGR_INDEX_KILL_REGION,
77 	LISPMGR_INDEX_KILL_RING_YANK_POINTER,
78 	LISPMGR_INDEX_YANK,
79 
80 	LISPMGR_INDEX_CODING_SYSTEM_FOR_READ,
81 	LISPMGR_INDEX_CODING_SYSTEM_FOR_WRITE,
82 	LISPMGR_INDEX_EUC_JAPAN,
83 	LISPMGR_INDEX_EUC_JP,
84 	LISPMGR_INDEX_SHIFT_JIS,
85 	LISPMGR_INDEX_JAPANESE_SHIFT_JIS,
86 	LISPMGR_INDEX_SJIS,
87 	LISPMGR_INDEX_JUNET,
88 	LISPMGR_INDEX_ISO2022JP,
89 	LISPMGR_INDEX_ISO2022JP2,
90 	LISPMGR_INDEX_CTEXT,
91 	LISPMGR_INDEX_X_CTEXT,
92 	LISPMGR_INDEX_COMPOUND_TEXT,
93 
94 	LISPMGR_INDEX_SKK_SERVER_HOST,
95 	LISPMGR_INDEX_SKK_SERVER_LIST,
96 	LISPMGR_INDEX_SKK_PORTNUM,
97 	LISPMGR_INDEX_SKK_PROCESS_OKURI_EARLY,
98 	LISPMGR_INDEX_J_HENKAN_KEY,
99 	LISPMGR_INDEX_J_SEARCH_KEY,
100 	LISPMGR_INDEX_J_OKURI_ARI,
101 	LISPMGR_INDEX_J_HENKAN_OKURIGANA,
102 	LISPMGR_INDEX_J_HENKAN_OKURI_STRICTLY,
103 
104 	LISPMGR_INDEX_SKK_SERVERS_LIST,
105 
106 	LISPMGR_SIZE_RESERVED,
107 } ;
108 
109 /*	Structures */
110 /*	���Фΰ�̣�ϼ����̤ꡣ
111  *		m_iMarker
112  *			GC �˻Ȥ��ޡ���
113  *		m_apSymbolListTop
114  *			Intern ����Ƥ��륷��ܥ��������Ƥ��롣
115  *		m_apIntegerListTop
116  *			Ʊ�����ͤ� Integer �� eq �Ǥ���褦�� Integer Entity �����
117  *			���Ƥ��롣
118  *		m_apSubrListTop
119  *			���֥롼�����δ�����
120  *		m_pOtherEntityListTop
121  *			Ʊ�������ݾڤ���ʤ��Ƥ⤫�ޤ�ʤ� Entity �Ϥ��Υꥹ�Ȥˤ�
122  *			�ʤ���Ƥ��롣
123  *		m_apEntReserved
124  *			���ˤ˻��Ȥ���� Symbol ���餫���� Cache ���Ƥ��롣t ��
125  *			nil �ʤɡ�Intern ����Ƥ��롣
126  *		m_pVoid
127  *			���������Ƥ��Ƥ��ʤ����� (void) �λ��˳�����Ƥ����̤�
128  *			�͡�
129  *		m_vbufLocalSymbol
130  *			�Хåե��������˺��줿���˼�ưŪ���Ѱդ����������ѿ�
131  *			��¸�ߤ����硢�����ѿ��Ĥ��� SYMBOL �����������롣�����
132  *			�� void �Ǥ��롣(�ǽ�� default-value �����Τޤ޻��Ȥ����
133  *			���֤Ǥ��뤬���������ͤ�����)
134  *			make-variable-buffer-local �������ɲä���롣
135  */
136 struct tagTLispManager {
137 	int						m_iMarker ;
138 	struct tagTLispEntity*	m_apSymbolListTop  [LISPMGR_SIZE_SYMBOL_HASH] ;
139 	struct tagTLispEntity*	m_apIntegerListTop [LISPMGR_SIZE_INTEGER_HASH] ;
140 	struct tagTLispEntity*	m_apSubrListTop    [LISPMGR_SIZE_SUBR_HASH] ;
141 	struct tagTLispEntity*	m_pEntListNamedMutex ;
142 	struct tagTLispEntity*	m_pEntListNoNameMutex ;
143 	struct tagTLispEntity*	m_pEntMiscListTop ;
144 	struct tagTLispEntity*	m_apEntReserved    [LISPMGR_SIZE_RESERVED] ;
145 	struct tagTLispEntity*	m_pEntVoid ;
146 	struct tagTLispEntity*	m_pEntEmpty ;
147 	TVarbuffer				m_vbufLocalSymbol ;
148 }	;
149 
150 struct tagTLispNumber {
151 	Boolean	m_fFloatp ;
152 	union {
153 		float	m_fFloat ;
154 		long	m_lLong ;
155 	}		m_Value ;
156 } ;
157 
158 typedef struct tagTLispNumber	TLispNumber ;
159 
160 /*	lispmgr.kc */
161 Boolean	lispMgr_SetSymbolFunctionValue	(TLispManager*, TLispEntity*, TLispEntity*) ;
162 Boolean	lispMgr_GetSymbolFunctionValue	(TLispManager*, TLispEntity*, TLispEntity** const) ;
163 Boolean	lispMgr_SetSymbolFunctionValueWithName	(TLispManager*, const Char*, int, TLispEntity*) ;
164 Boolean	lispMgr_GetSymbolFunctionValueWithName	(TLispManager*, const Char*, int, TLispEntity** const) ;
165 Boolean	lispMgr_SetSymbolValue			(TLispManager*, TLispEntity*, TLispEntity*) ;
166 Boolean	lispMgr_SetSymbolValueWithName	(TLispManager*, const Char*, int, TLispEntity*) ;
167 Boolean	lispMgr_GetSymbolValue			(TLispManager*, TLispEntity*, TLispEntity** const) ;
168 Boolean	lispMgr_GetSymbolValueWithName	(TLispManager*, const Char*, int, TLispEntity** const) ;
169 Boolean	lispMgr_Allocate				(TLispManager*, size_t, void*) ;
170 void	lispMgr_Deallocate				(TLispManager*, void*) ;
171 Boolean	lispMgr_AllocateEntity			(TLispManager*, size_t, TLispEntity** const) ;
172 Boolean	lispMgr_CollectGarbage			(TLispManager*) ;
173 Boolean	lispMgr_RegisterMisc			(TLispManager*, TLispEntity*) ;
174 Boolean	lispMgr_UnregisterMisc			(TLispManager*, TLispEntity*) ;
175 void	lispMgr_DestroyEntity			(TLispManager*, TLispEntity*) ;
176 
177 /*	lispsymbol.c */
178 Boolean	lispMgr_CreateSymbol			(TLispManager*, const Char*, int, TLispEntity** const) ;
179 Boolean	lispMgr_CreateSymbolA			(TLispManager*, const char*, int, TLispEntity** const) ;
180 Boolean	lispMgr_InternSymbol			(TLispManager*, const Char*, int, TLispEntity** const) ;
181 Boolean	lispMgr_InternSymbolA			(TLispManager*, const char*, int, TLispEntity** const) ;
182 Boolean	lispMgr_CollectSymbolGarbage	(TLispManager*) ;
183 Boolean	lispMgr_SearchSymbol			(TLispManager*, const Char*, int, TLispEntity** const) ;
184 Boolean	lispMgr_SearchSymbolA			(TLispManager*, const char*, int, TLispEntity** const) ;
185 Boolean	lispMgr_UnregisterSymbol		(TLispManager*, TLispEntity*) ;
186 Boolean	lispMgr_SymbolRequireEvalp		(TLispManager*, TLispEntity*) ;
187 
188 /*	lentity.c */
189 Boolean	lispEntity_Memq					(TLispManager*, TLispEntity*, TLispEntity*, TLispEntity**) ;
190 Boolean	lispEntity_Member				(TLispManager*, TLispEntity*, TLispEntity*, TLispEntity**) ;
191 Boolean	lispEntity_Rassoc				(TLispManager*, TLispEntity*, TLispEntity*, TLispEntity**) ;
192 Boolean	lispEntity_Nconc 				(TLispManager*, TLispEntity*, TLispEntity**) ;
193 Boolean	lispEntity_Equal				(TLispManager*, TLispEntity*, TLispEntity*) ;
194 Boolean	lispEntity_GetNumberValueOrMarkerPosition	(TLispManager*, TLispEntity*, TLispNumber*) ;
195 Boolean	lispEntity_GetLength			(TLispManager*, TLispEntity*, int*) ;
196 Boolean	lispEntity_Format				(TLispManager*, const Char*, int, TLispEntity*, TLispEntity**) ;
197 Boolean	lispEntity_FormatA				(TLispManager*, const char*, int, TLispEntity*, TLispEntity**) ;
198 Boolean	lispEntity_PrincStr				(TLispManager*, TLispEntity*, TVarbuffer*) ;
199 Boolean	lispEntity_Print				(TLispManager*, TLispEntity*) ;
200 Boolean	lispEntity_Copy					(TLispManager*, TLispEntity*, TLispEntity**) ;
201 
202 /*	lispstring.c	*/
203 Boolean	lispMgr_CreateString			(TLispManager*, const Char*, int, TLispEntity** const) ;
204 Boolean	lispMgr_StringToCharList		(TLispManager*, TLispEntity*, TLispEntity** const) ;
205 Boolean	lispMgr_Concat					(TLispManager*, TLispEntity*, TLispEntity*, TLispEntity** const) ;
206 Boolean	lispMgr_Substring				(TLispManager*, TLispEntity*, long, long, TLispEntity** const) ;
207 Boolean	lispEntity_Upcase				(TLispManager*, TLispEntity*, TLispEntity** const) ;
208 Boolean	lispEntity_Downcase				(TLispManager*, TLispEntity*, TLispEntity** const) ;
209 
210 /*	lisplist.c	*/
211 Boolean	lispMgr_CreateConscell			(TLispManager*, TLispEntity*, TLispEntity*, TLispEntity** const) ;
212 Boolean	lispMgr_CreateList				(TLispManager*, TLispEntity** const, int, TLispEntity** const) ;
213 Boolean	lispMgr_CreateTime				(TLispManager*, time_t, TLispEntity** const) ;
214 Boolean	lispEntity_PlistGet				(TLispManager*, TLispEntity*, TLispEntity*, TLispEntity** const) ;
215 Boolean	lispEntity_PlistPut				(TLispManager*, TLispEntity*, TLispEntity*, TLispEntity*, TLispEntity** const) ;
216 Boolean	lispEntity_CopyList				(TLispManager*, TLispEntity*, TLispEntity** const) ;
217 Boolean	lispEntity_Push2List			(TLispManager*, TLispConscell*, TLispEntity*) ;
218 
219 /*	lnum.c	*/
220 Boolean	lispMgr_CreateInteger			(TLispManager*, long, TLispEntity** const) ;
221 Boolean	lispMgr_CreateFloat				(TLispManager*, float, TLispEntity** const) ;
222 Boolean	lispMgr_CollectIntegerGarbage	(TLispManager*) ;
223 Boolean	lispMgr_MathGreaterThan			(TLispManager*, TLispEntity*, TLispEntity*, Boolean*) ;
224 Boolean	lispMgr_MathGreaterEqual		(TLispManager*, TLispEntity*, TLispEntity*, Boolean*) ;
225 Boolean	lispMgr_MathLessThan			(TLispManager*, TLispEntity*, TLispEntity*, Boolean*) ;
226 Boolean	lispMgr_MathLessEqual			(TLispManager*, TLispEntity*, TLispEntity*, Boolean*) ;
227 Boolean	lispMgr_MathEqual				(TLispManager*, TLispEntity*, TLispEntity*, Boolean*) ;
228 
229 /*	lvector.c	*/
230 Boolean	lispMgr_CreateVector			(TLispManager*, TLispEntity** const, int, TLispEntity** const) ;
231 Boolean	lispMgr_CreateVectorFill		(TLispManager*, TLispEntity*, int, TLispEntity** const) ;
232 void	lispMgr_DestroyVector			(TLispManager*, TLispEntity*) ;
233 Boolean	lispMgr_Vconcat					(TLispManager*, TLispEntity*, TLispEntity** const) ;
234 
235 /*	lsubr.c */
236 Boolean	lispMgr_CreateSubr				(TLispManager*, struct tagLMCMDINFO const*, TLispEntity** const) ;
237 Boolean	lispSubr_GetName				(TLispManager*, TLispEntity*, const Char**) ;
238 
239 /*	parser.kc */
240 TLispEntity*	lispMgr_ParseString		(TLispManager*, const Char*, int, int*) ;
241 TLispEntity*	lispMgr_ParseStringA	(TLispManager*, const char*, int, int*) ;
242 #if defined (WIN32)
243 TLispEntity*	lispMgr_ParseFile		(TLispManager*, LPCWSTR) ;
244 #else
245 TLispEntity*	lispMgr_ParseFile		(TLispManager*, const char*) ;
246 #endif
247 
248 /*	lsub.kc */
249 Boolean	lispMgr_Append					(TLispManager*, TLispEntity*, TLispEntity** const) ;
250 Boolean	lispMgr_Nreverse				(TLispManager*, TLispEntity*, TLispEntity** const ppReturn) ;
251 Boolean	lispMgr_Delete					(TLispManager*, TLispEntity*, TLispEntity*, TLispEntity** const) ;
252 Boolean	lispMgr_Delq					(TLispManager*, TLispEntity*, TLispEntity*, TLispEntity** const) ;
253 
254 /*	lispmarker.c	*/
255 Boolean	lispMgr_CreateMarker			(TLispManager*, TLispEntity** const) ;
256 void	lispMgr_DestroyMarker			(TLispManager*, TLispEntity*) ;
257 Boolean	lispMarker_SetBufferPosition	(TLispManager*, TLispEntity*, TLispEntity*, int) ;
258 Boolean	lispMarker_SetInsertionType 	(TLispManager*, TLispEntity*, Boolean) ;
259 Boolean	lispMarker_SetNext				(TLispManager*, TLispEntity*, TLispEntity*) ;
260 Boolean	lispMarker_SetPrevious			(TLispManager*, TLispEntity*, TLispEntity*) ;
261 Boolean	lispMarker_GetInsertionType		(TLispManager*, TLispEntity*, Boolean*) ;
262 Boolean	lispMarker_GetBufferPosition	(TLispManager*, TLispEntity*, TLispEntity** const, int* const) ;
263 Boolean	lispMarker_GetNext				(TLispManager*, TLispEntity*, TLispEntity** const) ;
264 Boolean	lispMarker_GetPrevious			(TLispManager*, TLispEntity*, TLispEntity** const) ;
265 Boolean	lispMarker_MoveWithInsertion	(TLispManager*, TLispEntity*, int, int) ;
266 Boolean	lispMarker_MoveWithDeletion		(TLispManager*, TLispEntity*, int, int) ;
267 Boolean	lispMarker_Print				(TLispManager*, TLispEntity*) ;
268 
269 /*	lispbuffer.c	*/
270 Boolean	lispMgr_CreateBuffer			(TLispManager*, TLispEntity** const) ;
271 void	lispMgr_DestroyBuffer			(TLispManager*, TLispEntity*) ;
272 Boolean	lispBuffer_SetNext				(TLispEntity*, TLispEntity*) ;
273 Boolean	lispBuffer_SetPrevious			(TLispEntity*, TLispEntity*) ;
274 Boolean	lispBuffer_GetNext				(TLispEntity*, TLispEntity** const) ;
275 Boolean	lispBuffer_GetPrevious			(TLispEntity*, TLispEntity** const) ;
276 Boolean	lispBuffer_MakeSymbolValue		(TLispManager*, TLispEntity*, TLispEntity*) ;
277 Boolean	lispBuffer_SetSymbolValue		(TLispManager*, TLispEntity*, TLispEntity*, TLispEntity*) ;
278 Boolean	lispBuffer_SetSymbolValueWithName (TLispManager*, TLispEntity*, const Char*, const int, TLispEntity*) ;
279 Boolean	lispBuffer_GetSymbolValue		(TLispManager*, TLispEntity*, TLispEntity*, TLispEntity** const) ;
280 Boolean	lispBuffer_GetSymbolValueWithName (TLispManager*, TLispEntity*, const Char*, const int, TLispEntity** const) ;
281 Boolean	lispBuffer_AddMarker			(TLispManager*, TLispEntity*, TLispEntity*) ;
282 Boolean	lispBuffer_RemoveMarker			(TLispManager*, TLispEntity*) ;
283 Boolean	lispBuffer_SetName				(TLispManager*, TLispEntity*, TLispEntity*) ;
284 Boolean	lispBuffer_GetName				(TLispManager*, TLispEntity*, TLispEntity**) ;
285 Boolean	lispBuffer_SetKeymap			(TLispManager*, TLispEntity*, TLispEntity*) ;
286 Boolean	lispBuffer_GetKeymap			(TLispEntity*, TLispEntity**) ;
287 Boolean	lispBuffer_SetPrompt			(TLispManager*, TLispEntity*, const Char*, int) ;
288 Boolean	lispBuffer_Point				(TLispManager*, TLispEntity*, int*) ;
289 Boolean	lispBuffer_PointBufferEnd		(TLispManager*, TLispEntity*, int*) ;
290 Boolean	lispBuffer_PointMax				(TLispManager*, TLispEntity*, int*) ;
291 Boolean	lispBuffer_PointBufferTop		(TLispManager*, TLispEntity*, int*) ;
292 Boolean	lispBuffer_PointMin				(TLispManager*, TLispEntity*, int*) ;
293 Boolean	lispBuffer_PointMarker			(TLispManager*, TLispEntity*, TLispEntity** const) ;
294 Boolean	lispBuffer_MarkMarker			(TLispManager*, TLispEntity*, TLispEntity** const) ;
295 Boolean	lispBuffer_GetString			(TLispManager*, TLispEntity*, TBufStringMarker*, int* const) ;
296 Boolean	lispBuffer_GetFullString		(TLispManager*, TLispEntity*, TBufStringMarker*, int* const) ;
297 Boolean	lispBuffer_Narrow				(TLispManager*, TLispEntity*, int, int) ;
298 Boolean	lispBuffer_Widen				(TLispManager*, TLispEntity*) ;
299 Boolean	lispBuffer_InsertChar			(TLispManager*, TLispEntity*, int, const Char, int) ;
300 Boolean	lispBuffer_DeleteChar			(TLispManager*, TLispEntity*, int, int nCount) ;
301 Boolean	lispBuffer_InsertFileContents	(TLispManager*, TLispEntity*, int, KFILE*, int*) ;
302 Boolean	lispBuffer_InsertString			(TLispManager*, TLispEntity*, int, const Char*, int) ;
303 Boolean	lispBuffer_MoveMarkerWithInsertion (TLispManager*, TLispEntity*, int, int) ;
304 Boolean	lispBuffer_MoveMarkerWithDeletion (TLispManager*, TLispEntity*, int, int) ;
305 Boolean	lispBuffer_Print				(TLispManager*, TLispEntity*) ;
306 Boolean	lispBuffer_GetModifiedp			(TLispManager*, TLispEntity*) ;
307 void	lispBuffer_SetModifiedp			(TLispManager*, TLispEntity*, Boolean) ;
308 void	lispBuffer_Desync				(TLispManager*, TLispEntity*) ;
309 
310 /*	lispwindow.c */
311 Boolean	lispMgr_CreateWindow			(TLispManager*, Boolean, TLispEntity** const) ;
312 void	lispMgr_DestroyWindow			(TLispManager*, TLispEntity*) ;
313 Boolean	lispWindow_SetNext				(TLispEntity*, TLispEntity*) ;
314 Boolean	lispWindow_SetPrevious			(TLispEntity*, TLispEntity*) ;
315 Boolean	lispWindow_GetNext				(TLispEntity*, TLispEntity** const) ;
316 Boolean	lispWindow_GetPrevious			(TLispEntity*, TLispEntity** const) ;
317 Boolean	lispWindow_SetBuffer			(TLispManager*, TLispEntity*, TLispEntity*) ;
318 Boolean	lispWindow_GetBuffer			(TLispEntity*, TLispEntity** const) ;
319 Boolean	lispWindow_SetFrame				(TLispEntity*, TLispEntity*) ;
320 Boolean	lispWindow_GetFrame				(TLispEntity*, TLispEntity** const) ;
321 Boolean	lispWindow_SetArea				(TLispEntity*, const XRectangle*) ;
322 Boolean	lispWindow_GetArea				(TLispEntity*, XRectangle*) ;
323 Boolean	lispWindow_HaveFocusp			(TLispEntity*) ;
324 Boolean	lispWindow_SetFocus				(TLispEntity*, Boolean) ;
325 Boolean	lispWindow_EnableModeline		(TLispEntity*, Boolean) ;
326 Boolean	lispWindow_SetMessage			(TLispManager*, TLispEntity*, TLispEntity*) ;
327 Boolean	lispWindow_GetMessage			(TLispEntity*, TLispEntity** const) ;
328 Boolean	lispWindow_GetViewMarker		(TLispEntity*, TLispEntity** const) ;
329 Boolean	lispWindow_Minibufferp			(TLispEntity*) ;
330 void	lispWindow_SetMinibufWindow		(TLispEntity*, Boolean) ;
331 
332 /*	lispframe.c	*/
333 Boolean	lispMgr_MakeFrame				(TLispManager*, Widget, TLispEntity*, TLispEntity*, TLispEntity*, TLispEntity** const) ;
334 void	lispMgr_DestroyFrame			(TLispManager*, TLispEntity*) ;
335 Boolean	lispFrame_GetTopWindow			(TLispEntity*, TLispEntity** const) ;
336 Boolean	lispFrame_GetMinibufferWindow	(TLispEntity*, TLispEntity** const) ;
337 Boolean	lispFrame_GetNext				(TLispEntity*, TLispEntity** const) ;
338 Boolean	lispFrame_GetPrevious			(TLispEntity*, TLispEntity** const) ;
339 Boolean	lispFrame_SetNext				(TLispEntity*, TLispEntity*) ;
340 Boolean	lispFrame_SetPrevious			(TLispEntity*, TLispEntity*) ;
341 Boolean	lispFrame_InsertWindow			(TLispManager*, TLispEntity*, TLispEntity*) ;
342 Boolean	lispFrame_RemoveWindow			(TLispManager*, TLispEntity*, TLispEntity*) ;
343 Boolean	lispFrame_GetTerminal			(TLispEntity*, Widget* const) ;
344 void	lispFrame_Activate				(TLispManager*, TLispEntity*, Boolean) ;
345 Boolean	lispFrame_NeedUpdatep			(TLispManager*, TLispEntity*) ;
346 void	lispFrame_ScheduleUpdate		(TLispManager*, TLispEntity*) ;
347 
348 /*	lispfile.c	*/
349 Boolean	lispMgr_Load					(TLispManager*, const Char*, int, TLispEntity** const) ;
350 
351 /*	lispkeymap.kc	*/
352 Boolean	lispMgr_CreateKeymap			(TLispManager*, TLispEntity*, TLispEntity**) ;
353 Boolean	lispMgr_CreateSparseKeymap		(TLispManager*, TLispEntity*, TLispEntity** const) ;
354 Boolean	lispMgr_CopyKeymap				(TLispManager*, TLispEntity*, TLispEntity** const) ;
355 Boolean	lispEntity_Keymapp				(TLispManager*, TLispEntity*) ;
356 Boolean	lispKeymap_Lookup				(TLispManager*, TLispEntity*, TLispEntity*, Boolean, Boolean, int*, TLispEntity** const) ;
357 Boolean	lispKeymap_LookupWithString		(TLispManager*, TLispEntity*, const Char*, int, Boolean, Boolean, int*, TLispEntity** const) ;
358 Boolean	lispKeymap_LookupWithVector		(TLispManager*, TLispEntity*, TLispEntity**, int, Boolean, Boolean, int*, TLispEntity** const) ;
359 Boolean	lispKeymap_LookupWithList		(TLispManager*, TLispEntity*, TLispEntity*, Boolean, Boolean, int*, TLispEntity** const) ;
360 Boolean	lispKeymap_DefineKeyWithVector	(TLispManager*, TLispEntity*, TLispEntity**, int, TLispEntity*) ;
361 Boolean	lispKeymap_DefineKey			(TLispManager*, TLispEntity*, const Char*, int, TLispEntity*) ;
362 
363 /*	limclient.c */
364 Boolean	lispMgr_CreateIMClient			(TLispManager*, void*, void (*)(), void (*)(), void (*)(), TLispEntity** const) ;
365 Boolean	lispIMClient_KeyNotify			(TLispEntity*, TXEvent*) ;
366 Boolean	lispIMClient_TextNotify			(TLispEntity*, const Char*, int) ;
367 Boolean	lispIMClient_EndNotify			(TLispEntity*) ;
368 
369 /*	lmutex.c */
370 Boolean	lispMgr_CreateMutex				(TLispManager*, const Char*, int, TLispEntity** const) ;
371 Boolean	lispEntity_Mutexp				(TLispManager*, TLispEntity*) ;
372 Boolean	lispMgr_LockMutex				(TLispManager*, TLispEntity*, void*) ;
373 Boolean	lispMgr_UnlockMutex				(TLispManager*, TLispEntity*, void*) ;
374 Boolean	lispEntity_GetMutexInfo			(TLispManager*, TLispEntity*, const Char**, int*, unsigned int*, const void**) ;
375 Boolean	lispMgr_SearchMutex				(TLispManager*, const Char*, int, TLispEntity** const) ;
376 void	lispMgr_AbondonMutex			(TLispManager*, const void*) ;
377 
378 Boolean	lispMgr_CreateXEvent			(TLispManager*, TLispEntity*, const XEvent*, TLispEntity** const) ;
379 void	lispMgr_DestroyXEvent			(TLispManager*, TLispEntity*) ;
380 
381 /*	Library Internal Functions Prototype */
382 #include "lentity-inl.h"
383 #include "lispmgr-inl.h"
384 
385 #endif
386 
387