作者Dopin (bbs.ats.idv.tw)
看板PttSuggest
标题Re: [建议]增加随机选签名档的功能
时间Thu Jul 17 11:27:56 2003
※ 引述《dustree (蓝色双鱼)》之铭言:
: 有时候想换签名档 但选又很麻烦
: 可不可以多一项开关
: 打开的话 每次写完文章後
: 系统直接从已经编辑好的签名档里随机选出後加入
: 很久以前的蓝波快信和银版快信里有这种功能
: 如果能再加入储存目前阅读文章签名档的功能的话 更赞~
// ATS 的签名档程式 提供参考 当然是不可能完全相容 但原理大同小异
// src/maple/edit.c
static void addsig() {
char ch, records, sign_exist[9], fpath[STRLEN], buf[ANSILINELEN+1];
static char msg[] = "请选择签名档 (1-9, N 不加, 0 乱数, Enter 同前次) : ";
int i;
FILE *fs;
if(anonymous == 1) return;
if(!currutmp->userlevel) return;
for(ch = 0 ; ch < 9 ; ch++) sign_exist[ch] = 0;
i = showsignature(fpath, 'A', 0);
ch = buf[0] = 0;
getdata(0, 0, msg, buf, 2, LCECHO, 0);
if(!buf[0]) {
ch = 1;
goto Check_LAST;
}
if(buf[0] == 'n') {
cuser.backup_char[0] = 0;
goto UPDATE_SIG;
}
if(buf[0] == '0') {
for(records = 0 , ch = 0 ; ch < 9 ; ch++) {
fpath[i] = ch + '1';
if((fs = fopen(fpath, "r")) != NULL) {
++records;
sign_exist[records-1] = ch;
fclose(fs);
}
}
if(records) {
srandom(file_seed(BBSCODE "/fpindex"));
buf[0]= '1'+ sign_exist[random() % records];
fpath[i] = buf[0];
}
else {
pressanykey("签名档 1~9 皆不存在 !! 无法引入 ...");
buf[0] = 0;
}
}
ch = buf[0];
Check_LAST:
if(ch == 1) {
if(cuser.backup_char[0]) ch = cuser.backup_char[0];
else ch = 0;
}
cuser.backup_char[0] = 0;
if(ch >= '1' && ch <= '9') {
fpath[i] = ch;
if(fs = fopen(fpath, "r")) {
insert_string("\n--\n");
for(i = 0; i < MAXSIGLINES && fgets(buf, sizeof(buf), fs); i++)
insert_string(buf);
fclose(fs);
cuser.backup_char[0] = ch;
}
}
UPDATE_SIG:
item_update_passwd('l');
xuser.backup_char[0] = cuser.backup_char[0];
item_update_passwd('u');
}
--
修改原因 -> 我发完後就发现 这里可以选随机签名档呀 QQ;;;
--
※ 发信站: 批踢踢实业坊(ptt.csie.ntu.edu.tw)
◆ From: 210.68.39.15
※ 编辑: Dopin 来自: 210.68.39.15 (07/17 11:29)
※ 编辑: Dopin 来自: 210.68.39.15 (07/18 00:26)