version 1.16, 2013/11/26 21:08:12 |
version 1.17, 2013/12/02 02:33:41 |
|
|
#endif |
#endif |
|
|
/* circular linked list of views */ |
/* circular linked list of views */ |
CIRCLEQ_HEAD(view_list, view_ent) view_head = |
TAILQ_HEAD(view_list, view_ent) view_head = |
CIRCLEQ_HEAD_INITIALIZER(view_head); |
TAILQ_HEAD_INITIALIZER(view_head); |
struct view_ent { |
struct view_ent { |
field_view *view; |
field_view *view; |
CIRCLEQ_ENTRY(view_ent) entries; |
TAILQ_ENTRY(view_ent) entries; |
}; |
}; |
|
|
useconds_t udelay = 5000000; |
useconds_t udelay = 5000000; |
|
|
return; |
return; |
|
|
ent->view = fv; |
ent->view = fv; |
CIRCLEQ_INSERT_TAIL(&view_head, ent, entries); |
TAILQ_INSERT_TAIL(&view_head, ent, entries); |
|
|
if (curr_view == NULL) |
if (curr_view == NULL) |
set_curr_view(ent); |
set_curr_view(ent); |
|
|
if (opt == NULL || (len = strlen(opt)) == 0) |
if (opt == NULL || (len = strlen(opt)) == 0) |
return 1; |
return 1; |
|
|
CIRCLEQ_FOREACH(ve, &view_head, entries) { |
TAILQ_FOREACH(ve, &view_head, entries) { |
v = ve->view; |
v = ve->view; |
if (strncasecmp(opt, v->name, len) == 0) { |
if (strncasecmp(opt, v->name, len) == 0) { |
if (vm) |
if (vm) |
|
|
{ |
{ |
struct view_ent *ve; |
struct view_ent *ve; |
|
|
CIRCLEQ_FOREACH(ve, &view_head, entries) { |
TAILQ_FOREACH(ve, &view_head, entries) { |
callback(ve->view); |
callback(ve->view); |
} |
} |
} |
} |
|
|
field_view *v; |
field_view *v; |
int key = tolower(ch); |
int key = tolower(ch); |
|
|
CIRCLEQ_FOREACH(ve, &view_head, entries) { |
TAILQ_FOREACH(ve, &view_head, entries) { |
v = ve->view; |
v = ve->view; |
if (key == v->hotkey) { |
if (key == v->hotkey) { |
set_curr_view(ve); |
set_curr_view(ve); |
|
|
{ |
{ |
struct view_ent *ve; |
struct view_ent *ve; |
|
|
if (CIRCLEQ_EMPTY(&view_head) || curr_view_ent == NULL) |
if (TAILQ_EMPTY(&view_head) || curr_view_ent == NULL) |
return; |
return; |
|
|
ve = CIRCLEQ_NEXT(curr_view_ent, entries); |
ve = TAILQ_NEXT(curr_view_ent, entries); |
if (ve == CIRCLEQ_END(&view_head)) |
if (ve == NULL) |
ve = CIRCLEQ_FIRST(&view_head); |
ve = TAILQ_FIRST(&view_head); |
|
|
set_curr_view(ve); |
set_curr_view(ve); |
} |
} |
|
|
{ |
{ |
struct view_ent *ve; |
struct view_ent *ve; |
|
|
if (CIRCLEQ_EMPTY(&view_head) || curr_view_ent == NULL) |
if (TAILQ_EMPTY(&view_head) || curr_view_ent == NULL) |
return; |
return; |
|
|
ve = CIRCLEQ_PREV(curr_view_ent, entries); |
ve = TAILQ_PREV(curr_view_ent, view_list, entries); |
if (ve == CIRCLEQ_END(&view_head)) |
if (ve == NULL) |
ve = CIRCLEQ_LAST(&view_head); |
ve = TAILQ_LAST(&view_head, view_list); |
|
|
set_curr_view(ve); |
set_curr_view(ve); |
} |
} |