回精華區
作者waynesan.bbs@csc241.twbbs.org (哇細阿虎) 看板: plan
標題[修正] edit.c 寬螢幕修正
時間迷幻國度 (2004/08/17 Tue 18:23:06) Updated: 2004/08/17
不曉得當初edit部分為何沒有加上寬螢幕....

加上去也不錯吧??@@a

--------------------------------------------------------------------

:theme.h

#define FOOTER_MORE     \
COLOR1 " 瀏覽 P.%d (%d%%) " COLOR2 " (h)說明 [PgUp][PgDn][0][$]移動 (/n)搜尋 (C)暫存 (←q)結束"

#define FOOTER_VEDIT    \
! COLOR1 " %s " COLOR2 " (^Z)說明 (^W)符號 (^L)重繪 (^X)檔案處理 ║%s│%s║%5d:%3d%*s     \033[m"


: edit.c:ve_outs()

static void
ve_outs(text)
uschar *text;
{
  int ch;
  uschar *tail;

-   tail = text + SCR_WIDTH;
+   tail = text + b_cols;
  while (ch = *text)
  {
    switch (ch)
...

: edit.c:vedit()

...

  for (;;)
  {
    vln = vx_cur;
    mode = ve_mode;
    col = ve_col;
!     /* itoc.031123.註解: 如果超過 b_cols,那麼頁面往右翻,並保留左頁的最後 4 字 */
-     cc = (col < SCR_WIDTH) ? 0 : (col / (SCR_WIDTH - 4)) * (SCR_WIDTH - 4);
+     cc = (col < b_cols) ? 0 : (col / (b_cols - 4)) * (b_cols - 4);
    if (cc != margin)
    {
      mode |= VE_REDRAW;
      margin = cc;

...

        if (tmp)
        {
          if (mode & VE_ANSI)
            outx(tmp->data);
          else if (tmp->len > margin)
            ve_outs(tmp->data + margin);
          tmp = tmp->next;
        }
        else
        {
-           outc('~');
+           prints("~%*s|", 77, "");
        }
      }
#ifdef EVERY_BIFF
      if (!(mode & VE_BIFF))

...

      else
      {
        prints(FOOTER_VEDIT,
#ifdef EVERY_BIFF
          mode & VE_BIFF ? "郵差來了" : "編輯文章",
#else
          "編輯文章",
#endif
          mode & VE_INSERT ? "插入" : "取代",
          mode & VE_ANSI ? "ANSI" : "一般",
-         ve_lno, 1 + (mode & VE_ANSI ? pos : col));
+         ve_lno, 1 + (mode & VE_ANSI ? pos : col), d_cols, "");
      }



--
    ╴╴
  ▔▔\  國度 Charming Shadow Country
  /\  入境位址 csc241.twbbs.org
\/  位址代碼 203.71.212.241
  \╴╴  來源母國 218-160-105-190.dynamic.hinet.net
  /  ▔▔\  發表時間 2004/08/17 Tue 18:21:31
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻