| To: vim_dev@googlegroups.com |
| Subject: Patch 7.3.677 |
| 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.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 |
| |
| |
| |
| |
| |
| *** 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; |
| } |
| |
| |
| |
| |
| *** 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)); |
| |
| |
| |
| *** 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; |
| |
| |
| |
| *** 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); |
| |
| |
| |
| *** 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); |
| |
| |
| |
| *** 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); |
| |
| |
| |
| *** 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 /// |