荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (UNIX+C+XML+?? 傻了?), 信区: InstallBBS
标  题: Re: re: 我把刚做好的mail 合集贴出来吧(转寄)[转载]
发信站: 荔园晨风BBS站 (Tue Apr 16 23:12:20 2002), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjksam@smth.org 所发表 】
发信人: Altmayer.bbs@lostemple.dhs.org (alt), 信区: BBSMan_Dev
标  题: Re: re: 我把刚做好的mail 合集贴出来吧
发信站: 失落的神殿 (Mon Apr 15 23:42:11 2002)
转信站: SMTH!thunews.dhs.org!news.happynet.org!LosTemple


【 在 commings.bbs@bbs.cqupt.edu.cn (死鱼一条) 的大作中提到: 】
: 标  题: re: 我把刚做好的mail 合集贴出来吧
: 发信站: 幽幽黄桷兰BBS (Tue Apr 16 07:13:19 2002)
: 转信站: LosTemple!news.happynet.org!CquptBBS
:
:
: 【 在 Altmayer.bbs@lostemple.dhs.org (alt) 的大作中提到: 】
: 发信人: Altmayer (alt), 信区: bbsdev
: 标  题: mail 增加了合集功能
: 发信站: 失落的神殿 (2002年04月11日04:41:16 星期四), 站内信件
:
: 读 mail 时, 按 b ,同主题合集. 做的不是很细致, 以后慢慢完善!
:
: 1. 在 mail.c 里增加 'b' 对应函数 Mail_combine()
: 2. 在 read.c 增加函数 Mail_combine()
:
: int Mail_combine (int ent, struct fileheader *fileinfo, char *direct)
: {
:    int     result = 0;
:    char    buf[STRLEN];
:
:    saveline(t_lines - 1, 0);
:    move(t_lines - 1, 0);
:    if (askyn("确定要执行相同主题合集吗?", YEA, NA) == 0){
:       saveline(t_lines - 1, 1);
:       return DONOTHING;
:    }
:    strcpy(keyword, fileinfo->title);
:
:    sprintf(buf, "tmp/%s.combine", currentuser.userid);
:    if(dashf(buf)) unlink(buf);
:
:    move(t_lines - 1, 0);
:    sprintf(buf, "是否从此主题第一篇开始合集 (Y)第一篇 (N)目前这一篇");
:    if(askyn(buf, YEA, NA) == YEA) {
:       result = locate_the_post(fileinfo, keyword, 5, 0, 0);
:    } else {
:       memcpy(&SR_fptr, fileinfo, sizeof(SR_fptr));
:    }
:    if( result == -1 ){
:       saveline(t_lines - 1, 1);
:       return DONOTHING;
:    }
:
:
:    while(1){
:        FILE *fp;
:        char temp2[1024];
:        char buf[STRLEN];
:
:        sprintf(buf, "tmp/%s.combine", currentuser.userid);
:
:        fp=fopen(buf,"at");
:        fprintf(fp,"^[[1;35m☆────────────────────────

: ─────────────☆^[[m\n");
:        {
:           FILE *fp1;
:           char *s_ptr,*e_ptr;
:           int blankline=0;
:           char filename[80];
:           struct fileheader *fileinfo;
:
:           fileinfo = &SR_fptr;
:           sprintf(filename, "mail/%c/%s/%s", toupper(currentuser.userid[0]),
cur
: rentuser.userid, fileinfo->filename);
:
:           fp1=fopen(filename,"rt");
:           if (fgets(temp2, 256, fp1)!=NULL) {
:             if(!strstr(temp2,"寄信人")) fputs(temp2,fp);
:             else{
:               e_ptr=strchr(temp2,'\n');
:               if (e_ptr!=NULL) *(e_ptr)='\0';
:               s_ptr=&temp2[7];
:               fprintf(fp, "    ^[[0;1;33m%s ^[[m",s_ptr);
:               fgets(temp2, 256, fp1);
:               if (fgets(temp2, 256, fp1)!=NULL) {
:                 e_ptr=strchr(temp2,')');
:                 if (e_ptr!=NULL) {
:                   *(e_ptr)='\0';
:                   s_ptr=strchr(temp2,'(');
:                   if (s_ptr==NULL) s_ptr=temp2;
:                   else s_ptr++;
:                   fprintf(fp, "于 ^[[1;34m%s^[[m 提到:\n",s_ptr);
:                 }
:               }
:             }
:           }
:           fgets(temp2, 256, fp1);
:           while (!feof(fp1)) {
:             fgets(temp2, 256, fp1);
:             if ((unsigned)*temp2<'\x1b'){
:                 if (blankline) continue; else blankline=1;
:             }
:             else blankline=0;
: //          if ((strstr(temp2, "【"))|| + (*temp2==':')) continue;
: :                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~的确不好处理.
+     if ((*temp2==':') && ((strstr(temp2, "【"))||(*(temp2+2)==':')))continue;
加上一句吧, mail 留一个人的引言比较实用
:             if (strncmp(temp2,"--",2)==0) break;
: :               ~~~~~~~~~~~~~~我觉的最好在后面多加几个空格,要是那是个破折号呢
            有道理, 那该用什么条件好? 主要有了 internet mail后, 很多格式不定
: :               strncmp(temp2,"--                    ",22)==0)break;
:
:             fputs(temp2, fp);
:           }
:           fclose(fp1);
:        }
:
:        fprintf(fp,"\n" );
:        fclose(fp);
:        result = locate_the_post(fileinfo, keyword,1,0,0);
:        if(result == -1) break;
:    }
:
:
:    if( !strncmp(keyword, "Re: ", 4)||!strncmp(keyword,"RE: ",4) )
:       sprintf(buf, "【合集】%s", keyword + 4);
:    else sprintf(buf, "【合集】%s", keyword);
:    strcpy(keyword, buf);
:    sprintf(buf, "tmp/%s.combine", currentuser.userid);
:    mail_file(buf,currentuser.userid,keyword);
:    unlink(buf);
:
:    return DIRCHANGED;
: }
:
: 【 在 Altmayer (alt) 的大作中提到: 】
: :     for fb2k. 代码粗糙了点, 不过还很实用, 希望以后能多交流一下.
: : 谢!
: --
: ※ 来源:·失落的神殿 lostemple.dhs.org·[FROM: 失落的神殿]
:
:
: --
: 勇者无畏,强者无敌!
: 突破极限,贴近真理。
: ※ 来源:·幽幽黄桷兰 bbs.cqupt.edu.cn·[FROM: thinking]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店