Handle leading zeroes in CSI codes
This commit is contained in:
parent
d132ba5a48
commit
56cfc7df3b
@ -15,9 +15,16 @@ static unsigned int pow10[10] = {
|
||||
static inline unsigned int
|
||||
utoi(uint32_t *buf, unsigned int sz) {
|
||||
unsigned int ans = 0;
|
||||
uint32_t *p = buf;
|
||||
// Ignore leading zeros
|
||||
while(sz > 0) {
|
||||
printf("*p=%c\n", *p);
|
||||
if (*p == '0') { p++; sz--; }
|
||||
else break;
|
||||
}
|
||||
if (sz < sizeof(pow10)/sizeof(pow10[10])) {
|
||||
for (int i = sz-1, j=0; i >=0; i--, j++) {
|
||||
ans += (buf[i] - '0') * pow10[j];
|
||||
ans += (p[i] - '0') * pow10[j];
|
||||
}
|
||||
}
|
||||
return ans;
|
||||
|
||||
@ -85,6 +85,7 @@ class TestParser(BaseTest):
|
||||
pb('\033[4H', ('screen_cursor_position', 4, 1))
|
||||
pb('\033[3;2H', ('screen_cursor_position', 3, 2))
|
||||
pb('\033[3;2;H', ('screen_cursor_position', 3, 2))
|
||||
pb('\033[00000000003;0000000000000002H', ('screen_cursor_position', 3, 2))
|
||||
self.ae(s.cursor.x, 1), self.ae(s.cursor.y, 2)
|
||||
pb('\033[J', ('screen_erase_in_display', 0, 0))
|
||||
pb('\033[?J', ('screen_erase_in_display', 0, 1))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user