diff --git a/7.3.677 b/7.3.677 new file mode 100644 index 0000000..bf6e91f --- /dev/null +++ b/7.3.677 @@ -0,0 +1,268 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.677 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.677 +Problem: buf_spname() is used inconsistently. +Solution: Make the return type a char_u pointer. Check the size of the + returned string. +Files: src/buffer.c, src/proto/buffer.pro, src/ex_cmds2.c, + src/ex_docmd.c, src/memline.c, src/screen.c + + +*** ../vim-7.3.676/src/buffer.c 2012-10-03 17:12:43.000000000 +0200 +--- src/buffer.c 2012-10-03 18:14:34.000000000 +0200 +*************** +*** 2635,2641 **** + continue; + msg_putchar('\n'); + if (buf_spname(buf) != NULL) +! STRCPY(NameBuff, buf_spname(buf)); + else + home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE); + +--- 2635,2641 ---- + continue; + msg_putchar('\n'); + if (buf_spname(buf) != NULL) +! vim_strncpy(NameBuff, buf_spname(buf), MAXPATHL - 1); + else + home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE); + +*************** +*** 3350,3356 **** + else + { + if (buf_spname(curbuf) != NULL) +! i_name = (char_u *)buf_spname(curbuf); + else /* use file name only in icon */ + i_name = gettail(curbuf->b_ffname); + *i_str = NUL; +--- 3350,3356 ---- + else + { + if (buf_spname(curbuf) != NULL) +! i_name = buf_spname(curbuf); + else /* use file name only in icon */ + i_name = gettail(curbuf->b_ffname); + *i_str = NUL; +*************** +*** 3766,3772 **** + case STL_FILENAME: + fillable = FALSE; /* don't change ' ' to fillchar */ + if (buf_spname(wp->w_buffer) != NULL) +! STRCPY(NameBuff, buf_spname(wp->w_buffer)); + else + { + t = (opt == STL_FULLPATH) ? wp->w_buffer->b_ffname +--- 3766,3772 ---- + case STL_FILENAME: + fillable = FALSE; /* don't change ' ' to fillchar */ + if (buf_spname(wp->w_buffer) != NULL) +! vim_strncpy(NameBuff, buf_spname(wp->w_buffer), MAXPATHL - 1); + else + { + t = (opt == STL_FULLPATH) ? wp->w_buffer->b_ffname +*************** +*** 5244,5250 **** + * Return special buffer name. + * Returns NULL when the buffer has a normal file name. + */ +! char * + buf_spname(buf) + buf_T *buf; + { +--- 5244,5250 ---- + * Return special buffer name. + * Returns NULL when the buffer has a normal file name. + */ +! char_u * + buf_spname(buf) + buf_T *buf; + { +*************** +*** 5263,5271 **** + goto win_found; + win_found: + if (win != NULL && win->w_llist_ref != NULL) +! return _(msg_loclist); + else +! return _(msg_qflist); + } + #endif + #ifdef FEAT_QUICKFIX +--- 5263,5271 ---- + goto win_found; + win_found: + if (win != NULL && win->w_llist_ref != NULL) +! return (char_u *)_(msg_loclist); + else +! return (char_u *)_(msg_qflist); + } + #endif + #ifdef FEAT_QUICKFIX +*************** +*** 5274,5285 **** + if (bt_nofile(buf)) + { + if (buf->b_sfname != NULL) +! return (char *)buf->b_sfname; +! return _("[Scratch]"); + } + #endif + if (buf->b_fname == NULL) +! return _("[No Name]"); + return NULL; + } + +--- 5274,5285 ---- + if (bt_nofile(buf)) + { + if (buf->b_sfname != NULL) +! return buf->b_sfname; +! return (char_u *)_("[Scratch]"); + } + #endif + if (buf->b_fname == NULL) +! return (char_u *)_("[No Name]"); + return NULL; + } + +*** ../vim-7.3.676/src/proto/buffer.pro 2012-07-10 15:18:18.000000000 +0200 +--- src/proto/buffer.pro 2012-10-03 18:17:58.000000000 +0200 +*************** +*** 51,57 **** + 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)); + 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)); +--- 51,57 ---- + void do_modelines __ARGS((int flags)); + int read_viminfo_bufferlist __ARGS((vir_T *virp, int writing)); + void write_viminfo_bufferlist __ARGS((FILE *fp)); +! 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)); +*** ../vim-7.3.676/src/ex_cmds2.c 2012-06-29 12:57:03.000000000 +0200 +--- src/ex_cmds2.c 2012-10-03 18:15:26.000000000 +0200 +*************** +*** 1688,1695 **** + 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)) + { + save = no_wait_return; + no_wait_return = FALSE; +--- 1688,1694 ---- + msg_didout = FALSE; + } + if (EMSG2(_("E162: No write since last change for buffer \"%s\""), +! buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname)) + { + save = no_wait_return; + no_wait_return = FALSE; +*** ../vim-7.3.676/src/ex_docmd.c 2012-09-18 16:47:00.000000000 +0200 +--- src/ex_docmd.c 2012-10-03 18:15:47.000000000 +0200 +*************** +*** 7602,7608 **** + msg_putchar(bufIsChanged(wp->w_buffer) ? '+' : ' '); + msg_putchar(' '); + if (buf_spname(wp->w_buffer) != NULL) +! STRCPY(IObuff, buf_spname(wp->w_buffer)); + else + home_replace(wp->w_buffer, wp->w_buffer->b_fname, + IObuff, IOSIZE, TRUE); +--- 7602,7608 ---- + msg_putchar(bufIsChanged(wp->w_buffer) ? '+' : ' '); + msg_putchar(' '); + if (buf_spname(wp->w_buffer) != NULL) +! vim_strncpy(IObuff, buf_spname(wp->w_buffer), IOSIZE - 1); + else + home_replace(wp->w_buffer, wp->w_buffer->b_fname, + IObuff, IOSIZE, TRUE); +*** ../vim-7.3.676/src/memline.c 2011-10-26 11:44:15.000000000 +0200 +--- src/memline.c 2012-10-03 18:18:23.000000000 +0200 +*************** +*** 780,788 **** + 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); + --no_wait_return; + } + +--- 780,786 ---- + 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 ? buf_spname(buf) : buf->b_fname); + --no_wait_return; + } + +*************** +*** 1315,1321 **** + smsg((char_u *)_("Using swap file \"%s\""), NameBuff); + + if (buf_spname(curbuf) != NULL) +! STRCPY(NameBuff, buf_spname(curbuf)); + else + home_replace(NULL, curbuf->b_ffname, NameBuff, MAXPATHL, TRUE); + smsg((char_u *)_("Original file \"%s\""), NameBuff); +--- 1313,1319 ---- + smsg((char_u *)_("Using swap file \"%s\""), NameBuff); + + if (buf_spname(curbuf) != NULL) +! 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); +*** ../vim-7.3.676/src/screen.c 2012-08-23 18:55:50.000000000 +0200 +--- src/screen.c 2012-10-03 18:17:25.000000000 +0200 +*************** +*** 9876,9882 **** + buf_T *buf; + { + if (buf_spname(buf) != NULL) +! STRCPY(NameBuff, buf_spname(buf)); + else + home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE); + trans_characters(NameBuff, MAXPATHL); +--- 9876,9882 ---- + buf_T *buf; + { + if (buf_spname(buf) != NULL) +! vim_strncpy(NameBuff, buf_spname(buf), MAXPATHL - 1); + else + home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE); + trans_characters(NameBuff, MAXPATHL); +*** ../vim-7.3.676/src/version.c 2012-10-03 18:06:55.000000000 +0200 +--- src/version.c 2012-10-03 18:22:18.000000000 +0200 +*************** +*** 721,722 **** +--- 721,724 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 677, + /**/ + +-- +bashian roulette: +$ ((RANDOM%6)) || rm -rf ~ + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///