荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: 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软件 网络书店