Ejemplo n.º 1
0
int
safe_article_delete(int ent, const fileheader_t *fhdr, const char *direct, const char *newtitle)
{
    fileheader_t newfhdr;
    memcpy(&newfhdr, fhdr, sizeof(fileheader_t));
    set_safedel_fhdr(&newfhdr, newtitle);
    return substitute_fileheader(direct, fhdr, &newfhdr, ent);
}
Ejemplo n.º 2
0
static void
a_newtitle(const menu_t * pm)
{
    char            buf[PATHLEN];
    fileheader_t    item, *fhdr;

    fhdr = &pm->header[pm->now - pm->page];
    memcpy(&item, fhdr, FHSZ);
    strlcpy(buf, item.title + 3, sizeof(buf));
    if (getdata_buf(b_lines - 1, 0, "   新標題: ", buf, 60, DOECHO)) {
	strlcpy(item.title + 3, buf, sizeof(item.title) - 3);
	setadir(buf, pm->path);
        if (substitute_fileheader(buf, fhdr, &item, pm->now + 1) != 0)
            vmsg("無法變更名稱,可能目錄有其它板主正在修改。請退出本層目錄後再重試。");
    }
}
Ejemplo n.º 3
0
static void
a_hideitem(const menu_t * pm)
{
    fileheader_t   *item = &pm->header[pm->now - pm->page];
    char            buf[PATHLEN];
    if (item->filemode & FILE_BM) {
	item->filemode &= ~FILE_BM;
	item->filemode &= ~FILE_HIDE;
    } else if (item->filemode & FILE_HIDE)
	item->filemode |= FILE_BM;
    else
	item->filemode |= FILE_HIDE;
    setadir(buf, pm->path);
    if (substitute_fileheader(buf, item, item, pm->now + 1) != 0) {
        vmsg("無法變更,可能目錄有其它板主正在修改。請退出本層目錄後再重試。");
    }
}
Ejemplo n.º 4
0
static void
a_editsign(const menu_t * pm)
{
    char            buf[PATHLEN];
    fileheader_t    item;

    memcpy(&item, &pm->header[pm->now - pm->page], FHSZ);
    snprintf(buf, sizeof(buf), "%c%c", item.title[0], item.title[1]);
    if (getdata_buf(b_lines - 1, 1, "符號", buf, 3, DOECHO)) {
	item.title[0] = buf[0] ? buf[0] : ' ';
	item.title[1] = buf[1] ? buf[1] : ' ';
	item.title[2] = ' ';
	setadir(buf, pm->path);
        if (substitute_fileheader(buf, &item, &item, pm->now + 1) != 0) {
            vmsg("無法變更,可能目錄有其它板主正在修改。請退出本層目錄後再重試。");
        }
    }
}