exit str_cmp enters m_strcmp
[apps/madmutt.git] / lib-lib / ascii.h
1 /*
2  *  This program is free software; you can redistribute it and/or modify
3  *  it under the terms of the GNU General Public License as published by
4  *  the Free Software Foundation; either version 2 of the License, or (at
5  *  your option) any later version.
6  *
7  *  This program is distributed in the hope that it will be useful, but
8  *  WITHOUT ANY WARRANTY; without even the implied warranty of
9  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
10  *  General Public License for more details.
11  *
12  *  You should have received a copy of the GNU General Public License
13  *  along with this program; if not, write to the Free Software
14  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
15  *  MA 02110-1301, USA.
16  *
17  *  Copyright © 2006 Pierre Habouzit
18  */
19 /*
20  * Copyright notice from original mutt:
21  * Copyright (C) 2001 Thomas Roessler <roessler@does-not-exist.org>
22  */
23
24 #ifndef MUTT_LIB_LIB_ASCII_H
25 #define MUTT_LIB_LIB_ASCII_H
26
27 static inline int ascii_isupper(int c) {
28     return c >= 'A' && c <= 'Z';
29 }
30
31 static inline int ascii_islower(int c) {
32     return c >= 'a' && c <= 'z';
33 }
34
35 static inline int ascii_toupper(int c) {
36     if (ascii_islower(c))
37         return c & ~32;
38
39     return c;
40 }
41
42 static inline int ascii_tolower(int c) {
43     if (ascii_isupper(c))
44         return c | 32;
45
46     return c;
47 }
48
49 int ascii_strcasecmp(const char *a, const char *b);
50 int ascii_strncasecmp(const char *a, const char *b, int n);
51
52 #define ascii_strcmp(a,b)     m_strcmp(a,b)
53 #define ascii_strncmp(a,b,c)  str_ncmp(a,b,c)
54
55 #endif /* MUTT_LIB_LIB_ASCII_H */