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