All pastes #941036 Raw Edit

Mine

public c v1 · immutable
·published 2008-03-13 13:50 UTC
rendered paste body
/* Description: *    Displays menu and waits for user input. Scroll with # and *, with wrap-around. * Parameters: *    items         - menu items *    items_sz      - menu items array's size *    upper         - maximum valid input choice (careful: 0 < 1, don't use for 10!) * Return value: *    char          - user's choice as an integer (0..9) */char rollmenu(const char **items, char items_sz, char upper){    char i = 0;    char resp;    for (;;)    {        puts(items[i]);        resp = getchar();        switch (resp)        {        case '*': // previous page            i = (i + items_sz - 1) % items_sz;            break;        case '#': // next page            i = (i + items_sz + 1) % items_sz;            break;        default:            resp -= '0';            if (resp <= upper)            {                return resp;            }            break;        }    }}