Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members  

utilstr.h

00001 /******************************************************************************
00002  *  utilstr.h   - prototypes for string utility functions
00003  *
00004  * $Id: utilstr_8h-source.html,v 1.9 2002/10/31 11:30:16 joachim Exp $
00005  *
00006  * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org)
00007  *      CrossWire Bible Society
00008  *      P. O. Box 2528
00009  *      Tempe, AZ  85280-2528
00010  *
00011  * This program is free software; you can redistribute it and/or modify it
00012  * under the terms of the GNU General Public License as published by the
00013  * Free Software Foundation version 2.
00014  *
00015  * This program is distributed in the hope that it will be useful, but
00016  * WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018  * General Public License for more details.
00019  *
00020  */
00021 
00022 #ifndef UTILSTR_H
00023 #define UTILSTR_H
00024 
00025 #include <defs.h>
00026 
00027 SWORD_NAMESPACE_START
00028 
00031 char *stdstr (char **iistr, const char *istr);
00032 char *strstrip (char *istr);
00033 const char *stristr (const char *s1, const char *s2);
00034 const char strnicmp(const char *s1, const char *s2, int len);
00035 unsigned int strlenw(const char *s1);
00036 char *toupperstr(char *buf);
00037 char *toupperstr_utf8(char *buf);
00038 
00039 /*
00040 extern "C" {
00041 int stricmp(const char *s1, const char *s2);
00042 }
00043 */
00044 
00045 /******************************************************************************
00046  * SW_toupper - array of uppercase values for any given Latin-1 value
00047  *
00048  * use this instead of toupper() for fast lookups on accented characters
00049  */
00050 static const unsigned char SW_toupper_array[256] =
00051         {
00052                 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
00053                 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
00054                 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
00055                 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
00056                 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
00057                 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
00058                 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
00059                 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
00060                 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
00061                 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
00062                 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
00063                 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
00064                 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
00065                 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
00066                 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
00067                 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
00068                 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
00069                 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
00070                 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
00071                 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
00072                 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
00073                 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
00074                 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
00075                 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
00076                 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
00077                 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
00078                 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
00079                 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
00080                 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
00081                 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
00082                 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xf7,
00083                 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xff
00084         };
00085 
00086 #define SW_toupper(c) SW_toupper_array[(unsigned char)c]
00087 
00088 SWORD_NAMESPACE_END
00089 #endif

Generated on Thu Oct 31 12:11:28 2002 for The Sword Project by doxygen1.2.17