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