lha icon indicating copy to clipboard operation
lha copied to clipboard

Fix printf conversion

Open yoheie opened this issue 9 years ago • 2 comments

printf の変換の指定を、適切と思われるものに修正しました。

1件目のコミット (Fix printf conversion for header dump) は、C99 未満の環境も考慮して、 %td を用いず long に型変換して %ld を使うようにしました。

2・3件目のコミットは、確認できた範囲では 64bit (LP64) 環境では off_t・uint64_t が (unsigned) long に typedef されているようでしたので、使い分けの条件を見直しました。 LP64 でも off_t・uint64_t が (unsigned) long long に typedef されていると逆に問題となってしまうかも知れませんが、そのような環境はあるのでしょうか…?

yoheie avatar Jan 18 '16 10:01 yoheie

このプルリクエストについて、どう扱えばよいか判断が出来ていません

  • 現在、C99未満を考慮する価値はどういう点で起こりえますか?(組み込みとか?)
  • 適切でない現在の実装はどういう点で不利益がありますか? 私はできればcastをしたくないという気持ちがあります

jca02266 avatar Jan 23 '16 14:01 jca02266

  • 現在、C99未満を考慮する価値はどういう点で起こりえますか?(組み込みとか?)

C99未満を考慮したのは、LHa for UNIXが歴史の長いソフトウェアということもあるので、古い環境へもなるべく対応した方が良いのではと考えました。具体的にどの程度需要があるのかは分かりませんし、プロジェクトの方針として今後C99未満への対応は不要だろうということであればそれで良いと思います。 現状でもposixの関数に依存していますので、組込系に関しては特に考慮しなくて良いだろうと考えています。

  • 適切でない現在の実装はどういう点で不利益がありますか? 私はできればcastをしたくないという気持ちがあります

1件目のコミットに関しては、intとptrdiff_tのサイズが異なる環境でlha vvvの出力が異常となる可能性があると思われます。64bit環境で問題が出るだろうと思ったのですが、Linux・FreeBSDのx86_64では問題は出ませんでした。 2・3件目のコミットに関しては、Warningが出ていたので修正しましたが、現実的には問題が出る環境は無いように思います。

yoheie avatar Jan 24 '16 07:01 yoheie