From c772fd46fb1902807b5908245c80492078706477 Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Mon, 9 Jan 2017 14:26:55 +0100 Subject: Fix tab display and entry --- buffer.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'buffer.cpp') diff --git a/buffer.cpp b/buffer.cpp index cc93e00..f077bbb 100644 --- a/buffer.cpp +++ b/buffer.cpp @@ -86,7 +86,14 @@ vector Buffer::layoutLine(const string &line,i64 linenum,i64 i64 linepart=0,fromx=0; for(i64 i=0;i<(i64)line.size();i++){ char c=line[i]; - string repr=showChar(c); + string repr; + bool special=false; + if(c=='\t'){ + repr=string(4-cur.size()%4,' '); + } else { + repr=showChar(c); + special=repr.size()>1; + } assert(repr.size()>0); if(x+(i64)repr.size()>=width){ layout.push_back({linenum,linepart,fromx,move(cur)}); @@ -95,7 +102,7 @@ vector Buffer::layoutLine(const string &line,i64 linenum,i64 fromx=i; x=0; } - Cell cell={'\0',repr.size()!=1,i}; + Cell cell={'\0',special,i}; for(char rc : repr){ cell.c=rc; cur.push_back(cell); -- cgit v1.2.3-54-g00ecf