拝啓 過去の自分殿
https://github.com/FUJIMI-IM/sj3/pull/10/commits/91c5c87e74a2a8e8908dcc66c3142b1383842f23#diff-060563743bc31971162a6d5456d3644dc7d9dd834b0759a1b56e631cef167668R1064
この修正部分、何故オリジナルではunsigned char *となっているのに貴方はwchar16_t *に変更しているのか、理由を教えて頂けませんか?
別にunsigned char *で問題無いのではないでしょうか。mbstowcsのmbs側の引数になるため、wchar16とする理由は薄いように思われますが。
…という訳で修正版のPR後で投げます
(多分、sj3_rkconv_w16()のプロトタイプ宣言に引っ張られたのかも)
とはいえ、sj3_rkconv_mb()が外部から呼ばれている形跡はなく、sj3_rkconv_mb()でキャストされた状態で呼ばれているため、型が何であろうと問題は無いはず…内部の問題、で片付く話かも。
fix branchの時はmake時にimplicitうんぬんで表示された関数に対するプロトタイプ宣言をその都度記載していたんですが、その関数が記述されたファイルの中における関数の出現順もきちんと意識したいしいちいちその都度追加するのも面倒臭い→だったらもうそのファイルに記された関数を全てプロトタイプ宣言としてsj3.hに書いちゃおうぜ、という方向に変えてます(流石にstaticな関数は書きませんけど)。
これ、本気で面倒臭くてぶん投げたくなるくらい面倒なんですが、なんか妙なコードも炙り出せているのでやる価値は(ちょっとだけ)ある感じです。