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
*** ../vim-7.2.172/src/auto/configure 2009-05-13 14:48:55.000000000 +0200
--- src/auto/configure 2009-05-14 22:08:12.000000000 +0200
***************
*** 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; }
*** ../vim-7.2.172/src/buffer.c 2009-05-13 20:47:07.000000000 +0200
--- src/buffer.c 2009-05-14 21:34:06.000000000 +0200
***************
*** 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;
*** ../vim-7.2.172/src/charset.c 2009-05-13 14:10:46.000000000 +0200
--- src/charset.c 2009-05-14 21:34:30.000000000 +0200
***************
*** 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;
*** ../vim-7.2.172/src/diff.c 2009-05-13 18:54:14.000000000 +0200
--- src/diff.c 2009-05-14 21:24:59.000000000 +0200
***************
*** 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);
*** ../vim-7.2.172/src/configure.in 2009-05-13 14:48:55.000000000 +0200
--- src/configure.in 2009-05-14 22:08:06.000000000 +0200
***************
*** 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)
*** ../vim-7.2.172/src/config.h.in 2009-03-02 02:44:54.000000000 +0100
--- src/config.h.in 2009-05-14 21:15:02.000000000 +0200
***************
*** 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
*** ../vim-7.2.172/src/edit.c 2009-05-13 18:54:14.000000000 +0200
--- src/edit.c 2009-05-14 21:35:08.000000000 +0200
***************
*** 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)
*** ../vim-7.2.172/src/ex_cmds.c 2009-05-14 21:51:06.000000000 +0200
--- src/ex_cmds.c 2009-05-14 21:11:01.000000000 +0200
***************
*** 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;
*** ../vim-7.2.172/src/ex_cmds2.c 2009-05-13 18:54:14.000000000 +0200
--- src/ex_cmds2.c 2009-05-14 21:35:40.000000000 +0200
***************
*** 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)
*** ../vim-7.2.172/src/version.c 2009-05-14 22:00:37.000000000 +0200
--- src/version.c 2009-05-14 22:14:51.000000000 +0200
***************
*** 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);
*** ../vim-7.2.172/src/vim.h 2009-05-13 18:54:14.000000000 +0200
--- src/vim.h 2009-05-14 21:17:51.000000000 +0200
***************
*** 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
*** ../vim-7.2.172/src/version.c 2009-05-14 22:00:37.000000000 +0200
--- src/version.c 2009-05-14 22:14:51.000000000 +0200
***************
*** 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 ///