ytht的代码,其他代码也可以参考一下:
RCS file: /home/cvs/bbs/innbbsd/receive_article.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- bbs/innbbsd/receive_article.c2004/11/09 11:20:231.2
+++ bbs/innbbsd/receive_article.c2004/11/09 14:22:581.3
@@ -99,6 +99,12 @@
if (strlen(SUBJECT) > 255)
FAILED;
str_decode(conv_buf, SUBJECT);
+ if(strstr(SUBJECT,"=?big5?") || strstr(SUBJECT,"=?Big5?") ||
+ strstr(SUBJECT,"=?BIG5?") ){
+ int len;
+ len=strlen(conv_buf);
+ big2gb(conv_buf,&len,0);
+ }
if (fprintf(fhfd, "%s%s, %s%s\n", FromTxt, FROM, BoardTxt, board) == EOF
|| fprintf(fhfd, "%s%.70s\n", SubjectTxt, conv_buf) == EOF
|| fprintf(fhfd, "%s%.43s (%s)\n", OrganizationTxt, SITE,
@@ -848,6 +854,13 @@
header.filetime = atoi(name + 2);
fh_setowner(&header, userid, 0);
str_decode(conv_buf, SUBJECT);
+ if(strstr(SUBJECT,"=?big5?") || strstr(SUBJECT,"=?Big5?") ||
+ strstr(SUBJECT,"=?BIG5?") ){
+ int len;
+ len=strlen(conv_buf);
+ big2gb(conv_buf,&len,0);
+ }
strsncpy(header.title, conv_buf, sizeof (header.title));
fh_find_thread(&header, board);
/* if append record record, should return fail message */
--
FROM 218.194.249.*