回精華區
作者PaulLiu.bbs@processor.tfcis.org (GrandPaul) 看板: plan
標題Re: [問題] 關於 RFC 2045 / RFC 2047
時間XEON (Tue, 01 Apr 2003 19:22:16 +0800 (CST)) Updated: 2005/08/31
※ -------------- news 的部分 -------------- ※

: innbbsd/Makefile 若是 FreeBSD 要改這個

freebsd:
        ... -L./lib -linn -L/usr/local/lib -liconv" LIBCRYPT=-lcrypt target

: innbbsd/inntobbs.h

! extern char *SUBJECT, *FROM, *SITE, *DATE,
              *GROUPS, *MSGID, *CONTROL, *CONTENTTYPE, *CONTENTENCODE;

: innbbsd/inntobbs.c

enum HeaderValue        /* 所有有用到的 header */
{
  SUBJECT_H,
  FROM_H,
  SITE_H,
  DATE_H,
  GROUPS_H,
  MSGID_H,
  CONTROL_H,
+ CONTENTTYPE_H,
+ CONTENTENCODE_H,

  LASTHEADER
};

static header_t headertable[LASTHEADER] =
{
  "Subject",                    SUBJECT_H,
  "From",                       FROM_H,
  "Organization",               SITE_H,
  "Date",                       DATE_H,
  "Newsgroups",                 GROUPS_H,
  "Message-ID",                 MSGID_H,
  "Control",                    CONTROL_H,
+ "Content-Type",               CONTENTTYPE_H,
+ "Content-Transfer-Encoding",  CONTENTENCODE_H,
};

static char *HEADER[LASTHEADER];

char *BODY;
! char *SUBJECT, *FROM, *SITE, *DATE, *PATH,
       *GROUPS, *MSGID, *CONTROL, *CONTENTTYPE, *CONTENTENCODE;


  ...
  ...

  MSGID = HEADER[MSGID_H];
  CONTROL = HEADER[CONTROL_H];
+ CONTENTTYPE = HEADER[CONTENTTYPE_H];
+ CONTENTENCODE = HEADER[CONTENTENCODE_H];
}


: innbbsd/rec_article.c

static int
receive_article()
{
  newsfeeds_t *nf;
  char myaddr[128], mynick[128], mysubject[128], myfrom[128], mydate[80];
  char poolx[256];
+ char charset[32], decode;
+ int cc;

  ...
  ...

  parse_date();
  strcpy(mydate, (char *) Btime(&datevalue));
  DATE = mydate;


+ /* 轉 charset */
+ mm_getencode(CONTENTENCODE, &decode);
+ cc = mmdecode(BODY, decode, BODY);
+ mm_getcharset(CONTENTTYPE, charset, sizeof(charset));
+ if (!*charset)
+   strcpy(charset, nf->charset);
+ str_conv(charset, MYCHARSET, BODY, cc);

- if (*nf->charset == 'g')
+ if (!str_cmp(charset, "gb2312"))
  {
-   gb2b5(BODY);
    gb2b5(FROM);
    gb2b5(SUBJECT);
    gb2b5(SITE);
  }

--
    ╭─ Origin ─╗ O processor.tfcis.org  ~ κλμ ─┤
    ├   Author   ╡ cnal.csie.nctu.edu.tw                    
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻