Vine Linux バグトラッキングシステム - Vine Linux
課題の詳細を表示
0001062Vine Linux1 バグ公開2010-11-01 11:542012-05-23 23:38
anonymous 
owa 
不明 
完了不明 
VineSeed 
 
zint-2.4.2-1vl6.i686
0001062: zint QRコードに漢字を指定すると化ける
zint QRコードに漢字を指定すると化けるようですので、
パッチを作成してみました。
ex. zint -b 58 -d '本日は晴天なり'

zint-2.4.0-qr-kanji.patch

diff -r 7f939ac02156 zint-2.4.0/backend/qr.c
--- a/zint-2.4.0/backend/qr.c Sun Oct 31 18:59:11 2010 +0900
+++ b/zint-2.4.0/backend/qr.c Mon Nov 01 11:03:55 2010 +0900
@@ -221,14 +221,15 @@

                                /* Character representation */
                                for(i = 0; i < short_data_block_length; i++) {
- int jis = jisdata[position + i];
- int msb, lsb, prod;
-
- if(jis > 0x9fff) { jis -= 0xc140; }
- msb = (jis & 0xff00) >> 4;
+ unsigned int jis = jisdata[position + i];
+ unsigned int msb, lsb, prod;
+
+ msb = (jis & 0xff00) >> 8;
                                        lsb = (jis & 0xff);
+
+ if (msb >= 0x81 && msb <= 0x9f) { msb -= 0x81; } else if (msb >= 0xe0 && msb <= 0xea) { msb -= 0xc1; }
+ if (lsb >= 0x40 && lsb <= 0xfc) { lsb -= 0x40; }
                                        prod = (msb * 0xc0) + lsb;
-
                                        qr_bscan(binary, prod, 0x1000);

                                        if(debug) { printf("0x%4X ", prod); }
@@ -1204,14 +1205,15 @@

                                /* Character representation */
                                for(i = 0; i < short_data_block_length; i++) {
- int jis = jisdata[position + i];
- int msb, lsb, prod;
-
- if(jis > 0x9fff) { jis -= 0xc140; }
- msb = (jis & 0xff00) >> 4;
+ unsigned int jis = jisdata[position + i];
+ unsigned int msb, lsb, prod;
+
+ msb = (jis & 0xff00) >> 8;
                                        lsb = (jis & 0xff);
+
+ if (msb >= 0x81 && msb <= 0x9f) { msb -= 0x81; } else if (msb >= 0xe0 && msb <= 0xea) { msb -= 0xc1; }
+ if (lsb >= 0x40 && lsb <= 0xfc) { lsb -= 0x40; }
                                        prod = (msb * 0xc0) + lsb;
-
                                        qr_bscan(binary, prod, 0x1000);

                                        if(debug) { printf("0x%4X ", prod); }
設定されていません。
patch zint-2.4.0-qr-kanji.patch (1,465) 2010-11-06 23:58
http://mantis.vinelinux.org/file_download.php?file_id=7&type=bug
課題の履歴
2010-11-01 11:54anonymous新規課題
2010-11-06 23:58owa添付ファイル追加: zint-2.4.0-qr-kanji.patch
2010-11-06 23:58owaコメント追加: 0000208
2011-05-08 00:27owa担当者 => owa
2011-05-08 00:27owa状態新規 => テスト待ち
2011-05-08 00:27owaコメント追加: 0000209
2011-05-08 15:29anonymousパッケージzint-2.4.0-1vl6 => zint-2.4.2-1vl6.i686
2011-05-08 15:29anonymousコメント追加: 0000210
2012-05-23 23:38munepi状態テスト待ち => 完了
2012-05-23 23:38munepiコメント追加: 0000211

コメント
(0000208)
owa   
2010-11-06 23:58   
> zint QRコードに漢字を指定すると化けるようですので、
> パッチを作成してみました。

遅くなりました
VineSeed/TestPkg に zint-2.4.0-2 を uplaod しました
zint-2.4.0-2vl6.i686.rpm
zint-2.4.0-2vl6.src.rpm
zint-2.4.0-2vl6.x86_64.rpm
zint-devel-2.4.0-2vl6.i686.rpm
zint-devel-2.4.0-2vl6.x86_64.rpm
zint-qt-2.4.0-2vl6.i686.rpm
zint-qt-2.4.0-2vl6.x86_64.rpm
zint-qt-devel-2.4.0-2vl6.i686.rpm
zint-qt-devel-2.4.0-2vl6.x86_64.rpm

頂いたパッチを取り込んでいます
私の環境では動作確認できませんので、携帯機器とか持ってない(w;
もし改善されているようであればご報告いただけると助かります。
その場合 TestPkg から Plus への移動依頼でも構わないと思います。
(0000209)
owa   
2011-05-08 00:27   
確認をお願いします
(0000210)
anonymous   
2011-05-08 15:29   
> 確認をお願いします

問題ないようです。
zint-2.4.2-1vl6.i686にて、確認致しました。
(0000211)
munepi   
2012-05-23 23:38   
> > 確認をお願いします
>
> 問題ないようです。
> zint-2.4.2-1vl6.i686にて、確認致しました。

山本@千葉です。
確認をありがとうございます。
状態を「完了」といたします。