FreeBSD: ru_RU.UTF-8 LC_COLLATE

Несмотря на мой пессимизм относительно сортировки строк с многобайтными символами в FreeBSD, жизнь оказалась лучше, чем мне казалось.

Наш читатель, Александр Загребин, любезно поделился исходником locale LC_COLLATE для FreeBSD, который лечит проблему сортировок для ru_RU.UTF-8. Я немножко поправил Makefile, чтобы результат ставился прямо поверх системного файла, выкладываю (с согласия автора, естественно) это для всеобщего использования:

Update
Я сделал работу над ошибками, обновленный вариант (с тем же URL) и комментарии к нему берите здесь.

Comments

Наконец-то нормальный пост про эту проблему. А то все PostgreSQL, уроды...

Если нужен более привычный порядок сортировки (большие, потом маленькие) - пишите, сделать такие таблицы несложно).

А можно его таки сделать? Просто для полноты картины. нет же гарантии, что какой-то имеющийся софт не использует как раз [A-Z]

Ну сделаю, не фокус. Но не сегодня.

На самом деле, в перле collation в регулярных выражениях не используется (насколько я это вижу в тестах), а на awk мне на самом деле наплевать.

[root@10 /home/ftpall/ru_RU.UTF-8.LC_COLLATE]# make
Syntax error: "(" unexpected
*** Error code 2

Чую я, у вас по make запускается не BSD-шный make, а какой-то еще.