= Debian: groffで日本語表示スペース入るバグ [2010-05-31 12:54]
<<< groff <<< charclass
== バグ説明
http://lists.debian.or.jp/debian-devel/200910/msg00005.html http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=552201
== charclass patchの元
https://code.launchpad.net/~cjwatson/groff/charclass
== オリジナルとの差分
とりあえずcharclass patchをダウンロードした。
- $ pwd /home/kiwamu/deb/00launchpad $ bzr branch lp:~cjwatson/groff/charclass
どうもcppにpatchがあたっているっぽい。 commit logからcharclass対応の修正を抜き出す
revno: 1822 committer: Colin Watson <cjwatson@debian.org> branch nick: charclass timestamp: Thu 2009-03-26 23:07:24 +0000 message:
- initial Japanese localisation, derived from Debian groff patch
revno: 1821 committer: Colin Watson <cjwatson@debian.org> branch nick: charclass timestamp: Mon 2009-03-23 10:53:20 +0000 message:
- first pass at input side of character class support, including a new .class re
quest; lookups are still rather slow
revno: 1820 committer: Colin Watson <cjwatson@debian.org> branch nick: charclass timestamp: Mon 2009-03-23 10:49:32 +0000 message:
- extract glyph-to-Unicode logic into new glyph_to_unicode function, so that the input side can use it
revno: 1819 committer: Colin Watson <cjwatson@debian.org> branch nick: charclass timestamp: Thu 2009-02-26 18:22:06 +0000 message:
- trivial whitespace cleanups
revno: 1818 author: "brian m. carlson" <sandals@crustytoothpaste.ath.cx> committer: Colin Watson <cjwatson@debian.org> branch nick: charclass timestamp: Thu 2009-02-26 18:21:46 +0000 message:
Initial character class support (from Message-ID: <20080103171250.GC20220@crus
tytoothpaste.ath.cx>)
ということなので、差分を取った。
$ bzr diff -r 1817..1822 file:///home/kiwamu/Dropbox/Public/patches/patch_20100831_groff_charclass_bzr1817-1822.txt
== テスト方法
$ groff -mandoc -Tutf8 su.roff|lv
== charclassの解析
=== char_classクラス
アブストラクトクラス。 single_char_class,range_char_class,ref_char_classクラスが継承する。
* charinfo *get_charinfo() メンバ変数charinfo *ciへのgetter。
* void set_charinfo(charinfo *) メンバ変数charinfo *ciへのsetter。
=== single_char_classクラス
* int lookup_char(int c) char_classが持つ文字
=== range_char_classクラス
=== ref_char_classクラス
=== charinfoクラス
=== fontクラス
=== lookup_char(int c) char_classが持つ文字
=== range_char_classクラス
=== ref_char_classクラス
=== charinfoクラス
=== fontクラス
=== src/libs/libgroff/classes.cpp
=== src/libs/libgroff/font.cpp
=== src/roff/troff/input.cpp
