65 Commits

Author SHA1 Message Date
Kovid Goyal
fc7ec1d3f7
Get rid of the option to use the system wcwidth
The system wcwidth() is often wrong. Not to mention that if you SSH into
a different machine, then you have a potentially different wcwidth. The
only sane way to deal with this is to use the unicode standard.
2018-02-04 21:02:30 +05:30
Kovid Goyal
80301d465b
Handle non-BMP combining characters
Use a level of indirection to store combining characters. This allows
combining characters to be stored using only two bytes, even if they are
after USHORT_MAX
2018-01-18 16:25:42 +05:30
Kovid Goyal
7ed835cf13
Fix a crash when detecting URLs continued onto multiple lines
Fixes #244
2017-12-27 06:35:09 +05:30
Kovid Goyal
27cd303a05
Centralize code to convert to SGR
Conversion from formatting attributes to SGR now always goes through a
Cursor.
2017-12-04 10:51:06 +05:30
Kovid Goyal
73b501c961
Make color parsing a little more robust
Add a few tests for it
2017-12-01 20:02:47 +05:30
Kovid Goyal
6c838bbc28
Implement dirty line tracking 2017-11-09 16:55:45 +05:30
Kovid Goyal
898e87aa7b
Dont allocate space for dummy fonts
Also move sprite_map test into fonts test module
2017-11-09 16:55:42 +05:30
Kovid Goyal
f25d2ea540
Rip out the old sprite update code 2017-11-09 16:45:45 +05:30
Kovid Goyal
2443d76ac3
Apparently pep8 now just does not let you use the name l
This is one of the most hilarious bugs in pep8 I have come across
2017-10-23 17:40:53 +05:30
Kovid Goyal
8b54df31ef
Fix new pep8 ambiguous name warning 2017-10-23 17:33:57 +05:30
Kovid Goyal
3ca45ab241
Fix cursor moving one line up when resizing 2017-09-20 10:59:31 +05:30
Kovid Goyal
464291bbb1
Port click on URL code to C 2017-09-15 10:45:27 +05:30
Kovid Goyal
271b623f82
More URL detection tests 2017-09-15 10:45:25 +05:30
Kovid Goyal
88d896e745
Move function to detect URLs into C code 2017-09-15 10:45:25 +05:30
Kovid Goyal
c683725434
Get rid of the timers infrastructure
It is not needed with a pure state machine.
Note that drag scrolling still has to be ported from using
timers.
2017-09-15 10:45:24 +05:30
Kovid Goyal
bc97cfa024
Use a null to represent a blank rather than a space
This has performance benefits when clearing (can use a single
memset). Also allows detecting trailing whitespace on lines correctly.
2017-09-15 10:45:16 +05:30
Kovid Goyal
6127d2d122
Make the sprite map globally accessible from C code as well as python code
The lock was removed as the Python GIL is sufficient to serialize access
to the SpriteMap structure.
2017-09-15 10:45:10 +05:30
Kovid Goyal
a429bcbb22
Dont use the glfw timer function as it requires glfwInit 2017-09-15 10:45:07 +05:30
Kovid Goyal
9c501b37ea Allow skipping of tests that depend on a modern wcwidth() via an env var 2017-01-10 13:52:15 +05:30
Kovid Goyal
2517e4a8a0 Expand the wcwidth test 2017-01-09 07:13:14 +05:30
Kovid Goyal
b4af2ff314 The cursor visible (DECTCEM) property should be global, not affected by save/restore of cursor or alternate screens 2017-01-04 10:02:39 +05:30
Kovid Goyal
b6c639c487 Fix incorrect handling of trailing whitespace for lines in the history buffer when resizing 2016-12-11 14:48:00 +05:30
Kovid Goyal
ae3f555f51 HistoryBuf.as_ansi() 2016-12-09 19:39:20 +05:30
Kovid Goyal
471b36832e ... 2016-12-09 12:46:02 +05:30
Kovid Goyal
5a6ecbbf43 LineBuf.as_ansi() 2016-12-09 12:44:39 +05:30
Kovid Goyal
e3e3e86598 Code to get the ANSI representation of a line 2016-12-08 21:11:12 +05:30
Kovid Goyal
3031d41e72 Start work on supporting changing of entries in the color table 2016-11-24 15:28:52 +05:30
Kovid Goyal
101afd5031 Switch title handling to use unicode 2016-11-23 20:28:30 +05:30
Kovid Goyal
3c8d2dce36 ... 2016-11-21 10:25:53 +05:30
Kovid Goyal
7b1591113a Basic tests for HistoryBuf.rewrap 2016-11-20 22:40:43 +05:30
Kovid Goyal
776224378d Basic tests for HistoryBuf 2016-11-20 20:40:10 +05:30
Kovid Goyal
0b0a216856 Use HistoryBuf (still need to implement rewrap) 2016-11-20 20:20:14 +05:30
Kovid Goyal
1426f87c99 ... 2016-11-18 15:49:39 +05:30
Kovid Goyal
44e8a6c3c7 Start work on sprite map 2016-11-10 17:22:00 +05:30
Kovid Goyal
b12af6f21d Test for LineBuf.clear()
Also raise IndexError instead of ValueError for line and char access
2016-11-10 12:05:50 +05:30
Kovid Goyal
1884cc17c1 A ColorProfile to manage colors 2016-11-10 10:07:47 +05:30
Kovid Goyal
6334b39935 More tests for rewrap 2016-11-09 19:21:08 +05:30
Kovid Goyal
7108584e7a A more accurate, but slower rewrap algorithm 2016-11-09 17:47:03 +05:30
Kovid Goyal
8623e7b6e7 More tests for rewrap 2016-11-09 11:19:17 +05:30
Kovid Goyal
0904939e4a Some test for rewrap 2016-11-08 21:25:26 +05:30
Kovid Goyal
3dc74413a5 Line.clear_text() 2016-11-08 09:00:18 +05:30
Kovid Goyal
9869b30ce5 LineBuf.delete_lines 2016-11-07 20:55:40 +05:30
Kovid Goyal
17e59ccc22 LineBuf.insert_lines 2016-11-07 16:15:46 +05:30
Kovid Goyal
f63a4e7015 Implement the index operations
Scrolling of line buffer one line at a time, optionally saving the
scrolled of line in a history buffer.
2016-11-07 13:03:28 +05:30
Kovid Goyal
20b5534c71 LineBuf.set_continued 2016-11-04 22:41:35 +05:30
Kovid Goyal
7687e75de4 LineBuf.set_attribute 2016-11-04 22:32:50 +05:30
Kovid Goyal
e3fdd3089d LineBuf.clear() 2016-11-04 15:11:08 +05:30
Kovid Goyal
d324baf979 __eq__ for Line 2016-11-04 14:56:31 +05:30
Kovid Goyal
8324ec1c2b Start work on using the new LineBuf class 2016-11-04 14:44:46 +05:30
Kovid Goyal
8636ddf3cd ... 2016-11-02 20:51:04 +05:30