YAZ 5.35.1
cclstr.c
Go to the documentation of this file.
1/* This file is part of the YAZ toolkit.
2 * Copyright (C) Index Data
3 * See the file LICENSE for details.
4 */
9#if HAVE_CONFIG_H
10#include <config.h>
11#endif
12#include <yaz/yaz-iconv.h>
13#include <stdio.h>
14#include <stdlib.h>
15
16#include <yaz/ccl.h>
17
18static int ccli_toupper (int c)
19{
20 if (yaz_islower(c))
21 return yaz_toupper(c);
22 else
23 return c;
24}
25
26int (*ccl_toupper)(int c) = NULL;
27
28int ccl_stricmp (const char *s1, const char *s2)
29{
30 if (!ccl_toupper)
32 while (*s1 && *s2)
33 {
34 int c1, c2;
35 c1 = (*ccl_toupper)(*s1);
36 c2 = (*ccl_toupper)(*s2);
37 if (c1 != c2)
38 return c1 - c2;
39 s1++;
40 s2++;
41 }
42 return (*ccl_toupper)(*s1) - (*ccl_toupper)(*s2);
43}
44
45int ccl_memicmp (const char *s1, const char *s2, size_t n)
46{
47 if (!ccl_toupper)
49 while (1)
50 {
51 int c1, c2;
52
53 c1 = (*ccl_toupper)(*s1);
54 c2 = (*ccl_toupper)(*s2);
55 if (n <= 1 || c1 != c2)
56 return c1 - c2;
57 s1++;
58 s2++;
59 --n;
60 }
61}
62
63/*
64 * Local variables:
65 * c-basic-offset: 4
66 * c-file-style: "Stroustrup"
67 * indent-tabs-mode: nil
68 * End:
69 * vim: shiftwidth=4 tabstop=8 expandtab
70 */
71
Header with public definitions for CCL.
int ccl_stricmp(const char *s1, const char *s2)
Definition cclstr.c:28
int(* ccl_toupper)(int c)
Definition cclstr.c:26
int ccl_memicmp(const char *s1, const char *s2, size_t n)
Definition cclstr.c:45
static int ccli_toupper(int c)
Definition cclstr.c:18
Header for YAZ iconv interface.
#define yaz_islower(x)
Definition yaz-iconv.h:91
#define yaz_toupper(x)
Definition yaz-iconv.h:88