diff --git a/include/pttstruct.h b/include/pttstruct.h index 6ed092d1d..cdf3d0096 100644 --- a/include/pttstruct.h +++ b/include/pttstruct.h @@ -227,7 +227,7 @@ typedef struct boardheader_t { /* 256 bytes */ #define BRD_CPLOG 0x00200000 /* ¦Û°Ê¯dÂà¿ý°O¿ý */ #define BRD_NOFASTRECMD 0x00400000 /* ¸T¤î§Ö³t±À¤å */ #define BRD_IPLOGRECMD 0x00800000 /* ±À¤å°O¿ý IP */ -#define BRD_OVER18 0x01000000 /* ¤Q¤K¸T */ +#define BRD_OVER18 0x01000000 /* ¢Ì¤K¸T */ #define BRD_NOREPLY 0x02000000 /* ¤£¥i¦^¤å */ #define BRD_ALIGNEDCMT 0x04000000 /* ¹ï»ô¦¡ªº±À¤å */ #define BRD_NOSELFDELPOST 0x08000000 /* ¤£¥i¦Û§R */ diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 58074587a..5094c694a 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -20,7 +20,7 @@ static int do_add_recommend(const char *direct, fileheader_t *fhdr, static int view_postinfo(int ent, const fileheader_t * fhdr, const char *direct, int crs_ln); -static int bnote_lastbid = -1; // ¨M©w¬O§_­nÅã¥Ü¶iªOµe­±ªº cache +static int bnote_lastbid = -1; // �M�w�O�_�n��ܶi�O�e���� cache // recommend/comment types // most people use recommendation just for one-line reply. @@ -182,18 +182,18 @@ check_locked(fileheader_t *fhdr) return; scr = vscr_save(); - vs_hdr("µ²®×¨Ã°±¤î¦^À³"); + vs_hdr("���רð���^��"); move(5, 0); - outs(" ½Ðª`·N¡A¥»¥\\¯à (m+L) ¬O¡uµ²®×¨Ã²×¤î¦^À³¡v(¸T¦^¤å±À¤å)¡A\n" - " ¤@ª½³£¤£¬O¡uÂê©w¤å³¹(ÅÜ°ßŪ)¡v¡C" - "¥¿µP¡uÂê©w¤å³¹¡v¬O¥u¦³¯¸ªø¥i¥Îªº ^E¡C\n\n" - " ©Ò¥H²×¤î¦^À³«á¨Ï¥ÎªÌ¤´¥i­×§ï¦¹ÀÉ¡C\n\n" - " ¥¼¨Ó§Ú­Ì·|¦Ò¼{¬O§_¸Ó­×§ïÅý m+L ¦³Âê©wªº¯à¤O¡A" - "¦ýµu´Á¤º¦¹¦æ¬°¤£·|§ïÅÜ¡C\n\n" - " ½Ð¤Å¦A´£³ø¦¹¶µ¬°¡uÂê©w¦³ bug¡v, ÁÂÁÂ\n\n" + outs(" �Ъ`�N�A���\\�� (m+L) �O�u���רòפ�^���v(�T�^�����)�A\n" + " �@�������O�u��w�峹(�ܰ�Ū)�v�C" + "���P�u��w�峹�v�O�u�������i�Ϊ� ^E�C\n\n" + " �ҥH�פ�^����ϥΪ̤��i�ק惡�ɡC\n\n" + " ���ӧڭ̷|�Ҽ{�O�_�ӭק��� m+L ����w����O�A" + "���u�������欰���|���ܡC\n\n" + " �ФŦA�����������u��w�� bug�v, ����\n\n" ANSI_COLOR(1;31) - " ¥t¥~¡A¦¹¥\\¯à¥Ø«e¦³¦P¨B°ÝÃD¡A" - "¤w¦b½u¤WªºªO¤Í¦bÂ÷¶}¬ÝªO«e³£¦³¾÷·|¦^À³/±À¤å¡C\n" + " �t�~�A���\\��ثe���P�B���D�A" + "�w�b�u�W���O�ͦb���}�ݪO�e�������|�^��/����C\n" ANSI_RESET ); did_prompt = 1; @@ -209,8 +209,8 @@ enum LISTMODES { LISTMODE_MONEY, }; static char *listmode_desc[] = { - "¤é ´Á", - "»ù ®æ", + "�� ��", + "�� ��", }; static int currlistmode = LISTMODE_DATE; @@ -223,21 +223,21 @@ anticrosspost(void) { // probably failure here. if (HasUserPerm(PERM_ADMIN | PERM_MANAGER)) { - vmsg("¨t²Î¥i¯à»~§P±z CP, ¬°ÁקK¥X¿ù¥ý¦æÂ_½u"); + vmsg("�t�Υi��~�P�z CP, ���קK�X�������_�u"); exit(0); } log_filef("etc/illegal_money", LOG_CREAT, ANSI_COLOR(1;33;46) "%s " - ANSI_COLOR(37;45) "cross post ¤å³¹ " + ANSI_COLOR(37;45) "cross post �峹 " ANSI_COLOR(37) " %s" ANSI_RESET "\n", cuser.userid, Cdatelite(&now)); - post_violatelaw(cuser.userid, BBSMNAME "¨t²Îĵ¹î", - "Cross-post", "»@³æ³B¥÷"); + post_violatelaw(cuser.userid, BBSMNAME "�t��ĵ��", + "Cross-post", "�@��B��"); pwcuViolateLaw(); - mail_id(cuser.userid, "Cross-Post»@³æ", - "etc/crosspost.txt", BBSMNAME "ĵ¹î³¡¶¤"); + mail_id(cuser.userid, "Cross-Post�@��", + "etc/crosspost.txt", BBSMNAME "ĵ���"); // Delete all references from BN_ALLPOST, if available. delete_allpost(cuser.userid); kick_all(cuser.userid); // XXX: in2: wait for testing @@ -254,26 +254,26 @@ save_violatelaw(void) setutmpmode(VIOLATELAW); clear(); - vs_hdr("ú»@³æ¤¤¤ß"); + vs_hdr("ú�@�椤��"); // XXX reload lots of stuff here? pwcuReload(); if (!(cuser.userlevel & PERM_VIOLATELAW)) { - vmsg("§A¨S¦³³Q¶}»@³æ~~"); + vmsg("�A�S���Q�}�@��~~"); return 0; } day = cuser.vl_count*3 - (now - cuser.timeviolatelaw)/DAY_SECONDS; if (day > 0) { - vmsgf("¨Ì·Ó¹H³W¦¸¼Æ(%d), §AÁٻݭn¤Ï¬Ù %d ¤Ñ¤~¯àú»@³æ", + vmsgf("�̷ӹH�W����(%d), �A�ٻݭn�Ϭ� %d �Ѥ~��ú�@��", cuser.vl_count, day); return 0; } reload_money(); if (cuser.money < (int)cuser.vl_count * 1000) { snprintf(buf, sizeof(buf), - ANSI_COLOR(1;31) "³o¬O§A²Ä %d ¦¸¹H¤Ï¥»¯¸ªk³W" - "¥²¶·Ãº¥X %d " MONEYNAME "¡F¦ý§A¥Ø«e¥u¦³ %d ¡A¼Æ¶q¤£¨¬!!" + ANSI_COLOR(1;31) "�o�O�A�� %d ���H�ϥ����k�W" + "����ú�X %d " MONEYNAME "�F���A�ثe�u�� %d �A�ƶq����!!" ANSI_RESET, (int)cuser.vl_count, (int)cuser.vl_count * 1000, cuser.money); mvouts(22, 0, buf); @@ -281,16 +281,16 @@ save_violatelaw(void) return 0; } move(5, 0); - prints("³o¬O§A²Ä %d ¦¸¹Hªk ¥²¶·Ãº¥X %d " MONEYNAME "\n\n", + prints("�o�O�A�� %d ���H�k ����ú�X %d " MONEYNAME "\n\n", cuser.vl_count, cuser.vl_count * 1000); - outs(ANSI_COLOR(1;37) "§A¬O§_½T©w¥H«á¤£·|¦A¥Ç¤F¡H" ANSI_RESET "\n"); + outs(ANSI_COLOR(1;37) "�A�O�_�T�w�H�ᤣ�|�A�ǤF�H" ANSI_RESET "\n"); - if (!getdata(10, 0, "½T©w¶Ü¡H[y/N]:", ok, sizeof(ok), LCECHO) || + if (!getdata(10, 0, "�T�w�ܡH[y/N]:", ok, sizeof(ok), LCECHO) || ok[0] != 'y') { move(15, 0); - outs(ANSI_COLOR(1;31) "¤£·Q¥I¶Ü¡H ÁÙ¬O¤£ª¾¹D­n«ö y ¡H\n" - "½Ð¾i¦¨¬Ý²M·¡¨t²Î°T®§ªº¦n²ßºD¡C\n" ANSI_RESET); + outs(ANSI_COLOR(1;31) "���Q�I�ܡH �٬O�����D�n�� y �H\n" + "�оi���ݲM���t�ΰT�����n�ߺD�C\n" ANSI_RESET); pressanykey(); return 0; } @@ -302,17 +302,17 @@ save_violatelaw(void) log_filef("log/violation", LOG_CREAT, "%s %s pay-violation error: race-conditionn hack?\n", Cdate(&now), cuser.userid); - vmsg(MONEYNAME "«ç»ò©¿µM¤£°÷¤F¡H ¸Õ¹Ï´ÛÄF¨t²Î³Q¬d¨ì±N¬å±b¸¹¡I"); + vmsg(MONEYNAME "��ò©¿µM�����F�H �չϴ��F�t�γQ�d��N��b���I"); return 0; } - pay(1000 * (int)cuser.vl_count, "ú¥I»@³æ (#%d)", cuser.vl_count); + pay(1000 * (int)cuser.vl_count, "ú�I�@�� (#%d)", cuser.vl_count); pwcuSaveViolateLaw(); log_filef("log/violation", LOG_CREAT, "%s %s pay-violation: $%d complete.\n", Cdate(&now), cuser.userid, (int)cuser.vl_count*1000); - vmsg("»@³æ¤w¥I¡A½Ð­«·sµn¤J¡C"); + vmsg("�@��w�I�A���s�n�J�C"); u_exit("save_violate"); exit(0); return 0; @@ -333,17 +333,17 @@ set_board(void) } if (BoardPermNeedsSysopOverride(bp)) - vmsg("¶i¤J¥¼¸g±ÂÅv¬ÝªO"); + vmsg("�i�J���g���v�ݪO"); board_note_time = &bp->bupdate; if (!does_board_have_public_bm(bp)) { - strcpy(currBM, "¼x¨D¤¤"); + strcpy(currBM, "�x�D��"); } else { /* calculate with other title information */ int l = 0; - snprintf(currBM, sizeof(currBM), "ªO¥D:%s", bp->BM); + snprintf(currBM, sizeof(currBM), "�O�D:%s", bp->BM); /* title has +7 leading symbols */ l += strlen(bp->title); if(l >= 7) @@ -419,7 +419,7 @@ GetWebUrl(const boardheader_t *bp, const fileheader_t *fhdr, char *buf, #endif // QUERY_ARTICLE_URL -// post ¤å³¹¤£ºâ¿úªºªO +// post �峹��������O int IsFreeBoardName(const char *brdname) { if (strcmp(brdname, BN_TEST) == 0) @@ -436,16 +436,16 @@ int IsFreeBoardName(const char *brdname) /* * Check if user phone number is verified by sms * - * This function will check is current user have already register their + * This function check if current user has already register their * phone number with verifydb library. - * The verify process is modified from verifydb_check_vmethod_unused, - * it will pass cuser.userid and cuser.firstlogin as parameter and find - * VMETHOD_SMS record. + * The verify process is modified from verifydb_check_vmethod_unused. + * It will pass cuser.userid and cuser.firstlogin as parameters and search + * for the VMETHOD_SMS record. * - * Note that, ptt system might has two different user has the same userid - * but won't be happen in same time, so we need firstlogin as second - * parameter, and ptt accept Taiwan phone register only since Jul. 2021 - * so we can just verify whether in database. + * Please note that, ptt system might have two different users with the same userid, + * but this won't happen at the same time. Therefore. we need to use firstlogin as the second + * parameter. And, ptt only accept phone registrations from Taiwan since July 2021 + * so we can simply verify it in database. * * Return true when user has verified phone, false when no register record */ @@ -456,7 +456,7 @@ is_user_sms_verified() const VerifyDb::GetReply *reply; if (!verifydb_getuser(cuser.userid, cuser.firstlogin, &buf, &reply)) { // The verifydb may occur some problem, maybe we should log it and - // notifiy SYSOP? + // notify SYSOP? return false; } if (verifydb_find_vmethod(reply, VMETHOD_SMS)) { @@ -553,7 +553,7 @@ int CheckPostPerm2(const char **preason) { preason = &garbage; if (currmode & MODE_DIGEST) { - *preason = "¤åºKµLªkµo¤å"; + *preason = "��K�L�k�o��"; return 0; } return CheckModifyPerm(preason); @@ -573,7 +573,7 @@ char* get_board_restriction_reason(int bid, size_t sz_msg, char *msg) return NULL; assert(0<=bid-1 && bid-1bvote != 2 && bp->bvote) - brd_title = "¥»¬ÝªO¶i¦æ§ë²¼¤¤"; + brd_title = "���ݪO�i��벼��"; else brd_title = bp->title + 7; showtitle(currBM, brd_title); - outs("[¡ö]Â÷¶} [¡÷]¾\\Ū [Ctrl-P]µoªí¤å³¹ [d]§R°£ [z]ºëµØ°Ï [i]¬ÝªO¸ê°T/³]©w [h]»¡©ú\n"); + outs("[��]���} [��]�\\Ū [Ctrl-P]�o���峹 [d]�R�� [z]��ذ� [i]�ݪO��T/�]�w [h]����\n"); buf[0] = 0; #ifdef USE_COOLDOWN if (bp->brdattr & BRD_COOLDOWN) - snprintf(buf, sizeof(buf), "[ÀR]"); + snprintf(buf, sizeof(buf), "[�R]"); else #endif { @@ -620,10 +620,10 @@ readtitle(void) // user IS reading it. int nuser = SHM->bcache[currbid - 1].nuser; if (nuser < 1) nuser = 1; - snprintf(buf, sizeof(buf), "¤H®ð:%d ", nuser); + snprintf(buf, sizeof(buf), "�H��:%d ", nuser); } - vbarf(ANSI_REVERSE " ½s¸¹ %s §@ ªÌ ¤å ³¹ ¼Ð ÃD\t%s ", + vbarf(ANSI_REVERSE " �s�� %s �@ �� �� �� �� �D\t%s ", IS_LISTING_MONEY ? listmode_desc[LISTMODE_MONEY] : listmode_desc[currlistmode], buf); } @@ -646,9 +646,9 @@ is_tn_allowed(const char *title) PERM_VIEWSYSOP| PERM_POLICE_MAN)) return 1; - // Note: Ãö©ó subgroup op ªº§P©w¥Ø«e¤]¬O¤@¹ÎÁV - ¤p²Õªø­n±q¦Û¤vªº¤ÀÃþ - // ¶i¥h¤~·|¦³ GROUPOP(). ¤£¹L¤Ï¥¿¤p²Õªø¸ò¸s²Õªøªº¤H¨S¨º»ò¦h¡A´N¶}©ñ¥L­Ì - // always ¥i¥H¨Ï¥Î TN_ANNOUNCE §a¡C + // Note: ���� subgroup op ���P�w�ثe�]�O�@���V - �p�ժ��n�q�ۤv������ + // �i�h�~�|�� GROUPOP(). ���L�ϥ��p�ժ���s�ժ����H�S����h�A�N�}��L�� + // always �i�H�ϥ� TN_ANNOUNCE �a�C if (HasUserPerm(PERM_SYSSUPERSUBOP) || HasUserPerm(PERM_SYSSUBOP)) return 1; @@ -691,7 +691,7 @@ readdoent(int num, fileheader_t * ent) outs(ANSI_COLOR(1;30)); prints("%-6.5s", ent->date); prints("%-13.12s", ent->owner); - prints("¢® %-.*s" ANSI_RESET "\n", + prints("�� %-.*s" ANSI_RESET "\n", t_columns-34, ent->title); return; #else // COLORIZED_SAFEDEL @@ -764,29 +764,29 @@ readdoent(int num, fileheader_t * ent) #ifdef SAFE_ARTICLE_DELETE if (iscorpse) - color = '0', mark = "¡¼"; - // color = '0', mark = "¢®"; + color = '0', mark = "��"; + // color = '0', mark = "��"; else #endif if (ent->filemode & FILE_VOTE) - color = '2', mark = "£¾"; + color = '2', mark = "��"; else switch(title_type) { case SUBJECT_REPLY: color = '3', mark = "R:"; break; case SUBJECT_FORWARD: - color = '6', mark = "Âà"; + color = '6', mark = "��"; break; case SUBJECT_LOCKED: - color = '5', mark = "Âê"; + color = '5', mark = "��"; break; case SUBJECT_NORMAL: default: - color = '1', mark = "¡¼"; + color = '1', mark = "��"; break; } - // TN_ANNOUNCE: [¤½§i] + // TN_ANNOUNCE: [���i] if (title[0] == '[' && is_tn_announce(title)) special = 1; @@ -795,7 +795,7 @@ readdoent(int num, fileheader_t * ent) if (title_type == SUBJECT_LOCKED) strcpy(recom,"0m--"); else if(ent->recommend >= MAX_RECOMMENDS) - strcpy(recom,"1mÃz"); + strcpy(recom,"1m�z"); else if(ent->recommend>9) sprintf(recom,"3m%2d",ent->recommend); else if(ent->recommend>0) @@ -809,9 +809,9 @@ readdoent(int num, fileheader_t * ent) /* start printing */ if (ent->filemode & FILE_BOTTOM) { if (HasUserFlag(UF_MENU_LIGHTBAR)) - outs(" " ANSI_COLOR(33) " ¡¹ " ANSI_RESET); + outs(" " ANSI_COLOR(33) " �� " ANSI_RESET); else - outs(" " ANSI_COLOR(1;33) " ¡¹ " ANSI_RESET); + outs(" " ANSI_COLOR(1;33) " �� " ANSI_RESET); } else /* recently we found that many boards have >10k articles, @@ -855,7 +855,7 @@ readdoent(int num, fileheader_t * ent) prints("%-13.12s", ent->owner); if(isonline) outs(ANSI_RESET); - // TODO calculate correct width. «e­±¬ù¦³ 33 ­Ó¦r¤¸¡C */ + // TODO calculate correct width. �e������ 33 �Ӧr���C */ w = t_columns - 34; /* 33+1, for trailing one more space */ // print subject prefix @@ -892,7 +892,7 @@ readdoent(int num, fileheader_t * ent) if (DBCS_Status(title, w-2) == DBCS_TRAILING) w--; outns(title, w-2); - outs("¡K"); + outs("�K"); } else { outs(title); } @@ -925,7 +925,7 @@ whereami(void) i++) p[i + 1] = getbcache(p[i]->parent); j = i; - prints("§Ú¦b­þ?\n%-40.40s %.13s\n", p[j]->title + 7, p[j]->BM); + prints("�ڦb��?\n%-40.40s %.13s\n", p[j]->title + 7, p[j]->BM); for (j--; j >= 0; j--) prints("%*s %-13.13s %-37.37s %.13s\n", (i - j) * 2, "", p[j]->brdname, p[j]->title, @@ -935,7 +935,7 @@ whereami(void) strlcpy(category, p[i]->title + 7, sizeof(category)); if ((pcat = strchr(category, ' ')) != NULL) *pcat = 0; - prints("¦ì¸m: "); + prints("��m: "); for (j = i; j >= 0; j--) prints("%s%s ", (j == i) ? category: p[j]->brdname, @@ -1034,7 +1034,7 @@ do_deleteCrossPost(const fileheader_t *fh, char bname[]) // the getindex is not stable. in order to prevent leaving files, // no matter what, delete the file. - delete_file_content2(bdir, fh, bdir, NULL, 0, "Cross-Post(¨t²Îĵ¹î§R°£)"); + delete_file_content2(bdir, fh, bdir, NULL, 0, "Cross-Post(�t��ĵ��R��)"); unlink(file); } @@ -1047,7 +1047,7 @@ deleteCrossPost(const fileheader_t *fhdr, char *bname) strcmp(bname, BN_ALLHIDPOST) == 0 || strcmp(bname, BN_NEWIDPOST) == 0 || strcmp(bname, BN_UNANONYMOUS) == 0 ) { - // These files (in BN_ALLPOST etc) have '.BOARDªO' or '(BOARD)' refrence + // These files (in BN_ALLPOST etc) have '.BOARD�O' or '(BOARD)' refrence // in title int bnlen; char bnbuf[IDLEN + 1] = "", *bn; @@ -1060,7 +1060,7 @@ deleteCrossPost(const fileheader_t *fhdr, char *bname) bnlen = strlen(++bn) - 1; snprintf(bnbuf, sizeof(bnbuf), "%*.*s", bnlen, bnlen, bn); } else { - // old format: .BOARDª©, which may conflict with board names. + // old format: .BOARD��, which may conflict with board names. bn = strrchr(fhdr->title, '.'); if (!bn) return; @@ -1106,7 +1106,7 @@ delete_allpost(const char *userid) } /* ----------------------------------------------------- */ -/* µoªí¡B¦^À³¡B½s¿è¡BÂà¿ý¤å³¹ */ +/* �o���B�^���B�s��B����峹 */ /* ----------------------------------------------------- */ static int solveEdFlagByBoard(const char *bn, int flags) @@ -1136,10 +1136,10 @@ do_reply_title(int row, const char *title, const char *prefix, len = TTLEN; result[TTLEN - 1] = '\0'; DBCS_safe_trim(result); - mvouts(row++, 0, "­ì¼ÐÃD: "); outs(result); - getdata(row, 0, "±Ä¥Î­ì¼ÐÃD[Y/n]? ", ans, 3, LCECHO); + mvouts(row++, 0, "����D: "); outs(result); + getdata(row, 0, "�ĥέ���D[Y/n]? ", ans, 3, LCECHO); if (ans[0] == 'n') - getdata_str(row, 0, "·s¼ÐÃD¡G", result, len, DOECHO, result); + getdata_str(row, 0, "�s���D�G", result, len, DOECHO, result); } @@ -1147,7 +1147,7 @@ void log_crosspost_in_allpost(const char *brd, const fileheader_t *postfile) { char genbuf[PATHLEN]; fileheader_t fh; - // '¡K' appears for t_columns-33. + // '�K' appears for t_columns-33. int len = 42-strlen(brd); const char *title = subject(postfile->title); int bid = getbnum(BN_ALLPOST), brd_id = getbnum(brd); @@ -1168,7 +1168,7 @@ log_crosspost_in_allpost(const char *brd, const fileheader_t *postfile) { if ((int)strlen(title) > len) { genbuf[len-2] = 0; DBCS_safe_trim(genbuf); - strcat(genbuf, "¡K"); + strcat(genbuf, "�K"); } snprintf(fh.title, sizeof(fh.title), "%s %-*.*s(%s)", str_forward, len, len, genbuf, brd); @@ -1185,7 +1185,7 @@ dbcs_safe_trim_title(char *output, const char *title, int len) { if ((int)strlen(title) > len) { snprintf(output, len + 1, "%-*.*s", len - 2, len - 2, title); DBCS_safe_trim(output); - strlcat(output, "¡K", len + 1); + strlcat(output, "�K", len + 1); while ((int)strlen(output) < len) strlcat(output, " ", len + 1); } else { @@ -1251,9 +1251,9 @@ int does_board_have_public_bm(const boardheader_t *bp) { // Usually we can assume SHM->BMcache contains complete BM list; however // sometimes boards may contains only private BMs (ex: [ <-space some_uid]) - // ¥t¥~ÁÙ¦³¤H¤£ª¾¬°¤F¦Û¤v¥[¤F [] ¤W¥h - // ·d¤F¥b¤ÑÁÙ¬Orevert¦^­ì©lªº BM[0] < ' ' ¦n¤F¡A - // «ÜÁV¦ý¬OÁÙ¨S·Q¨ì§ó¦nªº§@ªk¡C + // �t�~�٦��H�������F�ۤv�[�F [] �W�h + // �d�F�b���٬Orevert�^��l�� BM[0] < ' ' �n�F�A + // ���V���O�٨S�Q���n���@�k�C return bp->BM[0] > ' '; } @@ -1296,14 +1296,14 @@ do_post_article(int edflags) int money = 0; char genbuf[PATHLEN]; const char *owner; - char ctype[8][5] = {"°ÝÃD", "«Øij", "°Q½×", "¤ß±o", - "¶¢²á", "½Ð¯q", "±¡³ø", - "¤½§i" // TN_ANNOUNCE + char ctype[8][5] = {"���D", "��ij", "�Q��", "�߱o", + "����", "�Яq", "����", + "���i" // TN_ANNOUNCE }; boardheader_t *bp; int posttype=-1; char save_title[STRLEN]; - const char *reason = "µLªkµo¤å"; + const char *reason = "�L�k�o��"; save_title[0] = '\0'; @@ -1313,18 +1313,18 @@ do_post_article(int edflags) if( !CheckPostPerm2(&reason) #ifdef FOREIGN_REG - // ¤£¬O¥~Äy¨Ï¥ÎªÌ¦b PttForeign ªO + // ���O�~�y�ϥΪ̦b PttForeign �O && !(HasUserFlag(UF_FOREIGN) && strcmp(bp->brdname, BN_FOREIGN) == 0) #endif ) { - vmsgf("µLªkµo¤å: %s", reason); + vmsgf("�L�k�o��: %s", reason); return READ_REDRAW; } if (get_board_restriction_reason(currbid, sizeof(genbuf), genbuf)) { - vmsgf("¥¼¹F¬ÝªOµo¤å­­¨î: %s", genbuf); + vmsgf("���F�ݪO�o�孭��: %s", genbuf); return FULLUPDATE; } #ifdef USE_COOLDOWN @@ -1353,9 +1353,9 @@ do_post_article(int edflags) more("etc/" FN_POST_NOTE, NA); } move(19, 0); - prints("%s©ó¡i" ANSI_COLOR(33) " %s" ANSI_RESET " ¡j " - ANSI_COLOR(32) "%s" ANSI_RESET " ¬ÝªO\n", - "µoªí¤å³¹", + prints("%s��i" ANSI_COLOR(33) " %s" ANSI_RESET " �j " + ANSI_COLOR(32) "%s" ANSI_RESET " �ݪO\n", + "�o���峹", currboard, bp->title + 7); if (quote_file[0]) @@ -1364,13 +1364,13 @@ do_post_article(int edflags) else { char tmp_title[STRLEN]=""; move(21,0); - outs("ºØÃþ¡G"); + outs("�����G"); for(i=0; i<8 && bp->posttype[i*4]; i++) strlcpy(ctype[i],bp->posttype+4*i,5); if(i==0) i=8; for(j=0; j= TTLEN - 4) w = TTLEN - 4; - getdata_buf(22, 0, "¼ÐÃD¡G", tmp_title, w, DOECHO); + getdata_buf(22, 0, "���D�G", tmp_title, w, DOECHO); strip_ansi(tmp_title, tmp_title, STRIP_ALL); if (!is_tn_allowed(tmp_title)) { // XXX the only case now is TN_ANNOUNCE. - mvouts(21, 0, "©êºp¡A" TN_ANNOUNCE " «O¯dµ¹ªO¥D¨Ï¥Î¡C\n"); + mvouts(21, 0, "��p�A" TN_ANNOUNCE " �O�d���O�D�ϥΡC\n"); tn_safe_strip(tmp_title); continue; } @@ -1421,7 +1421,7 @@ do_post_article(int edflags) /* build filename */ setbpath(fpath, currboard); if (stampfile(fpath, &postfile) < 0) { - vmsg("¨t²Î¿ù»~: µLªk¼g¤JÀɮסC"); + vmsg("�t��~: �L�k�g�J�ɮסC"); return FULLUPDATE; } if(posttype!=-1 && ((1<posttype_f)) { @@ -1435,7 +1435,7 @@ do_post_article(int edflags) edflags |= EDITFLAG_WARN_NOSELFDEL; #if defined(PLAY_ANGEL) - // XXX ´c·dªº code¡C + // XXX �c�d�� code�C if (HasUserPerm(PERM_ANGEL) && (currbrdattr & BRD_ANGELANONYMOUS)) { currbrdattr |= BRD_ANONYMOUS; @@ -1520,7 +1520,7 @@ do_post_article(int edflags) char url[STRLEN]; if (GetWebUrl(bp, &postfile, url, sizeof(url))) { log_filef(genbuf, LOG_CREAT, - "¡° " URL_DISPLAYNAME ": %s\n", url); + "�� " URL_DISPLAYNAME ": %s\n", url); } } #endif @@ -1554,36 +1554,36 @@ do_post_article(int edflags) do_crosspost(BN_ALLPOST, &postfile, fpath); } } - outs("¶¶§Q¶K¥X§G§i¡A"); + outs("���Q�K�X�G�i�A"); // Freeboard/BRD_NOCREDIT check was already done. if (!ifuseanony) { if (money > 0) { - pay(-money, "%s ¬ÝªOµo¤å½Z¹S: %s", currboard, postfile.title); + pay(-money, "%s �ݪO�o��Z�S: %s", currboard, postfile.title); pwcuIncNumPost(); - prints("³o¬O±zªº²Ä %d ½g¦³®Ä¤å³¹¡AÀò±o½Z¹S %d " + prints("�o�O�z���� %d �g���Ĥ峹�A��o�Z�S %d " MONEYNAME "\n", cuser.numposts, money); - prints("\n (­Y¤§«á¦Û¦æ©Î³QªO¥D§R¤å" - "«h¦¹¦¸Àò±oªº¦³®Ä¤å³¹¼Æ¤Î½Z¹S¥i¯à·|³Q¦^¦¬)\n\n"); + prints("\n (�Y����ۦ�γQ�O�D�R��" + "�h������o�����Ĥ峹�ƤνZ�S�i��|�Q�^��)\n\n"); } else { #ifdef USE_HIDDEN_BOARD_NOCREDIT if (currbrdattr & BRD_HIDE) - outs("¥Ñ©ó¥»¬ÝªO¬°ÁôªO¡A¬°ÁקK¾DÀݥΡAµo¤åµL¥ô¦ó¼úÀy¡C"); + outs("�ѩ󥻬ݪO�����O�A���קK�D�ݥΡA�o��L������y�C"); else #endif // no money, no record. - outs("¥»½g¤å³¹¤£¦C¤J°O¿ý¡A·q½Ð¥]²[¡C"); + outs("���g�峹���C�J�O���A�q�Х]�[�C"); } } else { - outs("¤£¦C¤J°O¿ý¡A·q½Ð¥]²[¡C"); + outs("���C�J�O���A�q�Х]�[�C"); } clrtobot(); - /* ¦^À³¨ì­ì§@ªÌ«H½c */ + /* �^�����@�̫H�c */ if (edflags & EDITFLAG_KIND_SENDMAIL) { char *str, *msg = NULL; @@ -1598,7 +1598,7 @@ do_post_article(int edflags) msg = err_uid; } else if(is_rejected(quote_user)) { genbuf[0] = 0; - msg = "§@ªÌ©Ú¦¬"; + msg = "�@�̩ڦ�"; } } @@ -1613,7 +1613,7 @@ do_post_article(int edflags) strlcpy(mailfile.owner, cuser.userid, sizeof(mailfile.owner)); strlcpy(mailfile.title, save_title, sizeof(mailfile.title)); sethomedir(genbuf, quote_user); - msg = "¦^À³¦Ü§@ªÌ«H½c"; + msg = "�^���ܧ@�̫H�c"; if (append_record(genbuf, &mailfile, sizeof(mailfile)) == -1) msg = err_uid; else @@ -1624,13 +1624,13 @@ do_post_article(int edflags) "%s [%s (%s)] %s -> %s: %s\n", Cdatelite(&now), __FUNCTION__, currboard, cuser.userid, str + 1, save_title)); - msg = "¦^À³¦Ü§@ªÌ¥~³¡«H½c"; + msg = "�^���ܧ@�̥~���H�c"; if ( bsmtp(fpath, save_title, str + 1, NULL) < 0) - msg = "§@ªÌµLªk¦¬«H"; + msg = "�@�̵L�k���H"; } else { // unknown user id if (!msg) - msg = "§@ªÌµLªk¦¬«H"; + msg = "�@�̵L�k���H"; } outs(msg); } @@ -1688,8 +1688,8 @@ do_generalboardreply(/*const*/ fileheader_t * fhdr) if (!CheckPostRestriction(currbid)) { getdata(b_lines - 1, 0, - ANSI_COLOR(1;31) "¡¶ µLªk¦^À³¦Ü¬ÝªO¡C " ANSI_RESET - "§ï¦^À³¦Ü (M)§@ªÌ«H½c (Q)¨ú®ø¡H[Q] ", + ANSI_COLOR(1;31) "�� �L�k�^���ܬݪO�C " ANSI_RESET + "��^���� (M)�@�̫H�c (Q)�����H[Q] ", genbuf, sizeof(genbuf), LCECHO); switch (genbuf[0]) { case 'm': @@ -1701,7 +1701,7 @@ do_generalboardreply(/*const*/ fileheader_t * fhdr) } else { getdata(b_lines - 1, 0, - "¡¶ ¦^À³¦Ü (F)¬ÝªO (M)§@ªÌ«H½c (B)¤GªÌ¬Ò¬O (Q)¨ú®ø¡H[F] ", + "�� �^���� (F)�ݪO (M)�@�̫H�c (B)�G�̬ҬO (Q)�����H[F] ", genbuf, sizeof(genbuf), LCECHO); switch (genbuf[0]) { case 'm': @@ -1752,10 +1752,10 @@ do_reply(/*const*/ fileheader_t * fhdr) { if(fhdr->filemode & FILE_MARKED) { - vmsg("«Ü©êºp, ¦¹¤å³¹¤wµ²®×¨Ã¼Ð°O, ¤£±o¦^À³."); + vmsg("�ܩ�p, ���峹�w���רüаO, ���o�^��."); return FULLUPDATE; } - if(vmsg("¦¹½g¤å³¹¤wµ²®×, ¬O§_¯uªº­n¦^À³?(y/N)")!='y') + if(vmsg("���g�峹�w����, �O�_�u���n�^��?(y/N)")!='y') return FULLUPDATE; } @@ -1763,7 +1763,7 @@ do_reply(/*const*/ fileheader_t * fhdr) bp = getbcache(currbid); if (bp->brdattr & BRD_NOREPLY) { // try to reply by mail. - if (vans("«Ü©êºp, ¥»ªO¤£¶}©ñ¦^ÂФ峹¡A­n§ï¦^«Hµ¹§@ªÌ¶Ü¡H [y/N]: ") == 'y') + if (vans("�ܩ�p, ���O���}��^�Ф峹�A�n��^�H���@�̶ܡH [y/N]: ") == 'y') return mail_reply(0, fhdr, 0); else return FULLUPDATE; @@ -1941,7 +1941,7 @@ edit_post(int ent, fileheader_t * fhdr, const char *direct) } if (!dashf(genbuf)) { - vmsg("¦¹Àɤw·l·´¡AµLªk½s¿è¡C±z¥i¥H¸ÕµÛ§R°£¥¦¡C"); + vmsg("���ɤw�l���A�L�k�s��C�z�i�H�յۧR�����C"); return FULLUPDATE; } @@ -1950,21 +1950,21 @@ edit_post(int ent, fileheader_t * fhdr, const char *direct) setutmpmode(REEDIT); - // TODO ¥Ñ©ó²{¦bÀɮ׳£¬Oª½±µ»\¦^­ìÀÉ¡A - // ¦b­ì¬ÝªO¥Ø¿ý¶}¤w¨S¦³«Ü¤j·N¸q¡C (®Ä²vµy°ª¤@ÂI) - // ¥i¥H¦Ò¼{§ï¶}¦b user home dir - // ¦n³B¬O¬ÝªOªºÀɮ׼Ƥ£·|¨g¦¨ªø¡C (when someone crashed) + // TODO �ѩ�{�b�ɮ׳��O�����\�^���ɡA + // �b��ݪO�ؿ��}�w�S���ܤj�N�q�C (�IJv�y���@�I) + // �i�H�Ҽ{��}�b user home dir + // �n�B�O�ݪO���ɮ׼Ƥ��|�g�����C (when someone crashed) // sethomedir(fpath, cuser.userid); - // XXX ¦pªG§Aªº¨t²Î¦³©w´Á¬ÝªO²M©t¨àÀÉ¡A¨º´N¤£¥Î©ñ user home¡C + // XXX �p�G�A���t���w���ݪO�M�t���ɡA���N���� user home�C setbpath(fpath, currboard); - // XXX ¥H²{¦bªº¼Ò¦¡¡A³o¬O­Ó temp file + // XXX �H�{�b���Ҧ��A�o�O�� temp file stampfile(fpath, &postfile); // copying takes long time, add some visual effect grayout(0, b_lines-2, GRAYOUT_DARK); move(b_lines-1, 0); clrtoeol(); - outs("¥¿¦b¸ü¤JÀÉ®×..."); + outs("���b���J�ɮ�..."); refresh(); strlcpy(save_title, fhdr->title, sizeof(save_title)); @@ -1975,7 +1975,7 @@ edit_post(int ent, fileheader_t * fhdr, const char *direct) #ifdef EDITPOST_SMARTMERGE if (hash_partial_file(fpath, oldsz, oldsum) != HASHPF_RET_OK) { - vmsg("¨t²Î¿ù»~¡AµLªk·Ç³Æ½s¿èÀɮסC½Ð¦Ü" BN_BUGREPORT "³ø§i"); + vmsg("�t��~�A�L�k�dzƽs���ɮסC�Ц�" BN_BUGREPORT "���i"); unlink(fpath); return FULLUPDATE; } @@ -1987,7 +1987,7 @@ edit_post(int ent, fileheader_t * fhdr, const char *direct) } #ifdef EDITPOST_SMARTMERGE - outs("\n\n" ANSI_COLOR(1;30) "¥¿¦bÀˬdÀɮ׬O§_³Q­×§ï¹L..." ANSI_RESET); + outs("\n\n" ANSI_COLOR(1;30) "���b�ˬd�ɮ׬O�_�Q�ק�L..." ANSI_RESET); refresh(); if (hash_partial_file(genbuf, oldsz, newsum) != HASHPF_RET_OK || @@ -2004,8 +2004,8 @@ edit_post(int ent, fileheader_t * fhdr, const char *direct) setuserfile(genbuf, "buf.0"); Rename(fpath, genbuf); // alert uesr - outs("\n\n" ANSI_COLOR(1;31) "Àɮפw³Q¨ä¥¦¤H­×§ï¹L¡AµLªk¼g¤J¡C\n" - "­è¤~ªº¤º®e¤w¦s¤J±zªº¼È¦sÀÉ[0]¡C ½Ð­«·s½s¿è¡C"); + outs("\n\n" ANSI_COLOR(1;31) "�ɮפw�Q�䥦�H�ק�L�A�L�k�g�J�C\n" + "��~�����e�w�s�J�z���Ȧs��[0]�C ���s�s��C"); pressanykey(); return FULLUPDATE; } @@ -2052,7 +2052,7 @@ edit_post(int ent, fileheader_t * fhdr, const char *direct) if (rev > 0) { char revfn[PATHLEN]; timecapsule_get_by_revision(genbuf, rev, revfn, sizeof(revfn)); - log_filef(revfn, 0, "\n¡° Last modified: %s", Cdatelite(&oldmt)); + log_filef(revfn, 0, "\n�� Last modified: %s", Cdatelite(&oldmt)); } #endif @@ -2106,11 +2106,11 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) setbfile(fname, currboard, fhdr->filename); if (!dashf(fname)) { - vmsg("Àɮפw¤£¦s¦b¡C"); + vmsg("�ɮפw���s�b�C"); return FULLUPDATE; } - // XXX TODO ¬°ÁקK¹Hªk¨Ï¥ÎªÌ¤j¶q¹ï¥Ó¶DªOÂà¤å¡A­­©w¨C¦¸µo¤å¶q¡C + // XXX TODO ���קK�H�k�ϥΪ̤j�q��ӶD�O���A���w�C���o��q�C if (HasUserPerm(PERM_VIOLATELAW)) { static int violatecp = 0; @@ -2119,7 +2119,7 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) } if (!HasUserPerm(PERM_LOGINOK)) { - vmsg("±zµLÂà¿ýÅv­­¡C"); + vmsg("�z�L����v���C"); return FULLUPDATE; } @@ -2128,9 +2128,9 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) if (is_BM_cache(currbid)) { SOLVE_ANSI_CACHE(); clrtoeol(); - outs("·Ç³Æ¶i¦æ¤å³¹Âà¿ý¡CªO¥D­n¸m©³¤å³¹½Ð§ï«ö " - ANSI_COLOR(1;31) "_" ANSI_RESET " (À£¦í " - ANSI_COLOR(1;36) "Shift" ANSI_RESET " ¦A«ö " + outs("�dzƶi��峹����C�O�D�n�m���峹�Ч�� " + ANSI_COLOR(1;31) "_" ANSI_RESET " (���� " + ANSI_COLOR(1;36) "Shift" ANSI_RESET " �A�� " ANSI_COLOR(1;36) "-" ANSI_RESET " )\n"); } @@ -2147,7 +2147,7 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) if( (bp->brdattr & BRD_CPLOG) && (!CheckPostPerm() || !CheckPostRestriction(currbid))) { - vmsg("¥Ñ¥»ªOÂà¿ý¤å³¹»Ý¦³µo¤åÅv­­(¥i«ö i ¬d¬Ý­­¨î)"); + vmsg("�ѥ��O����峹�ݦ��o���v��(�i�� i �d�ݭ���)"); return FULLUPDATE; } #endif // USE_AUTOCPLOG @@ -2158,54 +2158,54 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) move(1, 0); - CompleteBoard("Âà¿ý¥»¤å³¹©ó¬ÝªO¡G", xboard); + CompleteBoard("������峹��ݪO�G", xboard); if (*xboard == '\0') return FULLUPDATE; if (!haspostperm(xboard)) { - vmsg("¬ÝªO¤£¦s¦b©Î¸Ó¬ÝªO¸T¤î±zµoªí¤å³¹¡I"); + vmsg("�ݪO���s�b�θӬݪO�T��z�o���峹�I"); return FULLUPDATE; } - /* ¤£­n­É¥ÎÅܼơA°O¾ÐÅé¨S¨º»ò¯Ê¡A¤H¸£²V¶Ãªº¥N»ù¤ñ¸û°ª */ + /* ���n�ɥ��ܼơA�O����S����ʡA�H���V��N������� */ xbid = getbnum(xboard); assert(0<=xbid-1 && xbid-1title, str_forward, xtitle, sizeof(xtitle)); - // FIXME ³o¸Ì¥i¯à·|¦³¤H°½°½¥Í¥X«O¯d¼ÐÃD(¦p[¤½§i]) - // ¤£¹Lºâ¤F¡Aª½±µ¦H°h³oºØ¤H¤ñ¸û¤è«K - // ¤Ï¥¿¥»¨Ó´N¥u¬O·Q¸Ñ¨M¡u¤£¤p¤ß¡v©Î¬O¡u°²¸Ë¤£¤p¤ß¡v¥Î¨ìªº±¡§Î¡C + // FIXME �o�̥i��|���H�����ͥX�O�d���D(�p[���i]) + // ���L��F�A�����H�h�o�ؤH�����K + // �ϥ����ӴN�u�O�Q�ѨM�u���p�ߡv�άO�u���ˤ��p�ߡv�Ψ쪺���ΡC // tn_safe_strip_board(xtitle, xboard); - getdata(2, 0, "(S/L)µo¤å (Q)¨ú®ø¡H[Q] ", genbuf, 3, LCECHO); + getdata(2, 0, "(S/L)�o�� (Q)�����H[Q] ", genbuf, 3, LCECHO); if (genbuf[0] != 'l' && genbuf[0] != 's') return FULLUPDATE; #ifdef CROSSPOST_VERIFY_CAPTCHA - if (!verify_captcha("¬°¤FÁקK¤£·í¤j¶qÂà¿ý\n")) { - vmsg("¤å³¹¥¼Âà¿ý¡A½Ð­«¸Õ¡C"); + if (!verify_captcha("���F�קK�����j�q���\n")) { + vmsg("�峹������A�Э��աC"); return FULLUPDATE; } #endif @@ -2218,7 +2218,7 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) currmode = 0; setbpath(xfpath, xboard); if (stampfile(xfpath, &xfile) < 0) { - vmsg("¨t²Î¿ù»~: µLªk¼g¤JÀÉ®×"); + vmsg("�t��~: �L�k�g�J�ɮ�"); return FULLUPDATE; } strlcpy(xfile.owner, cuser.userid, sizeof(xfile.owner)); @@ -2239,7 +2239,7 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) if (!IS_OPENBRD(bp)) { /* invisible board */ - fprintf(xptr, "¡° [¥»¤åÂà¿ý¦Û¬YÁô§Î¬ÝªO]\n\n"); + fprintf(xptr, "�� [��������۬Y���άݪO]\n\n"); b_suckinfile_invis(xptr, fname, currboard); } else { /* public board */ @@ -2256,7 +2256,7 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) // add trailing space strcat(aidc, " "); } - fprintf(xptr, "¡° [¥»¤åÂà¿ý¦Û %s ¬ÝªO%s]\n\n", currboard, aidc); + fprintf(xptr, "�� [��������� %s �ݪO%s]\n\n", currboard, aidc); b_suckinfile(xptr, fname); } @@ -2279,9 +2279,9 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) bp = getbcache(bid); if (IS_OPENBRD(bp)) { - sprintf(bname, "¬ÝªO %s", xboard); + sprintf(bname, "�ݪO %s", xboard); } else { - strcpy(bname, "¬YÁô§Î¬ÝªO"); + strcpy(bname, "�Y���άݪO"); } maxlength -= (strlen(cuser.userid) + strlen(bname)); @@ -2298,8 +2298,8 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) #endif snprintf(buf, sizeof(buf), // ANSI_COLOR(32) <- system will add green - "¡° " ANSI_COLOR(1;32) "%s" - ANSI_COLOR(0;32) ":Âà¿ý¦Ü" + "�� " ANSI_COLOR(1;32) "%s" + ANSI_COLOR(0;32) ":�����" "%s" ANSI_RESET "%*s%s\n" , cuser.userid, bname, maxlength, "", tail); @@ -2318,7 +2318,7 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) } /* - * Cross fs¦³°ÝÃD else { unlink(xfpath); link(fname, xfpath); } + * Cross fs�����D else { unlink(xfpath); link(fname, xfpath); } */ setbdir(fname, xboard); append_record(fname, &xfile, sizeof(xfile)); @@ -2331,7 +2331,7 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) add_posttimes(usernum, 1); #endif setbtotal(getbnum(xboard)); - outs("¤å³¹Âà¿ý§¹¦¨¡C(Âà¿ý¤£¼W¥[¤å³¹¼Æ¡A·q½Ð¥]²[)\n\n"); + outs("�峹��������C(������W�[�峹�ơA�q�Х]�[)\n\n"); LOG_IF(LOG_CONF_CROSSPOST, log_filef("log/cross_post.log", LOG_CREAT, @@ -2345,7 +2345,7 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) #ifdef NOTIFY_BM_CP_IGNORE // ignore BM for cross-posting. outs(ANSI_COLOR(1;32) - "¦¹½g¬°ªO¥DÂà¿ý¡A¤£¦Û°ÊÀˬdCP(¦ý½Ð¤p¤ß»~IJ¤H¤uÀËÁ|)\n" + "���g���O�D����A���۰��ˬdCP(���Фp�߻~IJ�H�u���|)\n" ANSI_RESET); #endif } @@ -2397,7 +2397,7 @@ read_post(int ent, fileheader_t * fhdr, const char *direct) bnlen = strlen(++bn) - 1; snprintf(bnbuf, sizeof(bnbuf), "%*.*s", bnlen, bnlen, bn); } else { - // old format: .BOARDª©, which may conflict with board names. + // old format: .BOARD��, which may conflict with board names. bn = strrchr(fhdr->title, '.'); if (!bn) break; @@ -2446,7 +2446,7 @@ read_post(int ent, fileheader_t * fhdr, const char *direct) { case -1: clear(); - vmsg("¦¹¤å³¹µL¤º®e"); + vmsg("���峹�L���e"); return FULLUPDATE; case RET_DOREPLY: case RET_DOREPLYALL: @@ -2489,16 +2489,16 @@ editLimits(unsigned char *plogins, y++; move(y+2, 0); clrtobot(); outs(ANSI_COLOR(1;32) - "½Ðª`·N¡uµù¥U®É¶¡¡v¤w³Q¨ú®ø(¥Ñ" STR_LOGINDAYS "¨ú¥N)¡A­Y±z¦¬¨ìªº­×§ï½Ð¨D\n" - "¤´¦³¸Ó¼Æ­È¡A½Ð­«·s¦V´£¥X¥Ó½ÐªÌ½T»{¡C ¥t¥~½Ðª`·N³o¬O¤@¤Ñ¤@¦¸­pºâ¡A¤£¬O\n" - "ªº¤W¯¸¦¸¼Æ¡C ¦³ªºªO¥D¥i¯à®³Âªº¤W¯¸¦¸¼Æ¨Ó¥Ó½Ð¡A³y¦¨¨Ï¥ÎªÌ©¿µMµLªkµo¤å\n" - "¦ýªO¥D¤S¥H¬°¨S§ï¹L¡C ³]©w«e½Ð¸òªO¥D½T»{¹L³o¤£¬Oªº³]©w¼Æ­È¡C\n" + "�Ъ`�N�u���U�ɶ��v�w�Q����(��" STR_LOGINDAYS "���N)�A�Y�z���쪺�ק�ШD\n" + "�����ӼƭȡA���s�V���X�ӽЪ̽T�{�C �t�~�Ъ`�N�o�O�@�Ѥ@���p��A���O\n" + "�ª��W�����ơC �����O�D�i�ள�ª��W�����ƨӥӽСA�y���ϥΪ̩��M�L�k�o��\n" + "���O�D�S�H���S��L�C �]�w�e�и�O�D�T�{�L�o���O�ª��]�w�ƭȡC\n" ANSI_RESET); sprintf(genbuf, "%u", logins*10); do { getdata_buf(y, 0, - STR_LOGINDAYS "¤U­­ (0~2550,¥H10¬°³æ¦ì,­Ó¦ì¼Æ¦r±N¦Û°Ê±Ë¥h)¡G", + STR_LOGINDAYS "�U�� (0~2550,�H10�����,�Ӧ�Ʀr�N�۰ʱ˥h)�G", genbuf, 5, NUMECHO); temp = atoi(genbuf); } while (temp < 0 || temp > 2550); @@ -2510,7 +2510,7 @@ editLimits(unsigned char *plogins, sprintf(genbuf, "%u", temp); do { getdata_buf(y, 0, - "°h¤å½g¼Æ¤W­­ (0~255)¡G", genbuf, 5, NUMECHO); + "�h��g�ƤW�� (0~255)�G", genbuf, 5, NUMECHO); temp = atoi(genbuf); } while (temp < 0 || temp > 255); badpost = (unsigned char)(255 - temp); @@ -2534,13 +2534,13 @@ do_limitedit(int ent, fileheader_t * fhdr, const char *direct) (HasUserPerm(PERM_SYSSUPERSUBOP) && GROUPOP()))) return DONOTHING; - strcpy(buf, "§ó§ï "); + strcpy(buf, "��� "); if (HasUserPerm(PERM_BOARD) || (HasUserPerm(PERM_SYSSUPERSUBOP) && GROUPOP())) - strcat(buf, "(A)¥»ªOµoªí­­¨î "); - strcat(buf, "(B)¥»ªO¹w³]"); + strcat(buf, "(A)���O�o������ "); + strcat(buf, "(B)���O�w�]"); if (fhdr->filemode & FILE_VOTE) - strcat(buf, " (C)¥»½g"); - strcat(buf, "³s¸p­­¨î (Q)¨ú®ø¡H[Q]"); + strcat(buf, " (C)���g"); + strcat(buf, "�s�p���� (Q)�����H[Q]"); buf[0] = vans(buf); if ((HasUserPerm(PERM_BOARD) || (HasUserPerm(PERM_SYSSUPERSUBOP) && GROUPOP())) && buf[0] == 'a') { @@ -2552,7 +2552,7 @@ do_limitedit(int ent, fileheader_t * fhdr, const char *direct) assert(0<=currbid-1 && currbid-1brdname); - vmsg("­×§ï§¹¦¨¡I"); + vmsg("�ק粒���I"); return FULLUPDATE; } else if (buf[0] == 'b') { @@ -2564,12 +2564,12 @@ do_limitedit(int ent, fileheader_t * fhdr, const char *direct) assert(0<=currbid-1 && currbid-1brdname); - vmsg("­×§ï§¹¦¨¡I"); + vmsg("�ק粒���I"); return FULLUPDATE; } else if ((fhdr->filemode & FILE_VOTE) && buf[0] == 'c') { if (currmode & MODE_SELECT) { - vmsg("½Ð°h¥X·j´M¼Ò¦¡«á¦A³]©w¡C"); + vmsg("�аh�X�j�M�Ҧ���A�]�w�C"); return FULLUPDATE; } @@ -2578,20 +2578,20 @@ do_limitedit(int ent, fileheader_t * fhdr, const char *direct) &fhdr->multi.vote_limits.badpost); if (modify_dir_lite(direct, ent, fhdr->filename, 0, NULL, NULL, NULL, 0, &fhdr->multi, 0, 0) != 0) { - vmsg("­×§ï¥¢±Ñ¡A½Ð­«·s¶i¤J¬ÝªO¦A¸Õ¸Õ¡C"); + vmsg("�ק異�ѡA���s�i�J�ݪO�A�ոաC"); return FULLUPDATE; } - vmsg("­×§ï§¹¦¨¡I"); + vmsg("�ק粒���I"); return FULLUPDATE; } - vmsg("¨ú®ø­×§ï"); + vmsg("�����ק�"); return FULLUPDATE; } /* ----------------------------------------------------- */ -/* ±Ä¶°ºëµØ°Ï */ +/* �Ķ���ذ� */ /* ----------------------------------------------------- */ static int b_man(void) @@ -2629,7 +2629,7 @@ cite_post(int ent GCC_UNUSED, const fileheader_t * fhdr, char title[TTLEN + 1]; setbfile(fpath, currboard, fhdr->filename); - strlcpy(title, "¡º ", sizeof(title)); + strlcpy(title, "�� ", sizeof(title)); strlcpy(title + 3, fhdr->title, TTLEN - 3); title[TTLEN] = '\0'; a_copyitem(fpath, title, 0, 1); @@ -2658,7 +2658,7 @@ edit_title(int ent, fileheader_t * fhdr, const char *direct) return DONOTHING; if (currmode & MODE_SELECT) { - vmsg("½Ð°h¥X·j´M¼Ò¦¡«á¦A³]©w¡C"); + vmsg("�аh�X�j�M�Ҧ���A�]�w�C"); return READ_REDRAW; } memcpy(&tmpfhdr, fhdr, sizeof(tmpfhdr)); @@ -2666,15 +2666,15 @@ edit_title(int ent, fileheader_t * fhdr, const char *direct) if (fhdr && fhdr->title[0]) strlcpy(genbuf, fhdr->title, TTLEN+1); - if (getdata_buf(b_lines - 1, 0, "¼ÐÃD¡G", tmpfhdr.title, TTLEN, DOECHO)) { + if (getdata_buf(b_lines - 1, 0, "���D�G", tmpfhdr.title, TTLEN, DOECHO)) { // check TN_ANNOUNCE again for non-BMs... tn_safe_strip(tmpfhdr.title); } if (allow >= 2) { char datebuf[6]; - getdata_buf(b_lines - 1, 0, "§@ªÌ¡G", tmpfhdr.owner, IDLEN + 2, DOECHO); - getdata_str(b_lines - 1, 0, "¤é´Á¡G", datebuf, 6, DOECHO, tmpfhdr.date); + getdata_buf(b_lines - 1, 0, "�@�̡G", tmpfhdr.owner, IDLEN + 2, DOECHO); + getdata_str(b_lines - 1, 0, "����G", datebuf, 6, DOECHO, tmpfhdr.date); // Normalize date to %.5s snprintf(tmpfhdr.date, sizeof(tmpfhdr.date), "%5.5s", datebuf); } @@ -2688,13 +2688,13 @@ edit_title(int ent, fileheader_t * fhdr, const char *direct) tmpfhdr.title); } - getdata(b_lines - 1, 0, "½T©w(Y/N)?[n] ", genbuf, 3, LCECHO); + getdata(b_lines - 1, 0, "�T�w(Y/N)?[n] ", genbuf, 3, LCECHO); if (genbuf[0] != 'y') return FULLUPDATE; if (modify_dir_lite(direct, ent, fhdr->filename, 0, tmpfhdr.title, tmpfhdr.owner, tmpfhdr.date, 0, NULL, 0, 0) != 0) { - vmsg("©êºp¡A¨t²Î¦£¸L¤¤¡A½Ðµy«á¦A¸Õ¡C"); + vmsg("��p�A�t���L���A�еy��A�աC"); return FULLUPDATE; } LOG_IF(LOG_CONF_EDIT_TITLE, @@ -2718,11 +2718,11 @@ do_add_recommend(const char *direct, fileheader_t *fhdr, /* race here: - ¬°¤F´î¤Ö system calls , ²{¦bª½±µ¥Î·í«eªº±À¤å¼Æ +1 ¼g¤J .DIR ¤¤. - ³y¦¨ - 1.­Y¸Ó¤åÀɦW³Q´«±¼ªº¸Ü, ±À¤å±N¼g¦ÜÂÂÀɦW¤¤ (³y¦¨«ÕÆFÀÉ) - 2.¨S¦³­«·sŪ¤@¦¸, ©Ò¥H±À¤å¼Æ¥i¯à³Q¤Öºâ - 3.­Y±Àªº®É­Ô«e¤å³Q§R, ±N¥[¨ì«á¤åªº±À¤å¼Æ + ���F��� system calls , �{�b������e������� +1 �g�J .DIR ��. + �y�� + 1.�Y�Ӥ��ɦW�Q��������, ����N�g�����ɦW�� (�y�����F��) + 2.�S�����sŪ�@��, �ҥH����ƥi��Q�ֺ� + 3.�Y�����ɭԫe��Q�R, �N�[���媺����� */ @@ -2737,7 +2737,7 @@ do_add_recommend(const char *direct, fileheader_t *fhdr, if (flock(fd, LOCK_EX | LOCK_NB) < 0) { move(b_lines, 0); SOLVE_ANSI_CACHE(); - prints("==> ÀÉ®×¥¿³Q¥¦¤H½s¿è¤¤¡Aµ¥«Ý§¹¦¨: %d\n", lock_retry+1); + prints("==> �ɮץ��Q���H�s�褤�A���ݧ���: %d\n", lock_retry+1); doupdate(); sleep(lock_wait); // reopen the file because edit_post creates a new file. @@ -2752,7 +2752,7 @@ do_add_recommend(const char *direct, fileheader_t *fhdr, } close(fd); if (!lock_success) { - vmsg("¿ù»~: ÀÉ®×¥¿³Q¥¦¤H½s¿è¤¤¡AµLªk¼g¤J¡C"); + vmsg("���~: �ɮץ��Q���H�s�褤�A�L�k�g�J�C"); goto error; } #else @@ -2760,8 +2760,8 @@ do_add_recommend(const char *direct, fileheader_t *fhdr, close(fd); #endif } else { - vmsg((errno == EROFS) ? "¿ù»~: ¨t²Î¥Ø«e°ßŪ¤¤¡AµLªk­×§ï¡C" : - "¿ù»~: ­ìÀɮפw³Q§R°£¡C µLªk¼g¤J¡C"); + vmsg((errno == EROFS) ? "���~: �t�Υثe��Ū���A�L�k�ק�C" : + "���~: ���ɮפw�Q�R���C �L�k�g�J�C"); goto error; } @@ -2805,16 +2805,16 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) char mynick[IDLEN+1]; #ifndef OLDRECOMMEND static const char *ctype[RECTYPE_SIZE] = { - "±À", "¼N", "¡÷", + "��", "�N", "��", }; static const char *ctype_attr[RECTYPE_SIZE] = { ANSI_COLOR(1;33), ANSI_COLOR(1;31), ANSI_COLOR(1;37), }, *ctype_long[RECTYPE_SIZE] = { - "­È±o±ÀÂË", - "µ¹¥¦¼NÁn", - "¥u¥[¡÷µù¸Ñ", + "�ȱo����", + "�����N�n", + "�u�[������", }; #endif int type, maxlength; @@ -2824,7 +2824,7 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) int isGuest = (strcmp(cuser.userid, STR_GUEST) == EQUSTR); int logIP = 0; int ymsg = b_lines -1; - const char *reason = "Åv­­¤£¨¬"; + const char *reason = "�v������"; if (!fhdr || !fhdr->filename[0]) return DONOTHING; @@ -2834,28 +2834,28 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) if (bp->brdattr & BRD_NORECOMMEND || fhdr->filename[0] == 'L' || ((fhdr->filemode & FILE_MARKED) && (fhdr->filemode & FILE_SOLVED))) { - vmsg("©êºp, ¸T¤î±ÀÂË"); + vmsg("��p, �T�����"); return FULLUPDATE; } if (!CheckPostPerm2(&reason) || isGuest) { - vmsgf("µLªk±À¤å: %s", reason); // "(¥i«ö¤j¼g I ¬d¬Ý­­¨î)" + vmsgf("�L�k����: %s", reason); // "(�i���j�g I �d�ݭ���)" return FULLUPDATE; } - // TODO ¥¼¨Ó¥i¥H¦Ò¼{§@¦¨¦³¿ï¶µ¥i³]©w¡C + // TODO ���ӥi�H�Ҽ{�@�����ﶵ�i�]�w�C #ifdef BN_ONLY_OP_CAN_ADD_COMMENT if ( strcmp(bp->brdname, BN_ONLY_OP_CAN_ADD_COMMENT) == 0 && !((currmode & MODE_BOARD) || HasUserPerm(PERM_SYSOP|PERM_SYSSUPERSUBOP|PERM_SYSSUBOP)) ) { - vmsg("¥»ªO±À¤å­­©wºÞ²z¤H­û¨Ï¥Î¡C"); + vmsg("���O���孭�w�޲z�H���ϥΡC"); return FULLUPDATE; } #endif #ifdef SAFE_ARTICLE_DELETE if (fhdr->filename[0] == '.' || fhdr->owner[0] == '-') { - vmsg("¥»¤å¤w§R°£"); + vmsg("����w�R��"); return FULLUPDATE; } #endif @@ -2869,7 +2869,7 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) #ifndef DEBUG if (get_board_restriction_reason(currbid, sizeof(msg), msg)) { - vmsgf("¥¼¹F¬ÝªOµo¤å­­¨î: %s", msg); + vmsgf("���F�ݪO�o�孭��: %s", msg); return FULLUPDATE; } #endif @@ -2884,7 +2884,7 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) int d = (int)bp->fastrecommend_pause - (now - lastrecommend); if (d > 0) { - vmsgf("¥»ªO¸T¤î§Ö³t³sÄò±À¤å¡A½Ð¦Aµ¥ %d ¬í", d); + vmsgf("���O�T��ֳt�s�����A�ЦA�� %d ��", d); return FULLUPDATE; } } @@ -2899,7 +2899,7 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) } recommend_in_minute++; if(recommend_in_minute>60) { - vmsg("¨t²Î¸T¤îµu®É¶¡¤º¤j¶q±À¤å"); + vmsg("�t�θT��u�ɶ����j�q����"); return FULLUPDATE; } } @@ -2910,14 +2910,14 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) setdirpath(path, direct, fhdr->filename); size = dashs(path); if (size > 5*1024*1024) { - vmsg("ÀɮפӤj, µLªkÄ~Äò±À¤å, ½Ð¥t¼¶¤åµoªí"); + vmsg("�ɮפӤj, �L�k�~�����, �Хt����o��"); return FULLUPDATE; } if (size > 100*1024) { int d = 10 - (now - lastrecommend); if (d > 0) { - vmsgf("¥»¤å¤w¹Lªø, ¸T¤î§Ö³t³sÄò±À¤å, ½Ð¦Aµ¥ %d ¬í", d); + vmsgf("����w�L��, �T��ֳt�s�����, �ЦA�� %d ��", d); return FULLUPDATE; } } @@ -2950,9 +2950,9 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) type = RECTYPE_ARROW; move(ymsg--, 0); clrtoeol(); #ifndef OLDRECOMMEND - outs("§@ªÌ¥»¤H, ¨Ï¥Î ¡÷ ¥[µù¤è¦¡\n"); + outs("�@�̥��H, �ϥ� �� �[���覡\n"); #else - outs("§@ªÌ¥»¤H­º±À, ¨Ï¥Î ¡÷ ¥[µù¤è¦¡\n"); + outs("�@�̥��H����, �ϥ� �� �[���覡\n"); #endif } @@ -2969,7 +2969,7 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) // too close type = RECTYPE_ARROW; move(ymsg--, 0); clrtoeol(); - outs("®É¶¡¤Óªñ, ¨Ï¥Î ¡÷ ¥[µù¤è¦¡\n"); + outs("�ɶ��Ӫ�, �ϥ� �� �[���覡\n"); } #endif @@ -2979,7 +2979,7 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) int i; move(b_lines, 0); clrtoeol(); - outs(ANSI_COLOR(1) "±zı±o³o½g¤å³¹ "); + outs(ANSI_COLOR(1) "�zı�o�o�g�峹 "); for (i = 0; i < RECTYPE_SIZE; i++) { @@ -3017,7 +3017,7 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) { move(ymsg--, 0); clrtoeol(); outs(ANSI_COLOR(1;31) - "¡»³o½g¤å³¹¨Ó¦Û°Î¦WªO©Î¥~¯¸Âà«HªO¡A­ì§@ªÌ¥i¯àµLªk¬Ý¨ì±À¤å¡C" + "���o�g�峹�Ӧ۰ΦW�O�Υ~����H�O�A��@�̥i��L�k�ݨ����C" ANSI_RESET "\n"); } @@ -3030,10 +3030,10 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) ymsg --; move(ymsg--, 0); clrtoeol(); outs(ANSI_COLOR(1;33) - "¡»±z¥¿¦b·j´M(¼ÐÃD¡B§@ªÌ...)©Î¨ä¥¦¯S®í¦Cªí¼Ò¦¡¡A" - "±À¤å­p¼Æ»P­×§ï°O¿ý±N·|¤À¶}­pºâ¡C" + "���z���b�j�M(���D�B�@��...)�Ψ䥦�S���C���Ҧ��A" + "����p�ƻP�ק�O���N�|���}�p��C" ANSI_RESET "\n" - " ­Y·Q¥¿±`­p¼Æ½Ð¥ý¥ªÁä°h¦^¥¿±`¦Cªí¼Ò¦¡¡C\n"); + " �Y�Q���`�p�ƽХ�����h�^���`�C���Ҧ��C\n"); } } @@ -3054,7 +3054,7 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) #if defined(PLAY_ANGEL) if (HasUserPerm(PERM_ANGEL) && (bp->brdattr & BRD_ANGELANONYMOUS) && - vans("­n¨Ï¥Î¤p¤Ñ¨Ï°Î¦W±À¤å¶Ü¡H [Y/n]: ") != 'n') + vans("�n�ϥΤp�ѨϰΦW����ܡH [Y/n]: ") != 'n') { // angel push mynick[0] = 0; @@ -3072,9 +3072,9 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) } #ifdef OLDRECOMMEND - maxlength -= 2; /* '±À' */ + maxlength -= 2; /* '��' */ maxlength -= strlen(myid); - sprintf(buf, "%s %s:", "¡÷" , myid); + sprintf(buf, "%s %s:", "��" , myid); #else // !OLDRECOMMEND maxlength -= strlen(myid); @@ -3093,7 +3093,7 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) // to hold ':wq', ':q!' 'ZZ' char ans[2]; sprintf(buf+strlen(buf), - ANSI_REVERSE "%-*s" ANSI_RESET " ½T©w[y/N]:", + ANSI_REVERSE "%-*s" ANSI_RESET " �T�w[y/N]:", maxlength, msg); move(b_lines, 0); clrtoeol(); @@ -3112,7 +3112,7 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) (int)now, currboard, fhdr->filename, msg)); #ifdef USE_COMMENTD if (CommentsAddRecord(bp->brdname, fhdr->filename, type, msg)) { - vmsg("¿ù»~: ¸ê®Æ®w³s½u²§±`¡AµLªk¼g¤J¡C½Ðµy­Ô¦A¸Õ¡C"); + vmsg("���~: ��Ʈw�s�u���`�A�L�k�g�J�C�еy�ԦA�աC"); return FULLUPDATE; } #endif @@ -3155,11 +3155,11 @@ del_range(int ent GCC_UNUSED, const fileheader_t *fhdr GCC_UNUSED, int ret = 0; int check_mark = 1, check_digest = 0; - /* ¦³¤TºØ±¡ªp·|¶i³o¸Ì, «H¥ó, ¬ÝªO, ºëµØ°Ï */ - // Àˬdªº¤èªk¬O¬Ý *direct: - // 'b' = ¬ÝªO boards/%c/%s/* - // 'm' = ºëµØ°Ï man/.../* or man/boards/%c/%s/.../* - // 'h' = «H½c home/%c/%s/* ©Î«H½cºëµØ°Ï home/%c/%s/man/.../* + /* ���T�ر��p�|�i�o��, �H��, �ݪO, ��ذ� */ + // �ˬd����k�O�� *direct: + // 'b' = �ݪO boards/%c/%s/* + // 'm' = ��ذ� man/.../* or man/boards/%c/%s/.../* + // 'h' = �H�c home/%c/%s/* �ΫH�c��ذ� home/%c/%s/man/.../* int is_board = (*direct == 'b'), // is_home = (*direct == 'h'), is_man = (*direct == 'm'); @@ -3175,31 +3175,31 @@ del_range(int ent GCC_UNUSED, const fileheader_t *fhdr GCC_UNUSED, } #endif - /* rocker.011018: ¦ê±µ¼Ò¦¡¤UÁÙ¬O¤£¤¹³\§R°£¤ñ¸û¦n */ + /* rocker.011018: �걵�Ҧ��U�٬O�����\�R������n */ if (currmode & MODE_SELECT) { - vmsg("½Ð¥ý¦^¨ì¥¿±`¼Ò¦¡«á¦A¶i¦æ§R°£..."); + vmsg("���^�쥿�`�Ҧ���A�i��R��..."); return FULLUPDATE; } // let's do a full screen delete. clear(); - vs_hdr("§R°£½d³ò"); + vs_hdr("�R���d��"); - getdata(2, 0, "°_ÂI: ", numstr, 7, DOECHO); + getdata(2, 0, "�_�I: ", numstr, 7, DOECHO); num1 = atoi(numstr); if (num1 <= 0) { - vmsg("°_ÂI¦³»~"); + vmsg("�_�I���~"); return FULLUPDATE; } - getdata(3, 0, "²×ÂI: ",numstr, 7, DOECHO); + getdata(3, 0, "���I: ",numstr, 7, DOECHO); num2 = atoi(numstr); if (num2 < num1) { - vmsg("²×ÂI¦³»~"); + vmsg("���I���~"); return FULLUPDATE; } num = num2 - num1 + 1; if (num > 1000) { - vmsg("½Ð¤Å¤@¦¸§R°£¶W¹L 1000 ½g¡C"); + vmsg("�ФŤ@���R���W�L 1000 �g�C"); return FULLUPDATE; } @@ -3210,7 +3210,7 @@ del_range(int ent GCC_UNUSED, const fileheader_t *fhdr GCC_UNUSED, if (!recs || get_records(direct, recs, sizeof(fileheader_t), num1, num) != num) { free(recs); - vmsg("µLªk¨ú±o«ü©w½d³òªº¸ê°T¡A½Ð°h¥X«áµy­Ô¦A¸Õ"); + vmsg("�L�k���o���w�d�òªº¸ï¿½T�A�аh�X��y�ԦA��"); return FULLUPDATE; } mvprints(5, 0, "#%06d %-*s %s\n" @@ -3221,7 +3221,7 @@ del_range(int ent GCC_UNUSED, const fileheader_t *fhdr GCC_UNUSED, // HACK: warn if target is man. if (is_man) { - outs("(½d³ò¤ºªº¤l¥Ø¿ý·|³Q¦Û°Ê¸õ¹L¡A½Ð¥t¦æ¥Î¤p d §R°£)\n"); + outs("(�d�ò¤ºªï¿½ï¿½l�ؿ��|�Q�۰ʸ��L�A�Хt��Τp d �R��)\n"); // do not check mark in man check_mark = 0; } else if (is_board) { @@ -3235,7 +3235,7 @@ del_range(int ent GCC_UNUSED, const fileheader_t *fhdr GCC_UNUSED, } // ready to start. - outmsg("³B²z¤¤,½Ðµy«á..."); + outmsg("�B�z��,�еy��..."); refresh(); ret = 0; LOG_IF((LOG_CONF_MASS_DELETE && (num >= 50)), @@ -3251,21 +3251,21 @@ del_range(int ent GCC_UNUSED, const fileheader_t *fhdr GCC_UNUSED, const char *bypass = NULL; if (check_mark && fh->filemode & FILE_MARKED) { - bypass = "¼Ð°O¬° m ªº¶µ¥Ø"; + bypass = "�аO�� m ������"; } else if (check_digest && fh->filemode & FILE_DIGEST) { - /* ¤åºK , FILE_DIGEST is used as REPLIED in mail menu.*/ - bypass = "¤åºK"; + /* ��K , FILE_DIGEST is used as REPLIED in mail menu.*/ + bypass = "��K"; } else { char xfpath[PATHLEN]; setdirpath(xfpath, direct, fh->filename); if (dashd(xfpath)) { - bypass = "¤l¥Ø¿ý"; + bypass = "�l�ؿ�"; } } if (bypass) { id++; - mvprints(b_lines-1, 0, "¸õ¹L%s: %s\n", bypass, fh->title); + mvprints(b_lines-1, 0, "���L%s: %s\n", bypass, fh->title); doupdate(); continue; } @@ -3299,12 +3299,12 @@ del_range(int ent GCC_UNUSED, const fileheader_t *fhdr GCC_UNUSED, if (ret < 0) { clear(); - vs_hdr("³¡¥÷§R°£¥¢±Ñ"); - prints("\n\n¤w§R°£¤F %d ­ÓÀɮסA¦ýµLªk§R°£¨ä¥¦ÀɮסC\n", cdeleted); - outs( "¥i¯à¬O¦P®É¦³¨ä¥¦¤H¤]¦b¶i¦æ§R°£¡C½Ð°h¥X¦¹¥Ø¿ý«á¦A­«¸Õ¡C\n\n" - "­Y¦¹¿ù»~«ùÄòµo¥Í¡A½Ðµ¥¬ù¤@¤p®É«á¦A­«¸Õ¡C\n\n" - "­Y¨ì®É¤´µLªk§R°£¡A½Ð¨ì " BN_BUGREPORT " ¬ÝªO³ø§i¡C\n"); - vmsg("µLªk§R°£¡C¥i¯à¦³¨ä¥¦¤H¥¿¦b¦P®É§R°£¡C"); + vs_hdr("�����R������"); + prints("\n\n�w�R���F %d ���ɮסA���L�k�R���䥦�ɮסC\n", cdeleted); + outs( "�i��O�P�ɦ��䥦�H�]�b�i��R���C�аh�X���ؿ���A���աC\n\n" + "�Y�����~����o�͡A����@�p�ɫ�A���աC\n\n" + "�Y��ɤ��L�k�R���A�Ш� " BN_BUGREPORT " �ݪO���i�C\n"); + vmsg("�L�k�R���C�i�঳�䥦�H���b�P�ɧR���C"); } return (ret < 0 || cdeleted > 0) ? DIRCHANGED : FULLUPDATE; @@ -3347,14 +3347,14 @@ del_post(int ent, fileheader_t * fhdr, char *direct) /* TODO recursive lookup */ if (currmode & MODE_SELECT) { - vmsg("½Ð¦^¨ì¤@¯ë¼Ò¦¡¦A§R°£¤å³¹"); + vmsg("�Ц^��@��Ҧ��A�R���峹"); return DONOTHING; } /* DIGEST is not visible to users... */ if ((fhdr->filemode & FILE_BOTTOM) || (fhdr->filemode & FILE_MARKED) || (fhdr->filemode & FILE_DIGEST)) { - vmsg("¤å³¹³Q¼Ð°O©Î¸m©³©Î¦¬¤J¤åºK¡AµLªk§R°£¡A½Ð¬¢ªO¥D"); + vmsg("�峹�Q�аO�θm�����J��K�A�L�k�R���A���O�D"); return DONOTHING; } @@ -3388,7 +3388,7 @@ del_post(int ent, fileheader_t * fhdr, char *direct) return DONOTHING; if ((bp->brdattr & BRD_NOSELFDELPOST) && !(currmode & MODE_BOARD)) { - vmsg("©êºp¡A¥»¬ÝªO¥Ø«e¸T¤î¦Û§R¤å³¹¡C"); + vmsg("��p�A���ݪO�ثe�T��ۧR�峹�C"); return DONOTHING; } @@ -3400,29 +3400,29 @@ del_post(int ent, fileheader_t * fhdr, char *direct) { // manager (bm, sysop, police) do { - getdata(1, 0, "½Ð½T©w§R°£(Y/N/R¥[µù²z¥Ñ)?[N]", genbuf, 3, LCECHO); + getdata(1, 0, "�нT�w�R��(Y/N/R�[���z��)?[N]", genbuf, 3, LCECHO); // for y/n, skip. if (genbuf[0] != 'r') break; // build reason string (based on STR_SAFEDEL_TITLE) - snprintf(reason, sizeof(reason), "(¤w³Q%s§R°£) <%s>", + snprintf(reason, sizeof(reason), "(�w�Q%s�R��) <%s>", cuser.userid, fhdr->owner); move(3, 0); clrtoeol(); - getdata_str(2, 0, " >> ½Ð¿é¤J§R°£«á­nÅã¥Üªº¼ÐÃD: ¡¼ ", + getdata_str(2, 0, " >> �п�J�R����n��ܪ����D: �� ", reason, sizeof(reason), DOECHO, reason); if (!reason[0]) { - vmsg("¥¼¿é¤J²z¥Ñ¡A©ñ±ó§R°£¡C"); + vmsg("����J�z�ѡA���R���C"); genbuf[0] = 'n'; break; } // confirm again! move(4, 0); clrtoeol(); - getdata(3, 0, "½Ð¦A¦¸½T©w¬O§_­n¥Î¤W­z²z¥Ñ§R°£(Y/N)?[N]", + getdata(3, 0, "�ЦA���T�w�O�_�n�ΤW�z�z�ѧR��(Y/N)?[N]", genbuf, 3, LCECHO); // since the default y/n is same to msg_del_ny, we reuse the genbuf[0] here. @@ -3436,13 +3436,13 @@ del_post(int ent, fileheader_t * fhdr, char *direct) if (genbuf[0] == 'y') { // Must have enough money. - // ºâ¿ú«e¥ý§â¤å³¹ºØÃþ·d²M·¡ + // ����e����峹�����d�M�� int del_fee = fhdr->multi.money; // freebn/brd_bad: should be done before, but let's make it safer. // new rule: only articles with money need updating // numpost (to solve deleting cross-posts). - // DIGEST mode ¤£¥ÎºÞ - // INVALIDMONEY_MODES (FILE_BID, FILE_ANONYMOUS, ...) ¤]³£¤£¥Î¦© + // DIGEST mode ���κ� + // INVALIDMONEY_MODES (FILE_BID, FILE_ANONYMOUS, ...) �]������ // also check MAX_POST_MONEY in case any error made bad money... if (del_fee < 0 || IsFreeBoardName(currboard) || @@ -3456,7 +3456,7 @@ del_post(int ent, fileheader_t * fhdr, char *direct) if (!not_owned) { reload_money(); if (cuser.money < del_fee) { - vmsgf("±z¨­¤Wªº" MONEYNAME "¤£°÷¡A§R°£¦¹¤å­n %d " + vmsgf("�z���W��" MONEYNAME "�����A�R������n %d " MONEYNAME, del_fee); return FULLUPDATE; } @@ -3483,16 +3483,16 @@ del_post(int ent, fileheader_t * fhdr, char *direct) deleteCrossPost(fhdr, bp->brdname); move(b_lines - 10, 0); clrtobot(); - prints("\n¥¿¦b§R°£¤å³¹: %s\n", fhdr->title); + prints("\n���b�R���峹: %s\n", fhdr->title); // check delete_file_content for del_ret if (!IS_DELETE_FILE_CONTENT_OK(del_ret)) { - outs("ÀÉ®×¥i¯à¤w³Q¥¦¤H§R°£©Îµo¥Í¿ù»~¡A" - "­Y«ùÄòµo¥Í½Ð¦V" BN_BUGREPORT "³ø§i\n"); + outs("�ɮץi��w�Q���H�R���εo�Ϳ��~�A" + "�Y����o�ͽЦV" BN_BUGREPORT "���i\n"); } if (del_ret == DELETE_FILE_CONTENT_BACKUP_FAILED) { - outs(" " ANSI_COLOR(1;31) "* Àɮ׳ƥ÷¥¢±Ñ¡A½Ð¦Ü " - BN_BUGREPORT "³ø§i" ANSI_RESET "\n"); + outs(" " ANSI_COLOR(1;31) "* �ɮ׳ƥ����ѡA�Ц� " + BN_BUGREPORT "���i" ANSI_RESET "\n"); } #ifdef ASSESS // badpost assignment @@ -3501,17 +3501,17 @@ del_post(int ent, fileheader_t * fhdr, char *direct) // case one, self-owned, invalid author, or digest mode - should not give bad posts } else if (!IS_DELETE_FILE_CONTENT_OK(del_ret) || !*newpath) { // case 2, got error in file deletion (already deleted, also skip badpost) - outs("°h¤å³]©w: ¤w§R©Î§R°£¿ù»~ (¸õ¹L)\n"); + outs("�h��]�w: �w�R�ΧR�����~ (���L)\n"); } else if (now - atoi(fhdr->filename + 2) > 7 * 24 * 60 * 60) { // case 3, post older than one week (TODO use macro for the duration) - outs("°h¤å³]©w: ¤å³¹¶W¹L¤@¶g (¸õ¹L)\n"); + outs("�h��]�w: �峹�W�L�@�g (���L)\n"); } else { // case 4, can assign badpost move_ansi(1, 40); clrtoeol(); - // TODO not_owned ®É¤]­n§ïÅÜ numpost? - outs("´c°h¤å³¹?(y/N) "); - // FIXME ¦³ªO¥D·|¦b³o¸Ì¤£¤p¤ßÂ_±¼³s½u©Ò¥H­n¤p¤ß... - // ­«­nªº¨Æ³Ì¦n¦b«e­±§@§¹¡C + // TODO not_owned �ɤ]�n���� numpost? + outs("�c�h�峹?(y/N) "); + // FIXME ���O�D�|�b�o�̤��p���_���s�u�ҥH�n�p��... + // ���n���Ƴ̦n�b�e���@���C vgets(genbuf, 3, VGET_LOWERCASE); if (genbuf[0]=='y') { @@ -3521,7 +3521,7 @@ del_post(int ent, fileheader_t * fhdr, char *direct) } #endif // ASSESS if (*newpath && *reason) { - log_filef(newpath, LOG_CREAT, "¡° Delete Reason: %s\n", reason); + log_filef(newpath, LOG_CREAT, "�� Delete Reason: %s\n", reason); } if (del_fee <= 0) @@ -3543,10 +3543,10 @@ del_post(int ent, fileheader_t * fhdr, char *direct) } pay_as_uid(tusernum, del_fee, - "%s ¬ÝªO ¤å³¹¡u%s¡v³Q%s¡A¦©°£½Z¹S%s %s", + "%s �ݪO �峹�u%s�v�Q%s�A�����Z�S%s %s", currboard, fhdr->title, - as_badpost ? "°h¦^" : "§R°£", - reason[0] ? "¡C­ì¦]:" : "", reason); + as_badpost ? "�h�^" : "�R��", + reason[0] ? "�C��]:" : "", reason); sendalert_uid(tusernum, ALERT_PWD_PERM); #ifdef USE_COOLDOWN if (bp->brdattr & BRD_COOLDOWN) @@ -3558,28 +3558,28 @@ del_post(int ent, fileheader_t * fhdr, char *direct) { // owner case pwcuDecNumPost(); - pay(del_fee, "%s ¬ÝªO ¤å³¹¦Û§R²M¼ä¶O: %s", + pay(del_fee, "%s �ݪO �峹�ۧR�M��O: %s", currboard, fhdr->title); sendalert(cuser.userid, ALERT_PWD_PERM); - prints("±zªº¤å³¹´î¬° %d ½g¡A¤ä¥I²M¼ä¶O %d " MONEYNAME "\n", + prints("�z���峹� %d �g�A��I�M��O %d " MONEYNAME "\n", cuser.numposts, del_fee); } pressanykey(); return DIRCHANGED; } else { // delete_fileheader - vmsg("µLªk§R°£ÀÉ®×°O¿ý¡C½Ðµy­Ô¦A¸Õ¡C"); + vmsg("�L�k�R���ɮװO���C�еy�ԦA�աC"); return DIRCHANGED; } } // genbuf[0] == 'y' return FULLUPDATE; } -static int // Ptt: ­×¥ÛÀY¤å +static int // Ptt: �ץ��Y�� show_filename(int ent GCC_UNUSED, const fileheader_t * fhdr, const char *direct GCC_UNUSED) { if(!HasUserPerm(PERM_SYSOP)) return DONOTHING; - vmsgf("ÀɮצWºÙ: %s ", fhdr->filename); + vmsgf("�ɮצW��: %s ", fhdr->filename); return PART_REDRAW; } @@ -3605,29 +3605,29 @@ lock_post(int ent, fileheader_t * fhdr, const char *direct) #ifdef USE_LIVE_ALLPOST // In case idiots do this in ALLPOST... if (strcmp(bp->brdname, BN_ALLPOST) == 0) { - vmsgf("½Ð¦Ü­ì¬ÝªOÂê©w¡C%s ·|¦Û°Ê§ó·s¡C", BN_ALLPOST); + vmsgf("�Цܭ�ݪO��w�C%s �|�۰ʧ�s�C", BN_ALLPOST); return FULLUPDATE; } #endif if (fhdr->filename[0]=='M') { if (!HasUserPerm(PERM_SYSOP | PERM_POLICE)) { - vmsg("¯¸ªø©Î¯S®íºÞ²z¤H­û¤~¥i¶i¦æÂê©w¡CªO¥D¥u¯à¸Ñ°£Âê©w¡C"); + vmsg("�����ίS���޲z�H���~�i�i����w�C�O�D�u��Ѱ���w�C"); return FULLUPDATE; } - getdata(b_lines - 1, 0, "½Ð¿é¤JÂê©w²z¥Ñ¡G", genbuf, 50, DOECHO); + getdata(b_lines - 1, 0, "�п�J��w�z�ѡG", genbuf, 50, DOECHO); - if (vans("­n±N¤å³¹Âê©w¶Ü(y/N)?") != 'y') + if (vans("�n�N�峹��w��(y/N)?") != 'y') return FULLUPDATE; setbfile(fn1, currboard, fhdr->filename); for (i = 0; i < MAX_BMs && SHM->BMcache[currbid-1][i] > 0; i++) mail_id(SHM->userid[SHM->BMcache[currbid-1][i] - 1], genbuf, fn1, - "[Âê¤å³qª¾]"); + "[���q��]"); - post_policelog2(currboard, fhdr->title, "Âê¤å", genbuf, 1, fn1); + post_policelog2(currboard, fhdr->title, "���", genbuf, 1, fn1); // Rename the file to be secure, introducing new X-dot file here. // We can not use L-dot prefix since there may be some code that @@ -3637,7 +3637,7 @@ lock_post(int ent, fileheader_t * fhdr, const char *direct) Rename(fn1, fnx); fhdr->filename[0] = 'L'; } else if (fhdr->filename[0]=='L') { - if (vans("­n±N¤å³¹Âê©w¸Ñ°£¶Ü(y/N)?") != 'y') + if (vans("�n�N�峹��w�Ѱ���(y/N)?") != 'y') return FULLUPDATE; fhdr->filename[0] = 'X'; setbfile(fnx, currboard, fhdr->filename); @@ -3647,9 +3647,9 @@ lock_post(int ent, fileheader_t * fhdr, const char *direct) // are not renamed. if (access(fnx, 0) == 0) Rename(fnx, fn1); - post_policelog(currboard, fhdr->title, "Âê¤å", genbuf, 0); + post_policelog(currboard, fhdr->title, "���", genbuf, 0); } else { - vmsg("µLªk¶i¦æÂê©w©Î¸Ñ°£¡C"); + vmsg("�L�k�i����w�θѰ��C"); return FULLUPDATE; } // TODO fix race condition here. @@ -3671,7 +3671,7 @@ change_post_mode(int ent, fileheader_t *fhdr, const char *direct, if (currmode & MODE_SELECT) { if (!fhdr->multi.refer.flag) { - vmsg("½Ð°h¥X·j´M¼Ò¦¡¦A¶i¦æ¦¹¶µ³]©w¡C"); + vmsg("�аh�X�j�M�Ҧ��A�i�榹���]�w�C"); return READ_REDRAW; } // Try to solve entx and direct. Note fhdr does not need to be changed. @@ -3698,7 +3698,7 @@ change_post_mode(int ent, fileheader_t *fhdr, const char *direct, } while (0); if (ret < 0) { - vmsg("³]©w¥¢±Ñ¡A½Ð­«¶i¬ÝªO«á¦A¸Õ¤@¦¸¡C"); + vmsg("�]�w���ѡA���i�ݪO��A�դ@���C"); return FULLUPDATE; } else { boardheader_t *bp = getbcache(currbid); @@ -3731,7 +3731,7 @@ recommend_cancel(int ent, fileheader_t * fhdr, const char *direct) if (!(currmode & MODE_BOARD)) return DONOTHING; - getdata(b_lines - 1, 0, "½T©w­n±ÀÂËÂk¹s[y/N]? ", yn, 3, LCECHO); + getdata(b_lines - 1, 0, "�T�w�n�����k�s[y/N]? ", yn, 3, LCECHO); if (yn[0] != 'y') return FULLUPDATE; fhdr->recommend = 0; @@ -3739,7 +3739,7 @@ recommend_cancel(int ent, fileheader_t * fhdr, const char *direct) substitute_ref_record(direct, fhdr, ent); setdirpath(fn, direct, fhdr->filename); if (dashf(fn)) - log_filef(fn, LOG_CREAT, "¡°%s ©ó %s ±N±ÀÂË­ÈÂk¹s\n", cuser.userid, + log_filef(fn, LOG_CREAT, "��%s �� %s �N���˭��k�s\n", cuser.userid, Cdatelite(&now)); return FULLUPDATE; } @@ -3761,15 +3761,15 @@ view_postinfo(int ent GCC_UNUSED, const fileheader_t * fhdr, if(!fhdr || fhdr->filename[0] == '.' || !fhdr->filename[0]) return DONOTHING; - if((area_l + area_lines > b_lines) || /* ¤U­±©ñ¤£¤U */ - (l >= (b_lines * 2 / 3))) /* ²¤¶W¹Lµe­± 2/3 */ + if((area_l + area_lines > b_lines) || /* �U���ñ¤£¤U */ + (l >= (b_lines * 2 / 3))) /* ���W�L�e�� 2/3 */ area_l -= (area_lines + 1); grayout(0, MIN(l - 1, area_l)-1, GRAYOUT_DARK); grayout(MAX(l + 1 + 1, area_l + area_lines), b_lines-1, GRAYOUT_DARK); grayout(l, l, GRAYOUT_BOLD); - /* ²M°£¤å³¹ªº«e¤@¦æ©Î«á¤@¦æ */ + /* �M���峹���e�@���@�� */ if(area_l > l) move(l - 1, 0); else @@ -3785,7 +3785,7 @@ view_postinfo(int ent GCC_UNUSED, const fileheader_t * fhdr, // TODO XXX support wide terminal someday. - prints("¢z¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢{\n"); + prints("�z�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�{\n"); aidu = fn2aidu((char *)fhdr->filename); if(aidu > 0) @@ -3794,9 +3794,9 @@ view_postinfo(int ent GCC_UNUSED, const fileheader_t * fhdr, int y, x; aidu2aidc(aidc, aidu); - prints("¢x " AID_DISPLAYNAME ": " + prints("�x " AID_DISPLAYNAME ": " ANSI_COLOR(1) "#%s" ANSI_RESET " (%s) [%s] ", - aidc, currboard && currboard[0] ? currboard : "¥¼ª¾", + aidc, currboard && currboard[0] ? currboard : "����", AID_HOSTNAME); getyx_ansi(&y, &x); x = 75 - x; @@ -3806,7 +3806,7 @@ view_postinfo(int ent GCC_UNUSED, const fileheader_t * fhdr, } else { - prints("¢x\n"); + prints("�x\n"); } #ifdef QUERY_ARTICLE_URL @@ -3815,13 +3815,13 @@ view_postinfo(int ent GCC_UNUSED, const fileheader_t * fhdr, char url[STRLEN]; if (!bp) { - prints("¢x\n"); + prints("�x\n"); } else if (!IsBoardForWeb(bp)) { - prints("¢x ¥»¬ÝªO¥Ø«e¤£´£¨Ñ" URL_DISPLAYNAME " \n"); + prints("�x ���ݪO�ثe������" URL_DISPLAYNAME " \n"); } else if (!GetWebUrl(bp, fhdr, url, sizeof(url))) { - prints("¢x ¥»¤å³¹¤£´£¨Ñ" URL_DISPLAYNAME " \n"); + prints("�x ���峹������" URL_DISPLAYNAME " \n"); } else { - prints("¢x " URL_DISPLAYNAME ": " ANSI_COLOR(1) "%s" ANSI_RESET + prints("�x " URL_DISPLAYNAME ": " ANSI_COLOR(1) "%s" ANSI_RESET "\n", url); } } @@ -3831,50 +3831,50 @@ view_postinfo(int ent GCC_UNUSED, const fileheader_t * fhdr, /* Note in MODE_SELECT, the multi may be fucked by ref number. */ /* When the file is anonymous posted, fhdr->multi.anon_uid is author. * see do_post_article() */ - prints("¢x °Î¦WºÞ²z½s¸¹: %u (¦P¤@¤H¸¹½X·|¤@¼Ë)", + prints("�x �ΦW�޲z�s��: %u (�P�@�H���X�|�@��)", (unsigned int)fhdr->multi.anon_uid + (unsigned int)currutmp->pid); } else if (fhdr->filemode & FILE_VOTE) { uint32_t bp = fhdr->multi.vote_limits.badpost, lgn = fhdr->multi.vote_limits.logins; - prints("¢x §ë²¼­­¨î(»Ý¥ýº¡¨¬µo¤å­­¨î): "); + prints("�x �벼����(�ݥ������o�孭��): "); if (bp) - prints("°h¤å %d ½g¥H¤U ", 255 - bp); + prints("�h�� %d �g�H�U ", 255 - bp); if (lgn) - prints(STR_LOGINDAYS " %d " STR_LOGINDAYS_QTY "¥H¤W ", lgn * 10); + prints(STR_LOGINDAYS " %d " STR_LOGINDAYS_QTY "�H�W ", lgn * 10); if (!bp && !lgn) - prints("µL "); + prints("�L "); } else { int m = query_file_money(fhdr); if(m < 0) - prints("¢x ¯S®í¤å³¹¡AµL»ù®æ°O¿ý"); + prints("�x �S���峹�A�L����O��"); else - prints("¢x ³o¤@½g¤å³¹­È %d " MONEYNAME, m); + prints("�x �o�@�g�峹�� %d " MONEYNAME, m); } prints("\n"); - prints("¢|¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢}\n"); + prints("�|�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�}\n"); - /* ¦L¹ï¸Ü®Øªº¥kÃä¬É */ + /* �L��ܮت��k��� */ { int i; for(i = 1; i < area_lines - 1; i ++) { move_ansi(area_l + i , 76); - prints("¢x"); + prints("�x"); } } { int r = pressanykey(); - /* TODO: ¦h¥[¤@­Ó LISTMODE_AID¡H */ + /* TODO: �h�[�@�� LISTMODE_AID�H */ /* QQ: enable money listing mode */ if (r == 'Q') { currlistmode = (currlistmode == LISTMODE_MONEY) ? LISTMODE_DATE : LISTMODE_MONEY; vmsg((currlistmode == LISTMODE_MONEY) ? - "¶}±Ò¤å³¹»ù®æ¦Cªí¼Ò¦¡" : "°±¤î¦C¥X¤å³¹»ù®æ"); + "�}�Ҥ峹����C���Ҧ�" : "����C�X�峹����"); } } @@ -3886,8 +3886,8 @@ static int view_posthistory(int ent GCC_UNUSED, const fileheader_t * fhdr, const char *direct) { char fpath[PATHLEN]; - const char *err_no_history = "¦¹½g¤å³¹¼ÈµL½s¿è¾ú¥v°O¿ý¡C" - "­n¶i¸ê·½¦^¦¬µ©½Ð¦A«ö¤@¦¸ ~"; + const char *err_no_history = "���g�峹�ȵL�s����v�O���C" + "�n�i�귽�^�����ЦA���@�� ~"; int maxrev = 0; int current_as_base = 1; @@ -3948,7 +3948,7 @@ view_posthistory(int ent, const fileheader_t * fhdr, const char *direct) { #endif // USE_TIME_CAPSULE -/* ¬ÝªO³Æ¥÷ */ +/* �ݪO�ƥ� */ static int tar_addqueue(void) { @@ -3962,16 +3962,16 @@ tar_addqueue(void) snprintf(qfn, sizeof(qfn), BBSHOME "/jobspool/tarqueue.%s", currboard); if (access(qfn, 0) == 0) { - vmsg("¤w¸g±Æ©w¦æµ{, ·|©ó¨C¤é" TARQUEUE_TIME_STR "¨Ì§Ç¶i¦æ³Æ¥÷"); + vmsg("�w�g�Ʃw��{, �|��C��" TARQUEUE_TIME_STR "�̧Ƕi��ƥ�"); return FULLUPDATE; } - if (vansf("½T©w­n¹ï¬ÝªO %s ¶i¦æ³Æ¥÷¶Ü¡H[y/N] ", currboard) != 'y') + if (vansf("�T�w�n��ݪO %s �i��ƥ��ܡH[y/N] ", currboard) != 'y') return FULLUPDATE; - vs_hdr2(" ¬ÝªO³Æ¥÷ ", currboard); + vs_hdr2(" �ݪO�ƥ� ", currboard); - if (!getdata_str(4, 0, "½Ð¿é¤J³qª¾«H½c: ", email, sizeof(email), DOECHO, + if (!getdata_str(4, 0, "�п�J�q���H�c: ", email, sizeof(email), DOECHO, cuser.userid)) return FULLUPDATE; if (strstr(email, "@") == NULL) @@ -3984,17 +3984,17 @@ tar_addqueue(void) /* check email -.-"" */ if (!is_valid_email(email)) { - vmsg("±z«ü©wªº«H½c¤£¥¿½T! "); + vmsg("�z���w���H�c�����T! "); return FULLUPDATE; } - getdata(6, 0, "­n³Æ¥÷¬ÝªO¤º®e¶Ü(Y/N)?[Y]", ans, sizeof(ans), LCECHO); + getdata(6, 0, "�n�ƥ��ݪO���e��(Y/N)?[Y]", ans, sizeof(ans), LCECHO); bakboard = (ans[0] == 'n') ? 0 : 1; - getdata(7, 0, "­n³Æ¥÷ºëµØ°Ï¤º®e¶Ü(Y/N)?[N]", ans, sizeof(ans), LCECHO); + getdata(7, 0, "�n�ƥ���ذϤ��e��(Y/N)?[N]", ans, sizeof(ans), LCECHO); bakman = (ans[0] == 'y') ? 1 : 0; if (!bakboard && !bakman) { move(8, 0); - outs("¥i¬O§Ú­Ì¥u¯à³Æ¥÷¬ÝªO©ÎºëµØ°Ïªº­C ^^\"\"\""); + outs("�i�O�ڭ̥u��ƥ��ݪO�κ�ذϪ��C ^^\"\"\""); pressanykey(); return FULLUPDATE; } @@ -4005,8 +4005,8 @@ tar_addqueue(void) fclose(fp); move(10, 0); - outs("¨t²Î¤w¸g±N±zªº³Æ¥÷±Æ¤J¦æµ{, \n"); - outs("µy«á±N·|¦b¨t²Î­t²ü¸û§Cªº®É­Ô±N¸ê®Æ±Hµ¹±z~ :) "); + outs("�t�Τw�g�N�z���ƥ��ƤJ��{, \n"); + outs("�y��N�|�b�t�έt�����C���ɭԱN��ƱH���z~ :) "); pressanykey(); return FULLUPDATE; #else @@ -4015,7 +4015,7 @@ tar_addqueue(void) } /* ----------------------------------------------------- */ -/* ¬ÝªO¶iªOµe­±¡B¤åºK¡BºëµØ°Ï */ +/* �ݪO�i�O�e���B��K�B��ذ� */ /* ----------------------------------------------------- */ int b_note_edit_bname(int bid) @@ -4034,16 +4034,16 @@ b_note_edit_bname(int bid) // alert user our new b_note policy. char msg[STRLEN]; clear(); - vs_hdr("¶iªOµe­±Åã¥Ü³]©w"); + vs_hdr("�i�O�e����ܳ]�w"); outs("\n" - "\t½Ð¨M©w¬O§_­n¦b¨Ï¥ÎªÌ­º¦¸¶i¤J¬ÝªO®ÉÅã¥Ü­èÀx¦sªº¶iªOµe­±¡C\n\n" - "\t½Ðª`·N­Y¨Ï¥ÎªÌ³sÄò­«½Æ¶i¥X¦P¤@­Ó¬ÝªO®É¡A¶iªOµe­±¥u·|Åã¥Ü¤@¦¸¡C\n" - "\t¦¹¬°¨t²Î³]©w¡A¨Ã«D³]©w¿ù»~¡C\n\n" - "\t(¨Ï¥ÎªÌÀH®É¥i«ö b ©Î¸g¥Ñ¶i¥X¤£¦P¬ÝªO¨Ó­«·sÅã¥Ü¶iªOµe­±)\n"); + "\t�ШM�w�O�_�n�b�ϥΪ̭����i�J�ݪO����ܭ��x�s���i�O�e���C\n\n" + "\t�Ъ`�N�Y�ϥΪ̳s�ò­«½Æ¶i�X�P�@�ӬݪO�ɡA�i�O�e���u�|��ܤ@���C\n" + "\t�����t�γ]�w�A�ëD�]�w���~�C\n\n" + "\t(�ϥΪ��H�ɥi�� b �θg�Ѷi�X���P�ݪO�ӭ��s��ܶi�O�e��)\n"); - // ³]©w¤é´Áªº®ÄªG¨ä¹ê«Ü¦­´N¤£·|°Ê¤F,©Ò¥H©Þ±¼ + // �]�w������ĪG���ܦ��N���|�ʤF,�ҥH�ޱ� snprintf(msg, sizeof(msg), - "­n¦b­º¦¸¶i¤J¬ÝªO®ÉÅã¥Ü¶iªOµe­±¶Ü¡H (y/n) [%c]: ", + "�n�b�����i�J�ݪO����ܶi�O�e���ܡH (y/n) [%c]: ", fh->bupdate ? 'Y' : 'N'); getdata(10, 0, msg, buf, 3, LCECHO); @@ -4082,7 +4082,7 @@ b_notes(void) { clear(); move(4, 20); - outs("¥»¬ÝªO©|µL¶iªOµe­±¡C"); + outs("���ݪO�|�L�i�O�e���C"); } if(mr != READ_NEXT) pressanykey(); @@ -4132,11 +4132,11 @@ pin_post(int ent, fileheader_t *old_fhdr, const char *direct) if (!(old_fhdr->filemode & FILE_BOTTOM)) { move(b_lines-1, 0); clrtoeol(); - outs(ANSI_COLOR(1;33) "´£¿ô±z¸m©³»P­ì¤å¥Ø«e¤¬¬°³sµ²¡A§R±¼­ì¤å¤]·|¾É­P¸m©³®ø¥¢¡C" ANSI_RESET); + outs(ANSI_COLOR(1;33) "�����z�m���P���ثe�����s���A�R�����]�|�ɭP�m�������C" ANSI_RESET); } if( vans(old_fhdr->filemode & FILE_BOTTOM ? - "¨ú®ø¸m©³¤½§i?(y/N)": - "¥[¤J¸m©³¤½§i?(y/N)") != 'y' ) + "�����m�����i?(y/N)": + "�[�J�m�����i?(y/N)") != 'y' ) return FULLUPDATE; // Don't change original fhdr. @@ -4145,7 +4145,7 @@ pin_post(int ent, fileheader_t *old_fhdr, const char *direct) if(!(fhdr.filemode & FILE_BOTTOM) ){ snprintf(buf, sizeof(buf), "%s.bottom", direct); if(num >= 5){ - vmsg("¤£±o¶W¹L 5 ½g­«­n¤½§i ½Ðºë²!"); + vmsg("���o�W�L 5 �g���n���i �к�²!"); return FULLUPDATE; } fhdr.filemode ^= FILE_BOTTOM; @@ -4175,7 +4175,7 @@ good_post(int ent, fileheader_t * fhdr, const char *direct) return DONOTHING; if(vans(fhdr->filemode & FILE_DIGEST ? - "¨ú®ø¬ÝªO¤åºK?(Y/n)" : "¦¬¤J¬ÝªO¤åºK?(Y/n)") == 'n') + "�����ݪO��K?(Y/n)" : "���J�ݪO��K?(Y/n)") == 'n') return READ_REDRAW; if (fhdr->filemode & FILE_DIGEST) { @@ -4186,7 +4186,7 @@ good_post(int ent, fileheader_t * fhdr, const char *direct) { int unum = searchuser(fhdr->owner, NULL); if (unum > 0) { - pay_as_uid(unum, 1000, "¨ú®ø %s ¬ÝªO¤åºK", currboard); + pay_as_uid(unum, 1000, "���� %s �ݪO��K", currboard); } if (!(currmode & MODE_SELECT)) fhdr->multi.money -= 1000; @@ -4220,7 +4220,7 @@ good_post(int ent, fileheader_t * fhdr, const char *direct) { int unum = searchuser(fhdr->owner, NULL); if (unum > 0) { - pay_as_uid(unum, -1000, "³Q¿ï¤J %s ¬ÝªO¤åºK", currboard); + pay_as_uid(unum, -1000, "�Q��J %s �ݪO��K", currboard); } if (!(currmode & MODE_SELECT)) fhdr->multi.money += 1000; @@ -4244,9 +4244,9 @@ b_mark_read_unread(int ent GCC_UNUSED, const fileheader_t * fhdr, char ans[3]; time4_t curr; move(b_lines-4, 0); clrtobot(); - outs("\n³]©w¤wŪ¥¼Åª°O¿ý (ª`·N: ¤å³¹³]¬°¤wŪ«á¤£·|¦A¥X²{­×§ï°O¸¹ '~')\n"); + outs("\n�]�w�wŪ��Ū�O�� (�`�N: �峹�]���wŪ�ᤣ�|�A�X�{�ק�O�� '~')\n"); getdata(b_lines-1, 0, - "³]©w©Ò¦³¤å³¹ (U)¥¼Åª (V)¤wŪ (W)«e¤wŪ«á¥¼Åª (Q)¨ú®ø¡H[Q] ", + "�]�w�Ҧ��峹 (U)��Ū (V)�wŪ (W)�e�wŪ�᥼Ū (Q)�����H[Q] ", ans, sizeof(ans), LCECHO); switch(*ans) { @@ -4262,7 +4262,7 @@ b_mark_read_unread(int ent GCC_UNUSED, const fileheader_t * fhdr, if (curr > 1 && curr <= now) { brc_toggle_read(currbid, curr); } else { - vmsg("½Ð§ï¥Î¨ä¥¦¤å³¹³]©w·í°Ñ¦ÒÂI"); + vmsg("�Ч�Ψ䥦�峹�]�w���Ѧ��I"); } break; default: @@ -4284,12 +4284,12 @@ int check_cooldown(boardheader_t *bp) { if( bp->brdattr & BRD_COOLDOWN ) { - vmsgf("§NÀR¤@¤U§a¡I (­­¨î %d ¤À %d ¬í)", diff/60, diff%60); + vmsgf("�N�R�@�U�a�I (���� %d �� %d ��)", diff/60, diff%60); return 1; } else if(posttimesof(usernum)==0xf) { - vmsgf("¹ï¤£°_¡A±z³Q³]°h¤å¡I (­­¨î %d ¤À %d ¬í)", diff/60, diff%60); + vmsgf("�藍�_�A�z�Q�]�h��I (���� %d �� %d ��)", diff/60, diff%60); return 1; } #ifdef REJECT_FLOOD_POST @@ -4298,7 +4298,7 @@ int check_cooldown(boardheader_t *bp) for(i=0; i<4; i++) if(bp->nuser>limit[i*2] && posttimesof(usernum)>=limit[i*2+1]) { - vmsgf("¹ï¤£°_¡A±zªº¤å³¹©Î±À¤å¶¡¹j¤ÓªñÅo¡I (­­¨î %d ¤À %d ¬í)", + vmsgf("�藍�_�A�z���峹�α��嶡�j�Ӫ��o�I (���� %d �� %d ��)", diff/60, diff%60); return 1; } @@ -4312,7 +4312,7 @@ int check_cooldown(boardheader_t *bp) static int mask_post_content(int ent GCC_UNUSED, fileheader_t * fhdr, const char *direct) { #ifndef USE_TIME_CAPSULE - vmsg("¦¹¥\\¯à¥¼¶}±Ò¡A½Ð¬¢¯¸ªø¡C"); + vmsg("���\\�ॼ�}�ҡA�������C"); return FULLUPDATE; #else char pattern[STRLEN]; @@ -4331,25 +4331,25 @@ mask_post_content(int ent GCC_UNUSED, fileheader_t * fhdr, const char *direct) { assert(bp); if (!(bp->brdattr & BRD_BM_MASK_CONTENT)) { - vmsg("­n¶}±Ò¦¹¶µ¥\\¯à½Ð¬¢¸s²Õªø¡C"); + vmsg("�n�}�Ҧ����\\����s�ժ��C"); return FULLUPDATE; } - vs_hdr2(" §R°£¯S©w¤å¦r ", fhdr->title); - if (!getdata(1, 0, "§R°£­ì¦]: ", reason, sizeof(reason), DOECHO)) + vs_hdr2(" �R���S�w��r ", fhdr->title); + if (!getdata(1, 0, "�R����]: ", reason, sizeof(reason), DOECHO)) return FULLUPDATE; - mvouts(3, 0, "½Ð¿é¤J­n§R°£ªº¤å¦r (¥X²{®É·|¾ã¦æ³Q[¹H³W¤º®e]¨ú¥N, ³Ì¤Ö¨â­Ó¦r¤¸)\n"); - if (!getdata(2, 0, "§R°£¤å¦r: ", pattern, TTLEN, DOECHO) || strlen(pattern) < 2) + mvouts(3, 0, "�п�J�n�R������r (�X�{�ɷ|���Q[�H�W���e]���N, �̤֨�Ӧr��)\n"); + if (!getdata(2, 0, "�R����r: ", pattern, TTLEN, DOECHO) || strlen(pattern) < 2) return FULLUPDATE; // try to render and build. setdirpath(fpath, direct, fhdr->filename); fp = fopen(fpath, "rt"); if (!fp) { - vmsg("¤å³¹¤w³Q§R°£©ÎÂê©w¡C"); + vmsg("�峹�w�Q�R������w�C"); return FULLUPDATE; } - mvouts(3, 0, ANSI_COLOR(1;31) "±N§R°£¤U¦C¤å¦r:" ANSI_RESET "\n"); + mvouts(3, 0, ANSI_COLOR(1;31) "�N�R���U�C��r:" ANSI_RESET "\n"); i = 4; while (fgets(buf, sizeof(buf), fp)) { strip_ansi(buf, buf, STRIP_ALL); @@ -4359,7 +4359,7 @@ mask_post_content(int ent GCC_UNUSED, fileheader_t * fhdr, const char *direct) { outs(buf); outs(ANSI_RESET); if (++i >= b_lines) { - if (tolower(vmsg("«ö q ©ñ±ó¡A©Î¬O¥ô·NÁäÄ~Äò: ")) == 'q') { + if (tolower(vmsg("�� q ���A�άO���N���~��: ")) == 'q') { found = 0; break; } @@ -4372,20 +4372,20 @@ mask_post_content(int ent GCC_UNUSED, fileheader_t * fhdr, const char *direct) { fclose(fp); if (!found) { - vmsg("¥¼­×§ïÀɮסC"); + vmsg("���ק��ɮסC"); return FULLUPDATE; } /* XXX race condition here... */ - getdata(b_lines, 0, "½T©w­n§R°£³o¨Ç¤º®e¶Ü? [y/N]: ", ans, sizeof(ans), LCECHO); + getdata(b_lines, 0, "�T�w�n�R���o�Ǥ��e��? [y/N]: ", ans, sizeof(ans), LCECHO); if (*ans != 'y') { - vmsg("¥¼­×§ïÀɮסC"); + vmsg("���ק��ɮסC"); return FULLUPDATE; } rev = timecapsule_add_revision(fpath); if (!timecapsule_get_by_revision(fpath, rev, revpath, sizeof(revpath))) { - vmsg("¨t²Î¿ù»~¡AµLªk­×§ï¡C"); + vmsg("�t��~�A�L�k�ק�C"); return FULLUPDATE; } // Enforce building a new file. @@ -4396,22 +4396,22 @@ mask_post_content(int ent GCC_UNUSED, fileheader_t * fhdr, const char *direct) { while (fgets(buf, sizeof(buf), fp)) { strip_ansi(buf2, buf, STRIP_ALL); if (strstr(buf2, pattern)) { - fputs("¡° [³¡¥÷¹H³W¤å¦r¤w§R°£]\n", fpw); + fputs("�� [�����H�W��r�w�R��]\n", fpw); continue; } fputs(buf, fpw); } fclose(fp); fclose(fpw); - log_filef(fpath, LOG_CREAT, "¡° %s ©ó %s §R°£³¡¥÷¹H³W¤å¦r,­ì¦]: %s\n", cuser.userid, + log_filef(fpath, LOG_CREAT, "�� %s �� %s �R�������H�W��r,��]: %s\n", cuser.userid, Cdatelite(&now), reason); log_filef(revpath, LOG_CREAT, - "¡° %s ©ó %s §R°£³¡¥÷¹H³W¤å¦r,­ì¦]: %s\n" - "¡° ¹H³W¤å¦r¼Ë¦¡: %s\n", + "�� %s �� %s �R�������H�W��r,��]: %s\n" + "�� �H�W��r�˦�: %s\n", cuser.userid, Cdatelite(&now), reason, pattern); - // ²z½×¤W­n§ï fhdr->modified, ¤£¹L¦b¥Ø«e¤@¹Î¶Ãªº¦P¨B¾÷¨î¤U¡A¦h§@¦h¿ù¡C - vmsg("¹H³W¤å¦r¤w§R°£¡C"); + // �z�פW�n�� fhdr->modified, ���L�b�ثe�@�ζê��P�B����U�A�h�@�h���C + vmsg("�H�W��r�w�R���C"); return FULLUPDATE; #endif } @@ -4420,7 +4420,7 @@ static int b_moved_to_config() { if (currmode & MODE_BOARD) { - vmsg("³o­Ó¥\\¯à¤w²¾¤J¬ÝªO³]©w (i) ¥h¤F¡I"); + vmsg("�o�ӥ\\��w���J�ݪO�]�w (i) �h�F�I"); return FULLUPDATE; } return DONOTHING; @@ -4430,7 +4430,7 @@ static int moved_to_ctrl_e() { if (currmode & MODE_BOARD) { - vmsg("³o­Ó¥\\¯à¤w²¾¤J¤å³¹ºÞ²z (Ctrl-E) ¥h¤F¡I"); + vmsg("�o�ӥ\\��w���J�峹�޲z (Ctrl-E) �h�F�I"); return FULLUPDATE; } return DONOTHING; @@ -4439,9 +4439,9 @@ moved_to_ctrl_e() static int manage_post(int ent, fileheader_t * fhdr, const char *direct) { int ans; - const char *prompt = "[Y]±À¼ÆÂk¹s [E]Âê©w/¸Ñ°£ [M]§R¯S©w¤å¦r" + const char *prompt = "[Y]�����k�s [E]��w/�Ѱ� [M]�R�S�w��r" #ifdef USE_COMMENTD - " [V](¹êÅç)±À¤åºÞ²z" + " [V](����)����޲z" #endif ":"; @@ -4475,7 +4475,7 @@ manage_post(int ent, fileheader_t * fhdr, const char *direct) { #ifdef USE_COMMENTD case 'v': if (currbrdattr & (BRD_ANGELANONYMOUS | BRD_ANONYMOUS)) { - vmsg("©êºp¡A¼È®É¤£¤ä´©°Î¦WªO¡C"); + vmsg("��p�A�Ȯɤ��䴩�ΦW�O�C"); } else { psb_comment_manager(currboard, fhdr->filename); } @@ -4486,7 +4486,7 @@ manage_post(int ent, fileheader_t * fhdr, const char *direct) { } /* ----------------------------------------------------- */ -/* ¬ÝªO¥\¯àªí */ +/* �ݪO�\��� */ /* ----------------------------------------------------- */ /* onekey_size was defined in ../include/pttstruct.h, as ((int)'z') */ const onekey_t read_comms[] = { @@ -4515,7 +4515,7 @@ const onekey_t read_comms[] = { { 0, whereami }, // Ctrl('W') { 1, cross_post }, // Ctrl('X') { 0, NULL }, // Ctrl('Y') - { 0, NULL }, // Ctrl('Z') 26 // ²{¦bµ¹ ZA ¥Î¡C + { 0, NULL }, // Ctrl('Z') 26 // �{�b�� ZA �ΡC { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 1, recommend }, // '%' (m3itoc style) diff --git a/mbbsd/board.c b/mbbsd/board.c index 636ad715f..b8cc04eb9 100644 --- a/mbbsd/board.c +++ b/mbbsd/board.c @@ -170,7 +170,7 @@ HasBoardPermNormally(boardheader_t *bptr) } // TODO Change this to a query on demand. - /* ¤Q¤K¸T¬ÝªO */ + /* ¢Ì¤K¸T¬ÝªO */ if( (brdattr & BRD_OVER18) && !cuser.over_18 ) return 0; @@ -387,7 +387,7 @@ b_config(void) ANSI_COLOR(1;31)"Áô§Î":"¤½¶}"); prints( " " ANSI_COLOR(1;36) "g" ANSI_RESET - " - ÁôªO®É %s ¶i¤J¤Q¤j±Æ¦æº]" ANSI_RESET "\n", + " - ÁôªO®É %s ¶i¤J¢Ì¤j±Æ¦æº]" ANSI_RESET "\n", (bp->brdattr & BRD_BMCOUNT) ? ANSI_COLOR(1)"¥i¥H" ANSI_RESET: "¤£¥i"); @@ -480,13 +480,13 @@ b_config(void) // use '8' instead of '1', to prevent 'l'/'1' confusion prints( " " ANSI_COLOR(1;36) "8" ANSI_RESET - " - %s" ANSI_RESET "¥¼º¡¤Q¤K·³¶i¤J\n", + " - %s" ANSI_RESET "¥¼º¡¢Ì¤K·³¶i¤J\n", (bp->brdattr & BRD_OVER18) ? ANSI_COLOR(1) "¸T¤î " : "¤¹³\\ " ); prints( " " ANSI_COLOR(1;36) "t" ANSI_RESET " - %s" ANSI_RESET "¤wÅçÃÒ¥xÆWªù¸¹µo/±À¤å\n", - (bp->brdattr & BRD_TAIWAN_PHONE_ONLY) ? + (bp->brdattr & BRD_NEEDS_SMS_VERIFICATION) ? ANSI_COLOR(1) "­­©w " : "¤£­­©w " ); if (!canpost) diff --git a/mbbsd/cache.c b/mbbsd/cache.c index 99e98685c..20f4c388d 100644 --- a/mbbsd/cache.c +++ b/mbbsd/cache.c @@ -233,7 +233,7 @@ postperm_msg(const char *bname) assert(0<=i-1 && i-1brdattr & BRD_TAIWAN_PHONE_ONLY) + if (bp->brdattr & BRD_NEEDS_SMS_VERIFICATION) if (!is_user_sms_verified()) return "¬ÝªO­­©w¤wÅçÃÒ¥xÆWªù¸¹µo/±À¤å";