とりあえずバグの原因はわかった

リンクを張るときに、リンク元とリンク先のどちらか一方でもShift_JIS日本語が入ると失敗する。UTF-8エンコードしてやればOK。実際にファイルを動かす本番に近いレベルでのテストをあまりやってなかったから気づかなかった。あとで全部UTF-8に書き直そう。

こんな基本的なミスはひどい。これはさすがに会社なら首切られてもなんの文句も言えないようなレベルだよなぁ。

解決、だけどBK

修正したけど、思い切りBKな方法。全部UTF-8にするとファイルを開く処理が変になるので、しょうがないからリンクを張るところだけUTF-8に変換。たぶんUnicodeなファイル名を渡すとまたエラーになると思う。それこそ全部UTF-8にしないといけないので、今はとりあえずこれで動かしておいて、時間をかけて完全にUnicodeでも動作するように書き直そう。