VinePlusのgnuplotのバグについて

VinePlusにあるgnuplotのパッケージ(gnuplot-3.7.1-16vl1)を 使っていて困ったことがあった。 それは、日付を軸として使用すると、 データを読込んだときとグラフを書いたときとで、 1ヶ月ほどずれてしまうのだ。

調べた結果次のようなことが分かった。

ここで言う不整合とは、月をどの様な数値で表すのかということである。 内部表現は西洋風にできているため、 日付に関しては1日〜31日を1〜31の数値で表すが、 月に関しては1月〜12月を0-11の数値で表すように記述されている。 しかし、そのための補正が下の方のgstrptime関数内に記述されていないのである。 (上の方にはある)

解決策は二つだろう。

  1. SRPMのパッケージを展開した後、 gnuplot.spec内の「-DUSE_SYSTEM_TIME」の記述を消して、 time.cの上の方の関数を使うようにして、バイナリパッケージの生成をする。 生成したバイナリパッケージをインストールする。
  2. time.cの「LETTER('m', 2, tm_mon, NOTHING);」を、 「LETTER('m', 2, tm_mon, tm->tm_mon--);」の様に書き換えて、 下の関数の方でも補正するようにする。

私は一つ目を採用し、この問題の解決ができた。 ただ、他に副次的な影響が無いことを保証するわけではない。