X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=string_rep.h;h=b7d8eb414343b3a5c21765178831153b625b1302;hb=e8c3740ddabcf2da3a4b8ec022250be364668866;hp=f3a1e6b882533142d588a4dd942ecb6648ddff2f;hpb=5e80d9852edea8472cd478655d70f5c4a1eddbdc;p=cparser diff --git a/string_rep.h b/string_rep.h index f3a1e6b..b7d8eb4 100644 --- a/string_rep.h +++ b/string_rep.h @@ -1,21 +1,6 @@ /* * This file is part of cparser. - * Copyright (C) 2007-2009 Matthias Braun - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - * 02111-1307, USA. + * Copyright (C) 2012 Matthias Braun */ #ifndef STRING_REP_H #define STRING_REP_H @@ -23,22 +8,21 @@ #include #include "unicode.h" +enum string_encoding_t { + STRING_ENCODING_CHAR, + STRING_ENCODING_CHAR16, + STRING_ENCODING_CHAR32, + STRING_ENCODING_UTF8, + STRING_ENCODING_WIDE +}; +typedef enum string_encoding_t string_encoding_t; + typedef struct string_t { - const char *begin; /**< UTF-8 encoded string, the last character is - * guaranteed to be 0 */ - size_t size; /**< size of string in bytes (not characters) */ + char const *begin; /**< UTF-8 encoded string, the last character is guaranteed to be \0. */ + size_t size; /**< size of string in bytes (not characters), without terminating \0. */ + string_encoding_t encoding; } string_t; -static inline size_t wstrlen(const string_t *string) -{ - size_t result = 0; - const char *p = string->begin; - const char *end = p + string->size; - while (p < end) { - read_utf8_char(&p); - ++result; - } - return result; -} +size_t get_string_len(string_t const *str); #endif