* 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.
This commit is contained in:
Gunnar Ritter 2005-01-22 00:03:30 +00:00
parent 11445d2b92
commit e444210570
3 changed files with 10 additions and 4 deletions

View File

@ -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).

View File

@ -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)

View File

@ -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--;
}