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