41.3. slapi_UTF8CASECMP()

Description

The function takes two UTF-8 strings (s0, s1) of signed char to be compared. The comparison rules are as follows:

  • If both UTF-8 strings are NULL or zero-length, 0 is returned.
  • If one of the strings is NULL or zero-length, the NULL/zero-lengthstring is smaller.
  • If one or both of the strings are not UTF-8, system provided strcasecmp is used.
  • If one of the two strings contains no 8-bit characters, strcasecmp is used.
  • The strings are compared after they are converted to lower-case UTF-8.
  • Each character is compared from the beginning.
Evaluation occurs in this order:
  • If the length of one character is shorter then the other, the difference of the two lengths is returned.
  • If the length of the corresponding characters is the same, each byte in the characters is compared.
  • If there is a difference between two bytes, the difference is returned.
  • If one string is shorter then the other, the difference is returned.
Syntax

#include "slapi-plugin.h"
int slapi_UTF8CASECMP(char *s0, char *s1);

Parameters

This function takes the following parameters:

s0
A null-terminated UTF-8 string.
s1
A null-terminated UTF-8 string.
Returns

This function returns one of the following values:

  • A positive number if s0 is after s1.
  • 0 if the two string are identical, ignoring case.
  • A negative number if s1 is after s0.