|
With LTO, GCC inlines the IME handlers into the test that passes a
32-byte buffer and warns that strndup's 256 KiB bound exceeds it
(-Wstringop-overread). The read never passed the NUL, since libwayland
always terminates protocol strings, but the warning reached consumers
such as wsap_term.
The text is now measured with strlen, capped at IME_TEXT_MAX, and copied,
which keeps the same truncation. An LTO release build is warning-free.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The core input queue and the yasl_run() runner each had their own event
type, and the runner translated one into the other. Both now share
struct yasl_event in <yasl/yasl.h>: yasl_surface_poll_event() returns the
same events the app event callback receives, so the runner forwards them
unchanged.
Pointer input becomes POINTER_DOWN/UP/MOTION/SCROLL/LEAVE with a named
yasl_pointer_button and a motion delta computed in the input queue. TEXT,
PASTE and DROP share one text payload, scale changes fold into
WINDOW_RESIZE, and every event carries a monotonic time_ns.
yasl_surface_set_mouse_mode() is replaced by
yasl_surface_set_pointer_mode(); no backend implements relative mode yet.
The export check now only counts YASL_API declarations, so function
pointer fields returning enum yasl_app_result are not mistaken for
exports.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|