Use screen numset in fdump and sselect. --- src/actions.c | 20 +++++++------------- src/screen.c | 10 +++++----- src/screen.h | 2 +- 3 files changed, 13 insertions(+), 19 deletions(-)
diff --git a/src/actions.c b/src/actions.c index 606116c..8d89a2d 100644 --- a/src/actions.c +++ b/src/actions.c @@ -4673,16 +4673,12 @@ cmd_sselect(int interactive UNUSED, struct cmdarg **args) if (new_screen < 0) return cmdret_new (RET_FAILURE, "sselect: out of range"); - if (new_screen < screen_count ()) - { - screen = screen_at (new_screen); - new_frame = screen_get_frame (screen, screen->current_frame); - set_active_frame (new_frame, 1); - } - else - { - return cmdret_new (RET_FAILURE, "sselect: out of range"); - } + screen = screen_number (new_screen); + if (!screen) + return cmdret_new (RET_FAILURE, "sselect: screen not found"); + + new_frame = screen_get_frame (screen, screen->current_frame); + set_active_frame (new_frame, 1); return cmdret_new (RET_SUCCESS, NULL); } @@ -5022,10 +5018,8 @@ cmd_fdump (int interactively UNUSED, struct cmdarg **args) if (snum < 0) return cmdret_new (RET_FAILURE, "fdump: invalid negative screen number"); - else if (snum >= screen_count ()) - return cmdret_new (RET_FAILURE, "fdump: unknown screen"); else - screen = screen_at (snum); + screen = screen_number (snum); } dump = fdump (screen); diff --git a/src/screen.c b/src/screen.c index e629419..3c49409 100644 --- a/src/screen.c +++ b/src/screen.c @@ -181,17 +181,17 @@ is_a_root_window (unsigned int w) } rp_screen * -screen_at (int index) +screen_number (int number) { - int i = 0; rp_screen *cur; + if (number < 0) + return NULL; + list_for_each_entry (cur, &rp_screens, node) { - if (index == i) + if (cur->number == number) return cur; - - i++; } return NULL; diff --git a/src/screen.h b/src/screen.h index 7d85951..0d5f68d 100644 --- a/src/screen.h +++ b/src/screen.h @@ -51,7 +51,7 @@ int screen_count (void); rp_screen *screen_next(void); rp_screen *screen_prev(void); -rp_screen *screen_at (int index); +rp_screen *screen_number (int number); void screen_sort(void); -- 2.10.2 _______________________________________________ Ratpoison-devel mailing list Ratpoison-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/ratpoison-devel