diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-07-09 00:27:32 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-07-09 00:27:32 +0800 |
commit | 94d9d70f7c201721323f8ee54593047d21f79782 (patch) | |
tree | 2ce3e9e41d1de2f7b7e0ebba55e5092386fa18fd | |
parent | 577baad7c4800892551535cbdc1d885bcf80b054 (diff) | |
download | pttbbs-94d9d70f7c201721323f8ee54593047d21f79782.tar pttbbs-94d9d70f7c201721323f8ee54593047d21f79782.tar.gz pttbbs-94d9d70f7c201721323f8ee54593047d21f79782.tar.bz2 pttbbs-94d9d70f7c201721323f8ee54593047d21f79782.tar.lz pttbbs-94d9d70f7c201721323f8ee54593047d21f79782.tar.xz pttbbs-94d9d70f7c201721323f8ee54593047d21f79782.tar.zst pttbbs-94d9d70f7c201721323f8ee54593047d21f79782.zip |
* code refine
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4729 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | mbbsd/announce.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/mbbsd/announce.c b/mbbsd/announce.c index 8298f158..ed1e7cea 100644 --- a/mbbsd/announce.c +++ b/mbbsd/announce.c @@ -1143,17 +1143,16 @@ a_where_am_i(const menu_t *root, int current_idx, const char *current_title) return 0; } -int a_parse_zindexes(const char *sidx, a_menu_session_t *sess) +int a_parse_zindexes(const char *s, a_menu_session_t *sess) { int i = 0; - const char *s = sidx; memset(sess->z_indexes, 0, sizeof(sess->z_indexes)); - if (strpbrk(sidx, "0123456789") == NULL) + if (strpbrk(s, "0123456789") == NULL) return -1; while (NULL != (s = strpbrk(s, "0123456789")) && - i < _DIM(sess->z_indexes) ) + i+1 < _DIM(sess->z_indexes) ) { sess->z_indexes[i] = atoi(s); // only increase index @@ -1245,12 +1244,7 @@ a_menu_rec(const char *maintitle, const char *path, if (preselect && !*preselect) preselect = NULL; - if (preselect) - { - me.now = *preselect-1; - } else { - me.now = 0; - } + me.now = preselect ? (*preselect -1) : 0; for (;;) { if (me.now >= me.num) @@ -1285,14 +1279,15 @@ a_menu_rec(const char *maintitle, const char *path, int n = a_multi_search_num(isascii(ch) && isdigit(ch) ? ch : '\0', sess); me.page = A_INVALID_PAGE; if (n > 0) + { me.now = n-1; - else if (n < 0) - vmsg("��J���~�C"); - else if (sess->z_indexes[0]) + me.page = 10000; // I don't know what's the magic value 10000... + } + else if (n == 0 && sess->z_indexes[0]) { // n == 0, check new preselects preselect = sess->z_indexes; - me.now = *preselect-1; + me.now = *preselect - 1; } continue; } |