On 8/30/07, Bram Moolenaar <[EMAIL PROTECTED]> wrote: > Hmm, perhaps the best way is to keep a flag that we changed the "s" > pointer, and then do "continue". I think that is what was originally > intended. It's also simpler and more straightforward. Can you check > that the valgrind error doesn't happen then? > > > *** ../vim-7.1.094/src/message.c Tue Aug 7 21:59:26 2007 > --- src/message.c Thu Aug 30 22:53:03 2007 > *************** > *** 1840,1845 **** > --- 1841,1847 ---- > char_u *sb_str = str; > int sb_col = msg_col; > int wrap; > + int did_last_char; > > did_wait_return = FALSE; > while ((maxlen < 0 || (int)(s - str) < maxlen) && *s != NUL) > *************** > *** 1909,1915 **** > --- 1911,1920 ---- > else > #endif > msg_screen_putchar(*s++, attr); > + did_last_char = TRUE; > } > + else > + did_last_char = FALSE; > > if (p_more) > /* store text for scrolling back */ > *************** > *** 1944,1954 **** > > /* When we displayed a char in last column need to check if there > * is still more. */ > ! if (*s >= ' ' > ! #ifdef FEAT_RIGHTLEFT > ! && !cmdmsg_rl > ! #endif > ! ) > continue; > } > > --- 1949,1955 ---- > > /* When we displayed a char in last column need to check if there > * is still more. */ > ! if (did_last_char) > continue; > }
Yes, that fixes it as well: valgrind no longer complains about accessing string beyond the end when I resize the terminal. There are 2 other odd things I observe though when resizing the terminal (before and after the patch so it's unrelated to this patch): 1/ when Ex command is longer than the terminal, ex command wraps it (good) but when the terminal becomes very narrow, the Ex command is displayed in a odd way with spaces in the middle. For example, with ex command ":012345678901234567890", when the terminal is narrow, it wraps as follows (good): :012345678901234 567890 But if terminal is resized even narrower, something odd begins to happen (which does not look expected). I observe something like this for example: :01234567 89 0 123456789 0 The spaces in the middle don't look expected. 2/ If my cursor is at the end of the ex command, resizing the terminal may move the cursor to somewhere in the middle of the Ex command. I don't think that's expected either. Those 2 issues are admittedly nitpicking, but they may indicate a bug which may possibly have other consequences. -- Dominique --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---
