2ba9849ab5
Public interface for MOUSE support
Paul LeoNerd Evans
2009-11-24 01:22:55 +00:00
513e0ac59b
Bugfix to termkey_format_key() in FORMAT_CARETCTRL case when formatting Ctrl-Letter
Paul LeoNerd Evans
2009-11-23 23:59:46 +00:00
83c7c3f668
Cope with building distdir at minor versions .3 (otherwise it clashes with *.3)
Paul LeoNerd Evans
2009-07-15 20:52:35 +01:00
be998cef1b
Renamed all type names to CamelCaseNames for visual distinctness, separate from variables/functions
Paul LeoNerd Evans
2009-07-15 20:40:44 +01:00
af50967d12
Substitute version into termkey.pc.in at 'make dist' time
Paul LeoNerd Evans
2008-12-15 20:49:59 +00:00
51ed20590a
Bump VERSION_MAJOR to 0.2
Paul LeoNerd Evans
2008-12-12 00:43:52 +00:00
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
Paul LeoNerd Evans
2008-12-10 01:34:40 +00:00
9f1e7b34eb
Resort back to using GNU sed in .sh built manpages, as we only need them at 'make dist' time now; doesn't matter that BSD can't run them
Paul LeoNerd Evans
2008-12-10 01:03:43 +00:00
696c145599
Make termkey_getkey() set a peeked key structure if it returns TERMKEY_RET_AGAIN
Paul LeoNerd Evans
2008-12-10 00:38:21 +00:00
ef669c134d
Complete change of driver internals - peek and return size but don't eat bytes; eat later in getkey()
Paul LeoNerd Evans
2008-12-10 00:23:47 +00:00
eee8ddcee3
Linefeed properly in main() in demo files
Paul LeoNerd Evans
2008-12-08 22:54:14 +00:00
d54b7b4274
Documentation fix for termkey_get_fd - returns int, not void
Paul LeoNerd Evans
2008-12-02 23:06:08 +00:00
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
Paul LeoNerd Evans
2008-12-06 00:03:48 +00:00
97a47e9b16
Make common static function getkey(), roll functionallity of termkey_getkey{,_force}() into it
Paul LeoNerd Evans
2008-12-05 23:55:44 +00:00
43a99e64f2
strdup() the terminfo keypad_local and keypad_xmit strings at construct time, in case multiple instances and they change beneath us
Paul LeoNerd Evans
2008-12-03 20:19:15 +00:00
2c1bea4f15
Use a C99 flexible array member rather than the [0] hack
Paul LeoNerd Evans
2008-12-02 01:05:47 +00:00
2fba93b690
Added termkey_keyname2sym() to API
Paul LeoNerd Evans
2008-12-02 00:56:43 +00:00
f75bdf1516
Added termkey_get_fd() to API
Paul LeoNerd Evans
2008-12-01 22:36:14 +00:00
8737046c4d
Extra documentation about the three types of key event structure, and what the code members mean
Paul LeoNerd Evans
2008-11-30 12:43:13 +00:00
39b810f0b8
Use shell natively to embed demo .c files in manpages rather than invoking sed, because OpenBSD's sed doesn't seem to like this
Paul LeoNerd Evans
2008-11-28 19:58:16 +00:00
d245285df2
Cast 'term' to (non-const) char* when passing to setupterm() because terminfo's prototypes don't use const
Paul LeoNerd Evans
2008-11-28 19:48:41 +00:00
fef558eeb4
Use sizeof() on assigned variables rather than types, to make code a little less fragile to type changes
Paul LeoNerd Evans
2008-11-24 22:15:43 +00:00
2cfa31e610
Make on_key() static in demo-async.c to shut up silly GCC warnings
Paul LeoNerd Evans
2008-11-24 22:07:13 +00:00
c6ff878411
Fixed another signed-vs-unsigned int comparison in driver-ti.c
Paul LeoNerd Evans
2008-11-24 22:06:14 +00:00
85be2846c3
Make sure l is always initialised in termkey_snprint_key()
Paul LeoNerd Evans
2008-11-24 22:05:06 +00:00
c8011f4bfd
Make termkey_new_full() static for now until we expose the API fully
Paul LeoNerd Evans
2008-11-24 22:03:23 +00:00
f3f4519561
Fixed some signed/unsigned integer mismatches, including one important bug
Paul LeoNerd Evans
2008-11-24 21:58:55 +00:00
a40e9961d9
Export a gzip rather than bzip2 archive
Paul LeoNerd Evans
2008-11-24 21:47:18 +00:00
5c428818dd
Bump VERSION_MINOR to 0.1
Paul LeoNerd Evans
2008-11-18 16:58:37 +00:00
0dc23ed684
Remove actual .so file on 'make clean'
Paul LeoNerd Evans
2008-11-18 16:24:28 +00:00
69196bcf1f
Install to SONAME.MINOR and symlink to SONAME and basename
Paul LeoNerd Evans
2008-11-18 15:57:59 +00:00
14561e2a30
Only print about unrecognised terminfo variable names when debugging
Paul LeoNerd Evans
2008-11-18 15:55:29 +00:00
56634d0c82
Also added 'make dist' target to build distribution tarball
Paul LeoNerd Evans
2008-11-18 15:46:29 +00:00
223d5b19a2
Split Makefile into two halves; added 'make distdir' target for building distribution tarballs
Paul LeoNerd Evans
2008-11-18 15:37:37 +00:00
c41763c60a
Document the TERMKEY_CHECK_VERSION macro
Paul LeoNerd Evans
2008-11-18 12:19:29 +00:00
297cec0681
Better Makefile support for built manpages and termkey.h file
Paul LeoNerd Evans
2008-11-18 11:55:08 +00:00
480e30539b
Added .bzrignore patterns for other built files
Paul LeoNerd Evans
2008-11-16 12:44:02 +00:00
4f73b850c5
Added compile-vs-runtime library version checks
Paul LeoNerd Evans
2008-11-16 12:40:14 +00:00
c2dd9675d6
Store major and minor version number in Makefile; substitute #defines in termkey.h at build time
Paul LeoNerd Evans
2008-11-16 12:28:38 +00:00
4a108d4916
Compress trie nodes down to extent maps after loading, to save memory
Paul LeoNerd Evans
2008-11-12 23:58:20 +00:00
754214c200
Use a trie instead of a linear list of sequence strings in the terminfo driver - nicer lookup properties
Paul LeoNerd Evans
2008-11-12 16:32:17 +00:00
04e1926df6
Handle malloc() failures during setup of driver-ti
Paul LeoNerd Evans
2008-11-12 16:10:58 +00:00
62c5c97080
Make CSI driver's debugging output messages on unrecognised sequences conditional on #ifdef DEBUG
Paul LeoNerd Evans
2008-11-12 13:02:30 +00:00
927eaabae9
CSI driver shouldn't eat sequences it doesn't understand; leave them for another driver
Paul LeoNerd Evans
2008-11-12 12:51:19 +00:00
2c0d0f0f3c
Bugfix to 'unknown CSI' case in CSI driver - neater output message to avoid uninitialised ints
Paul LeoNerd Evans
2008-11-12 12:44:33 +00:00
781c2160c3
Added documentation on termkey_{get,set}_flags()
Paul LeoNerd Evans
2008-11-10 22:29:21 +00:00
397a7fb683
Added (undocumented) termkey_{get,set}_flags() calls to API
Paul LeoNerd Evans
2008-11-10 21:21:19 +00:00
9757a73daa
CSI driver should also load when TERM=screen because of screen's stupid way of blind-forwarding keypresses it doesn't understand
Paul LeoNerd Evans
2008-11-09 22:41:44 +00:00
30a3356815
Implemented free_driver() in terminfo driver
Paul LeoNerd Evans
2008-11-09 22:38:10 +00:00
20cc4b1701
When debugging, also print details of a key event when applicable
Paul LeoNerd Evans
2008-11-09 21:58:30 +00:00
fd2466c4ce
Load terminfo triver before CSI; in case they both apply
Paul LeoNerd Evans
2008-11-09 20:04:14 +00:00
73cee7f0b0
Allow stacking drivers in a linked list; try all of them at getkey() time
Paul LeoNerd Evans
2008-11-09 19:58:11 +00:00
aef2e91277
If debugging, print verbose output about internals of getkey operation
Paul LeoNerd Evans
2008-11-09 19:48:06 +00:00
09edf2377f
Driver getkey() can return TERMKEY_RES_NONE which attempts getkey_simple() afterwards
Paul LeoNerd Evans
2008-11-09 19:45:43 +00:00
de74ffa67f
getkey_simple() should return TERMKEY_RES_NONE if no bytes available; as a safety check
Paul LeoNerd Evans
2008-11-09 19:29:30 +00:00
0483eacb68
Print name of driver on startup if debugging
Paul LeoNerd Evans
2008-11-08 17:56:57 +00:00
d50d772ca5
Drivers have names
Paul LeoNerd Evans
2008-11-08 17:56:44 +00:00
e880602944
Pass driver_info as explicit void* parameter into driver methods
Paul LeoNerd Evans
2008-11-08 17:47:57 +00:00
9969e197ba
Pass 'csi' value to static helper functions in driver-csi
Paul LeoNerd Evans
2008-11-08 17:43:51 +00:00
9cd46fcea3
Renamed termkey_{set,get}waittime() to termkey_{set,get}_waittime() to be more consistent
Paul LeoNerd Evans
2008-11-06 20:29:50 +00:00
023943c738
Don't document the termkey_free() function as it doesn't restore termios; document termkey_destroy() instead
Paul LeoNerd Evans
2008-11-06 19:50:53 +00:00
9aaf16888c
Include demo.c and demo-async.c in the manpages under an EXAMPLE section
Paul LeoNerd Evans
2008-11-06 19:40:28 +00:00
9df6f621b9
Added asynchronous demo which uses poll()
Paul LeoNerd Evans
2008-11-06 19:33:07 +00:00
c2496a38be
Also document termkey_advisereadable()
Paul LeoNerd Evans
2008-11-06 00:56:01 +00:00
388782b89b
Added manpages for (most of) the external API functions
Paul LeoNerd Evans
2008-11-06 00:02:41 +00:00
6adbb40f6e
Neater bitfield constants in .h file; added docs of TERMKEY_FORMAT_* constants
Paul LeoNerd Evans
2008-11-03 21:23:59 +00:00
c0f839c40d
Make sure all .c->.o builds depend on all .h files
Paul LeoNerd Evans
2008-11-03 21:22:47 +00:00
a2f3d807f8
Better handling of incomplete UTF-8 sequences - just emit a UTF8_INVALID if waittime is up
Paul LeoNerd Evans
2008-11-03 21:10:14 +00:00
76147e92d4
Better handling in termkey_waitkey() of EOF conditions
Paul LeoNerd Evans
2008-11-03 21:08:34 +00:00
86933f1836
Reuse common Esc-prefix code in getkey_simple() from CSI driver; avoids code duplication
Paul LeoNerd Evans
2008-11-03 14:46:42 +00:00
ca485ca670
Bugfix to recursive 'meta-' getkey code - handle buffcount too
Paul LeoNerd Evans
2008-11-03 14:45:59 +00:00
7b42e9bfb7
Some platforms need -fPIC when compiling C code for eventual use in a shared library
Paul LeoNerd Evans
2008-11-03 14:02:04 +00:00
1c46f5edfa
Recognise 'key_mouse' as an ignored terminfo key
Paul LeoNerd Evans
2008-11-02 22:16:03 +00:00
ca2bbaf251
Install a .pc file so that pkg-config works
Paul LeoNerd Evans
2008-11-02 18:37:29 +00:00
aef409c460
Terminfo driver needs to put terminal into 'keypad_xmit' mode when starting
Paul LeoNerd Evans
2008-11-02 17:59:30 +00:00
5107112a91
Added new driver virtual methods 'start_driver' and 'stop_driver'
Paul LeoNerd Evans
2008-11-02 17:54:24 +00:00
1d4d908cb8
Remeber to handle Esc-prefixed keypresses in base getkey_simple() function - involves some code duplication with CSI driver currently
Paul LeoNerd Evans
2008-11-02 14:54:33 +00:00
62d4e7eccb
Pass the 'force' value through to getkey_simple()
Paul LeoNerd Evans
2008-11-02 14:43:19 +00:00
6574198993
Adjusted Makefile to build a shared library
Paul LeoNerd Evans
2008-11-02 14:18:16 +00:00
bb00cd64b1
Added many more key symbols and names + translations from terminfo
Paul LeoNerd Evans
2008-10-10 01:11:24 +01:00
2ceb64261a
Binary search terminfo funcname => termkey sym conversion, rather than linear
Paul LeoNerd Evans
2008-10-10 00:44:13 +01:00
fd769d621e
'int' might not be wide enough to hold any Unicode codepoint; use 'long'
Paul LeoNerd Evans
2008-10-10 00:50:56 +01:00
37156ad580
Added some TODO notes about handling realloc() failures
Paul LeoNerd Evans
2008-10-09 23:53:35 +01:00
2b08f88f19
Better free() tracking in constructor failure cases
Paul LeoNerd Evans
2008-10-09 23:19:10 +01:00
286532e602
Respect user's CC and CFLAGS
Paul LeoNerd Evans
2008-10-09 23:05:40 +01:00
247fae6a72
Gracefully handle constructor failure rather than SEGV
Paul LeoNerd Evans
2008-10-09 22:41:07 +01:00
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
Paul LeoNerd Evans
2008-10-09 20:23:45 +01:00
a61b916c18
Adjustment to demo.c; just print the vim style format
Paul LeoNerd Evans
2008-10-08 02:06:00 +01:00
c974e61a8d
Added initial attempt at a terminfo-driven driver
Paul LeoNerd Evans
2008-10-08 02:04:47 +01:00
e76b195c59
Moved all of the keynames out from driver-csi into termkey; where they belong
Paul LeoNerd Evans
2008-10-08 02:00:22 +01:00
9f7d84ba81
Register keynames using a more extensible internal array; easier to add new ones
Paul LeoNerd Evans
2008-10-08 01:52:53 +01:00
a80c10e90f
Tiny bugfix to termkey.c's initialiser; actually handle multiple driver search properly
Paul LeoNerd Evans
2008-10-08 00:53:59 +01:00
10d3024a6a
Pass an explicit 'force' parameter into driver's getkey rather than relying on non-zero waittime
Paul LeoNerd Evans
2008-10-08 00:44:33 +01:00
ac6cae29bb
Moved single byte and UTF-8 sequence recombiner out of driver-csi.c back into termkey.c
Paul LeoNerd Evans
2008-10-08 00:36:27 +01:00
d46f72fc1a
Moved all of the C0 registration and 'do_codepoint' logic out of driver-csi back into termkey via another protected method 'emit_codepoint'
Paul LeoNerd Evans
2008-10-08 00:12:41 +01:00
8407c53726
s/eatbytes/eat_bytes/ - nicer API name
Paul LeoNerd Evans
2008-10-07 23:57:01 +01:00
145dca73b2
Moved 'eatbytes' back into core code, put a code ptr in the termkey struct as a "protected" method
Paul LeoNerd Evans
2008-10-07 22:22:59 +01:00
8b7c2b5d4f
Support a list of potential backend drivers
Paul LeoNerd Evans
2008-10-07 03:17:06 +01:00
d7358c43af
Moved CSI key registration code to be private to CSI driver
Paul LeoNerd Evans
2008-10-06 23:53:25 +01:00