Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |From 16663a03b6d7522d171b9717151040f9fad67f9f Mon Sep 17 00:00:00 2001 |From: Sergei Grechanik |Date: Sat, 10 Jan 2026 16:09:05 -0800 |Subject: [PATCH] Kitty graphics protocol support eb8d6cb 2025-12-30 | |This patch implements the kitty graphics protocol in st. |See https://github.com/sergei-grechanik/st-graphics |Created by squashing the graphics branch, the most recent |commit is eb8d6cbc964a864e6391c4288aebe4ebe74bb5c7 (2025-12-30). | |Squashed on top of 6e970474743d57a5d8b054c41fd3bff2bc895742 (0.9.3) | |Note that the following files were excluded from the squash: | .clang-format | README.md | generate-rowcolumn-helpers.py | rowcolumn-diacritics.txt | rowcolumn_diacritics.sh | |Main changes since 2025-02-22: | * Restore evicted images from original files when available. | * Fix an issue that caused too many files to be opened during | concurrent direct uploads. | * Optimize scaled pixmap generation (don't store pad pixels; upscale | with XRender). | |Main changes since 2024-09-22: | * Restore text under classic placements on deletion. | * Support uploading via shared memory (t=s). | * Bug fixes. |--- | Makefile | 7 +- | config.def.h | 46 +- | config.mk | 5 +- | graphics.c | 4393 ++++++++++++++++++++++++++++++++ | graphics.h | 112 + | icat-mini.sh | 875 +++++++ | khash.h | 627 +++++ | kvec.h | 90 + | rowcolumn_diacritics_helpers.c | 391 +++ | st.c | 303 ++- | st.h | 84 +- | st.info | 6 + | win.h | 3 + | x.c | 411 ++- | 14 files changed, 7295 insertions(+), 58 deletions(-) | create mode 100644 graphics.c | create mode 100644 graphics.h | create mode 100755 icat-mini.sh | create mode 100644 khash.h | create mode 100644 kvec.h | create mode 100644 rowcolumn_diacritics_helpers.c | |diff --git a/Makefile b/Makefile |index 15db421..413e7ab 100644 |--- a/Makefile |+++ b/Makefile -------------------------- Patching file Makefile using Plan A... Hunk #1 succeeded at 4. Hunk #2 succeeded at 15. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/config.def.h b/config.def.h |index 2cd740a..4aadbbc 100644 |--- a/config.def.h |+++ b/config.def.h -------------------------- Patching file config.def.h using Plan A... Hunk #1 succeeded at 8. Hunk #2 succeeded at 30. Hunk #3 succeeded at 171. Hunk #4 succeeded at 200. Hunk #5 succeeded at 219. Hunk #6 succeeded at 233. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/config.mk b/config.mk |index 2fc854e..7b22243 100644 |--- a/config.mk |+++ b/config.mk -------------------------- Patching file config.mk using Plan A... Hunk #1 succeeded at 14. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/graphics.c b/graphics.c |new file mode 100644 |index 0000000..801f5c9 |--- /dev/null |+++ b/graphics.c -------------------------- (Creating file graphics.c...) Patching file graphics.c using Plan A... Empty context always matches. Hunk #1 succeeded at 1. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/graphics.h b/graphics.h |new file mode 100644 |index 0000000..f9a649a |--- /dev/null |+++ b/graphics.h -------------------------- (Creating file graphics.h...) Patching file graphics.h using Plan A... Empty context always matches. Hunk #1 succeeded at 1. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/icat-mini.sh b/icat-mini.sh |new file mode 100755 |index 0000000..8f240e9 |--- /dev/null |+++ b/icat-mini.sh -------------------------- (Creating file icat-mini.sh...) Patching file icat-mini.sh using Plan A... Empty context always matches. Hunk #1 succeeded at 1. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/khash.h b/khash.h |new file mode 100644 |index 0000000..f75f347 |--- /dev/null |+++ b/khash.h -------------------------- (Creating file khash.h...) Patching file khash.h using Plan A... Empty context always matches. Hunk #1 succeeded at 1. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/kvec.h b/kvec.h |new file mode 100644 |index 0000000..10f1c5b |--- /dev/null |+++ b/kvec.h -------------------------- (Creating file kvec.h...) Patching file kvec.h using Plan A... Empty context always matches. Hunk #1 succeeded at 1. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/rowcolumn_diacritics_helpers.c b/rowcolumn_diacritics_helpers.c |new file mode 100644 |index 0000000..829c0fc |--- /dev/null |+++ b/rowcolumn_diacritics_helpers.c -------------------------- (Creating file rowcolumn_diacritics_helpers.c...) Patching file rowcolumn_diacritics_helpers.c using Plan A... Empty context always matches. Hunk #1 succeeded at 1. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/st.c b/st.c |index 8e57991..9824ea6 100644 |--- a/st.c |+++ b/st.c -------------------------- Patching file st.c using Plan A... Hunk #1 succeeded at 19. Hunk #2 succeeded at 37. Hunk #3 succeeded at 118. Hunk #4 succeeded at 220. Hunk #5 succeeded at 238. Hunk #6 succeeded at 626. Hunk #7 succeeded at 731. Hunk #8 succeeded at 838. Hunk #9 succeeded at 854. Hunk #10 succeeded at 914. Hunk #11 succeeded at 923. Hunk #12 succeeded at 967. Hunk #13 succeeded at 1064. Hunk #14 succeeded at 1088. Hunk #15 succeeded at 1267. Hunk #16 succeeded at 1311. Hunk #17 succeeded at 1533. Hunk #18 succeeded at 1546. Hunk #19 succeeded at 1583. Hunk #20 succeeded at 1612. Hunk #21 succeeded at 2005. Hunk #22 succeeded at 2200. Hunk #23 succeeded at 2726. Hunk #24 succeeded at 2927. Hunk #25 succeeded at 2936. Hunk #26 succeeded at 2972. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/st.h b/st.h |index fd3b0d8..c5dd731 100644 |--- a/st.h |+++ b/st.h -------------------------- Patching file st.h using Plan A... Hunk #1 succeeded at 12. Hunk #2 succeeded at 20. Hunk #3 succeeded at 38. Hunk #4 succeeded at 57. Hunk #5 succeeded at 78. Hunk #6 succeeded at 119. Hunk #7 succeeded at 140. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/st.info b/st.info |index efab2cf..ded76c1 100644 |--- a/st.info |+++ b/st.info -------------------------- Patching file st.info using Plan A... Hunk #1 succeeded at 195. Hunk #2 succeeded at 216. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/win.h b/win.h |index 6de960d..31b3fff 100644 |--- a/win.h |+++ b/win.h -------------------------- Patching file win.h using Plan A... Hunk #1 succeeded at 39. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/x.c b/x.c |index d73152b..6f1bf8c 100644 |--- a/x.c |+++ b/x.c -------------------------- Patching file x.c using Plan A... Hunk #1 succeeded at 4. Hunk #2 succeeded at 21. Hunk #3 succeeded at 62. Hunk #4 succeeded at 90. Hunk #5 succeeded at 154. Hunk #6 succeeded at 232. Hunk #7 succeeded at 341. Hunk #8 succeeded at 414. Hunk #9 succeeded at 527. Hunk #10 succeeded at 817. Hunk #11 succeeded at 950. Hunk #12 succeeded at 1095. Hunk #13 succeeded at 1106. Hunk #14 succeeded at 1234. Hunk #15 succeeded at 1322. Hunk #16 succeeded at 1352. Hunk #17 succeeded at 1464. Hunk #18 succeeded at 1608. Hunk #19 succeeded at 1631. Hunk #20 succeeded at 1707. Hunk #21 succeeded at 1727. Hunk #22 succeeded at 1771. Hunk #23 succeeded at 1998. Hunk #24 succeeded at 2012. Hunk #25 succeeded at 2238. Hunk #26 succeeded at 2289. Hmm... Ignoring the trailing garbage. done