荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: hace.bbs@hace.dhs.org (半边海), 信区: InstallBBS
标 题: [转载]实现 `个人文章阅读' v0.2 [2]
发信站: 半边海BBS (Mon Apr 7 18:35:57 2003)
转信站: SZU!news.tiaozhan.com!maily.cic.tsinghua.edu.cn!news.bjsing.net!SCUT-x1
【 以下文字转载自 sysop 讨论区 】
【 原文由 hace 所发表 】
实现 `个人文章阅读' v0.2 [1]
$$ 2003.04.07 hace $ BBS 版本: firebird2000 v1106 $$
i.2 修改 announce.c
i.2.1 修改函数 a_showmenu()
void a_showmenu(pm)
MENU *pm;
{
struct stat st;
struct tm *pt;
char title[STRLEN * 2], kind[20];
char fname[STRLEN];
char ch;
char buf[STRLEN], genbuf[STRLEN * 2];
time_t mtime;
int n;
++ char h_board[128],h_buf[128];
// Add by wujian
char counter[9];
FILE *fp;
sprintf(fname, "%s/counter.person", pm->path);
fp = fopen(fname, "r");
if (fp) {
fscanf(fp, "%s", counter);
fclose(fp);
} else
strcpy(counter, "< none >");
ch = strlen(counter);
for (n = ch; n >= 0; n--)
counter[n + (9 - ch) / 2] = counter[n];
for (n = (9 - ch) / 2; n > 0; n--)
counter[n - 1] = ' ';
// Add end.
clear();
if (chkmail()) {
prints("^[[5m");
sprintf(genbuf, "[您有信件,按 M 看新信]");
} else
strcpy(genbuf, pm->mtitle);
sprintf(buf, "%*s", (80 - strlen(genbuf)) / 2, "");
prints("^[[1;44m%s%s%s^[[m\n", buf, genbuf, buf);
prints(" ^[[1;32m F^[[37m 寄回自己的信箱 ^[[32m↑↓^[[37m
移动 ^[[32m → <Enter> ^[[37m读取 ^[[32m ←,q^[[37m 离开^[[m\n");
++ //add by hace
++ if(pm->level==-2003)
++ prints("^[[1;44;37m 编号 %-30s^[[32m作品已被浏览了
++ ^[[33m%-8s^[[32m次^[[37m%19s^[[m", "[ 板 面 ] 标 题",
++ counter, "[发表日期] ");
++ else
++ //end.
prints("^[[1;44;37m 编号 %-20s^[[32m本目录已被浏览
^[[33m%-9s^[[32m次^[[37m 作 者 %8s ^[[m",
"[类别] 标 题", counter, a_fmode ? "档案名称" : "编辑日期");
prints("\n");
if (pm->num == 0) {
++ //add by hace
++ if(pm->level==-2003)
++ prints(" << 最近没有什么作品 >>\n");
++ else
++ //end.
prints(" << 目前没有文章 >>\n");
}
for (n = pm->page; n < pm->page + A_PAGESIZE && n < pm->num; n++) {
strcpy(title, pm->item[n]->title);
sprintf(fname, "%s", pm->item[n]->fname);
sprintf(genbuf, "%s/%s", pm->path, fname);
if (a_fmode && (pm->level & PERM_BOARDS) != 0) {
ch = (dashd(genbuf) ? '/' : ' ');
fname[10] = '\0';
} else {
if (dashf(genbuf) || ch == '/') {
stat(genbuf, &st);
mtime = st.st_mtime;
} else
mtime = time(0);
pt = localtime(&mtime);
sprintf(fname, "[^[[1m%02d^[[m.^[[1m%02d^[[m.^[[1m%02d^[[m]",
pt->tm_year % 100, pt->tm_mon + 1, pt->tm_mday);
ch = ' ';
}
++ if(pm->level!=-2003){ //add by hace
if (pm->item[n]->host != NULL) {
if (pm->item[n]->fname[0] == '0')
strcpy(kind, "[^[[1;32m连文^[[m]");
else
strcpy(kind, "[^[[1;33m连目^[[m]");
} else if (dashf(genbuf)) {
strcpy(kind, "[^[[1;36m文件^[[m]");
} else if (dashd(genbuf)) {
strcpy(kind, "[^[[1;37m目录^[[m]");
} else {
strcpy(kind, "[^[[1;32m错误^[[m]");
}
if (!strncmp(title, "[目录] ", 7) || !strncmp(title, "[文件] ", 7)
|| !strncmp(title, "[连目] ", 7) || !strncmp(title, "[连文] ",
7))
sprintf(genbuf, "%-s %-55.55s%-s%c", kind,
title + 7, fname, ch);
else
sprintf(genbuf, "%-s %-55.55s%-s%c", kind, title, fname, ch);
++ // add by hace
++ }else{
++ memset(h_board,0,sizeof(h_board));
++ memset(h_buf,0,sizeof(h_buf));
++ readlink(genbuf,h_buf,sizeof(h_buf));
++ h_split(h_buf,h_board);
++ sprintf(kind,"[^[[1;36m%-14s^[[m]",h_board);
++ sprintf(genbuf, "%-s %-44.44s%-s%c", kind, title, fname, ch);
++ }
++ //end.
strncpy(title, genbuf, STRLEN * 2);
title[STRLEN * 2 - 1] = '\0';
prints(" %3d %s\n", n + 1, title);
}
clrtobot();
move(t_lines - 1, 0);
++ if(pm->level==-2003){ //add by hace
++ prints("%s","^[[1;31;44m[功能键] ^[[33m 个人文章阅读 w │
++ 离开 q,← │ 移动游标 k,↑,j,↓ │ 读取资料 Rtn,→ ^[[m");
++ }else{ //add by hace
prints("%s", (pm->level & PERM_BOARDS) ?
"^[[1;31;44m[板 主] ^[[33m说明 h │ 离开 q,← │
新增文章 a │ 新增目录爂 │ 编辑档案 E ^[[m" :
"^[[1;31;44m[功能键] ^[[33m 说明 h │ 离开 q,← │
移动游标 k,↑,j,↓ │ 读取资料 Rtn,→ ^[[m");
++ } // end
}
--
/
/__ __ __ __
/ / / ) / /__)
/ / \_/\ \__ \__
※ 修改:·hace 於 04月07日18:00:30 修改本文·[FROM: 深海]
※ 来源:·半边海BBS hace.dhs.org·[FROM: 深海]
--
※ 转载:·半边海BBS hace.dhs.org·[FROM: hace]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店