mirror of
https://github.com/irssi/irssi.git
synced 2026-08-20 17:12:51 +02:00
clean up window_refnum_{prev,next}
This commit is contained in:
parent
2f59fe2062
commit
9004265e54
1 changed files with 14 additions and 32 deletions
|
|
@ -473,35 +473,29 @@ static GSequenceIter *windows_seq_refnum_search_right(int refnum)
|
||||||
return g_sequence_search(windows_seq, GINT_TO_POINTER(refnum), (GCompareDataFunc)window_refnum_lookup, NULL);
|
return g_sequence_search(windows_seq, GINT_TO_POINTER(refnum), (GCompareDataFunc)window_refnum_lookup, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static GSequenceIter *windows_seq_refnum_search_left(int refnum)
|
||||||
|
{
|
||||||
|
GSequenceIter *iter = windows_seq_refnum_search_right(refnum-1);
|
||||||
|
return iter == windows_seq_begin() ? NULL : g_sequence_iter_prev(iter);
|
||||||
|
}
|
||||||
|
|
||||||
int window_refnum_prev(int refnum, int wrap)
|
int window_refnum_prev(int refnum, int wrap)
|
||||||
{
|
{
|
||||||
|
WINDOW_REC *rec;
|
||||||
GSequenceIter *iter, *end;
|
GSequenceIter *iter, *end;
|
||||||
|
|
||||||
iter = windows_seq_refnum_search_right(refnum-1);
|
iter = windows_seq_refnum_search_left(refnum);
|
||||||
end = windows_seq_end();
|
end = windows_seq_end();
|
||||||
|
|
||||||
if (iter != NULL) {
|
if (iter != NULL) {
|
||||||
WINDOW_REC *rec;
|
|
||||||
if (iter != end) {
|
|
||||||
rec = g_sequence_get(iter);
|
|
||||||
|
|
||||||
if (rec->refnum < refnum)
|
|
||||||
return rec->refnum;
|
|
||||||
}
|
|
||||||
|
|
||||||
iter = g_sequence_iter_prev(iter);
|
|
||||||
rec = g_sequence_get(iter);
|
rec = g_sequence_get(iter);
|
||||||
|
return rec->refnum;
|
||||||
if (rec->refnum < refnum)
|
|
||||||
return rec->refnum;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wrap) {
|
if (wrap) {
|
||||||
WINDOW_REC *rec;
|
|
||||||
iter = g_sequence_iter_prev(end);
|
iter = g_sequence_iter_prev(end);
|
||||||
if (iter != end) {
|
if (iter != end) {
|
||||||
rec = g_sequence_get(iter);
|
rec = g_sequence_get(iter);
|
||||||
|
|
||||||
return rec->refnum;
|
return rec->refnum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -511,32 +505,21 @@ int window_refnum_prev(int refnum, int wrap)
|
||||||
|
|
||||||
int window_refnum_next(int refnum, int wrap)
|
int window_refnum_next(int refnum, int wrap)
|
||||||
{
|
{
|
||||||
|
WINDOW_REC *rec;
|
||||||
GSequenceIter *iter, *end;
|
GSequenceIter *iter, *end;
|
||||||
|
|
||||||
iter = windows_seq_refnum_search_right(refnum);
|
iter = windows_seq_refnum_search_right(refnum);
|
||||||
end = windows_seq_end();
|
end = windows_seq_end();
|
||||||
|
|
||||||
if (iter != NULL && iter != end) {
|
if (iter != end) {
|
||||||
WINDOW_REC *rec = g_sequence_get(iter);
|
rec = g_sequence_get(iter);
|
||||||
|
return rec->refnum;
|
||||||
if (rec->refnum > refnum)
|
|
||||||
return rec->refnum;
|
|
||||||
|
|
||||||
iter = g_sequence_iter_next(iter);
|
|
||||||
if (iter != end) {
|
|
||||||
rec = g_sequence_get(iter);
|
|
||||||
|
|
||||||
if (rec->refnum > refnum)
|
|
||||||
return rec->refnum;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wrap) {
|
if (wrap) {
|
||||||
WINDOW_REC *rec;
|
|
||||||
iter = windows_seq_begin();
|
iter = windows_seq_begin();
|
||||||
if (iter != end) {
|
if (iter != end) {
|
||||||
rec = g_sequence_get(iter);
|
rec = g_sequence_get(iter);
|
||||||
|
|
||||||
return rec->refnum;
|
return rec->refnum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -546,14 +529,13 @@ int window_refnum_next(int refnum, int wrap)
|
||||||
|
|
||||||
int windows_refnum_last(void)
|
int windows_refnum_last(void)
|
||||||
{
|
{
|
||||||
GSequenceIter *end, *iter;
|
|
||||||
WINDOW_REC *rec;
|
WINDOW_REC *rec;
|
||||||
|
GSequenceIter *end, *iter;
|
||||||
|
|
||||||
end = windows_seq_end();
|
end = windows_seq_end();
|
||||||
iter = g_sequence_iter_prev(end);
|
iter = g_sequence_iter_prev(end);
|
||||||
if (iter != end) {
|
if (iter != end) {
|
||||||
rec = g_sequence_get(iter);
|
rec = g_sequence_get(iter);
|
||||||
|
|
||||||
return rec->refnum;
|
return rec->refnum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue