summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2012-10-03 18:25:00 +0200
committerBram Moolenaar <Bram@vim.org>2012-10-03 18:25:00 +0200
commite1704bada4554f4edc95ac6be50144dd7b95332b (patch)
treea9e9a1fd34a6ed5ba126b8dfc4ecd45dfedff394
parentb213da0b5742c6615837436ef4f75a416a534f06 (diff)
updated for version 7.3.677v7.3.677
Problem: buf_spname() is used inconsistently. Solution: Make the return type a char_u pointer. Check the size of the returned string.
-rw-r--r--src/buffer.c18
-rw-r--r--src/ex_cmds2.c3
-rw-r--r--src/ex_docmd.c2
-rw-r--r--src/memline.c6
-rw-r--r--src/proto/buffer.pro2
-rw-r--r--src/screen.c2
-rw-r--r--src/version.c2
7 files changed, 17 insertions, 18 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 5998523219..05da2860dd 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2635,7 +2635,7 @@ buflist_list(eap)
continue;
msg_putchar('\n');
if (buf_spname(buf) != NULL)
- STRCPY(NameBuff, buf_spname(buf));
+ vim_strncpy(NameBuff, buf_spname(buf), MAXPATHL - 1);
else
home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE);
@@ -3350,7 +3350,7 @@ maketitle()
else
{
if (buf_spname(curbuf) != NULL)
- i_name = (char_u *)buf_spname(curbuf);
+ i_name = buf_spname(curbuf);
else /* use file name only in icon */
i_name = gettail(curbuf->b_ffname);
*i_str = NUL;
@@ -3766,7 +3766,7 @@ build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar,
case STL_FILENAME:
fillable = FALSE; /* don't change ' ' to fillchar */
if (buf_spname(wp->w_buffer) != NULL)
- STRCPY(NameBuff, buf_spname(wp->w_buffer));
+ vim_strncpy(NameBuff, buf_spname(wp->w_buffer), MAXPATHL - 1);
else
{
t = (opt == STL_FULLPATH) ? wp->w_buffer->b_ffname
@@ -5244,7 +5244,7 @@ write_viminfo_bufferlist(fp)
* Return special buffer name.
* Returns NULL when the buffer has a normal file name.
*/
- char *
+ char_u *
buf_spname(buf)
buf_T *buf;
{
@@ -5263,9 +5263,9 @@ buf_spname(buf)
goto win_found;
win_found:
if (win != NULL && win->w_llist_ref != NULL)
- return _(msg_loclist);
+ return (char_u *)_(msg_loclist);
else
- return _(msg_qflist);
+ return (char_u *)_(msg_qflist);
}
#endif
#ifdef FEAT_QUICKFIX
@@ -5274,12 +5274,12 @@ win_found:
if (bt_nofile(buf))
{
if (buf->b_sfname != NULL)
- return (char *)buf->b_sfname;
- return _("[Scratch]");
+ return buf->b_sfname;
+ return (char_u *)_("[Scratch]");
}
#endif
if (buf->b_fname == NULL)
- return _("[No Name]");
+ return (char_u *)_("[No Name]");
return NULL;
}
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index d3bf04fade..de190e78c3 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1688,8 +1688,7 @@ check_changed_any(hidden)
msg_didout = FALSE;
}
if (EMSG2(_("E162: No write since last change for buffer \"%s\""),
- buf_spname(buf) != NULL ? (char_u *)buf_spname(buf) :
- buf->b_fname))
+ buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname))
{
save = no_wait_return;
no_wait_return = FALSE;
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index ebc8b98d11..311f4f0e91 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7602,7 +7602,7 @@ ex_tabs(eap)
msg_putchar(bufIsChanged(wp->w_buffer) ? '+' : ' ');
msg_putchar(' ');
if (buf_spname(wp->w_buffer) != NULL)
- STRCPY(IObuff, buf_spname(wp->w_buffer));
+ vim_strncpy(IObuff, buf_spname(wp->w_buffer), IOSIZE - 1);
else
home_replace(wp->w_buffer, wp->w_buffer->b_fname,
IObuff, IOSIZE, TRUE);
diff --git a/src/memline.c b/src/memline.c
index 2a2426d672..fecd876373 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -780,9 +780,7 @@ ml_open_file(buf)
need_wait_return = TRUE; /* call wait_return later */
++no_wait_return;
(void)EMSG2(_("E303: Unable to open swap file for \"%s\", recovery impossible"),
- buf_spname(buf) != NULL
- ? (char_u *)buf_spname(buf)
- : buf->b_fname);
+ buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname);
--no_wait_return;
}
@@ -1315,7 +1313,7 @@ ml_recover()
smsg((char_u *)_("Using swap file \"%s\""), NameBuff);
if (buf_spname(curbuf) != NULL)
- STRCPY(NameBuff, buf_spname(curbuf));
+ vim_strncpy(NameBuff, buf_spname(curbuf), MAXPATHL - 1);
else
home_replace(NULL, curbuf->b_ffname, NameBuff, MAXPATHL, TRUE);
smsg((char_u *)_("Original file \"%s\""), NameBuff);
diff --git a/src/proto/buffer.pro b/src/proto/buffer.pro
index 411c5af57e..85aeddaef5 100644
--- a/src/proto/buffer.pro
+++ b/src/proto/buffer.pro
@@ -51,7 +51,7 @@ void ex_buffer_all __ARGS((exarg_T *eap));
void do_modelines __ARGS((int flags));
int read_viminfo_bufferlist __ARGS((vir_T *virp, int writing));
void write_viminfo_bufferlist __ARGS((FILE *fp));
-char *buf_spname __ARGS((buf_T *buf));
+char_u *buf_spname __ARGS((buf_T *buf));
void buf_addsign __ARGS((buf_T *buf, int id, linenr_T lnum, int typenr));
linenr_T buf_change_sign_type __ARGS((buf_T *buf, int markId, int typenr));
int buf_getsigntype __ARGS((buf_T *buf, linenr_T lnum, int type));
diff --git a/src/screen.c b/src/screen.c
index 92eb232ef0..0e76d8cef2 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -9876,7 +9876,7 @@ get_trans_bufname(buf)
buf_T *buf;
{
if (buf_spname(buf) != NULL)
- STRCPY(NameBuff, buf_spname(buf));
+ vim_strncpy(NameBuff, buf_spname(buf), MAXPATHL - 1);
else
home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE);
trans_characters(NameBuff, MAXPATHL);
diff --git a/src/version.c b/src/version.c
index 38f132467c..e0bff5328f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -720,6 +720,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 677,
+/**/
676,
/**/
675,