Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix printf conversion #7

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

yoheie
Copy link
Contributor

@yoheie yoheie commented Jan 18, 2016

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 されていると逆に問題となってしまうかも知れませんが、そのような環境はあるのでしょうか…?

@jca02266
Copy link
Owner

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

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

@yoheie
Copy link
Contributor Author

yoheie commented Jan 24, 2016

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

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

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

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

@yoheie yoheie force-pushed the fix_printf_conversion branch 2 times, most recently from 86b903d to 9670968 Compare May 4, 2016 01:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants