[Commit] jove ChangeLog, 1.2, 1.3 jove.c, 1.6, 1.7 macros.c, 1.3, 1.4 re.c, 1.4, 1.5 screen.c, 1.5, 1.6

Keith Packard commit at keithp.com
Sun Oct 17 21:31:19 PDT 2004


Committed by: keithp

Update of /local/src/CVS/jove
In directory home.keithp.com:/tmp/cvs-serv29059

Modified Files:
	ChangeLog jove.c macros.c re.c screen.c 
Log Message:
2004-10-17  Keith Packard  <keithp at keithp.com>

	* jove.c: (dispatch):
	* macros.c: (PrefChar), (IsInsertChar):
	maps are only 0x80 long, bounds check correctly
	
	* re.c:
	Let ANYC match any UTF-8 sequence

	* screen.c: (set_scroll):
	Force cursor to HOME when setting scrolling region to work around
	buggy emulators.


Index: ChangeLog
===================================================================
RCS file: /local/src/CVS/jove/ChangeLog,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- ChangeLog	10 Oct 2004 07:36:02 -0000	1.2
+++ ChangeLog	18 Oct 2004 04:31:16 -0000	1.3
@@ -1,3 +1,16 @@
+2004-10-17  Keith Packard  <keithp at keithp.com>
+
+	* jove.c: (dispatch):
+	* macros.c: (PrefChar), (IsInsertChar):
+	maps are only 0x80 long, bounds check correctly
+	
+	* re.c:
+	Let ANYC match any UTF-8 sequence
+
+	* screen.c: (set_scroll):
+	Force cursor to HOME when setting scrolling region to work around
+	buggy emulators.
+
 2004-10-10  Keith Packard  <keithp at keithp.com>
 
 	* fp.c:

Index: jove.c
===================================================================
RCS file: /local/src/CVS/jove/jove.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- jove.c	10 Jun 2003 17:32:07 -0000	1.6
+++ jove.c	18 Oct 2004 04:31:16 -0000	1.7
@@ -708,8 +708,8 @@
 		c = 033;
 	}
 	this_cmd = 0;
-	if (c < 0x100)
-		cp = mainmap[c & 0177];
+	if (c < 0x80)
+		cp = mainmap[c];
 	else
 		cp = mainmap['a'];
 

Index: macros.c
===================================================================
RCS file: /local/src/CVS/jove/macros.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- macros.c	15 May 2003 06:00:14 -0000	1.3
+++ macros.c	18 Oct 2004 04:31:16 -0000	1.4
@@ -321,12 +321,12 @@
 static
 PrefChar(c)
 {
-	return c <= 0x100 && IsPrefix(mainmap[c]) != 0;
+	return c < 0x80 && IsPrefix(mainmap[c]) != 0;
 }
 
 IsInsertChar(c)
 {
-	return (int) (c <= 0x100 && (mainmap[c]->Type & FUNCINS) == FUNCINS);
+	return (int) (c > 0x80 || (mainmap[c]->Type & FUNCINS) == FUNCINS);
 }
 
 Forget()

Index: re.c
===================================================================
RCS file: /local/src/CVS/jove/re.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- re.c	15 May 2003 06:00:14 -0000	1.4
+++ re.c	18 Oct 2004 04:31:16 -0000	1.5
@@ -374,9 +374,15 @@
 		return 0;
 
 	case ANYC:
-		if (*linep++ != 0)
-			continue;
-		return 0;
+		n = *linep++;
+		if (!n)
+			return 0;
+		if ((n & 0xc0) == 0xc0)
+		{
+			while (*linep++ & 0x80);
+			--linep;
+		}
+		continue;
 
 	case AT_BOW:
 		if (ismword(*linep) && (linep == REbolp || !ismword(linep[-1])))

Index: screen.c
===================================================================
RCS file: /local/src/CVS/jove/screen.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- screen.c	12 Aug 2004 04:29:56 -0000	1.5
+++ screen.c	18 Oct 2004 04:31:16 -0000	1.6
@@ -487,6 +487,13 @@
 		} else {
 			putpad (tgoto (CS, bottom, top), 1);
 		}
+		/*
+		 * Correct VT100 behaviour is to move to the top of the screen
+		 * when the scrolling region is set, but many emulators leave
+		 * the cursor position alone.  Force the cursor to a known
+		 * position to work around this bug
+		 */
+		putpad (HO, 1);
 	}
 }
 




More information about the Commit mailing list