patch 9.1.1662: Issues with proto files: missing or inconsistent prototypes.
Commit: https://github.com/vim/vim/commit/d839a5b3b02cf284c831cd400a7e2169b44f471b Author: Hirohito Higashi <h.east....@gmail.com> Date: Wed Aug 20 22:08:13 2025 +0200 patch 9.1.1662: Issues with proto files: missing or inconsistent prototypes. Problem: Issues with proto files: missing or inconsistent prototypes. Solution: Update ifdefs, move typedefs, fix prototype declaration (Hirohito Higashi) This change focuses on fixes and tweaks found while working on #18045 for the proto/*.pro files. The following fixes and tweaks have been made: - Fixed a prototype declaration where the variable name differed from the function definition. - Removed a prototype declaration without a function body. - Fixed a problem where a prototype declaration was not created for a function definition enclosed in a #if directive because it lacked || defined(PROTO). - Moved typedef struct soundcb_S soundcb_T; from proto/sound.pro to vim.h. - Other small tweaks. The make proto mechanism remains unchanged. closes: #18058 Signed-off-by: Hirohito Higashi <h.east....@gmail.com> Signed-off-by: Yegappan Lakshmanan <yegap...@yahoo.com> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/src/cmdexpand.c b/src/cmdexpand.c index 416a7a7b3..4bde81c62 100644 --- a/src/cmdexpand.c +++ b/src/cmdexpand.c @@ -3541,7 +3541,7 @@ ExpandGeneric( regmatch_T *regmatch, char_u ***matches, int *numMatches, - char_u *((*func)(expand_T *, int)), + char_u *(*func)(expand_T *, int), // returns a string from the list int escaped) { @@ -3572,7 +3572,7 @@ ExpandGenericExt( regmatch_T *regmatch, char_u ***matches, int *numMatches, - char_u *((*func)(expand_T *, int)), + char_u *(*func)(expand_T *, int), // returns a string from the list int escaped, int sortStartIdx) diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c index 2e3af0421..476deda93 100644 --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -2695,7 +2695,7 @@ global_event_filter(GdkXEvent *xev, } #endif // !USE_GNOME_SESSION -#ifdef FEAT_SOCKETSERVER +#if defined(FEAT_SOCKETSERVER) || defined(PROTO) /* * Callback for new events from the socket server listening socket diff --git a/src/indent.c b/src/indent.c index 7a2c16d3c..4e2614943 100644 --- a/src/indent.c +++ b/src/indent.c @@ -474,7 +474,7 @@ get_indent_str( return count; } -#ifdef FEAT_VARTABS +#if defined(FEAT_VARTABS) || defined(PROTO) /* * Count the size (in window cells) of the indent in line "ptr", using * variable tabstops. diff --git a/src/locale.c b/src/locale.c index ccdb479a8..f25af6d57 100644 --- a/src/locale.c +++ b/src/locale.c @@ -212,7 +212,7 @@ set_lang_var(void) } #endif -#if defined(HAVE_LOCALE_H) || defined(X_LOCALE) +#if defined(HAVE_LOCALE_H) || defined(X_LOCALE) || defined(PROTO) /* * Setup to use the current locale (for ctype() and many other things). */ diff --git a/src/macros.h b/src/macros.h index c11bfa5f7..56d0a3142 100644 --- a/src/macros.h +++ b/src/macros.h @@ -168,7 +168,7 @@ # undef HAVE_LSTAT // VMS does not have lstat() # define mch_stat(n, p) stat(vms_fixfilename(n), (p)) #else -# ifndef MSWIN +# if !defined(MSWIN) && !defined(PROTO) # define mch_access(n, p) access((n), (p)) # endif diff --git a/src/misc2.c b/src/misc2.c index 9b8147cbb..368b99b88 100644 --- a/src/misc2.c +++ b/src/misc2.c @@ -771,7 +771,7 @@ copy_option_part( return len; } -#ifndef HAVE_MEMSET +#if !defined(HAVE_MEMSET) && !defined(PROTO) void * vim_memset(void *ptr, int c, size_t size) { @@ -2609,7 +2609,7 @@ free_username(void) } #endif -#ifndef HAVE_QSORT +#if !defined(HAVE_QSORT) && !defined(PROTO) /* * Our own qsort(), for systems that don't have it. * It's simple and slow. From the K&R C book. @@ -2676,7 +2676,7 @@ qsort( * (history removed, not very interesting. See the "screen" sources.) */ -#if !defined(HAVE_SETENV) && !defined(HAVE_PUTENV) +#if !defined(HAVE_SETENV) && !defined(HAVE_PUTENV) && !defined(PROTO) #define EXTRASIZE 5 // increment to add to env. size diff --git a/src/option.c b/src/option.c index 2ec959c72..2aa06027a 100644 --- a/src/option.c +++ b/src/option.c @@ -4748,7 +4748,7 @@ did_set_winwidth(optset_T *args UNUSED) return errmsg; } -#ifdef FEAT_WAYLAND_CLIPBOARD +#if defined(FEAT_WAYLAND_CLIPBOARD) || defined(PROTO) /* * Process the new 'wlsteal' option value. */ @@ -4761,7 +4761,7 @@ did_set_wlsteal(optset_T *args UNUSED) } #endif -#ifdef FEAT_WAYLAND +#if defined(FEAT_WAYLAND) || defined(PROTO) /* * Process the new 'wltimeoutlen' option value. */ @@ -8915,7 +8915,7 @@ option_set_callback_func(char_u *optval UNUSED, callback_T *optcb UNUSED) #endif } -#if defined(FEAT_TABPANEL) +#if defined(FEAT_TABPANEL) || defined(PROTO) /* * Process the new 'showtabpanel' option value. */ diff --git a/src/optionstr.c b/src/optionstr.c index bbae33973..cbc0a9e4f 100644 --- a/src/optionstr.c +++ b/src/optionstr.c @@ -3616,7 +3616,7 @@ did_set_rulerformat(optset_T *args) } #endif -#if defined(FEAT_TABPANEL) +#if defined(FEAT_TABPANEL) || defined(PROTO) /* * Process the new 'tabpanelopt' option value. */ @@ -5068,7 +5068,7 @@ restore_shm_value(void) * Export the environment variable $MYVIMDIR to the first item in runtimepath */ void -export_myvimdir() +export_myvimdir(void) { int dofree = FALSE; char_u *p; diff --git a/src/os_mswin.c b/src/os_mswin.c index eefb41d99..d376af86c 100644 --- a/src/os_mswin.c +++ b/src/os_mswin.c @@ -108,7 +108,6 @@ int WSInitialized = FALSE; // WinSock is initialized #endif -#ifndef PROTO /* * Save the instance handle of the exe/dll. */ @@ -117,7 +116,6 @@ SaveInst(HINSTANCE hInst) { g_hinst = hInst; } -#endif #if defined(FEAT_GUI_MSWIN) || defined(PROTO) /* diff --git a/src/os_unix.c b/src/os_unix.c index b1b7b33dc..cf195e62e 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -147,7 +147,7 @@ Window x11_window = 0; Display *x11_display = NULL; #endif -#ifdef FEAT_SOCKETSERVER +#if defined(FEAT_SOCKETSERVER) || defined(PROTO) # include <sys/socket.h> # include <sys/un.h> @@ -1829,7 +1829,7 @@ xopen_message(long elapsed_msec) # endif #endif -#if defined(FEAT_X11) +#if defined(FEAT_X11) || defined(PROTO) /* * A few functions shared by X11 title and clipboard code. */ @@ -1900,7 +1900,7 @@ x_connect_to_server(void) return TRUE; } -#if defined(FEAT_X11) && defined(FEAT_XCLIPBOARD) +#if defined(FEAT_X11) && defined(FEAT_XCLIPBOARD) || defined(PROTO) # if defined(USING_SETJMP) /* * An X IO Error handler, used to catch error while opening the display. @@ -3252,7 +3252,7 @@ mch_copy_sec(char_u *from_file, char_u *to_file) } #endif // HAVE_SMACK -#ifdef FEAT_XATTR +#if defined(FEAT_XATTR) || defined(PROTO) /* * Copy extended attributes from_file to to_file */ @@ -9134,7 +9134,7 @@ mch_create_anon_file(void) return fd; } -#ifdef FEAT_SOCKETSERVER +#if defined(FEAT_SOCKETSERVER) || defined(PROTO) /* * Initialize socket server called "name" (the socket filename). If "name" is a diff --git a/src/os_win32.c b/src/os_win32.c index 6bd03bd1c..056a5a223 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -2118,7 +2118,7 @@ test_mswin_event(char_u *event, dict_T *args) } #endif // FEAT_EVAL -#ifdef MCH_CURSOR_SHAPE +#if defined(MCH_CURSOR_SHAPE) || defined(PROTO) /* * Set the shape of the cursor. * 'thickness' can be from 1 (thin) to 99 (block) diff --git a/src/profiler.c b/src/profiler.c index 00da9b648..4f16d811d 100644 --- a/src/profiler.c +++ b/src/profiler.c @@ -172,7 +172,7 @@ profile_zero(proftime_T *tm) # endif // FEAT_PROFILE || FEAT_RELTIME -#if defined(FEAT_SYN_HL) && defined(FEAT_RELTIME) && defined(FEAT_PROFILE) +#if defined(FEAT_SYN_HL) && defined(FEAT_RELTIME) && defined(FEAT_PROFILE) || defined(PROTO) # if defined(HAVE_MATH_H) # include <math.h> # endif diff --git a/src/proto/cmdexpand.pro b/src/proto/cmdexpand.pro index 501b5e642..a2f6a16d4 100644 --- a/src/proto/cmdexpand.pro +++ b/src/proto/cmdexpand.pro @@ -17,8 +17,8 @@ char_u *addstar(char_u *fname, int len, int context); void set_expand_context(expand_T *xp); void set_cmd_context(expand_T *xp, char_u *str, int len, int col, int use_ccline); int expand_cmdline(expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches); -int ExpandGeneric(char_u *pat, expand_T *xp, regmatch_T *regmatch, char_u ***matches, int *numMatches, char_u *((*func)(expand_T *, int)), int escaped); -int ExpandGenericExt(char_u *pat, expand_T *xp, regmatch_T *regmatch, char_u ***matches, int *numMatches, char_u *((*func)(expand_T *, int)), int escaped, int sortStartIdx); +int ExpandGeneric(char_u *pat, expand_T *xp, regmatch_T *regmatch, char_u ***matches, int *numMatches, char_u *(*func)(expand_T *, int), int escaped); +int ExpandGenericExt(char_u *pat, expand_T *xp, regmatch_T *regmatch, char_u ***matches, int *numMatches, char_u *(*func)(expand_T *, int), int escaped, int sortStartIdx); void globpath(char_u *path, char_u *file, garray_T *ga, int expand_options, int dirs); int wildmenu_translate_key(cmdline_info_T *cclp, int key, expand_T *xp, int did_wild_list); int wildmenu_process_key(cmdline_info_T *cclp, int key, expand_T *xp); diff --git a/src/proto/gui_gtk_x11.pro b/src/proto/gui_gtk_x11.pro index 5e7452d4d..37ae5ec5a 100644 --- a/src/proto/gui_gtk_x11.pro +++ b/src/proto/gui_gtk_x11.pro @@ -15,7 +15,7 @@ void gui_mch_show_tabline(int showit); int gui_mch_showing_tabline(void); void gui_mch_update_tabline(void); void gui_mch_set_curtab(int nr); -void gui_gtk_set_selection_targets(GdkAtom); +void gui_gtk_set_selection_targets(GdkAtom selection); void gui_gtk_set_dnd_targets(void); int gui_mch_init(void); void gui_mch_forked(void); diff --git a/src/proto/if_python.pro b/src/proto/if_python.pro index ee78990af..90d878a99 100644 --- a/src/proto/if_python.pro +++ b/src/proto/if_python.pro @@ -8,6 +8,6 @@ void ex_pydo(exarg_T *eap); void python_buffer_free(buf_T *buf); void python_window_free(win_T *win); void python_tabpage_free(tabpage_T *tab); -void do_pyeval(char_u *str, dict_T* locals, typval_T *rettv); +void do_pyeval(char_u *str, dict_T *locals, typval_T *rettv); int set_ref_in_python(int copyID); /* vim: set ft=c : */ diff --git a/src/proto/if_python3.pro b/src/proto/if_python3.pro index 63104ab7d..0487c57b6 100644 --- a/src/proto/if_python3.pro +++ b/src/proto/if_python3.pro @@ -8,7 +8,7 @@ void ex_py3do(exarg_T *eap); void python3_buffer_free(buf_T *buf); void python3_window_free(win_T *win); void python3_tabpage_free(tabpage_T *tab); -void do_py3eval(char_u *str, dict_T* locals, typval_T *rettv); +void do_py3eval(char_u *str, dict_T *locals, typval_T *rettv); int set_ref_in_python3(int copyID); int python3_version(void); /* vim: set ft=c : */ diff --git a/src/proto/option.pro b/src/proto/option.pro index 8e544184a..f1f8a33a4 100644 --- a/src/proto/option.pro +++ b/src/proto/option.pro @@ -68,7 +68,6 @@ char *did_set_shellslash(optset_T *args); char *did_set_shiftwidth_tabstop(optset_T *args); char *did_set_showtabline(optset_T *args); char *did_set_smoothscroll(optset_T *args); -char *did_set_socktimeoutlen(optset_T *args); char *did_set_spell(optset_T *args); char *did_set_swapfile(optset_T *args); char *did_set_termguicolors(optset_T *args); diff --git a/src/proto/optionstr.pro b/src/proto/optionstr.pro index 4da92f77c..734959b60 100644 --- a/src/proto/optionstr.pro +++ b/src/proto/optionstr.pro @@ -34,8 +34,6 @@ int expand_set_casemap(optexpand_T *args, int *numMatches, char_u ***matches); int expand_set_clipboard(optexpand_T *args, int *numMatches, char_u ***matches); char *did_set_clipmethod(optset_T *args); int expand_set_clipmethod(optexpand_T *args, int *numMatches, char_u ***matches); -char *did_set_clientserver(optset_T *args UNUSED); -int expand_set_clientserver(optexpand_T *args, int *numMatches, char_u ***matches); char *did_set_chars_option(optset_T *args); int expand_set_chars_option(optexpand_T *args, int *numMatches, char_u ***matches); char *did_set_cinoptions(optset_T *args); diff --git a/src/proto/os_unix.pro b/src/proto/os_unix.pro index 329e1dbbd..8f623c612 100644 --- a/src/proto/os_unix.pro +++ b/src/proto/os_unix.pro @@ -94,13 +94,13 @@ void stop_timeout(void); volatile sig_atomic_t *start_timeout(long msec); void delete_timer(void); int mch_create_anon_file(void); -int socket_server_init(char_u *sock_path); +int socket_server_init(char_u *name); void socket_server_uninit(void); char_u *socket_server_list_sockets(void); void socket_server_accept_client(void); int socket_server_valid(void); -int socket_server_send(char_u *sock_path, char_u *cmd, char_u **result, char_u **receiver, int is_expr, int timeout, int silent); -int socket_server_read_reply(char_u *sender, char_u **str, int timeout); +int socket_server_send(char_u *name, char_u *str, char_u **result, char_u **receiver, int is_expr, int timeout, int silent); +int socket_server_read_reply(char_u *client, char_u **str, int timeout); int socket_server_peek_reply(char_u *sender, char_u **str); int socket_server_send_reply(char_u *client, char_u *str); int socket_server_get_fd(void); diff --git a/src/proto/sound.pro b/src/proto/sound.pro index c6d0541f9..68c1fde77 100644 --- a/src/proto/sound.pro +++ b/src/proto/sound.pro @@ -1,10 +1,8 @@ /* sound.c */ -typedef struct soundcb_S soundcb_T; - int has_any_sound_callback(void); -int has_sound_callback_in_queue(void); -void call_sound_callback(soundcb_T *soundcb, long sound_id, int result); +void call_sound_callback(soundcb_T *soundcb, long snd_id, int result); void delete_sound_callback(soundcb_T *soundcb); +int has_sound_callback_in_queue(void); void invoke_sound_callback(void); void f_sound_playevent(typval_T *argvars, typval_T *rettv); void f_sound_playfile(typval_T *argvars, typval_T *rettv); diff --git a/src/regexp.c b/src/regexp.c index 27112bc53..669b123a3 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -50,7 +50,7 @@ toggle_Magic(int x) return Magic(x); } -#ifdef FEAT_RELTIME +#if defined(FEAT_RELTIME) || defined(PROTO) static int timeout_nesting = 0; /* diff --git a/src/sound.c b/src/sound.c index 7b4d98405..86fbce070 100644 --- a/src/sound.c +++ b/src/sound.c @@ -17,7 +17,7 @@ static long sound_id = 0; -// soundcb_T is typedef'ed in proto/sound.pro +// soundcb_T is typedef'ed in vim.h struct soundcb_S { diff --git a/src/term.c b/src/term.c index c892c6d06..d3435ee1f 100644 --- a/src/term.c +++ b/src/term.c @@ -2449,7 +2449,7 @@ vim_tgetstr(char *s, char_u **pp) } #endif // HAVE_TGETENT -#if defined(HAVE_TGETENT) && (defined(UNIX) || defined(VMS) || defined(MACOS_X)) +#if defined(HAVE_TGETENT) && (defined(UNIX) || defined(VMS) || defined(MACOS_X)) || defined(PROTO) /* * Get Columns and Rows from the termcap. Used after a window signal if the * ioctl() fails. It doesn't make sense to call tgetent each time if the "co" diff --git a/src/testing.c b/src/testing.c index cfa01ff9e..251324c3b 100644 --- a/src/testing.c +++ b/src/testing.c @@ -1201,7 +1201,7 @@ f_test_null_blob(typval_T *argvars UNUSED, typval_T *rettv) rettv->vval.v_blob = NULL; } -#ifdef FEAT_JOB_CHANNEL +#if defined(FEAT_JOB_CHANNEL) || defined(PROTO) void f_test_null_channel(typval_T *argvars UNUSED, typval_T *rettv) { @@ -1216,7 +1216,7 @@ f_test_null_dict(typval_T *argvars UNUSED, typval_T *rettv) rettv_dict_set(rettv, NULL); } -#ifdef FEAT_JOB_CHANNEL +#if defined(FEAT_JOB_CHANNEL) || defined(PROTO) void f_test_null_job(typval_T *argvars UNUSED, typval_T *rettv) { diff --git a/src/version.c b/src/version.c index bb3810302..d343e117c 100644 --- a/src/version.c +++ b/src/version.c @@ -724,6 +724,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1662, /**/ 1661, /**/ diff --git a/src/vim.h b/src/vim.h index 79d3add8a..26d3fc339 100644 --- a/src/vim.h +++ b/src/vim.h @@ -199,7 +199,7 @@ #endif #if defined(HAVE_WAYLAND) && defined(WANT_WAYLAND) -#define FEAT_WAYLAND +# define FEAT_WAYLAND #endif #ifdef NO_X11_INCLUDES @@ -264,7 +264,7 @@ #if (defined(UNIX) || defined(VMS)) \ && (!defined(MACOS_X) || defined(HAVE_CONFIG_H)) # include "os_unix.h" // bring lots of system header files -#else +#elif !defined(PROTO) // For all non-Unix systems: use old-fashioned signal(). # define mch_signal(signum, sighandler) signal(signum, sighandler) #endif @@ -1917,7 +1917,7 @@ typedef void *vim_acl_T; // dummy to pass an ACL to a function # define USE_INPUT_BUF #endif -#ifndef EINTR +#if !defined(EINTR) && !defined(PROTO) # define read_eintr(fd, buf, count) vim_read((fd), (buf), (count)) # define write_eintr(fd, buf, count) vim_write((fd), (buf), (count)) #endif @@ -2355,6 +2355,8 @@ typedef struct _stat64 stat_T; typedef struct stat stat_T; #endif +typedef struct soundcb_S soundcb_T; + #if (defined(__GNUC__) || defined(__clang__)) && !defined(__MINGW32__) # define ATTRIBUTE_FORMAT_PRINTF(fmt_idx, arg_idx) \ __attribute__((format(printf, fmt_idx, arg_idx))) @@ -2519,7 +2521,7 @@ typedef int (*opt_expand_cb_T)(optexpand_T *args, int *numMatches, char_u ***mat // This must come after including proto.h. // For VMS this is defined in macros.h. -#if !defined(MSWIN) && !defined(VMS) +#if !defined(MSWIN) && !defined(VMS) && !defined(PROTO) # define mch_open(n, m, p) open((n), (m), (p)) # define mch_fopen(n, p) fopen((n), (p)) #endif @@ -2776,7 +2778,7 @@ typedef int (*opt_expand_cb_T)(optexpand_T *args, int *numMatches, char_u ***mat // values for vim_handle_signal() that are not a signal #define SIGNAL_BLOCK (-1) #define SIGNAL_UNBLOCK (-2) -#if !defined(UNIX) && !defined(VMS) +#if !defined(UNIX) && !defined(VMS) && !defined(PROTO) # define vim_handle_signal(x) 0 #endif diff --git a/src/window.c b/src/window.c index 85971164a..723195a0f 100644 --- a/src/window.c +++ b/src/window.c @@ -2415,7 +2415,7 @@ win_equal_rec( } } -#ifdef FEAT_JOB_CHANNEL +#if defined(FEAT_JOB_CHANNEL) || defined(PROTO) void leaving_window(win_T *win) { -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/vim_dev/E1uopD8-009VS9-NA%40256bit.org.