From 3f76b17cecfae6af61240a7ef9e5f21118e39f40 Mon Sep 17 00:00:00 2001 From: scw Date: Fri, 11 Feb 2005 16:59:42 +0000 Subject: Use chomp() instead of assigning '\0' directly. Change a little code in searching of more() to reduce call of strlen(). git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2495 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/cache.c | 2 +- mbbsd/mbbsd.c | 2 +- mbbsd/more.c | 12 ++++++------ mbbsd/talk.c | 2 +- mbbsd/user.c | 6 +++--- mbbsd/vote.c | 4 ++-- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/mbbsd/cache.c b/mbbsd/cache.c index 4369c9f1..c5936331 100644 --- a/mbbsd/cache.c +++ b/mbbsd/cache.c @@ -929,7 +929,7 @@ reload_fcache(void) else { strncpy(SHM->home_desc[SHM->home_num], ip, sizeof(SHM->home_desc[SHM->home_num])); - SHM->home_desc[SHM->home_num][strlen(SHM->home_desc[SHM->home_num]) - 1] = 0; + chomp(SHM->home_desc[SHM->home_num]); } (SHM->home_num)++; if (SHM->home_num == MAX_FROM) diff --git a/mbbsd/mbbsd.c b/mbbsd/mbbsd.c index 7d8b2839..935111d7 100644 --- a/mbbsd/mbbsd.c +++ b/mbbsd/mbbsd.c @@ -766,7 +766,7 @@ setup_utmp(int mode) strlcpy(remotebuf, fromhost, sizeof(fromhost)); strcat(remotebuf, ctime4(&now)); - remotebuf[strlen(remotebuf) - 1] = 0; + chomp(remotebuf); add_distinct(buf, remotebuf); #endif if (enter_uflag & CLOAK_FLAG) diff --git a/mbbsd/more.c b/mbbsd/more.c index dfa7761c..f540e051 100644 --- a/mbbsd/more.c +++ b/mbbsd/more.c @@ -237,17 +237,17 @@ more(char *fpath, int promptend) { char msg[500], *pos; - if (*search_str && (pos = fptr(buf, search_str))) { + if (*search_str && (pos = (*fptr)(buf, search_str))) { char SearchStr[81]; char buf1[100], *pos1; + int search_str_len = strlen(search_str); - strncpy(SearchStr, pos, strlen(search_str)); - SearchStr[strlen(search_str)] = 0; + strlcpy(SearchStr, pos, search_str_len + 1); searching = 0; snprintf(msg, sizeof(msg), "%.*s\033[7m%s\033[m", (int)(pos - buf), buf, SearchStr); - while ((pos = fptr(pos1 = pos + strlen(search_str), + while ((pos = (*fptr)(pos1 = pos + search_str_len, search_str))) { snprintf(buf1, sizeof(buf1), "%.*s\033[7m%s\033[m", (int)(pos - pos1), @@ -358,9 +358,9 @@ more(char *fpath, int promptend) searching = 1; if (getdata(b_lines - 1, 0, "區分大小寫(Y/N/Q)? [N] ", ans, sizeof(ans), LCECHO) && *ans == 'y') - fptr = strstr; + fptr = &strstr; else - fptr = strcasestr; + fptr = &strcasestr; } if (*ans == 'q') searching = 0; diff --git a/mbbsd/talk.c b/mbbsd/talk.c index 23bd72d1..b806dec5 100644 --- a/mbbsd/talk.c +++ b/mbbsd/talk.c @@ -3106,7 +3106,7 @@ AngelNotOnline(){ outs("\033[1;31m╭┤\033[32m 小天使 " " \033[31m├╮\033[m\n"); while (fgets(buf, sizeof(buf), fp)) { - buf[strlen(buf) - 1] = 0; + chomp(buf); prints("\033[1;31m│\033[m%-74.74s\033[1;31m│\033[m\n", buf); } outs("\033[1;31m╰┬──────────────────────" diff --git a/mbbsd/user.c b/mbbsd/user.c index c375032f..c44d4112 100644 --- a/mbbsd/user.c +++ b/mbbsd/user.c @@ -461,7 +461,7 @@ uinfo_query(userec_t * u, int real, int unum) for(k = 0; k < 11; ++k) fgets(genbuf, 200, fp); fgets(genbuf, 200, fp); - genbuf[strlen(genbuf) - 1] = 0; + chomp(genbuf); snprintf(mybuf, 200, "%s棋國自我描述:", chess_type[j]); getdata_buf(i, 0, mybuf, genbuf + 11, 80 - 11, DOECHO); @@ -836,7 +836,7 @@ showplans(char *uid) move(7, 0); while (i < 12 && fgets(genbuf, 256, fp)) { - genbuf[strlen(genbuf) - 1] = 0; + chomp(genbuf); if (i < 6) /* 讀照片檔 */ strcpy(photo[i], genbuf); else if (i == 6) @@ -1074,7 +1074,7 @@ isvalidemail(char *email) while (fgets(buf, sizeof(buf), fp)) { if (buf[0] == '#') continue; - buf[strlen(buf) - 1] = 0; + chomp(buf); if (buf[0] == 'A' && strcasecmp(&buf[1], email) == 0) return 0; if (buf[0] == 'P' && strcasestr(email, &buf[1])) diff --git a/mbbsd/vote.c b/mbbsd/vote.c index eb5a576b..bc470232 100644 --- a/mbbsd/vote.c +++ b/mbbsd/vote.c @@ -304,7 +304,7 @@ b_result_one(vote_buffer_t *vbuf, boardheader_t * fh, int ind, int *total) fprintf(tfp, " 選 項 總票數 得票率 得票分布\n"); for (junk = 0; junk < item_num; junk++) { fgets(inbuf, sizeof(inbuf), cfp); - inbuf[(strlen(inbuf) - 1)] = '\0'; + chomp(inbuf); fprintf(tfp, " %-42s %3d 票 %02.2f%% %02.2f%%\n", inbuf + 3, counts[junk], (float)(counts[junk] * 100) / (float)(people_num), (float)(counts[junk] * 100) / (float)(*total)); @@ -494,7 +494,7 @@ vote_view(vote_buffer_t *vbuf, char *bname, int vote_index) for (i = num = 0; i < item_num; i++, num++) { fgets(inbuf, sizeof(inbuf), fp); - inbuf[(strlen(inbuf) - 1)] = '\0'; + chomp(inbuf); inbuf[30] = '\0'; /* truncate */ move(num % 15 + 6, num / 15 * 40); prints(" %-32s%3d 票", inbuf, counts[i]); -- cgit v1.2.3