Re: 關於 t 標籤功能...
※ 引述《chunhan (Hook Club)》之銘言:
> 站內不少版主是用 t 標籤文章後, 最後再按 ctrl+d 將一些垃圾post 刪除,
> 可是 t 文章後, 若不小心出了板再進入後, 就什麼都沒有了ㄟ ><~
> 有無辦法重新進入版面後, 文章還保留 t 的狀態 (也就是前面有個 * 號),
> 方便板主不小心進出後還可以繼續管理板務呢 ?
看板中被板主按 n 設為待砍的文章
再按 ^n,系統就會自動把所有待砍文章清除
(按鍵不喜歡的話自己改)
> hdr.h
#define POST_LABEL 0x00002000 /* 標記待砍的 */
> post.c post_attr()
attr = brh_unread(fhdr->chrono) ? 0 : 0x20;
mode &= (bbstate & STAT_BOARD) ? ~0 : ~POST_GEM; /* Thor:一般user看不到G */
if (mode &= (POST_MARKED | POST_GEM))
attr |= (mode == POST_MARKED ? 'M' : (mode == POST_GEM ? 'G' : 'B'));
+ else if (mode & POST_LABEL)
+ attr |= 'T';
else if (!attr)
attr = '+';
> post.c 新增這二隻函式
static int
post_label(xo)
XO *xo;
{
if (bbstate & STAT_BOARD)
{
HDR *hdr;
int pos, cur, xmode;
pos = xo->pos;
cur = pos - xo->top;
hdr = (HDR *) xo_pool + cur;
xmode = hdr->xmode;
if (xmode & POST_MARKED) /* mark 不能待砍 */
return XO_NONE;
hdr->xmode = xmode ^ POST_LABEL;
#ifdef HAVE_XYPOST
rec_put(xo->dir, hdr, sizeof(HDR), xo->key == XZ_XPOST ? hdr->xid : pos);
#else
rec_put(xo->dir, hdr, sizeof(HDR), pos);
#endif
move(3 + cur, 7);
outc(post_attr(hdr));
}
return XO_NONE;
}
static int
post_prune(xo)
XO *xo;
{
int fdr, fsize, xmode;
char fnew[80], fold[80], *folder;
HDR *hdr;
FILE *fpw;
if (!(bbstate & STAT_BOARD))
return XO_NONE;
if (vans("確定要刪除待砍文章嗎(Y/N)?[N] ") != 'y')
return XO_FOOT;
folder = xo->dir;
if ((fdr = open(folder, O_RDONLY)) < 0)
return XO_FOOT;
if (!(fpw = f_new(folder, fnew)))
{
close(fdr);
return XO_FOOT;
}
/* itoc.020307.註解: 順便有清 POST_CANCEL, POST_DELETE 整理版面的功用 */
fsize = 0;
mgets(-1);
while (hdr = mread(fdr, sizeof(HDR)))
{
xmode = hdr->xmode;
if (xmode & (POST_CANCEL | POST_DELETE)) /* 已刪除 */
continue;
if (!(xmode & POST_LABEL))
{
if ((fwrite(hdr, sizeof(HDR), 1, fpw) != 1))
{
close(fdr);
fclose(fpw);
unlink(fnew);
return XO_FOOT;
}
fsize++;
}
else
{
/* 連線砍信 */
cancel_post(hdr);
hdr_fpath(fold, folder, hdr);
unlink(fold);
}
}
close(fdr);
fclose(fpw);
sprintf(fold, "%s.o", folder);
rename(folder, fold);
if (fsize)
rename(fnew, folder);
else
unlink(fnew);
return XO_LOAD;
}
> post.c post_cb[]
'n', post_label,
Ctrl('N'), post_prune,
> post.c xpost_cb[]
'n', post_label,
> @board.hlp
(D/^D/^N) 刪除範圍/標籤/待砍 (m/i) 標記/待砍
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: nctu5566.Dorm3.NCTU.edu.tw
→
02/21 14:51, , 1F
02/21 14:51, 1F
Maple 近期熱門文章
PTT數位生活區 即時熱門文章