xref: /vim-8.2.3635/src/proto.h (revision 2bf24176)
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 #  include "winclip.pro"
51 # endif
52 # ifdef WIN3264
53 #  include "os_win32.pro"
54 #  include "os_mswin.pro"
55 #  include "winclip.pro"
56 #  if (defined(__GNUC__) && !defined(__MINGW32__)) \
57 	|| (defined(__BORLANDC__) && __BORLANDC__ < 0x502)
58 extern int _stricoll __ARGS((char *a, char *b));
59 #  endif
60 # endif
61 # ifdef VMS
62 #  include "os_vms.pro"
63 # endif
64 # ifdef __BEOS__
65 #  include "os_beos.pro"
66 # endif
67 # ifdef __QNX__
68 #  include "os_qnx.pro"
69 # endif
70 
71 # ifdef FEAT_CRYPT
72 #  include "blowfish.pro"
73 #  include "crypt.pro"
74 #  include "crypt_zip.pro"
75 # endif
76 # include "buffer.pro"
77 # include "charset.pro"
78 # ifdef FEAT_CSCOPE
79 #  include "if_cscope.pro"
80 # endif
81 # include "diff.pro"
82 # include "digraph.pro"
83 # include "edit.pro"
84 # include "eval.pro"
85 # include "ex_cmds.pro"
86 # include "ex_cmds2.pro"
87 # include "ex_docmd.pro"
88 # include "ex_eval.pro"
89 # include "ex_getln.pro"
90 # include "fileio.pro"
91 # include "fold.pro"
92 # include "getchar.pro"
93 # ifdef FEAT_HANGULIN
94 #  include "hangulin.pro"
95 # endif
96 # include "hardcopy.pro"
97 # include "hashtab.pro"
98 # include "main.pro"
99 # include "mark.pro"
100 # include "memfile.pro"
101 # include "memline.pro"
102 # ifdef FEAT_MENU
103 #  include "menu.pro"
104 # endif
105 
106 # if !defined MESSAGE_FILE || defined(HAVE_STDARG_H)
107     /* These prototypes cannot be produced automatically and conflict with
108      * the old-style prototypes in message.c. */
109 int
110 #  ifdef __BORLANDC__
111 _RTLENTRYF
112 #  endif
113 smsg __ARGS((char_u *, ...));
114 
115 int
116 #  ifdef __BORLANDC__
117 _RTLENTRYF
118 #  endif
119 smsg_attr __ARGS((int, char_u *, ...));
120 
121 int
122 #  ifdef __BORLANDC__
123 _RTLENTRYF
124 #  endif
125 vim_snprintf_add __ARGS((char *, size_t, char *, ...));
126 
127 int
128 #  ifdef __BORLANDC__
129 _RTLENTRYF
130 #  endif
131 vim_snprintf __ARGS((char *, size_t, char *, ...));
132 
133 #  if defined(HAVE_STDARG_H)
134 int vim_vsnprintf(char *str, size_t str_m, char *fmt, va_list ap, typval_T *tvs);
135 #  endif
136 # endif
137 
138 # include "message.pro"
139 # include "misc1.pro"
140 # include "misc2.pro"
141 #ifndef HAVE_STRPBRK	    /* not generated automatically from misc2.c */
142 char_u *vim_strpbrk __ARGS((char_u *s, char_u *charset));
143 #endif
144 #ifndef HAVE_QSORT
145 /* Use our own qsort(), don't define the prototype when not used. */
146 void qsort __ARGS((void *base, size_t elm_count, size_t elm_size, int (*cmp)(const void *, const void *)));
147 #endif
148 # include "move.pro"
149 # if defined(FEAT_MBYTE) || defined(FEAT_XIM) || defined(FEAT_KEYMAP) \
150 	|| defined(FEAT_POSTSCRIPT)
151 #  include "mbyte.pro"
152 # endif
153 # include "normal.pro"
154 # include "ops.pro"
155 # include "option.pro"
156 # include "popupmnu.pro"
157 # ifdef FEAT_QUICKFIX
158 #  include "quickfix.pro"
159 # endif
160 # include "regexp.pro"
161 # include "screen.pro"
162 # if defined(FEAT_CRYPT) || defined(FEAT_PERSISTENT_UNDO)
163 #  include "sha256.pro"
164 # endif
165 # include "search.pro"
166 # include "spell.pro"
167 # include "syntax.pro"
168 # include "tag.pro"
169 # include "term.pro"
170 # if defined(HAVE_TGETENT) && (defined(AMIGA) || defined(VMS))
171 #  include "termlib.pro"
172 # endif
173 # include "ui.pro"
174 # include "undo.pro"
175 # include "version.pro"
176 # include "window.pro"
177 
178 # ifdef FEAT_LUA
179 #  include "if_lua.pro"
180 # endif
181 
182 # ifdef FEAT_MZSCHEME
183 #  include "if_mzsch.pro"
184 # endif
185 
186 # ifdef FEAT_PYTHON
187 #  include "if_python.pro"
188 # endif
189 
190 # ifdef FEAT_PYTHON3
191 #  include "if_python3.pro"
192 # endif
193 
194 # ifdef FEAT_TCL
195 #  include "if_tcl.pro"
196 # endif
197 
198 # ifdef FEAT_RUBY
199 #  include "if_ruby.pro"
200 # endif
201 
202 /* Ugly solution for "BalloonEval" not being defined while it's used in some
203  * .pro files. */
204 # ifndef FEAT_BEVAL
205 #  define BalloonEval int
206 # endif
207 
208 # ifdef FEAT_NETBEANS_INTG
209 #  include "netbeans.pro"
210 # endif
211 
212 # ifdef FEAT_GUI
213 #  include "gui.pro"
214 #  if defined(UNIX) || defined(MACOS)
215 #   include "pty.pro"
216 #  endif
217 #  if !defined(HAVE_SETENV) && !defined(HAVE_PUTENV) && !defined(VMS)
218 extern int putenv __ARGS((const char *string));		/* from pty.c */
219 #   ifdef USE_VIMPTY_GETENV
220 extern char_u *vimpty_getenv __ARGS((const char_u *string));	/* from pty.c */
221 #   endif
222 #  endif
223 #  ifdef FEAT_GUI_W16
224 #   include "gui_w16.pro"
225 #  endif
226 #  ifdef FEAT_GUI_W32
227 #   include "gui_w32.pro"
228 #  endif
229 #  ifdef FEAT_GUI_GTK
230 #   include "gui_gtk.pro"
231 #   include "gui_gtk_x11.pro"
232 #  endif
233 #  ifdef FEAT_GUI_MOTIF
234 #   include "gui_motif.pro"
235 #   include "gui_xmdlg.pro"
236 #  endif
237 #  ifdef FEAT_GUI_ATHENA
238 #   include "gui_athena.pro"
239 #   ifdef FEAT_BROWSE
240 extern 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));
241 #   endif
242 #  endif
243 #  ifdef FEAT_GUI_MAC
244 #   include "gui_mac.pro"
245 #  endif
246 #  ifdef FEAT_GUI_X11
247 #   include "gui_x11.pro"
248 #  endif
249 #  ifdef FEAT_GUI_PHOTON
250 #   include "gui_photon.pro"
251 #  endif
252 #  ifdef FEAT_SUN_WORKSHOP
253 #   include "workshop.pro"
254 #  endif
255 # endif	/* FEAT_GUI */
256 
257 # ifdef FEAT_OLE
258 #  include "if_ole.pro"
259 # endif
260 # if defined(FEAT_CLIENTSERVER) && defined(FEAT_X11)
261 #  include "if_xcmdsrv.pro"
262 # endif
263 
264 /*
265  * The perl include files pollute the namespace, therefore proto.h must be
266  * included before the perl include files.  But then CV is not defined, which
267  * is used in if_perl.pro.  To get around this, the perl prototype files are
268  * not included here for the perl files.  Use a dummy define for CV for the
269  * other files.
270  */
271 #if defined(FEAT_PERL) && !defined(IN_PERL_FILE)
272 # define CV void
273 # ifdef __BORLANDC__
274   #pragma option -pc
275 # endif
276 # include "if_perl.pro"
277 # ifdef __BORLANDC__
278   #pragma option -p.
279 # endif
280 # include "if_perlsfio.pro"
281 #endif
282 
283 #ifdef MACOS_CONVERT
284 # include "os_mac_conv.pro"
285 #endif
286 #if defined(MACOS_X_UNIX) && defined(FEAT_CLIPBOARD) && !defined(FEAT_GUI)
287 /* functions in os_macosx.m */
288 void clip_mch_lose_selection(VimClipboard *cbd);
289 int clip_mch_own_selection(VimClipboard *cbd);
290 void clip_mch_request_selection(VimClipboard *cbd);
291 void clip_mch_set_selection(VimClipboard *cbd);
292 #endif
293 
294 #ifdef __BORLANDC__
295 # define _PROTO_H
296 #endif
297 #endif /* !PROTO && !NOPROTO */
298