Commit Graph

162 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 36bc6cd095 Move to iconv
That is the major change in this commit.

Also Ctrl-modified keys now should work in URxvt,
which was surprisingly trivial to achieve.

Coming up next:
 - making sure the tests still work
 - introducing CMake
2014-09-28 03:59:12 +02:00
Přemysl Eric Janouch b630bf7a5f WIP: Is mine now (^3^)
Seriously though, I've got some issues with how this thing is designed,
as well as with its formatting, and when you add the fact that the
original author wants to merge this thing into his bigger library that
also handles terminal output, which I'll kindly leave to ncurses,
it kind of makes sense for me to do this.

Manpages have been removed as they are going to become obsolete and
they're rather difficult to maintain.  If anything, there will be
Doxygen-generated documentation.

The plan is to throw away any direct UTF-8 support and support all uni-
and multibyte character encodings.  However some unrelated refactoring
is about to come first.
2014-09-23 03:05:01 +02:00
Paul LeoNerd Evans 7909067ac0 Be a little more lenient in locale env.var. testing for UTF-8ness 2014-03-05 01:23:16 +00:00
Paul LeoNerd Evans a91f511f27 Look for .utf8 in locale variables as well as .UTF-8 2014-01-23 23:57:19 +00:00
Paul LeoNerd Evans d97617963d Look for \.UTF-8 only in the first env. var found from LANG, LC_MESSAGES, LC_ALL 2014-01-05 18:23:46 +00:00
Paul LeoNerd Evans e3d0baa846 Bugfix to snprint_cameltospaces() when given a short buffer [thanks Romain Chossart] 2013-08-26 18:46:01 +01:00
Paul LeoNerd Evans e9a1302e4c Delete trailing whitespace in code 2013-08-26 02:35:40 +01:00
Paul LeoNerd Evans d58faf55b4 Fix comment about 'n' in strpncmp_camel() 2013-08-26 02:30:43 +01:00
Paul LeoNerd Evans 8e503baed8 Added TERMKEY_FORMAT_LOWERSPACE for strpkey() also 2013-08-26 02:23:19 +01:00
Paul LeoNerd Evans 3b2d8eb813 Added TERMKEY_FORMAT_LOWERSPACE for strfkey() only 2013-08-26 01:32:35 +01:00
Paul LeoNerd Evans a36648e172 Added TERMKEY_FORMAT_LOWERMOD 2013-08-26 01:14:35 +01:00
Paul LeoNerd Evans 24abb0c59e Added TERMKEY_FORMAT_SPACEMOD 2013-08-26 00:56:07 +01:00
Paul LeoNerd Evans 89ac8b058c Make some more things 'const' that should be 2013-07-15 01:03:35 +01:00
Paul LeoNerd Evans 5190963f1b Make sure to implement newer event types in debug function 2012-12-06 02:09:03 +00:00
Paul LeoNerd Evans 0be6f18019 Handle ANSI and DEC mode report CSIs 2012-11-30 16:34:47 +00:00
Paul LeoNerd Evans fdb44d9796 Moved the other termkey_interpret_*() functions into driver-csi.c where they arguably belong 2012-11-30 15:01:20 +00:00
Paul LeoNerd Evans 7b3dc4be71 Return a real key type for unrecognised CSI sequences; allow accessing them by termkey_interpret_csi() 2012-11-30 14:35:23 +00:00
Paul LeoNerd Evans f5cbf9eb57 Also handle CSI R; position report replies to CSI 6n 2012-04-24 17:27:48 +01:00
Paul LeoNerd Evans f33513282a Created abstract accessors for getting/setting key event line/col counts 2012-04-24 15:25:17 +01:00
Paul LeoNerd Evans 8cf0858276 Use spare bits in code.mouse[3] to store bigger mouse positions 2012-04-12 17:02:45 +01:00
Paul LeoNerd Evans 60b4bfaf72 Recognise SGR-style mouse encoding 2012-04-12 00:19:10 +01:00
Paul LeoNerd Evans 789a5a3c9d Extract modifiers for mouse events at peekkey time 2012-04-05 18:54:30 +01:00
Paul LeoNerd Evans 8237f3a1bc Have getkey/waitkey return RES_ERROR/EINVAL if stopped 2012-03-08 21:31:16 +00:00
Paul LeoNerd Evans cb00476f09 Added a termkey_is_started() accessor; unit test it a bit 2012-03-08 21:24:39 +00:00
Paul LeoNerd Evans 43a83e6e96 Move the terminal start/stop code into their own functions, exported (undocumented for now) 2012-03-08 21:15:25 +00:00
Paul LeoNerd Evans e252c497ae Added (undocumented) termkey_set_buffer_size() 2012-02-13 23:40:42 +00:00
Paul LeoNerd Evans 5779ec3cd1 Added (undocumented) termkey_get_buffer_size() 2012-02-13 21:57:33 +00:00
Paul LeoNerd Evans ee12c698da Document the errors set by termkey_new(), use errno rather than fprintf() to stderr 2012-01-29 16:13:38 +00:00
Paul LeoNerd Evans ea2d3073ac Created termkey_new_abstract() 2012-01-26 12:55:16 +00:00
Paul LeoNerd Evans 63f37cecd6 Move initialisation logic out of termkey_new into a static function 2012-01-26 10:13:03 +00:00
Paul LeoNerd Evans 8b46e65aa3 Use termkey_set_flags() in constructor rather than copypasted logic 2012-01-26 10:07:23 +00:00
Paul LeoNerd Evans f9fe338e3e Split termkey_new() into alloc and initialise phases 2012-01-26 10:06:05 +00:00
Paul LeoNerd Evans 4cf544f26c Also mark termkey.c's modnames as static 2012-01-22 18:56:08 +00:00
Paul LeoNerd Evans 229792aad7 Handle realloc() failures when registering key names 2012-01-20 18:03:08 +00:00
Paul LeoNerd Evans 541a4328db sscanf() %zn ought to take a ssize_t * 2012-01-20 17:01:38 +00:00
Paul LeoNerd Evans 052738b8f4 Allow {start,stop}_driver to fail, abort constructor, have driver-ti try to write the entire start/stop string or error out on -1 2012-01-20 17:00:09 +00:00
Paul LeoNerd Evans 6d6afe788c Allow passing fd = -1 to constructor to make an instance not associated with an fd; must use push_bytes to provide it input 2012-01-18 14:03:39 +00:00
Paul LeoNerd Evans 82ad14175c Added termkey_push_bytes(), a new API for providing input bytes 2012-01-18 13:39:50 +00:00
Paul LeoNerd Evans d64ba87eda Ensure that termkey_advisereadable() just fails with errno=ENOMEM rather than trying to read() zero bytes 2012-01-18 10:36:50 +00:00
Paul LeoNerd Evans 3474a45b14 Avoid push_bytes() entirely by read()ing directly into tk->buffer 2012-01-18 10:07:36 +00:00
Paul LeoNerd Evans 9534330003 Provide new API function to determine how much buffer space remains in the instance 2012-01-18 10:04:15 +00:00
Paul LeoNerd Evans 37d8f18ab5 Remove termkey_pushinput() from external API; declare static, rename it 2012-01-18 09:36:36 +00:00
Paul LeoNerd Evans 8f32ac525f Canonicalise (a local copy of) the key structures given to termkey_keycmp() before comparing them 2011-09-06 22:49:05 +01:00
Paul LeoNerd Evans 3008ed29d1 A few more DEBUG fprintf(stderr)s at construction time 2011-09-05 14:14:09 +01:00
Paul LeoNerd Evans 3fb6f398e9 Handle TERMKEY_RES_ERROR in (debugging mode) res2str() 2011-09-05 13:58:15 +01:00
Paul LeoNerd Evans 8793934328 Allow a flag to convert ASCII DEL into Backspace 2011-08-28 17:57:57 +01:00
Paul LeoNerd Evans 2638499648 Move canonicalisation flags into their own bitfield with their own accessor and named constants 2011-08-28 17:50:18 +01:00
Paul LeoNerd Evans 46eefda073 Provide an explicit termkey_canonicalise() function; canonicalise Space/SP in both directions 2011-08-27 19:59:02 +01:00
Paul LeoNerd Evans 83ca948d78 Deleted legacy type name typedefs and declaration of termkey_snprint_key() 2011-08-27 19:32:39 +01:00
Paul LeoNerd Evans 8efef8e088 Ensure c_cc[VMIN] and c_cc[VTIME] are properly defined, because Solaris seems not to set them - Petr Pavlu 2011-08-25 22:41:43 +01:00