SphinxBase
0.6
Main Page
Related Pages
Data Structures
Files
File List
Globals
case.c
1
/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
/* ====================================================================
3
* Copyright (c) 1999-2004 Carnegie Mellon University. All rights
4
* reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions
8
* are met:
9
*
10
* 1. Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
*
13
* 2. Redistributions in binary form must reproduce the above copyright
14
* notice, this list of conditions and the following disclaimer in
15
* the documentation and/or other materials provided with the
16
* distribution.
17
*
18
* This work was supported in part by funding from the Defense Advanced
19
* Research Projects Agency and the National Science Foundation of the
20
* United States of America, and the CMU Sphinx Speech Consortium.
21
*
22
* THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND
23
* ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
24
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
25
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY
26
* NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
*
34
* ====================================================================
35
*
36
*/
37
/*
38
* case.c -- Upper/lower case conversion routines
39
*
40
* **********************************************
41
* CMU ARPA Speech Project
42
*
43
* Copyright (c) 1999 Carnegie Mellon University.
44
* ALL RIGHTS RESERVED.
45
* **********************************************
46
*
47
* HISTORY
48
* $Log: case.c,v $
49
* Revision 1.7 2005/06/22 02:58:54 arthchan2003
50
* Added keyword
51
*
52
* Revision 1.3 2005/03/30 01:22:48 archan
53
* Fixed mistakes in last updates. Add
54
*
55
*
56
* 18-Jun-97 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon
57
* Added strcmp_nocase. Moved UPPER_CASE and LOWER_CASE definitions to .h.
58
*
59
* 16-Feb-97 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon
60
* Created.
61
*/
62
63
64
#include <stdlib.h>
65
#include <assert.h>
66
67
#include "
sphinxbase/case.h
"
68
#include "
sphinxbase/err.h
"
69
70
71
void
72
lcase
(
register
char
*cp)
73
{
74
if
(cp) {
75
while
(*cp) {
76
*cp =
LOWER_CASE
(*cp);
77
cp++;
78
}
79
}
80
}
81
82
void
83
ucase
(
register
char
*cp)
84
{
85
if
(cp) {
86
while
(*cp) {
87
*cp =
UPPER_CASE
(*cp);
88
cp++;
89
}
90
}
91
}
92
93
int32
94
strcmp_nocase
(
const
char
*str1,
const
char
*str2)
95
{
96
char
c1, c2;
97
98
if
(str1 == str2)
99
return
0;
100
if
(str1 && str2) {
101
for
(;;) {
102
c1 = *(str1++);
103
c1 =
UPPER_CASE
(c1);
104
c2 = *(str2++);
105
c2 =
UPPER_CASE
(c2);
106
if
(c1 != c2)
107
return
(c1 - c2);
108
if
(c1 ==
'\0'
)
109
return
0;
110
}
111
}
112
else
113
return
(str1 == NULL) ? -1 : 1;
114
115
return
0;
116
}
117
118
int32
119
strncmp_nocase
(
const
char
*str1,
const
char
*str2,
size_t
len)
120
{
121
char
c1, c2;
122
123
if
(str1 && str2) {
124
size_t
n;
125
126
for
(n = 0; n < len; ++n) {
127
c1 = *(str1++);
128
c1 =
UPPER_CASE
(c1);
129
c2 = *(str2++);
130
c2 =
UPPER_CASE
(c2);
131
if
(c1 != c2)
132
return
(c1 - c2);
133
if
(c1 ==
'\0'
)
134
return
0;
135
}
136
}
137
else
138
return
(str1 == NULL) ? -1 : 1;
139
140
return
0;
141
}
src
libsphinxbase
util
case.c
Generated on Sun Jun 30 2013 20:14:38 for SphinxBase by
1.8.4