diff --git a/Changes b/Changes index 02432c0..8a85059 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,8 @@ +Release ... +* 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). + Release 1/19/05 * The last release erroneously made 'X' work like 'x' in visual mode. It now deletes the character before the cursor again as documented (Bugreport by diff --git a/ex_put.c b/ex_put.c index a014356..0c886df 100644 --- a/ex_put.c +++ b/ex_put.c @@ -73,7 +73,7 @@ #ifndef lint #ifdef DOSCCS -static char sccsid[] = "@(#)ex_put.c 1.28 (gritter) 1/16/05"; +static char sccsid[] = "@(#)ex_put.c 1.29 (gritter) 1/20/05"; #endif #endif @@ -761,7 +761,7 @@ dontcr: plodput(vtube[outline][outcol-1]); } else plodput(i); - outcol += i == MULTICOL ? 1 : colsc(i); + outcol += i == MULTICOL ? 1 : colsc(i & ~MULTICOL); } if (plodcnt < 0) goto out; diff --git a/ex_version.c b/ex_version.c index b5b8904..e4343e1 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.117 (gritter) 1/19/05 + * Sccsid @(#)ex_version.c 1.118 (gritter) 1/20/05 */ #include "ex.h" -static char *versionstring = "@(#)Version 4.0 (gritter) 1/19/05"; +static char *versionstring = "@(#)Version 4.0 (gritter) 1/20/05"; void printver(void) diff --git a/ex_vget.c b/ex_vget.c index 5c6535a..2205ecc 100644 --- a/ex_vget.c +++ b/ex_vget.c @@ -73,7 +73,7 @@ #ifndef lint #ifdef DOSCCS -static char sccsid[] = "@(#)ex_vget.c 1.27 (gritter) 1/16/05"; +static char sccsid[] = "@(#)ex_vget.c 1.28 (gritter) 1/20/05"; #endif #endif @@ -168,9 +168,8 @@ readwc(int fd, int *cp) } if (pbuf[idx][0] & 0200) { sz = 1; - while (pbuf[idx][i-1] & 0200 && i < mb_cur_max && - (sz = mbrtowc(&wc, pbuf[idx], i, - &state[idx])) == (size_t)-2) { + while ((sz = mbrtowc(&wc, pbuf[idx], i, &state[idx])) + == (size_t)-2 && i < mb_cur_max) { if ((c = read(fd, &b, 1)) <= 0) { incompl[idx] = 1; break; diff --git a/ex_vput.c b/ex_vput.c index 589b3e8..8d8029a 100644 --- a/ex_vput.c +++ b/ex_vput.c @@ -73,7 +73,7 @@ #ifndef lint #ifdef DOSCCS -static char sccsid[] = "@(#)ex_vput.c 1.42 (gritter) 1/16/05"; +static char sccsid[] = "@(#)ex_vput.c 1.43 (gritter) 1/20/05"; #endif #endif @@ -268,7 +268,7 @@ vcursat(register char *cp) if (cp <= linebuf && linebuf[0] == 0) vgotoCL(value(NUMBER) << 3); else - vgotoCL(column(cp - 1)); + vgotoCL(column(cp + skipleft(linebuf, cp))); } /*