STed2のその他の問題点を修正するパッチ(2008/1/26版)の覚え書き
「STed2のその他の問題点を修正するパッチを作成(2008/1/26版)」のパッチに関する覚え書き。
外部プログラムの設定(sted2-20021104-cnf-extprog.patch)
メニューの「OPTION」の外部プログラムの定義に含まれているが、実際には使用できない項目(「.x」の拡張子を持つX680x0用実行ファイルなど)を削除し、日本語部分も英語にしている。その他、コマンド名を一部修正したところもある。「.x」ファイルに関する記述は他の部分にも見られるため、今後の修正の対象。
curses.cのstring.h(sted2-20021104-curses-string_h.patch)
動作に影響はない可能性が高いが、Gentoo Linuxの自作ebuildでビルドしたときの
* QA Notice: Package has poor programming practices which may compile * fine but exhibit random runtime failures.
の対策として当てている。
日本語メッセージカタログの修正(sted2-20021104-ja_po.patch)
一部メッセージの修正もあるが、それ以外は、ソース中にEUC-JPな日本語でそのまま書かれた日本語文字列の対策と、音符/休符などの表示に関する改善のため。
調号数の表示に関する不具合修正(sted2-20021104-keysub.patch)
UTF-8環境において(?)メイン画面で調(キー)が表示される部分の不具合に対処する修正。_()つまりgettext()関数を呼んでいる部分があるため、メッセージカタログ側にもこれに対応した修正を含む。
改行文字によるビルドエラーの修正(sted2-20021104-sayleen-newline.patch)
「STed2(数値入力方式MIDIシーケンサ)のビルド・インストールメモ」で扱った修正。改行部分の書き方の誤り*1により出るエラーを回避する。
譜面に関する色々な修正(sted2-20021104-score.patch)
最も修正の多い部分。メッセージカタログ側にも、対応した修正を含む。
- 音符の記号の表示をEUC-JPな文字からgettextを使用する*2方法にして、メッセージカタログのカスタマイズによって、長さごとに文字を指定できるようにした*3
- 音部記号(ト音記号とヘ音記号)としての文字を表示する仕組みには元々なっているのだが、ここに「G:」「F:」という文字を描画するようにした*4
- 音符の高さがずれているのに対処し、加線・シャープ/ナチュラル記号のずれにも対応した(ナチュラル記号はないため、似た記号で代用)。
以下、その他覚え書き。
音符のY座標
「819」の部分を変化させると、全ての音符の文字のY座標を調整できる。
f=onp_ps[a]+f*7;y=(819+7*4)-(f*4);
加線を付けるY座標
加線の付く場所は5箇所ある。これら5つの座標値を同じだけずらした。
if(y==651||y==659||y==707||y==755||y==763){
音符の描画
g_print(xx,y,tmp0,15);
milkjfフォントでは、(音符に「*」を使用した場合)「y」の部分を「y-1」にしたほうが位置が正確になる。
関連記事:
なお、公開されているソースでは音符マークの記号が並ぶようになっているが、長さの短い音符が連続するときに見づらくなることがあるため、パッチ適用後の状態としては「*」が出るだけにしてある。これを変更するにはpo/ja.poの「msgid "head[数字]"」の下にある「*」をいじってmakeするかmsgfmtを直接実行してmoファイルを作るかして[インストール先]/share/locale/ja/LC_MESSAGES/sted2.moとして配置する。
更に、「msgid "flag[数字]"」の下の「" "」を変更することで音符の旗部分を描画することもできる。
なお、上の数字部分は音符の長さに対応していて、分解能(TIMEBASE)=48としたときの長さ*5に合わせて名前を付けた。
休符の描画
文字/記号で休符を表現するのは困難。実験的に数字と記号を使用してみたが、分かりにくいかも。
修正は上の音符と同様、po/ja.poで「msgid "rest[数字]"」の下の文字列で指定する形にした。
xgettext対策(sted2-20021104-select.patch)
「非ASCIIな文字が含まれている」とxgettextに怒られるため、未使用(不要)のコードを一部削除した。
X Window System版が起動しない不具合の修正(sted2-20021104-xcreatefontset.patch)
使用できるフォントセットがあっても、missingがあるとエラー扱いされて起動できない件の修正。
「STed2が「Cannot open display. Aborting.」となって起動できない件についてとその対処」で扱った。