[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RP] [PATCH 2/6] Fix fdump and sselect
From: |
Mathieu OTHACEHE |
Subject: |
[RP] [PATCH 2/6] Fix fdump and sselect |
Date: |
Tue, 29 Nov 2016 20:00:50 +0100 |
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
- [RP] [PATCH v2 0/6] Improve xrandr support, Mathieu OTHACEHE, 2016/11/29
- [RP] [PATCH 1/6] Assign a number to each screen using a numset, Mathieu OTHACEHE, 2016/11/29
- [RP] [PATCH 2/6] Fix fdump and sselect,
Mathieu OTHACEHE <=
- [RP] [PATCH 5/6] Add height dimension to screen sorting, Mathieu OTHACEHE, 2016/11/29
- [RP] [PATCH 4/6] Fix sfrestore, Mathieu OTHACEHE, 2016/11/29
- [RP] [PATCH 3/6] Fix sfdump, Mathieu OTHACEHE, 2016/11/29
- [RP] [PATCH 6/6] Kill gcc uninitialized warning, Mathieu OTHACEHE, 2016/11/29