回精華區
作者itoc.bbs@processor.tfcis.org (:MM:), 看板: plan
標題Re: [問題] 使用者修改自己的文章不能改標題
時間XEON (Thu Dec 26 12:01:54 2002) Updated: 2005/10/07
※ 引述《chonsi.bbs@WithHeart.twbbs.org (冰塊中的烈火 - 冰焰)》之銘言:
> 當使用者修改自己的文章的時候...
> Ctrl+x 會顯示出
> [S]存檔 (A)放棄 (T)改標題 (E)繼續 (R/W/D)讀寫刪暫存檔?
> 此時選擇 T 卻不能修改標題...
> 只能夠在文章列表按下 T 修改...

  如果想改的話..應該是這樣子

: edit.c:ve_filer()

  case 't':
-   if (ve_op > 0)              /* itoc.010301: 不能儲存 */
+   if (ve_op >= 0)             /* itoc.010301: 不能儲存 */
    {
      strcpy(buf, ve_title);
      if (!vget(b_lines, 0, "標題:", ve_title, TTLEN + 1, GCARRY))
        strcpy(ve_title, buf);
    }
    return VE_FOOTER;

: post.c:post_edit()

  hdr_fpath(fpath, xo->dir, hdr);
+ strcpy(ve_title, hdr->title);

  ...
  ...

+ if (strcmp(ve_title, hdr->title))     /* 更動了標題 */
+ {
+   strcpy(hdr->title, ve_title);
+   currchrono = hdr->chrono;
+   rec_put(xo->dir, hdr, sizeof(HDR), xo->key == XZ_XPOST ?
+     hdr->xid : xo->pos, cmpchrono);
+   return XO_INIT;   /* itoc.021226: XZ_POST 和 XZ_XPOST 共用 post_edit() */
+ }

  /* return post_head(xo); */
  return XO_HEAD;     /* itoc.021226: XZ_POST 和 XZ_XPOST 共用 post_edit() */
}

: mail.c:mbox_edit()

  hdr = (HDR *) xo_pool + (xo->pos - xo->top);
  hdr_fpath(fpath, xo->dir, hdr);

  if (!strcmp(hdr->owner, cuser.userid) || HAS_PERM(PERM_ALLBOARD))
+ {
+   strcpy(ve_title, hdr->title);
    vedit(fpath, 0);
+   if (strcmp(ve_title, hdr->title))     /* 更動了標題 */
+   {
+     strcpy(hdr->title, ve_title);
+     currchrono = hdr->chrono;
+     rec_put(xo->dir, hdr, sizeof(HDR), xo->key == XZ_XPOST ?
+       hdr->xid : xo->pos, cmpchrono);
+     return mbox_init(xo);
+   }
+ }
  else
    vedit(fpath, -1);   /* 只能編輯不可儲存 */

  return mbox_head(xo);
}

: gem.c:gem_edit()

  if (!(level & GEM_W_BIT) || ((hdr->xmode & GEM_RESERVED) && !(level & GEM_X_BIT)))
  {
    vedit(fpath, -1);
  }
  else
  {
+   strcpy(ve_title, hdr->title);
    if (vedit(fpath, 0) >= 0)
+   {
      gem_log(xo->dir, "修改", hdr);
+     if (strcmp(ve_title, hdr->title))     /* 更動了標題 */
+     {
+       strcpy(hdr->title, ve_title);
+       rec_put(xo->dir, hdr, sizeof(HDR), xo->pos, NULL);
+       return gem_init(xo);
+      }
+   }
  }

--
    ╭── Origin ╮ 動力核心  processor.tfcis.org  ~ αβγ ──┼
    ┼     Author ╯ itoc.Dorm-GD2.NCTU.edu.tw
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻