Tatsu still writes something... Fourth season

これからも私はなにかをしてなにかを書く

ああ、なぜC言語の文字列関連関数は符号ありをとるようにしたんだろう?

というわけで

BookSync Version 2.12.1です。

調査していてふと思ったのでタイトルにはしてみましたが、ぶっちゃけ言うとサロゲートペアの処理ミスです。

UTF-16からUTF-8へ変換するときにサロゲートペアの処理をミスっておかしくなったと。

というわけで修正した物をリリースしました。

ここからは昔話になりますので興味のない型は読まなくても良いです。

2023年にもなって何やってるの?

2000年代前半

BookSync作り始めたのは21世紀が始まった2001年。この頃はC#はまだ正式版としては世に出てなく、WindowsのデスクトップとしてはVC++かVB6しかない頃だった。Windowsではまだ9x系が主流で(Windows XPはBookSyncより生まれが遅いですよ)Unicodeって何?UTF-8って何?MozillaのブックマークはUTF-8使ってたけどまだ非日本語対応要らないよね?Operaまだ日本語扱えなかったよねという時代だった。

なので、IEのお気に入りのフォルダをベースにコンソールプログラムを組み合わせてGUIくっつけてという時代だったこともあり、日本語、Shift-JIS以外には対応していなかった。

百花繚乱2000年代後半

数年経って、最初から内部が国際化されているWindows NTの流れをくむWindows XPが主流になって要望が出てきたので、中をWindowsが扱うUnicode(XPはUCS-2だったかな?)で扱うようになった。2バイトのWindows的にはWSTR、VC++的にはwcharという頃である。

合わせて、Firefox 3でブックマークの構造が変わったのに合わせたりするためにプログラムを一体化したVersion 2となって今では退屈な肥満の象徴Chromeや一瞬WindowsSafariが出たということでキャッチアップを行うにあたってUTF-8が広く市民権を得るようになったので内部ではUTF-8UCS-2を共にに扱うようになっていった。ちなみにこの頃携帯電話はオレオレ文字コードガラケーだったので、サロゲートペアの対応なんて物は要らなかった。

退屈な2010年代

2010年代、独自のOperaの系譜は12で潰え、Windows 8、10に振り回される中でWebブラウザの機能向上が停滞する中、BookSyncでやることは少なくなっていき、Meiryo UIも大っきらい!!で糞なシステムフォントをやっつけるのに忙しくなっていった。一方でその頃にはJava/C#/VB.NET(のくそったれ)といったところが主流になっていったので新しいC++?何ですかという状態になった。

2020年代、久々目を覚ます

そして2020年代Chromeスマホが大手を振って街を歩く中こんな物まで絵文字にするのかとあほみたいに絵文字が増えるようになった。そして、掲示板の書き込みでようやくサロゲートペアの存在に気づかされる。と共にC++のintのビット数明治への対応などといった機能アップにも気づかされた。

ということで、今回の一連のバージョンアップでBookSync21歳というわけである。

そして、IEは死んだ

2022年6月15日、IEのサポートが終了し、2023年1月、IEの使える最後のOS、Windows 8.1のサポートも終了した。もうIEはいない。そんな世界がやってきた。我々はデスクトップアプリとしてのIEのくびきから解放されたのである。

しかし、BookSync21歳は一応IEをサポートしていたので内部ではIEに合わせてUCS-2を多く使っていた(一連のアップデートでUTF-16にはなりました)のでそこでとちったというわけです。

さて、どうしようかな?

IEは死んだ。もはやサポートする必要もない。もはやUTF-16にこだわる必要もWindowsのファイル名を気にする必要もないのである。他にもOpera 12とかWindowsSafariとかもう使わないだろうという物がある。これらの特にIEのサポートを削除してUTF-16を使うところをなくせばだいぶプログラムがシンプルになる。

けど、そこまでする意義はあるのだろうか。各ブラウザにはスマホ版があり、それとの同期の重要度が高くなっている。そして、BookSyncがPC側のブックマークをいじったときに同期情報はどうなるのだろうか。これも相まって、自分でも利用するケースが減っているので正直労力に見合わないところがあるという物である。

更に、ブラウザの個性が希薄化しているということもあってやることがもうないということもある。Chrome、Edge、Brave、これらのブックマークの形式が同期関連を除いて全く一緒ということもあり本当にやることがないという物である。

というわけで今後は未定です。