~moody/drawterm

4d5bae54 — Jacob Moody a month ago front
cleanup
d3f8a346 — Jacob Moody a month ago
gui-wl: use event time in repeatstate

The previous method of using the rune would cause false positives in repeatproc
when the user would press the same key twice within the repeatstate.delay timeframe.
So instead we use event time which should be unique for each key press.
6c58f8e6 — Jacob Moody a month ago
add pipewire playback support
ad8d58f9 — Jacob Moody a month ago
Provide cursor hot spot to wayland
fe081c0d — Jacob Moody a month ago
wayland: handle arrow keys and key repeat
8db4d26a — Jacob Moody a month ago
wayland: ensure we grab the drawlock for writes to the frame buffer.
89a1108f — Jacob Moody a month ago
remove misplaced 'static'
708366d5 — Jacob Moody a month ago
Fix compilation when using -DPTHREAD

We should have this defined for making use of futex locks instead
of spin locks. When compiling with -DPTHREAD however, gcc gets
confused at our declaration of arrow in devmouse.c, naming
the members gives gcc enough of a hint that things work right.
fd0d6a60 — Jacob Moody a month ago
kern: remove useless sleep in resizeproc
c9d5ac09 — Jacob Moody a month ago
add wayland backend
Fix fdclose conflict in drawterm (thanks Christos Margiolis)
chan: minimize differences with 9front...
devtls: fix bwrite memory leak when channel stops being open (from 9front)

tlsbwrite() would call checkstate() before calling tlsrecwrite()
to make sure the channel is open. however, because checkstate()
only raises the error, the Block* passed wont be freed and
would result in a memory leak.

move the checkstate() call inside tlsrecwrite() to reuse the
error handling that frees the block on error.
gui-x11: fix uninitialized vars bug for screeninit() window position (thanks Nicola Girardi)
9620904e — Lorenzo Bivens 3 months ago
Merging echoline's android and fbdev forks
gui-win32: delete utf-16 routines, just use WideCharToMultiByte()/MultiByteToWideChar() kernel32 functions
gui-win32: add support for surrogate pairs in rune16 functions

this was required to encode and decode characthers between U+10000-U+10FFFF
properly.
drawterm/gui-cocoa/screen.m: fix SEGFAULT during cursor updates (thanks Igor)

The patch contains the following modifications:

  1. Fix declaration of `currentCursor` declaring it as a
     property of the `DrawtermView` using the `retain`
     attribute. This prevents drawterm from crashing as
     the OSX graphical event loop refrains from deallocating
     it while it is still in use.

  2. Modification of gui-cocoa/screen.m:/^setcursor to use
     'getBitmapDataPlanes' API function instead of
     'static unsigned char data[64]' container.
     (https://developer.apple.com/documentation/appkit/nsbitmapimagerep/1395490-getbitmapdataplanes?language=objc)
     The idea is to avoid using static variables for memory
     managed/supplied by OSX APIs.

  3. Replace 'static GLuint tex;' and declare it as a
     property of the `DrawtermView` as it is part of the
     `DrawtermView`.

  4. Move up declaration of 'DrawtermView' within the file.
     Once the static variables like 'currentCursor'
     and 'tex' have been moved to be properties of the DrawtermView
     this change made sense.

This patch has been tested on OSX Catalina and Big Sur.
libsec: move zero check to curve25519_dh_finish()

As checking for all zero has to be done in a timing-safe
way to avoid a side channel, it is best todo this here
instead of letting the caller deal with it.

This adds a return type of int to curve25519_dh_finish()
where returning 0 means we got a all zero shared key.

RFC7748 states:

The check for the all-zero value results from the fact
that the X25519 function produces that value if it
operates on an input corresponding to a point with small
order, where the order divides the cofactor of the curve.
libsec: add curve25519 and adjust ECpriv point access
Next