回文章列表
作者guessi.bbs@cpu.tfcis.org (沒) 看板: itoc
標題Re: [功能] 使用文章代碼(AID)快速尋文
時間動力核心 (2010/01/09 Sat 03:57:28)
PTT的AID顯示方式不錯~ M3也可以仿照處理 (請配合本篇原文做修改)

亮白色顯示游標位置文章標題, 其餘地方做灰白處理, 並清除前後行文字以示區格

效果如下:

     5     05/01 ijliao.      □ [FAQ] 申請成立 tw.bbs.* 討論區, 怎麼做?
     6     05/01 ijliao.      □ 2006/05/01 tw.bbs.* 討論區列表

>    8     05/16 ijliao.      □ 2006/05/16 tw.bbs.* 討論區列表
┌─────────────────────────────────────┐
│文章代碼(AID): #A126H9LF                           看板名稱: config       │
│文章作者: ijliao@csie.nctu.edu.tw                                         │
└─────────────────────────────────────┘

    14     07/01 ijliao.      □ 2006/07/01 tw.bbs.* 討論區列表
    15     08/01 ijliao.      □ [FAQ] 申請成立 tw.bbs.* 討論區, 怎麼做?


: src/maple/post.c:post_aid_query() 整隻換掉

/* guessi.090610 顯示文章代碼(AID) refined version */
int
post_aid_query(xo)
  XO *xo;
{
  screenline slp[T_LINES];
  char buf[ANSILINELEN];
  HDR *hdr;
  int cur;

  hdr = (HDR *) xo_pool + (xo->pos - xo->top);
  cur = xo->pos - xo->top + 3;

  vs_save(slp);
  str_ansi(buf, slp[cur].data, slp[cur].width + 1);

  grayout(GRAYOUT_DARK);    /* 若沒有做grayout 請拿掉這行 */

  /* 根據游標位置決定顯示格式 */
  if (cur <= 15)
  {
    move(cur- 1, 0);
    clrtoeol();
    prints("\n");
    prints("\033[1;37;40m%s\033[m\n", buf);
    move(cur + 1, 0);
  }
  else
  {
    move(cur - 5, 0);
    clrtoeol();
    prints("\n");
  }

  prints("┌─────────────────────────────────────┐\n");
  prints("│文章代碼(AID): #%s%-*s看板名稱: %-13s│\n", hdr->xname, 27, "", currboard);
  prints("│文章作者: %s%-*s│\n", hdr->owner, 64 - strlen(hdr->owner), "");
  prints("└─────────────────────────────────────┘\n");

  if (cur > 15)
    prints("\033[1;37;40m%s\033[m\n", buf);

  clrtoeol();
  vmsg(NULL);
  return XO_HEAD;
}



--
=[:摃��:﹎Origin ]|[  Ocpu.tfcis.org  ]|[�搟說:]=
=[:摃�╱�:Author ]|[118-161-210-251.dynamic.hi]|[�:]=
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻