summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2013-06-20 22:06:11 +0200
committerHelmut Grohne <helmut@subdivi.de>2013-06-22 11:42:02 +0200
commit648ae6dcf4e68efb1fb23caf454267506633494d (patch)
treed0b3c889f772ca80eff6ff9082b89feb2be9f5e7
parentc6606ca920acc132f714a553e78898fc97dc6112 (diff)
downloadtcvt-648ae6dcf4e68efb1fb23caf454267506633494d.tar.gz
confused terminfo "ind" and "ht"
-rwxr-xr-xtcvt.py28
1 files changed, 15 insertions, 13 deletions
diff --git a/tcvt.py b/tcvt.py
index 4e9250b..565c690 100755
--- a/tcvt.py
+++ b/tcvt.py
@@ -420,6 +420,12 @@ class Terminal:
def do_home(self):
self.screen.move(0, 0)
+ def do_ht(self):
+ y, x = self.screen.getyx()
+ _, xm = self.screen.getmaxyx()
+ x = min(x + 8 - x % 8, xm - 1)
+ self.screen.move(y, x)
+
def do_ich(self, n):
for _ in range(n):
self.screen.insch(ord(b' '))
@@ -432,10 +438,13 @@ class Terminal:
self.do_il(1)
def do_ind(self):
- y, x = self.screen.getyx()
- _, xm = self.screen.getmaxyx()
- x = min(x + 8 - x % 8, xm - 1)
- self.screen.move(y, x)
+ y, _ = self.screen.getyx()
+ ym, _ = self.screen.getmaxyx()
+ if y + 1 == ym:
+ self.screen.scroll()
+ self.screen.move(y, 0)
+ else:
+ self.screen.move(y+1, 0)
def do_smul(self):
self.screen.attron(curses.A_UNDERLINE)
@@ -452,21 +461,14 @@ class Terminal:
def feed_simple(self, char):
func = {
ord('\a'): self.do_bel,
+ ord('\n'): self.do_ind,
ord('\r'): self.do_cr,
- ord('\t'): self.do_ind,
+ ord('\t'): self.do_ht,
}.get(char)
if func:
func()
elif char in simple_characters:
self.addch(char)
- elif char == ord(b'\n'):
- y, _ = self.screen.getyx()
- ym, _ = self.screen.getmaxyx()
- if y + 1 == ym:
- self.screen.scroll()
- self.screen.move(y, 0)
- else:
- self.screen.move(y+1, 0)
elif char == 0x1b:
self.mode = (self.feed_esc,)
elif char == ord(b'\b'):