X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=string_rep.h;h=ce4ca3e620eda35c002d7d59e308185d8a4a36f3;hb=8f531c815a90f1e9245951a521470072c9783540;hp=1df0b5ba9057999748731add70a92c62fcc629c2;hpb=975933a9f57835385489ecdeda04a65894705eca;p=cparser diff --git a/string_rep.h b/string_rep.h index 1df0b5b..ce4ca3e 100644 --- a/string_rep.h +++ b/string_rep.h @@ -1,20 +1,43 @@ +/* + * 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. + */ #ifndef STRING_REP_H #define STRING_REP_H -#include +#include +#include "unicode.h" -typedef wchar_t wchar_rep_t; +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; -#if 0 /* TODO */ typedef struct string_t { - const char *begin; - const char *end; + 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; -#endif -typedef struct wide_string_t { - const wchar_rep_t *begin; - size_t size; -} wide_string_t; +size_t get_string_len(string_t const *str); #endif