patches: apply all maintainer review fixes (review pass 2)
All 9 patches now apply cleanly with git am on Linux (git 2.43.0). Root cause of previous failures: hunk offsets were systematically wrong by 7-40 lines; macOS git fuzzy-matched them, Linux did not. Patches regenerated via git format-patch after applying all changes. Fixes applied: - P0000: unbind_to on no-candidate fall-through path; hunk regenerated - P0001: block_input + record_unwind_protect_void in ns_ax_buffer_text - P0003: [trims release] MRC memory leak; block_input already present - P0004: mojibake comment (--- not UTF-8 em-dash) - P0006: texinfo dangling semicolons -> periods in GNUstep paragraph - P0007: em-dash fixes removed (content was already --- from P0004/P0005) - P0008: childFrameLastBuffer -> BVAR(b,name) for GC safety; BUF_OVERLAY_MODIFF removed from ensureTextCache (hl-line-mode O(N) rebuild regression); block_input in ns_ax_buffer_text (P0001 scope); voiceoverSetPoint and childFrameLastBuffer explicit init in initFrameFromEmacs:; cachedOverlayModiffForText ivar removed
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
From 1ce902a7a0b0d4d63e9d9f8718145d183a3c5d1a Mon Sep 17 00:00:00 2001
|
||||
From e3c3878e65d8273e5fca97e942fe97ff3c5c113f Mon Sep 17 00:00:00 2001
|
||||
From: Martin Sukany <martin@sukany.cz>
|
||||
Date: Sat, 28 Feb 2026 12:58:11 +0100
|
||||
Subject: [PATCH 4/8] ns: add interactive span elements for Tab navigation
|
||||
Subject: [PATCH 5/9] ns: add interactive span elements for Tab navigation
|
||||
|
||||
* src/nsterm.m (ns_ax_scan_interactive_spans): New function; scans the
|
||||
visible portion of a buffer for interactive text properties
|
||||
@@ -18,17 +18,17 @@ rebuilding lazily when interactiveSpansDirty is set.
|
||||
1 file changed, 287 insertions(+)
|
||||
|
||||
diff --git a/src/nsterm.m b/src/nsterm.m
|
||||
index d3015e2..6d3b87a 100644
|
||||
index cbf29694dd..e8bbc1ffe1 100644
|
||||
--- a/src/nsterm.m
|
||||
+++ b/src/nsterm.m
|
||||
@@ -9304,6 +9304,293 @@ - (NSRect)accessibilityFrame
|
||||
@@ -9342,6 +9342,293 @@ - (NSRect)accessibilityFrame
|
||||
|
||||
@end
|
||||
|
||||
+
|
||||
+
|
||||
+/* ===================================================================
|
||||
+ EmacsAccessibilityInteractiveSpan — helpers and implementation
|
||||
+ EmacsAccessibilityInteractiveSpan --- helpers and implementation
|
||||
+ =================================================================== */
|
||||
+
|
||||
+/* Scan visible range of window W for interactive spans.
|
||||
@@ -125,7 +125,7 @@ index d3015e2..6d3b87a 100644
|
||||
+ {
|
||||
+ /* Skip to the next position where any interactive property
|
||||
+ changes. Try each scannable property in turn and take
|
||||
+ the nearest change point â O(properties) per gap rather
|
||||
+ the nearest change point --- O(properties) per gap rather
|
||||
+ than O(chars). Fall back to pos+1 as safety net. */
|
||||
+ ptrdiff_t next_interesting = vis_end;
|
||||
+ Lisp_Object skip_props[5]
|
||||
@@ -237,7 +237,7 @@ index d3015e2..6d3b87a 100644
|
||||
+ dispatch_async (dispatch_get_main_queue (), ^{
|
||||
+ /* lwin is a Lisp_Object captured by value. This is GC-safe
|
||||
+ because Lisp_Objects are tagged integers/pointers that
|
||||
+ remain valid across GC — GC does not relocate objects in
|
||||
+ remain valid across GC --- GC does not relocate objects in
|
||||
+ Emacs. The WINDOW_LIVE_P check below guards against the
|
||||
+ window being deleted between capture and execution. */
|
||||
+ if (!WINDOWP (lwin) || NILP (Fwindow_live_p (lwin)))
|
||||
@@ -263,7 +263,7 @@ index d3015e2..6d3b87a 100644
|
||||
+
|
||||
+@end
|
||||
+
|
||||
+/* EmacsAccessibilityBuffer — InteractiveSpans category.
|
||||
+/* EmacsAccessibilityBuffer --- InteractiveSpans category.
|
||||
+ Methods are kept here (same .m file) so they access the ivars
|
||||
+ declared in the @interface ivar block. */
|
||||
+@implementation EmacsAccessibilityBuffer (InteractiveSpans)
|
||||
|
||||
Reference in New Issue
Block a user