Ticket #776

echo -n テスト|nkf -M > =?ISO-2022-JP?B?GyR
Open Date: 2002-11-19 00:13 Last Update: 2002-12-01 01:18

Reporter:
Owner:
(None)
Type:
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
1

Details

$ echo テスト | nkf -M
=?ISO-2022-JP?B?GyRCJUYlOSVIGyhC?=
$ echo -n テスト | nkf -M; echo
=?ISO-2022-JP?B?GyRCJUYlOSVIGyhC
$

MIME Encoding(ヘッダ形式に変換する)で改行のある/無しで
最後の ?= が付く/付かないという問題があります。

Ticket History (3/4 Histories)

2002-11-20 17:33 Updated by: nork
  • File 164: patch-nkf.c is attached
Comment
Logged In: YES
user_id=3071

時間が取れたので調べてみました。
*_oconv 関数での EOF を伝播させてないというのがその答えのよ
うです。
2002-11-20 17:43 Updated by: nork
Comment
Logged In: YES
user_id=3071

そうそう。趣味の問題ですが, 改行後のスペース(0x20)をタブ
(0x09)にしていただけると嬉しいのですが。どうもタブなメー
ラーで育ってきたせいなのかとは思いますが。。他のメーラー
でもスペースのものとタブのものとありますね。

修正箇所は base64_conv 関数中の (*o_putc)(' ');を変更し
た後, base64_count+=7; します(adhoc ではありますが)。
2002-11-21 20:26 Updated by: nork
Comment
Logged In: YES
user_id=3071

先の修正で -M じゃない時に選択される std_putc 関数で,
EOF のハンドリングがなされてないので結果 0xff を出力
してしまいます。

std_putc(c)
int c;
{
- putchar(c);
+ if(c!=EOF)
+ putchar(c);
}

ということで。
2002-12-01 01:18 Updated by: rei_furukawa
  • Ticket Close date is changed to 2002-12-01 01:18
  • Status Update from Open to Closed
Comment
Logged In: YES
user_id=2500

cvs に反映しました

Attachment File List

  • patch-nkf.c(956bytes)
    • nkf 2.01.2002.11.08 に対するパッチ

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login