回精華區
作者itoc, 信區: itoc
標題[功能] ulist.c tag 放進使用者名單
時間04/10/07
作者: itoc (核心動力) 看板: itoc
標題: Re: [問題]Tagger放到bmw
時間: 2004/03/04 Thu 14:38:25                           Updated: 2005/06/12

※ 引述《chwaian (無言)》之銘言:
> 如果是要改到ulist_XXXXXX
> call ulist_write 時先檢查有無Tag

  先把 tag 功能加入 userlist 系統

: ulist.c:ulist_item() 加入 * 的符號

-   num, ufo & UFO_CLOAK ? ')' : ' ', pager,
+   num, tag_char(up->pid) == '*' ? '*' : ufo & UFO_CLOAK ? ')' : ' ', pager,

: ulist.c:ulist_tag() 新增此函式在 ulist_help() 前面

static int
ulist_tag(xo)
  XO *xo;
{
  UTMP *up;
  int tag, pos, cur;

  pos = xo->pos;
  cur = pos - xo->top;
  up = ulist_pool[pos];

  if (!up->pid)
    return XO_NONE;

  if (tag = Tagger(up->pid, pos, TAG_TOGGLE))
  {
    move(3 + cur, 6);
    outc(tag > 0 ? '*' : up->ufo & UFO_CLOAK ? ')' : ' ');
  }

  /* return XO_NONE; */
  return xo->pos + 1 + XO_MOVE; /* lkchu.981201: 跳至下一項 */
}

: ulist.c:ulist_cb[] 新增 tag 指令

+ 't', ulist_tag,

  'h', ulist_help

> ───────────────────────────────────── <

  這樣就已經有 tag 功能了,接下來就看你要做什麼事

static int
ulist_xxxx(xo)            // xxxx 是函式命名
  XO *xo;
{
  int tag, locus, pos;
  UTMP *up;

  tag = AskTag("什麼什麼事");

  if (tag < 0)
    return XO_FOOT;

  if (!tag)
    up = ulist_pool[xo->pos];
  locus = 0;

  do
  {
    if (tag)
    {
      pos = TagList[locus].recno;
      up = ulist_pool[pos];
      if (up->pid != TagList[locus].chrono)     /* 該位子換人了 */
        continue;
    }

    // 接下來這邊就看你要拿 up 來做什麼事

  } while (++locus < tag);

  return XO_FOOT;       // 也許是 ulist_head(),依畫面重繪而定
}

: ulist.c:ulist_cb[]

+ 'x', ulist_xxxx,        // 按鍵及函式名自定

  'h', ulist_help


--
  Origin:  Maple-itoc˙動力核心  processor.tfcis.org 
  Author: itoc pc512-2.ee.nctu.edu.tw 發表
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻