Commit Graph

98 Commits

Author SHA1 Message Date
Paul LeoNerd Evans a3b8804018 Ensure strpkey can parse numbered function keys 2011-04-01 10:48:15 +01:00
Paul LeoNerd Evans 59800c356b Unicode codepoint is stored in key->code.codepoint, not code.number 2011-04-01 10:41:44 +01:00
Paul LeoNerd Evans 6424282c4d Partial implementation of termkey_strpkey(3); missing FORMAT_WRAPBRACKET and TYPE_FUNCTION support 2011-04-01 00:50:51 +01:00
Paul LeoNerd Evans ee69b33c49 Neater implementation of key modifier names for strfkey; put them in a little table 2011-04-01 00:26:02 +01:00
Paul LeoNerd Evans f1b3dff4c2 Extract UTF-8 sequence parser into its own function, fix bugs, apply unit tests 2011-03-31 23:42:52 +01:00
Paul LeoNerd Evans f17f21752b strfkey should fill in the utf8 member of a key struct if it's empty 2011-03-31 14:07:55 +01:00
Paul LeoNerd Evans 26ef76349e Renamed snprint_key() to strfkey(); provide redirection trampoline 2011-03-31 11:08:43 +01:00
Paul LeoNerd Evans 9f0ef4953d Don't steal Ctrl-C from the kernel by default (so leave SIGINT enabled); add a flag to take it if required 2011-03-23 23:20:24 +00:00
Paul LeoNerd Evans a71f68dd57 Interpret space as Unicode by default, add a flag to make it symbolic instead 2011-03-23 22:17:25 +00:00
Paul LeoNerd Evans ba0c32e8d8 Allow formatting the mouse position when rendering an event to a string 2009-11-27 15:07:05 +00:00
Paul LeoNerd Evans 571e5b701f Make DEBUG=1 mode work with mouse events 2009-11-27 14:56:38 +00:00
Paul LeoNerd Evans 0ae5aea7ac Moved code around so DEBUG=1 actually compiles again 2009-11-27 14:50:58 +00:00
Paul LeoNerd Evans 24f9711846 Return opaque mouse events in the key structure; add a function to interpret this into its component fields 2009-11-27 14:36:29 +00:00
Paul LeoNerd Evans c4bc0486d4 Moved mouse parsing code out of driver-ti.c into core termkey.c 2009-11-26 00:27:58 +00:00
Paul LeoNerd Evans ceeaf717bd Print Mouse() rather than shouting MOUSE() 2009-11-24 01:25:40 +00:00
Paul LeoNerd Evans 2ba9849ab5 Public interface for MOUSE support 2009-11-24 01:22:55 +00:00
Paul LeoNerd Evans 513e0ac59b Bugfix to termkey_format_key() in FORMAT_CARETCTRL case when formatting Ctrl-Letter 2009-11-23 23:59:46 +00:00
Paul LeoNerd Evans be998cef1b Renamed all type names to CamelCaseNames for visual distinctness, separate from variables/functions 2009-07-15 20:40:44 +01:00
Paul LeoNerd Evans 215b02e77f Represent Ctrl-letter in lowercase in the struct, so as one day to be able to do Ctrl-Shift-letter. Make sure ^X notation is still capital 2008-12-10 01:34:40 +00:00
Paul LeoNerd Evans 696c145599 Make termkey_getkey() set a peeked key structure if it returns TERMKEY_RET_AGAIN 2008-12-10 00:38:21 +00:00
Paul LeoNerd Evans ef669c134d Complete change of driver internals - peek and return size but don't eat bytes; eat later in getkey() 2008-12-10 00:23:47 +00:00
Paul LeoNerd Evans c10d6f02e4 Make sure only to slide buffer down when returning a real key to the user, or else it might upset the meta-key logic when it returns 2008-12-06 00:03:48 +00:00
Paul LeoNerd Evans 97a47e9b16 Make common static function getkey(), roll functionallity of termkey_getkey{,_force}() into it 2008-12-05 23:55:44 +00:00
Paul LeoNerd Evans 2fba93b690 Added termkey_keyname2sym() to API 2008-12-02 00:56:43 +00:00
Paul LeoNerd Evans f75bdf1516 Added termkey_get_fd() to API 2008-12-01 22:36:14 +00:00
Paul LeoNerd Evans 85be2846c3 Make sure l is always initialised in termkey_snprint_key() 2008-11-24 22:05:06 +00:00
Paul LeoNerd Evans c8011f4bfd Make termkey_new_full() static for now until we expose the API fully 2008-11-24 22:03:23 +00:00
Paul LeoNerd Evans f3f4519561 Fixed some signed/unsigned integer mismatches, including one important bug 2008-11-24 21:58:55 +00:00
Paul LeoNerd Evans 4f73b850c5 Added compile-vs-runtime library version checks 2008-11-16 12:40:14 +00:00
Paul LeoNerd Evans 397a7fb683 Added (undocumented) termkey_{get,set}_flags() calls to API 2008-11-10 21:21:19 +00:00
Paul LeoNerd Evans 20cc4b1701 When debugging, also print details of a key event when applicable 2008-11-09 21:58:30 +00:00
Paul LeoNerd Evans fd2466c4ce Load terminfo triver before CSI; in case they both apply 2008-11-09 20:04:14 +00:00
Paul LeoNerd Evans 73cee7f0b0 Allow stacking drivers in a linked list; try all of them at getkey() time 2008-11-09 19:58:11 +00:00
Paul LeoNerd Evans aef2e91277 If debugging, print verbose output about internals of getkey operation 2008-11-09 19:48:06 +00:00
Paul LeoNerd Evans 09edf2377f Driver getkey() can return TERMKEY_RES_NONE which attempts getkey_simple() afterwards 2008-11-09 19:45:43 +00:00
Paul LeoNerd Evans de74ffa67f getkey_simple() should return TERMKEY_RES_NONE if no bytes available; as a safety check 2008-11-09 19:29:30 +00:00
Paul LeoNerd Evans 0483eacb68 Print name of driver on startup if debugging 2008-11-08 17:56:57 +00:00
Paul LeoNerd Evans e880602944 Pass driver_info as explicit void* parameter into driver methods 2008-11-08 17:47:57 +00:00
Paul LeoNerd Evans 9cd46fcea3 Renamed termkey_{set,get}waittime() to termkey_{set,get}_waittime() to be more consistent 2008-11-06 20:29:50 +00:00
Paul LeoNerd Evans a2f3d807f8 Better handling of incomplete UTF-8 sequences - just emit a UTF8_INVALID if waittime is up 2008-11-03 21:10:14 +00:00
Paul LeoNerd Evans 76147e92d4 Better handling in termkey_waitkey() of EOF conditions 2008-11-03 21:08:34 +00:00
Paul LeoNerd Evans ca485ca670 Bugfix to recursive 'meta-' getkey code - handle buffcount too 2008-11-03 14:45:59 +00:00
Paul LeoNerd Evans 5107112a91 Added new driver virtual methods 'start_driver' and 'stop_driver' 2008-11-02 17:54:24 +00:00
Paul LeoNerd Evans 1d4d908cb8 Remeber to handle Esc-prefixed keypresses in base getkey_simple() function - involves some code duplication with CSI driver currently 2008-11-02 14:54:33 +00:00
Paul LeoNerd Evans 62d4e7eccb Pass the 'force' value through to getkey_simple() 2008-11-02 14:43:19 +00:00
Paul LeoNerd Evans bb00cd64b1 Added many more key symbols and names + translations from terminfo 2008-10-10 01:11:24 +01:00
Paul LeoNerd Evans fd769d621e 'int' might not be wide enough to hold any Unicode codepoint; use 'long' 2008-10-10 00:50:56 +01:00
Paul LeoNerd Evans 37156ad580 Added some TODO notes about handling realloc() failures 2008-10-09 23:53:35 +01:00
Paul LeoNerd Evans 2b08f88f19 Better free() tracking in constructor failure cases 2008-10-09 23:19:10 +01:00
Paul LeoNerd Evans 05639c4773 Pass 'term' string into new_driver virtual method; have drivers sensitive to it and return NULL if they can't handle. Try CSI driver first; only for xterm-alikes 2008-10-09 20:23:45 +01:00