作者itoc.bbs@processor.tfcis.org (綠巨人好客?) 看板: plan
標題Re: [功能]能自訂看板分類顏色嗎
時間XEON (Tue, 15 Jul 2003 01:55:47 +0800 (CST)) Updated: 2005/06/17
: board.c:class_item()
- prints("%6d%c%s%-13s\033[1;3%dm%-5s\033[m%s %-*.*s %s %.*s\n",
+ prints("%6d%c%s%-13s\033[%sm%-4s\033[m %s %-*.*s %s %.*s\n",
num, token, str, brd->brdname,
- brd->class[3] & 7, brd->class,
+ class_color(brd->class), brd->class,
brd->bvote ? "\033[1;33m投" :
(brd->battr & BRD_NOTRAN ? ICON_NOTRAN_BRD : ICON_TRAN_BRD),
brd->title, brd->BM);
: board.c:class_body()
short *chx;
char *img, *str;
+ char class[BCLEN + 1];
img = class_img;
chx = (short *) img + (CH_END - chn);
str = img + *chx;
+ str_ncpy(class, str + BNLEN + 1, BCLEN + 1);
- prints("%6d%c %-13.13s\033[1;3%dm%-5.5s\033[m%s\n",
+ prints("%6d%c %-13.13s\033[%sm%-5.5s\033[m%s\n",
cnt, class_bits[-chn] & BRD_Z_BIT ? TOKEN_ZAP_BRD : ' ',
- str, str[BNLEN + 4] & 7, str + BNLEN + 1, ...);
+ str, class_color(class), str + BNLEN + 1, ...);
: board.c:class_color() 加在 class_item() 前面
static char * /* 回傳顏色 */
class_color(class)
char *class;
{
int i;
char *str;
extern FCACHE *fshm;
for (i = 0; *(str = fshm->classtable[i]); i++)
{
if (!strcmp(class, str))
break;
}
return fshm->colortable[i];
}
: cache.c
- static FCACHE *fshm;
+ FCACHE *fshm;
: global.h
#define FN_ETC_LOVELETTER "etc/loveletter" /* 情書產生器文庫 */
+ #define FN_ETC_CLASS "etc/class" /* 看板分類顏色 */
: admutil.c:a_xfile()
#ifdef HAVE_LOVELETTER
"情書產生器文庫",
#endif
+ "看板分類顏色",
...
...
#ifdef HAVE_LOVELETTER
FN_ETC_LOVELETTER,
#endif
+ FN_ETC_CLASS,
: struct.h:FCACHE
typedef struct
{
int shot[MOVIE_MAX]; /* Thor.980805: 合理範圍為 0..MOVIE_MAX - 1 */
char film[MOVIE_SIZE];
+ char classtable[100][BCLEN + 1];
+ char colortable[100][20];
} FCACHE;
: camera.c:do_color() 加入 main() 前面
static void
do_color(fshm)
FCACHE *fshm;
{
int i;
char msg[STRLEN], *str;
FILE *fp;
i = 0;
if (fp = fopen(FN_ETC_CLASS, "r"))
{
for (; i < 99; i++)
{
if (!fgets(msg, STRLEN, fp))
break;
if (*msg == '#' || *msg == '\n')
continue;
if (str = strchr(msg, '\n'))
*str = '\0';
msg[BCLEN] = '\0';
strcpy(fshm->classtable[i], msg);
strcpy(fshm->colortable[i], msg + BCLEN + 1);
}
fclose(fp);
}
fshm->classtable[i][0] = '\0';
strcpy(fshm->colortable[i], "1;37"); /* 在 list 裡面找不到時的預設顏色 */
}
: camera.c:main()
+ do_color(fshm);
exit(0);
}
: etc/class 新增此檔案
: 或是從 BBS 站上 0Admin->Xfile 裡面改
# 井字開頭的是註解
# 格式是: 分類+一個空格+顏色控制碼
人文 1;35
文學 1;35
站務 1;34;41
個人 1;32
音樂 1;31
藝人 1;31
電影 1;31
--
| Origin | MapleBBS-itoc 動力核心 processor.tfcis.org
| Author | itoc.dorm11.nctu.edu.tw