18. 情報共有 LibOバグ修正4
以下のアドバイスをメーリングリストで頂きました。
メーリングリストは、以下のページで登録できます。
今回、「discuss@ja.libreoffice.org: プロジェクトおよびコミュニティについての議論」
を使用しました。
https://ja.libreoffice.org/get-help/mailing-lists/
★Diffの取り方
libvisio のリポジトリの下で修正したなら、単に
$ git diff
するのが一番簡単です。(gitのHEADにコミットしてあるソースと、
ワーキングセット……修正中でコミットしていないものとの差分
を見るというコマンド)
★条件文をスッキリさせる
ここはstd::maxがオススメです。
styleProps.insert("draw:marker-end-width", std::max(w, 0.05));
★できたパッチファイル。
diff --git a/src/lib/VSDContentCollector.cpp b/src/lib/VSDContentCollector.cpp
index 9de0d30..a3cd0f1 100644
--- a/src/lib/VSDContentCollector.cpp
+++ b/src/lib/VSDContentCollector.cpp
@@ -2277,13 +2277,15 @@ void libvisio::VSDContentCollector::_lineProperties(const VSDLineStyle &style, l
{
styleProps.insert("draw:marker-start-viewbox", _linePropertiesMarkerViewbox(style.startMarker));
styleProps.insert("draw:marker-start-path", _linePropertiesMarkerPath(style.startMarker));
- styleProps.insert("draw:marker-start-width", m_scale*_linePropertiesMarkerScale(style.startMarker)*(0.1/(style.width*style.width+1)+2.54*style.width));
+ double w = m_scale*_linePropertiesMarkerScale(style.startMarker)*(0.1/(style.width*style.width+1)+2.54*style.width);
+ styleProps.insert("draw:marker-start-width", std::max(w, 0.05));
}
if (style.endMarker > 0)
{
styleProps.insert("draw:marker-end-viewbox", _linePropertiesMarkerViewbox(style.endMarker));
styleProps.insert("draw:marker-end-path", _linePropertiesMarkerPath(style.endMarker));
- styleProps.insert("draw:marker-end-width", m_scale*_linePropertiesMarkerScale(style.endMarker)*(0.1/(style.width*style.width+1)+2.54*style.width));
+ double w = m_scale*_linePropertiesMarkerScale(style.endMarker)*(0.1/(style.width*style.width+1)+2.54*style.width);
+ styleProps.insert("draw:marker-end-width", std::max(w, 0.05));
}
int dots1 = 0;
★パッチを当てる際の参考
もちろん workdir/ 以下を直接変更するのはあくまで開発上の一時的な手段で、
正攻法としては
external/libvisio/UnpackedTarball_libvisio.mk
にあるように、変更したい箇所をパッチとして登録すればいいと思います。
前へ / 次へ