diff --git a/src/ChangeLog b/src/ChangeLog index 2984ac710..3cc423b00 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -13,6 +13,7 @@ from signed int to unsigned int. * wtools.h: Replaced 0 with LISTBOX_APPEND_AT_END. * achown.c: Likewise. + * view.c (view_toggle_ruler): Don't mix enums with ints. 2005-08-15 Jindrich Makovicka diff --git a/src/view.c b/src/view.c index 5047ecbae..a162205fe 100644 --- a/src/view.c +++ b/src/view.c @@ -211,7 +211,7 @@ struct WView { int max_dirt_limit = 10; /* If set, show a ruler */ -static enum { +static enum ruler_type { RULER_NONE, RULER_TOP, RULER_BOTTOM @@ -2924,6 +2924,21 @@ continue_search (WView *view) } } +static cb_ret_t +view_toggle_ruler (WView *view) +{ + static const enum ruler_type next[3] = { + RULER_TOP, + RULER_BOTTOM, + RULER_NONE + }; + + assert ((size_t) ruler < 3); + ruler = next[(size_t) ruler]; + view->dirty++; + return MSG_HANDLED; +} + static void view_cmk_move_up (void *w, int n) { view_move_up ((WView *) w, n); } @@ -3010,19 +3025,7 @@ view_handle_key (WView *view, int c) /* toggle ruler */ case ALT ('r'): - switch (ruler) { - case 0: - ruler = 1; - break; - case 1: - ruler = 2; - break; - default: - ruler = 0; - break; - } - view->dirty++; - return MSG_HANDLED; + return view_toggle_ruler (view); case 'h': view_move_left (view, 1);