私は完全に同意しない理由で、「(反ユーザビリティの)その力」は私の反対にもかかわらず引き続き命令します。私は基本的なstrcmp()をその名前でソートするために比較するソートルーチンを持っています。それは素晴らしい働きをします。それを間違えるのは難しいです。ただし、11時間目には、ASCIIの順序とは異なり、数字で始まるエントリは文字で始まるエントリの後に来るように決定されました。彼らは、EBCDIC標準には文字の後に数字があるので、事前の仮定は普遍的な真実ではなく、私にはこの議論に勝つ力がないことを引用しています...しかし私は逸脱します。
そこに私の問題があります。strcmpへのすべての適切な参照を新しい関数呼び出しnonstd_strcmpに置き換えました。次に、並べ替えの変更を実行するために変更を実装する必要があります。私はFreeBSDソースをベースとして使用しました:http://freebsd.active-venture.com/FreeBSD-srctree/newsrc/libkern/strncmp.c.html
if (n == 0)
return (0);
do {
if (*s1 != *s2++)
return (*(const unsigned char *)s1 -
*(const unsigned char *)(s2 - 1));
if (*s1++ == 0)
break;
} while (--n != 0);
return (0);
どうすればいいのかを考えるのに少し時間がかかるかもしれませんが、リリース直前のスペック変更で頭がおかしくなったのは私だけではないと思います。