1/* vi:set ts=8 sts=4 sw=4:
2 *
3 * VIM - Vi IMproved	by Bram Moolenaar
4 *
5 * Do ":help uganda"  in Vim to read copying and usage conditions.
6 * Do ":help credits" in Vim to see a list of people who contributed.
7 */
8
9/*
10 * proto.h: include the (automatically generated) function prototypes
11 */
12
13/*
14 * Don't include these while generating prototypes.  Prevents problems when
15 * files are missing.
16 */
17#if !defined(PROTO) && !defined(NOPROTO)
18
19/*
20 * Machine-dependent routines.
21 */
22/* avoid errors in function prototypes */
23# if !defined(FEAT_X11) && !defined(FEAT_GUI_GTK)
24#  define Display int
25#  define Widget int
26# endif
27# ifndef FEAT_GUI_GTK
28#  define GdkEvent int
29#  define GdkEventKey int
30# endif
31# ifndef FEAT_X11
32#  define XImage int
33# endif
34
35# ifdef AMIGA
36#  include "os_amiga.pro"
37# endif
38# if defined(UNIX) || defined(__EMX__) || defined(VMS)
39#  include "os_unix.pro"
40# endif
41# if defined(MSDOS) || defined(WIN16)
42#  include "os_msdos.pro"
43# endif
44# ifdef WIN16
45   typedef LPSTR LPWSTR;
46   typedef LPCSTR LPCWSTR;
47   typedef int LPBOOL;
48#  include "os_win16.pro"
49#  include "os_mswin.pro"
50# endif
51# ifdef WIN3264
52#  include "os_win32.pro"
53#  include "os_mswin.pro"
54#  if (defined(__GNUC__) && !defined(__MINGW32__)) \
55	|| (defined(__BORLANDC__) && __BORLANDC__ < 0x502)
56extern int _stricoll __ARGS((char *a, char *b));
57#  endif
58# endif
59# ifdef VMS
60#  include "os_vms.pro"
61# endif
62# ifdef __BEOS__
63#  include "os_beos.pro"
64# endif
65# ifdef RISCOS
66#  include "os_riscos.pro"
67# endif
68# ifdef __QNX__
69#  include "os_qnx.pro"
70# endif
71
72# ifdef FEAT_CRYPT
73#  include "blowfish.pro"
74# endif
75# include "buffer.pro"
76# include "charset.pro"
77# ifdef FEAT_CSCOPE
78#  include "if_cscope.pro"
79# endif
80# include "diff.pro"
81# include "digraph.pro"
82# include "edit.pro"
83# include "eval.pro"
84# include "ex_cmds.pro"
85# include "ex_cmds2.pro"
86# include "ex_docmd.pro"
87# include "ex_eval.pro"
88# include "ex_getln.pro"
89# include "fileio.pro"
90# include "fold.pro"
91# include "getchar.pro"
92# ifdef FEAT_HANGULIN
93#  include "hangulin.pro"
94# endif
95# include "hardcopy.pro"
96# include "hashtab.pro"
97# include "main.pro"
98# include "mark.pro"
99# include "memfile.pro"
100# include "memline.pro"
101# ifdef FEAT_MENU
102#  include "menu.pro"
103# endif
104
105# if !defined MESSAGE_FILE || defined(HAVE_STDARG_H)
106    /* These prototypes cannot be produced automatically and conflict with
107     * the old-style prototypes in message.c. */
108int
109#  ifdef __BORLANDC__
110_RTLENTRYF
111#  endif
112smsg __ARGS((char_u *, ...));
113
114int
115#  ifdef __BORLANDC__
116_RTLENTRYF
117#  endif
118smsg_attr __ARGS((int, char_u *, ...));
119
120int
121#  ifdef __BORLANDC__
122_RTLENTRYF
123#  endif
124vim_snprintf_add __ARGS((char *, size_t, char *, ...));
125
126int
127#  ifdef __BORLANDC__
128_RTLENTRYF
129#  endif
130vim_snprintf __ARGS((char *, size_t, char *, ...));
131
132#  if defined(HAVE_STDARG_H)
133int vim_vsnprintf(char *str, size_t str_m, char *fmt, va_list ap, typval_T *tvs);
134#  endif
135# endif
136
137# include "message.pro"
138# include "misc1.pro"
139# include "misc2.pro"
140#ifndef HAVE_STRPBRK	    /* not generated automatically from misc2.c */
141char_u *vim_strpbrk __ARGS((char_u *s, char_u *charset));
142#endif
143#ifndef HAVE_QSORT
144/* Use our own qsort(), don't define the prototype when not used. */
145void qsort __ARGS((void *base, size_t elm_count, size_t elm_size, int (*cmp)(const void *, const void *)));
146#endif
147# include "move.pro"
148# if defined(FEAT_MBYTE) || defined(FEAT_XIM) || defined(FEAT_KEYMAP) \
149	|| defined(FEAT_POSTSCRIPT)
150#  include "mbyte.pro"
151# endif
152# include "normal.pro"
153# include "ops.pro"
154# include "option.pro"
155# include "popupmnu.pro"
156# ifdef FEAT_QUICKFIX
157#  include "quickfix.pro"
158# endif
159# include "regexp.pro"
160# include "screen.pro"
161# if defined(FEAT_CRYPT) || defined(FEAT_PERSISTENT_UNDO)
162#  include "sha256.pro"
163# endif
164# include "search.pro"
165# include "spell.pro"
166# include "syntax.pro"
167# include "tag.pro"
168# include "term.pro"
169# if defined(HAVE_TGETENT) && (defined(AMIGA) || defined(VMS))
170#  include "termlib.pro"
171# endif
172# include "ui.pro"
173# include "undo.pro"
174# include "version.pro"
175# include "window.pro"
176
177# ifdef FEAT_LUA
178#  include "if_lua.pro"
179# endif
180
181# ifdef FEAT_MZSCHEME
182#  include "if_mzsch.pro"
183# endif
184
185# ifdef FEAT_PYTHON
186#  include "if_python.pro"
187# endif
188
189# ifdef FEAT_PYTHON3
190#  include "if_python3.pro"
191# endif
192
193# ifdef FEAT_TCL
194#  include "if_tcl.pro"
195# endif
196
197# ifdef FEAT_RUBY
198#  include "if_ruby.pro"
199# endif
200
201/* Ugly solution for "BalloonEval" not being defined while it's used in some
202 * .pro files. */
203# ifndef FEAT_BEVAL
204#  define BalloonEval int
205# endif
206
207# ifdef FEAT_NETBEANS_INTG
208#  include "netbeans.pro"
209# endif
210
211# ifdef FEAT_GUI
212#  include "gui.pro"
213#  if defined(UNIX) || defined(MACOS)
214#   include "pty.pro"
215#  endif
216#  if !defined(HAVE_SETENV) && !defined(HAVE_PUTENV) && !defined(VMS)
217extern int putenv __ARGS((const char *string));		/* from pty.c */
218#   ifdef USE_VIMPTY_GETENV
219extern char_u *vimpty_getenv __ARGS((const char_u *string));	/* from pty.c */
220#   endif
221#  endif
222#  ifdef FEAT_GUI_W16
223#   include "gui_w16.pro"
224#  endif
225#  ifdef FEAT_GUI_W32
226#   include "gui_w32.pro"
227#  endif
228#  ifdef FEAT_GUI_GTK
229#   include "gui_gtk.pro"
230#   include "gui_gtk_x11.pro"
231#  endif
232#  ifdef FEAT_GUI_MOTIF
233#   include "gui_motif.pro"
234#   include "gui_xmdlg.pro"
235#  endif
236#  ifdef FEAT_GUI_ATHENA
237#   include "gui_athena.pro"
238#   ifdef FEAT_BROWSE
239extern char *vim_SelFile __ARGS((Widget toplevel, char *prompt, char *init_path, int (*show_entry)(), int x, int y, guicolor_T fg, guicolor_T bg, guicolor_T scroll_fg, guicolor_T scroll_bg));
240#   endif
241#  endif
242#  ifdef FEAT_GUI_MAC
243#   include "gui_mac.pro"
244#  endif
245#  ifdef FEAT_GUI_X11
246#   include "gui_x11.pro"
247#  endif
248#  ifdef RISCOS
249#   include "gui_riscos.pro"
250#  endif
251#  ifdef FEAT_GUI_PHOTON
252#   include "gui_photon.pro"
253#  endif
254#  ifdef FEAT_SUN_WORKSHOP
255#   include "workshop.pro"
256#  endif
257# endif	/* FEAT_GUI */
258
259# ifdef FEAT_OLE
260#  include "if_ole.pro"
261# endif
262# if defined(FEAT_CLIENTSERVER) && defined(FEAT_X11)
263#  include "if_xcmdsrv.pro"
264# endif
265
266/*
267 * The perl include files pollute the namespace, therefore proto.h must be
268 * included before the perl include files.  But then CV is not defined, which
269 * is used in if_perl.pro.  To get around this, the perl prototype files are
270 * not included here for the perl files.  Use a dummy define for CV for the
271 * other files.
272 */
273#if defined(FEAT_PERL) && !defined(IN_PERL_FILE)
274# define CV void
275# ifdef __BORLANDC__
276  #pragma option -pc
277# endif
278# include "if_perl.pro"
279# ifdef __BORLANDC__
280  #pragma option -p.
281# endif
282# include "if_perlsfio.pro"
283#endif
284
285#ifdef MACOS_CONVERT
286# include "os_mac_conv.pro"
287#endif
288#if defined(MACOS_X_UNIX) && defined(FEAT_CLIPBOARD) && !defined(FEAT_GUI)
289/* functions in os_macosx.m */
290void clip_mch_lose_selection(VimClipboard *cbd);
291int clip_mch_own_selection(VimClipboard *cbd);
292void clip_mch_request_selection(VimClipboard *cbd);
293void clip_mch_set_selection(VimClipboard *cbd);
294#endif
295
296#ifdef __BORLANDC__
297# define _PROTO_H
298#endif
299#endif /* !PROTO && !NOPROTO */
300