From 63573eaa9ce3ad757f402e91e0844305e6f4265e Mon Sep 17 00:00:00 2001 From: piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> Date: Sun, 24 Jul 2005 03:19:33 +0000 Subject: integrated board attr setup git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2948 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 120 +++++++++++++++++++++++++++----------------------- sample/etc/board.help | 2 +- 2 files changed, 66 insertions(+), 56 deletions(-) diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 121216d9..aafd8df2 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -2558,77 +2558,87 @@ b_changerecommend(int ent, const fileheader_t * fhdr, const char *direct) char *optCmds[2] = { "/b", "/x" }; - char *optDesc[2] = { - "/�N��", - "/����۰ʰO��" - }; boardheader_t *bp=NULL; - int touched = 0; + int touched = 0, finished = 0; if (!((currmode & MODE_BOARD) || HasUserPerm(PERM_SYSOP))) return DONOTHING; bp = getbcache(currbid); - move(b_lines - 6, 0); clrtobot(); - outs(MSG_SEPERATOR); - outs("\n�ثe�ݪO�]�w:\n"); - prints(" - %s ���ˤ峹\n", - (bp->brdattr & BRD_NORECOMMEND) ? "���i":"�i�H"); + + while(!finished) { + move(b_lines - 6, 0); clrtobot(); + outs(MSG_SEPERATOR); + outs("\n�ثe�ݪO�]�w:\n"); + prints( " " ANSI_COLOR(1;36) "h" ANSI_RESET + " - ���}���A(�O�_����): %s " ANSI_RESET "\n", + (bp->brdattr & BRD_HIDE) ? + ANSI_COLOR(1)"����":"���}"); + prints( " " ANSI_COLOR(1;36) "r" ANSI_RESET + " - %s " ANSI_RESET "���ˤ峹\n", + (bp->brdattr & BRD_NORECOMMEND) ? + ANSI_COLOR(1)"���i":"�i�H"); #ifndef OLDRECOMMEND - prints(" - %s �N��\n", - ((bp->brdattr & BRD_NORECOMMEND) || (bp->brdattr & BRD_NOBOO)) - ? "���i":"�i�H"); + prints( " " ANSI_COLOR(1;36) "b" ANSI_RESET + " - %s " ANSI_RESET "�N��\n", + ((bp->brdattr & BRD_NORECOMMEND) || (bp->brdattr & BRD_NOBOO)) + ? ANSI_COLOR(1)"���i":"�i�H"); #else - optCmds[0] = ""; optDesc[0] = ""; + optCmds[0] = ""; #endif #ifdef AUTO_CP_LOG - prints(" - ����峹�� %s �۰ʰO��\n", - (bp->brdattr & BRD_NOCPLOG) ? "���|":"�|"); + prints( " " ANSI_COLOR(1;36) "x" ANSI_RESET + " - ����峹�� %s " ANSI_RESET "�۰ʰO��\n", + (bp->brdattr & BRD_NOCPLOG) ? + "���|" : ANSI_COLOR(1)"�|"); #else - optCmds[1] = ""; optDesc[1] = ""; + optCmds[1] = ""; optDesc[1] = ""; #endif - switch(tolower(getans("�Ы� r%s%s �]�w�i�_ ����%s%s: ", - optCmds[0], optCmds[1], - optDesc[0], optDesc[1]))) - { + switch(tolower(getans("�Ы� h/r%s%s ���ܳ]�w,�䥦�䵲��: ", + optCmds[0], optCmds[1]))) + { #ifdef AUTO_CP_LOG - case 'x': - bp->brdattr ^= BRD_NOCPLOG; - touched = 1; - vmsg("�w�]�w���ۥ��O����峹�N %s �۰ʯd�U�O��", - (bp->brdattr & BRD_NOCPLOG) ? "���|" : "�|" - ); - break; + case 'x': + bp->brdattr ^= BRD_NOCPLOG; + touched = 1; + break; #endif - case 'r': - bp->brdattr ^= BRD_NORECOMMEND; - touched = 1; -#ifdef OLDRECOMMEND - vmsg("���O�{�b %s ����", - (bp->brdattr & BRD_NORECOMMEND) ? "�T��" : "�}��"); - break; -#else - vmsg("���O�{�b %s ����, %s �N�n", - (bp->brdattr & BRD_NORECOMMEND) ? "�T��" : "�}��", - ((bp->brdattr & BRD_NORECOMMEND)||(bp->brdattr & BRD_NOBOO)) ? "�T��" : "�}��"); - break; - case 'b': - if(bp->brdattr & BRD_NORECOMMEND) - bp->brdattr |= BRD_NOBOO; - bp->brdattr ^= BRD_NOBOO; - touched = 1; - if (!(bp->brdattr & BRD_NOBOO)) - bp->brdattr &= ~BRD_NORECOMMEND; - vmsg("���O�{�b %s ����, %s �N�n", - (bp->brdattr & BRD_NORECOMMEND) ? "�T��" : "�}��", - ((bp->brdattr & BRD_NORECOMMEND)||(bp->brdattr & BRD_NOBOO)) ? "�T��" : "�}��"); - break; + case 'h': + if(bp->brdattr & BRD_HIDE) + { + bp->brdattr &= ~BRD_HIDE; + bp->brdattr &= ~BRD_POSTMASK; + } else { + bp->brdattr |= BRD_HIDE; + bp->brdattr |= BRD_POSTMASK; + } + touched = 1; + break; + case 'r': + bp->brdattr ^= BRD_NORECOMMEND; + touched = 1; + break; +#ifndef OLDRECOMMEND + case 'b': + if(bp->brdattr & BRD_NORECOMMEND) + bp->brdattr |= BRD_NOBOO; + bp->brdattr ^= BRD_NOBOO; + touched = 1; + if (!(bp->brdattr & BRD_NOBOO)) + bp->brdattr &= ~BRD_NORECOMMEND; + break; #endif - default: - vmsg("�����ܥ���]�w"); - break; + default: + finished = 1; + break; + } } if(touched) - substitute_record(fn_board, bp, sizeof(boardheader_t), currbid); + { + substitute_record(fn_board, bp, sizeof(boardheader_t), currbid); + vmsg("�w�x�s�s�]�w"); + } + else + vmsg("�����ܥ���]�w"); return FULLUPDATE; } diff --git a/sample/etc/board.help b/sample/etc/board.help index 4a57472f..ec282243 100644 --- a/sample/etc/board.help +++ b/sample/etc/board.help @@ -19,4 +19,4 @@ (T/B) ���s�峹���D/���s�ݪO���D (t/^D) �аO�峹/�尣�аO���峹 (O)/(i) �o���`�N�ƶ�/�峹���O (W)/(K)/(v) �s�i�O�e��/����/�i���W�� (^G) �|���L/����U�`/�}�� (H) �����ݪO���� - (I) �]�w�i�_���ˤ峹/����峹�۰ʰO�� + (I) �ݪO�]�w(����,����,����O��) -- cgit v1.2.3