? cscope.out
? doc/reference/vte-overrides.txt
? doc/reference/tmpl/internals.sgml
? gnome-pty-helper/.in
? src/.ns.out.swp
? src/ns.out
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/vte/ChangeLog,v
retrieving revision 1.558
diff -u -r1.558 ChangeLog
--- ChangeLog	15 Jun 2005 04:02:00 -0000	1.558
+++ ChangeLog	7 Jul 2005 22:21:45 -0000
@@ -1,3 +1,13 @@
+2005-07-08  Michele Baldessari  <michele@pupazzo.org>
+
+	* src/table.c: (_vte_table_addi), (main):
+	Added support to "%m" to match also
+	";{number};{number};...<value>"
+	"{number};<value>"
+	";<value>"
+	As per http://vt100.net/docs/vt100-ug/chapter3.html#S3.3.2)
+	Closes most of bug #305507
+
 2005-06-15  Theppitak Karoonboonyanan  <thep@linux.thai.net>
 
 	* configure.in: Added 'th' (Thai) to ALL_LINGUAS.
Index: src/table.c
===================================================================
RCS file: /cvs/gnome/vte/src/table.c,v
retrieving revision 1.18
diff -u -r1.18 table.c
--- src/table.c	29 Apr 2005 20:17:41 -0000	1.18
+++ src/table.c	7 Jul 2005 22:21:46 -0000
@@ -199,7 +199,17 @@
 						b->data + initial,
 						b->len - initial,
 						result, quark, inc);
+				/* Also allow ; as a single prefix, only when %m is specified */
+				g_byte_array_set_size(b, 0);
+				g_byte_array_append(b, original, initial);
+				g_byte_array_append(b, ";", 1);
+				g_byte_array_append(b, pattern + 2, length - 2);
+				_vte_table_addi(table, b->data, b->len,
+						b->data + initial,
+						b->len - initial,
+						result, quark, inc);
 			}
+			
 			for (i = 1;
 			     i <= VTE_TABLE_MAX_NUMERIC_DEPTH;
 			     i++) {
@@ -216,7 +226,43 @@
 						b->data, b->len,
 						b->data + initial, b->len - initial,
 						result, quark, inc);
+				
 			}
+
+			for (i = 1;
+			     i <= VTE_TABLE_MAX_NUMERIC_DEPTH;
+			     i++) {
+				g_byte_array_set_size(b, 0);
+				g_byte_array_append(b, original, initial);
+				for (j = 1; j <= i; j++) {
+					g_byte_array_append(b, ";", 1);
+					g_byte_array_append(b, "%d", 2);
+				}
+				g_byte_array_append(b, pattern + 2, length - 2);
+				_vte_table_addi(table,
+						b->data, b->len,
+						b->data + initial, b->len - initial,
+						result, quark, inc);
+				
+			}
+
+			for (i = 1;
+			     i <= VTE_TABLE_MAX_NUMERIC_DEPTH;
+			     i++) {
+				g_byte_array_set_size(b, 0);
+				g_byte_array_append(b, original, initial);
+				for (j = 1; j <= i; j++) {
+					g_byte_array_append(b, "%d", 2);
+					g_byte_array_append(b, ";", 1);
+				}
+				g_byte_array_append(b, pattern + 2, length - 2);
+				_vte_table_addi(table,
+						b->data, b->len,
+						b->data + initial, b->len - initial,
+						result, quark, inc);
+				
+			}
+
 			g_byte_array_free(b, TRUE);
 			return;
 		}
@@ -816,6 +862,7 @@
 		"]3;3h",
 		"[3;3k",
 		"[3;3kj",
+		"[;1m",
 		"s",
 	};
 	const char *result, *p;
@@ -836,6 +883,7 @@
 	_vte_table_add(table, "[%d;%d;%dm", 11, "set-graphic-rendition", 0);
 	_vte_table_add(table, "[%dm", 5, "set-graphic-rendition", 0);
 	_vte_table_add(table, "[m", 3, "set-graphic-rendition", 0);
+	_vte_table_add(table, "[%mm", 5, "set-graphic-rendition", 0);
 	_vte_table_add(table, "]3;%s", 7, "set-icon-title", 0);
 	_vte_table_add(table, "]4;%s", 7, "set-window-title", 0);
 	printf("Table contents:\n");
