Четыре функции осуществляют сравнение строк. Функция с префиксом my like range находит наименьшую и наибольшую строки (с учетом реестра), соответствующие выражению в операторе LIKE. Само выражение передается в аргументе ptr. Аргумент ptr length определяет длину выражения. Содержимое наименьшей и наибольшей строк заносится в аргументы min str и max str соответственно.
Функции с префиксами my strcoll и my strncoll служат аналогами обычных функций strcoll() и strncoll()языка С, которые, в свою очередь, являются версиями функций strcmp и strncmp, учитывающими региональные установки. Функции с префиксами my strxfrn и my strnxfrn эмулируют стандартные функции strxfrn() иstrnxfrn(). Получить о них более подробную информацию можно в man файлах UNIX.
В начало файла нужно добавить комментарий, подобный тому, что показан в листинге 13.4. На основании строк, приведенных в комментарии, сценарий configure включает набор символов в клиентскую библиотеку. Переменнаяstrxfrn multiply набор задается в том случае, когда у набора символов есть свои функции сортировки строк. Она определяет максимальный коэффициент удлинения строки при ее прохождении через функцию с префиксом my strxfrm. Как следует из листинга, строки в кодировке big5 не растягиваются.
Если в набор входят многобайтовые символы, потребуется определить переменную mbmaxlen набор. Она задает максимально возможное число байтов в представлении символа. Например, в набор big5 входят двухбайтовые символы.
/*
Эти строки анализируются сценарием configure при создании файла
ctype.c, поэтому не меняйте их без веских оснований.
.configure. strxfrm multiply big5=1
.configure. mbmaxlen big5=2
/*