| To: vim-dev@vim.org |
| Subject: Patch 7.2.173 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.2.173 |
| Problem: Without lint there is no check for unused function arguments. |
| Solution: Use gcc -Wunused-parameter instead of lint. For a few files add |
| attributes to arguments that are known not to be used. |
| Files: src/auto/configure, src/buffer.c, src/charset.c, src/diff.c, |
| src/configure.in, src/config.h.in, src/edit.c, src/ex_cmds.c, |
| src/ex_cmds2.c, src/version.c, src/vim.h |
| |
| |
| |
| |
| |
| *** 10362,10367 **** |
| --- 10372,10427 ---- |
| |
| rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
| |
| + { $as_echo "$as_me:$LINENO: checking whether __attribute__((unused)) is allowed" >&5 |
| + $as_echo_n "checking whether __attribute__((unused)) is allowed... " >&6; } |
| + cat >conftest.$ac_ext <<_ACEOF |
| + /* confdefs.h. */ |
| + _ACEOF |
| + cat confdefs.h >>conftest.$ac_ext |
| + cat >>conftest.$ac_ext <<_ACEOF |
| + /* end confdefs.h. */ |
| + #include <stdio.h> |
| + int |
| + main () |
| + { |
| + int x __attribute__((unused)); |
| + ; |
| + return 0; |
| + } |
| + _ACEOF |
| + rm -f conftest.$ac_objext |
| + if { (ac_try="$ac_compile" |
| + case "(($ac_try" in |
| + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; |
| + *) ac_try_echo=$ac_try;; |
| + esac |
| + eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" |
| + $as_echo "$ac_try_echo") >&5 |
| + (eval "$ac_compile") 2>conftest.er1 |
| + ac_status=$? |
| + grep -v '^ *+' conftest.er1 >conftest.err |
| + rm -f conftest.er1 |
| + cat conftest.err >&5 |
| + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 |
| + (exit $ac_status); } && { |
| + test -z "$ac_c_werror_flag" || |
| + test ! -s conftest.err |
| + } && test -s conftest.$ac_objext; then |
| + { $as_echo "$as_me:$LINENO: result: yes" >&5 |
| + $as_echo "yes" >&6; }; cat >>confdefs.h <<\_ACEOF |
| + #define HAVE_ATTRIBUTE_UNUSED 1 |
| + _ACEOF |
| + |
| + else |
| + $as_echo "$as_me: failed program was:" >&5 |
| + sed 's/^/| /' conftest.$ac_ext >&5 |
| + |
| + { $as_echo "$as_me:$LINENO: result: no" >&5 |
| + $as_echo "no" >&6; } |
| + fi |
| + |
| + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
| + |
| if test "${ac_cv_header_elf_h+set}" = set; then |
| { $as_echo "$as_me:$LINENO: checking for elf.h" >&5 |
| $as_echo_n "checking for elf.h... " >&6; } |
| |
| |
| |
| *** 512,523 **** |
| * buf_freeall() - free all things allocated for a buffer that are related to |
| * the file. |
| */ |
| - /*ARGSUSED*/ |
| void |
| buf_freeall(buf, del_buf, wipe_buf) |
| buf_T *buf; |
| ! int del_buf; /* buffer is going to be deleted */ |
| ! int wipe_buf; /* buffer is going to be wiped out */ |
| { |
| #ifdef FEAT_AUTOCMD |
| int is_curbuf = (buf == curbuf); |
| --- 512,522 ---- |
| * buf_freeall() - free all things allocated for a buffer that are related to |
| * the file. |
| */ |
| void |
| buf_freeall(buf, del_buf, wipe_buf) |
| buf_T *buf; |
| ! int del_buf UNUSED; /* buffer is going to be deleted */ |
| ! int wipe_buf UNUSED; /* buffer is going to be wiped out */ |
| { |
| #ifdef FEAT_AUTOCMD |
| int is_curbuf = (buf == curbuf); |
| |
| *** 2437,2447 **** |
| * another tab page. |
| * Returns NULL when there isn't any info. |
| */ |
| - /*ARGSUSED*/ |
| static wininfo_T * |
| find_wininfo(buf, skip_diff_buffer) |
| buf_T *buf; |
| ! int skip_diff_buffer; |
| { |
| wininfo_T *wip; |
| |
| --- 2436,2445 ---- |
| * another tab page. |
| * Returns NULL when there isn't any info. |
| */ |
| static wininfo_T * |
| find_wininfo(buf, skip_diff_buffer) |
| buf_T *buf; |
| ! int skip_diff_buffer UNUSED; |
| { |
| wininfo_T *wip; |
| |
| |
| *** 4278,4287 **** |
| * Make "ffname" a full file name, set "sfname" to "ffname" if not NULL. |
| * "ffname" becomes a pointer to allocated memory (or NULL). |
| */ |
| - /*ARGSUSED*/ |
| void |
| fname_expand(buf, ffname, sfname) |
| ! buf_T *buf; |
| char_u **ffname; |
| char_u **sfname; |
| { |
| --- 4276,4284 ---- |
| * Make "ffname" a full file name, set "sfname" to "ffname" if not NULL. |
| * "ffname" becomes a pointer to allocated memory (or NULL). |
| */ |
| void |
| fname_expand(buf, ffname, sfname) |
| ! buf_T *buf UNUSED; |
| char_u **ffname; |
| char_u **sfname; |
| { |
| |
| *** 5577,5587 **** |
| * this buffer. Call this to wipe out a temp buffer that does not contain any |
| * marks. |
| */ |
| - /*ARGSUSED*/ |
| void |
| wipe_buffer(buf, aucmd) |
| buf_T *buf; |
| ! int aucmd; /* When TRUE trigger autocommands. */ |
| { |
| if (buf->b_fnum == top_file_num - 1) |
| --top_file_num; |
| --- 5574,5583 ---- |
| * this buffer. Call this to wipe out a temp buffer that does not contain any |
| * marks. |
| */ |
| void |
| wipe_buffer(buf, aucmd) |
| buf_T *buf; |
| ! int aucmd UNUSED; /* When TRUE trigger autocommands. */ |
| { |
| if (buf->b_fnum == top_file_num - 1) |
| --top_file_num; |
| |
| |
| |
| *** 1026,1038 **** |
| * string at start of line. Warning: *headp is only set if it's a non-zero |
| * value, init to 0 before calling. |
| */ |
| - /*ARGSUSED*/ |
| int |
| win_lbr_chartabsize(wp, s, col, headp) |
| win_T *wp; |
| char_u *s; |
| colnr_T col; |
| ! int *headp; |
| { |
| #ifdef FEAT_LINEBREAK |
| int c; |
| --- 1026,1037 ---- |
| * string at start of line. Warning: *headp is only set if it's a non-zero |
| * value, init to 0 before calling. |
| */ |
| int |
| win_lbr_chartabsize(wp, s, col, headp) |
| win_T *wp; |
| char_u *s; |
| colnr_T col; |
| ! int *headp UNUSED; |
| { |
| #ifdef FEAT_LINEBREAK |
| int c; |
| |
| |
| |
| *** 652,661 **** |
| * The buffers are written to a file, also for unmodified buffers (the file |
| * could have been produced by autocommands, e.g. the netrw plugin). |
| */ |
| - /*ARGSUSED*/ |
| void |
| ex_diffupdate(eap) |
| ! exarg_T *eap; /* can be NULL, it's not used */ |
| { |
| buf_T *buf; |
| int idx_orig; |
| --- 652,660 ---- |
| * The buffers are written to a file, also for unmodified buffers (the file |
| * could have been produced by autocommands, e.g. the netrw plugin). |
| */ |
| void |
| ex_diffupdate(eap) |
| ! exarg_T *eap UNUSED; /* can be NULL */ |
| { |
| buf_T *buf; |
| int idx_orig; |
| |
| *** 1094,1103 **** |
| /* |
| * Set options to show difs for the current window. |
| */ |
| - /*ARGSUSED*/ |
| void |
| ex_diffthis(eap) |
| ! exarg_T *eap; |
| { |
| /* Set 'diff', 'scrollbind' on and 'wrap' off. */ |
| diff_win_options(curwin, TRUE); |
| --- 1093,1101 ---- |
| /* |
| * Set options to show difs for the current window. |
| */ |
| void |
| ex_diffthis(eap) |
| ! exarg_T *eap UNUSED; |
| { |
| /* Set 'diff', 'scrollbind' on and 'wrap' off. */ |
| diff_win_options(curwin, TRUE); |
| |
| |
| |
| *** 2067,2072 **** |
| --- 2067,2077 ---- |
| AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME), |
| AC_MSG_RESULT(no)) |
| |
| + AC_MSG_CHECKING(whether __attribute__((unused)) is allowed) |
| + AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));], |
| + AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED), |
| + AC_MSG_RESULT(no)) |
| + |
| dnl Checks for header files. |
| AC_CHECK_HEADER(elf.h, HAS_ELF=1) |
| dnl AC_CHECK_HEADER(dwarf.h, SVR4=1) |
| |
| |
| |
| *** 30,35 **** |
| --- 30,38 ---- |
| /* Define when __DATE__ " " __TIME__ can be used */ |
| #undef HAVE_DATE_TIME |
| |
| + /* Define when __attribute__((unused)) can be used */ |
| + #undef HAVE_ATTRIBUTE_UNUSED |
| + |
| /* defined always when using configure */ |
| #undef UNIX |
| |
| |
| |
| |
| *** 1447,1456 **** |
| * Only redraw when there are no characters available. This speeds up |
| * inserting sequences of characters (e.g., for CTRL-R). |
| */ |
| - /*ARGSUSED*/ |
| static void |
| ins_redraw(ready) |
| ! int ready; /* not busy with something */ |
| { |
| if (!char_avail()) |
| { |
| --- 1447,1455 ---- |
| * Only redraw when there are no characters available. This speeds up |
| * inserting sequences of characters (e.g., for CTRL-R). |
| */ |
| static void |
| ins_redraw(ready) |
| ! int ready UNUSED; /* not busy with something */ |
| { |
| if (!char_avail()) |
| { |
| |
| *** 1962,1971 **** |
| * Only matters when there are composing characters. |
| * Return TRUE when something was deleted. |
| */ |
| - /*ARGSUSED*/ |
| static int |
| del_char_after_col(limit_col) |
| ! int limit_col; |
| { |
| #ifdef FEAT_MBYTE |
| if (enc_utf8 && limit_col >= 0) |
| --- 1961,1969 ---- |
| * Only matters when there are composing characters. |
| * Return TRUE when something was deleted. |
| */ |
| static int |
| del_char_after_col(limit_col) |
| ! int limit_col UNUSED; |
| { |
| #ifdef FEAT_MBYTE |
| if (enc_utf8 && limit_col >= 0) |
| |
| |
| |
| *** 43,52 **** |
| /* |
| * ":ascii" and "ga". |
| */ |
| - /*ARGSUSED*/ |
| void |
| do_ascii(eap) |
| ! exarg_T *eap; |
| { |
| int c; |
| int cval; |
| --- 43,51 ---- |
| /* |
| * ":ascii" and "ga". |
| */ |
| void |
| do_ascii(eap) |
| ! exarg_T *eap UNUSED; |
| { |
| int c; |
| int cval; |
| |
| *** 2373,2382 **** |
| * ^? ^H |
| * not ^? ^? |
| */ |
| - /*ARGSUSED*/ |
| void |
| do_fixdel(eap) |
| ! exarg_T *eap; |
| { |
| char_u *p; |
| |
| --- 2372,2380 ---- |
| * ^? ^H |
| * not ^? ^? |
| */ |
| void |
| do_fixdel(eap) |
| ! exarg_T *eap UNUSED; |
| { |
| char_u *p; |
| |
| |
| *** 6127,6136 **** |
| /* |
| * ":exusage" |
| */ |
| - /*ARGSUSED*/ |
| void |
| ex_exusage(eap) |
| ! exarg_T *eap; |
| { |
| do_cmdline_cmd((char_u *)"help ex-cmd-index"); |
| } |
| --- 6125,6133 ---- |
| /* |
| * ":exusage" |
| */ |
| void |
| ex_exusage(eap) |
| ! exarg_T *eap UNUSED; |
| { |
| do_cmdline_cmd((char_u *)"help ex-cmd-index"); |
| } |
| |
| *** 6138,6147 **** |
| /* |
| * ":viusage" |
| */ |
| - /*ARGSUSED*/ |
| void |
| ex_viusage(eap) |
| ! exarg_T *eap; |
| { |
| do_cmdline_cmd((char_u *)"help normal-index"); |
| } |
| --- 6135,6143 ---- |
| /* |
| * ":viusage" |
| */ |
| void |
| ex_viusage(eap) |
| ! exarg_T *eap UNUSED; |
| { |
| do_cmdline_cmd((char_u *)"help normal-index"); |
| } |
| |
| *** 7154,7163 **** |
| * Function given to ExpandGeneric() to obtain the sign command |
| * expansion. |
| */ |
| - /*ARGSUSED*/ |
| char_u * |
| get_sign_name(xp, idx) |
| ! expand_T *xp; |
| int idx; |
| { |
| sign_T *sp; |
| --- 7150,7158 ---- |
| * Function given to ExpandGeneric() to obtain the sign command |
| * expansion. |
| */ |
| char_u * |
| get_sign_name(xp, idx) |
| ! expand_T *xp UNUSED; |
| int idx; |
| { |
| sign_T *sp; |
| |
| |
| |
| *** 680,689 **** |
| /* |
| * ":breaklist". |
| */ |
| - /*ARGSUSED*/ |
| void |
| ex_breaklist(eap) |
| ! exarg_T *eap; |
| { |
| struct debuggy *bp; |
| int i; |
| --- 680,688 ---- |
| /* |
| * ":breaklist". |
| */ |
| void |
| ex_breaklist(eap) |
| ! exarg_T *eap UNUSED; |
| { |
| struct debuggy *bp; |
| int i; |
| |
| *** 1342,1355 **** |
| /* |
| * return TRUE if buffer was changed and cannot be abandoned. |
| */ |
| - /*ARGSUSED*/ |
| int |
| check_changed(buf, checkaw, mult_win, forceit, allbuf) |
| buf_T *buf; |
| int checkaw; /* do autowrite if buffer was changed */ |
| int mult_win; /* check also when several wins for the buf */ |
| int forceit; |
| ! int allbuf; /* may write all buffers */ |
| { |
| if ( !forceit |
| && bufIsChanged(buf) |
| --- 1341,1353 ---- |
| /* |
| * return TRUE if buffer was changed and cannot be abandoned. |
| */ |
| int |
| check_changed(buf, checkaw, mult_win, forceit, allbuf) |
| buf_T *buf; |
| int checkaw; /* do autowrite if buffer was changed */ |
| int mult_win; /* check also when several wins for the buf */ |
| int forceit; |
| ! int allbuf UNUSED; /* may write all buffers */ |
| { |
| if ( !forceit |
| && bufIsChanged(buf) |
| |
| *** 1759,1770 **** |
| * |
| * Return FAIL for failure, OK otherwise. |
| */ |
| - /*ARGSUSED*/ |
| static int |
| do_arglist(str, what, after) |
| char_u *str; |
| ! int what; |
| ! int after; /* 0 means before first one */ |
| { |
| garray_T new_ga; |
| int exp_count; |
| --- 1757,1767 ---- |
| * |
| * Return FAIL for failure, OK otherwise. |
| */ |
| static int |
| do_arglist(str, what, after) |
| char_u *str; |
| ! int what UNUSED; |
| ! int after UNUSED; /* 0 means before first one */ |
| { |
| garray_T new_ga; |
| int exp_count; |
| |
| *** 2549,2559 **** |
| |
| static void source_callback __ARGS((char_u *fname, void *cookie)); |
| |
| - /*ARGSUSED*/ |
| static void |
| source_callback(fname, cookie) |
| char_u *fname; |
| ! void *cookie; |
| { |
| (void)do_source(fname, FALSE, DOSO_NONE); |
| } |
| --- 2546,2555 ---- |
| |
| static void source_callback __ARGS((char_u *fname, void *cookie)); |
| |
| static void |
| source_callback(fname, cookie) |
| char_u *fname; |
| ! void *cookie UNUSED; |
| { |
| (void)do_source(fname, FALSE, DOSO_NONE); |
| } |
| |
| *** 2680,2689 **** |
| /* |
| * ":options" |
| */ |
| - /*ARGSUSED*/ |
| void |
| ex_options(eap) |
| ! exarg_T *eap; |
| { |
| cmd_source((char_u *)SYS_OPTWIN_FILE, NULL); |
| } |
| --- 2676,2684 ---- |
| /* |
| * ":options" |
| */ |
| void |
| ex_options(eap) |
| ! exarg_T *eap UNUSED; |
| { |
| cmd_source((char_u *)SYS_OPTWIN_FILE, NULL); |
| } |
| |
| *** 3190,3199 **** |
| /* |
| * ":scriptnames" |
| */ |
| - /*ARGSUSED*/ |
| void |
| ex_scriptnames(eap) |
| ! exarg_T *eap; |
| { |
| int i; |
| |
| --- 3185,3193 ---- |
| /* |
| * ":scriptnames" |
| */ |
| void |
| ex_scriptnames(eap) |
| ! exarg_T *eap UNUSED; |
| { |
| int i; |
| |
| |
| *** 3317,3328 **** |
| * Return a pointer to the line in allocated memory. |
| * Return NULL for end-of-file or some error. |
| */ |
| - /* ARGSUSED */ |
| char_u * |
| getsourceline(c, cookie, indent) |
| ! int c; /* not used */ |
| void *cookie; |
| ! int indent; /* not used */ |
| { |
| struct source_cookie *sp = (struct source_cookie *)cookie; |
| char_u *line; |
| --- 3311,3321 ---- |
| * Return a pointer to the line in allocated memory. |
| * Return NULL for end-of-file or some error. |
| */ |
| char_u * |
| getsourceline(c, cookie, indent) |
| ! int c UNUSED; |
| void *cookie; |
| ! int indent UNUSED; |
| { |
| struct source_cookie *sp = (struct source_cookie *)cookie; |
| char_u *line; |
| |
| *** 3649,3658 **** |
| * ":scriptencoding": Set encoding conversion for a sourced script. |
| * Without the multi-byte feature it's simply ignored. |
| */ |
| - /*ARGSUSED*/ |
| void |
| ex_scriptencoding(eap) |
| ! exarg_T *eap; |
| { |
| #ifdef FEAT_MBYTE |
| struct source_cookie *sp; |
| --- 3642,3650 ---- |
| * ":scriptencoding": Set encoding conversion for a sourced script. |
| * Without the multi-byte feature it's simply ignored. |
| */ |
| void |
| ex_scriptencoding(eap) |
| ! exarg_T *eap UNUSED; |
| { |
| #ifdef FEAT_MBYTE |
| struct source_cookie *sp; |
| |
| *** 4101,4110 **** |
| * Function given to ExpandGeneric() to obtain the possible arguments of the |
| * ":language" command. |
| */ |
| - /*ARGSUSED*/ |
| char_u * |
| get_lang_arg(xp, idx) |
| ! expand_T *xp; |
| int idx; |
| { |
| if (idx == 0) |
| --- 4093,4101 ---- |
| * Function given to ExpandGeneric() to obtain the possible arguments of the |
| * ":language" command. |
| */ |
| char_u * |
| get_lang_arg(xp, idx) |
| ! expand_T *xp UNUSED; |
| int idx; |
| { |
| if (idx == 0) |
| |
| |
| |
| *** 1623,1632 **** |
| /* |
| * ":intro": clear screen, display intro screen and wait for return. |
| */ |
| - /*ARGSUSED*/ |
| void |
| ex_intro(eap) |
| ! exarg_T *eap; |
| { |
| screenclear(); |
| intro_message(TRUE); |
| --- 1625,1633 ---- |
| /* |
| * ":intro": clear screen, display intro screen and wait for return. |
| */ |
| void |
| ex_intro(eap) |
| ! exarg_T *eap UNUSED; |
| { |
| screenclear(); |
| intro_message(TRUE); |
| |
| |
| |
| *** 262,267 **** |
| --- 262,275 ---- |
| # define __PARMS(x) __ARGS(x) |
| #endif |
| |
| + /* Mark unused function arguments with UNUSED, so that gcc -Wunused-parameter |
| + * can be used to check for mistakes. */ |
| + #ifdef HAVE_ATTRIBUTE_UNUSED |
| + # define UNUSED __attribute__((unused)) |
| + #else |
| + # define UNUSED |
| + #endif |
| + |
| /* if we're compiling in C++ (currently only KVim), the system |
| * headers must have the correct prototypes or nothing will build. |
| * conversely, our prototypes might clash due to throw() specifiers and |
| |
| |
| |
| *** 678,679 **** |
| --- 678,681 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 173, |
| /**/ |
| |
| -- |
| SIGIRO -- irony detected (iron core dumped) |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ download, build and distribute -- http://www.A-A-P.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |