Skip to content

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
@yoheie yoheie force-pushed the fix_printf_conversion branch from 9670968 to b9849ce Compare May 8, 2016 01:24
@yoheie yoheie force-pushed the fix_printf_conversion branch from b9849ce to c011b80 Compare August 12, 2016 23:50
@yoheie yoheie force-pushed the fix_printf_conversion branch from c011b80 to fa1d8c2 Compare October 6, 2016 14:37
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