From 08cdf24023d94052801fff5fbe7403be36c65f6a Mon Sep 17 00:00:00 2001 From: Yinghao Wang <231103865+yinghao-w@users.noreply.github.com> Date: Mon, 23 Mar 2026 17:45:33 +0000 Subject: [PATCH 1/2] Fix: SIGFPE when drawing grid Refactor: selection of grid line angles Co-authored-by: Dalton Luce <102048662+da-luce@users.noreply.github.com> --- src/core_render.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/core_render.c b/src/core_render.c index 06225ac..d7d007e 100644 --- a/src/core_render.c +++ b/src/core_render.c @@ -266,14 +266,14 @@ void render_azimuthal_grid(WINDOW *win, const struct Conf *config) // Minimum number of rows separating grid line (at end of window) int min_height = 10; - // Set the step size to the smallest desirable increment - int inc; - for (int i = length - 1; i >= 0; --i) + int inc = step_sizes[length - 1]; // Fallback to large delta on small windows + for (int i = 0; i < length; ++i) { - inc = step_sizes[i]; - if (round(rad_vertical * sin(inc * to_rad)) < min_height) + // Vertical offset (rows) of the angle at edge of window -- approximately the "arc length" for small angles + int vertical_offset = (int) round(rad_vertical * sin(step_sizes[i] * to_rad)); + if (vertical_offset >= min_height) { - inc = step_sizes[--i]; // Go back to previous increment + inc = step_sizes[i]; break; } } From 84bb1b7fd910e949b3731cdf5c64f49f62a96963 Mon Sep 17 00:00:00 2001 From: Dalton Luce Date: Sun, 29 Mar 2026 17:53:36 -0400 Subject: [PATCH 2/2] style: run format --- src/core_render.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core_render.c b/src/core_render.c index d7d007e..c7e3380 100644 --- a/src/core_render.c +++ b/src/core_render.c @@ -270,7 +270,7 @@ void render_azimuthal_grid(WINDOW *win, const struct Conf *config) for (int i = 0; i < length; ++i) { // Vertical offset (rows) of the angle at edge of window -- approximately the "arc length" for small angles - int vertical_offset = (int) round(rad_vertical * sin(step_sizes[i] * to_rad)); + int vertical_offset = (int)round(rad_vertical * sin(step_sizes[i] * to_rad)); if (vertical_offset >= min_height) { inc = step_sizes[i];