diff --git a/Changes b/Changes index 8a85059..d40911e 100644 --- a/Changes +++ b/Changes @@ -1,4 +1,10 @@ Release ... +* Fixed a segmentation fault that occured in multibyte locales when operation + was continued after vi had been stopped by ^Z, with the cursor positioned + in a line longer than the terminal width as the last line of the current + screen. +* In a multibyte locale, when operation was continued after vi had been + stopped by ^Z with the cursor positioned at the last line of the screen * Made it work for Big5 locales (Patches by Matthew Fischer). * Fixed a problem with the 'r' command in EUC-JP and Big5 locales (Bugreport by Matthew Fischer). diff --git a/ex_version.c b/ex_version.c index e4343e1..e8bcd6c 100644 --- a/ex_version.c +++ b/ex_version.c @@ -70,12 +70,12 @@ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * Sccsid @(#)ex_version.c 1.118 (gritter) 1/20/05 + * Sccsid @(#)ex_version.c 1.119 (gritter) 1/22/05 */ #include "ex.h" -static char *versionstring = "@(#)Version 4.0 (gritter) 1/20/05"; +static char *versionstring = "@(#)Version 4.0 (gritter) 1/22/05"; void printver(void) diff --git a/ex_vput.c b/ex_vput.c index 8d8029a..463635c 100644 --- a/ex_vput.c +++ b/ex_vput.c @@ -73,7 +73,7 @@ #ifndef lint #ifdef DOSCCS -static char sccsid[] = "@(#)ex_vput.c 1.43 (gritter) 1/20/05"; +static char sccsid[] = "@(#)ex_vput.c 1.44 (gritter) 1/22/05"; #endif #endif @@ -373,7 +373,7 @@ vgoto(register int y, register int x) x %= WCOLS; } #ifdef MB - if (y >= 0 && mb_cur_max > 1 && !insmode) { + if (y >= 0 && y <= WLINES && mb_cur_max > 1 && !insmode) { while (x > 0 && (vtube[y][x]&(MULTICOL|TRIM)) == MULTICOL) x--; }