Groonga 3.0.9 Source Code Document
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
groonga
lib
str.h
Go to the documentation of this file.
1
/* -*- c-basic-offset: 2 -*- */
2
/* Copyright(C) 2009-2012 Brazil
3
4
This library is free software; you can redistribute it and/or
5
modify it under the terms of the GNU Lesser General Public
6
License version 2.1 as published by the Free Software Foundation.
7
8
This library is distributed in the hope that it will be useful,
9
but WITHOUT ANY WARRANTY; without even the implied warranty of
10
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
Lesser General Public License for more details.
12
13
You should have received a copy of the GNU Lesser General Public
14
License along with this library; if not, write to the Free Software
15
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
*/
17
#ifndef GRN_STR_H
18
#define GRN_STR_H
19
20
#ifndef GROONGA_IN_H
21
#include "
groonga_in.h
"
22
#endif
/* GROONGA_IN_H */
23
24
#ifndef GRN_NFKC_H
25
#include <
groonga/nfkc.h
>
26
#endif
/* GRN_NFKC_H */
27
28
#ifdef __cplusplus
29
extern
"C"
{
30
#endif
31
32
typedef
enum
{
33
GETOPT_OP_NONE
= 0,
34
GETOPT_OP_ON
,
35
GETOPT_OP_OFF
,
36
GETOPT_OP_UPDATE
37
}
grn_str_getopt_op
;
38
39
typedef
struct
{
40
const
char
opt
;
/* ends opt == 0 && longopt == NULL */
41
const
char
*
longopt
;
42
const
char
**
arg
;
/* if NULL, no arg are required */
43
int
flag
;
44
grn_str_getopt_op
op
;
45
}
grn_str_getopt_opt
;
46
47
GRN_API
size_t
grn_str_len
(
grn_ctx
*ctx,
const
char
*str,
grn_encoding
encoding,
const
char
**last);
48
49
#define GRN_STR_BLANK 0x80
50
#define GRN_STR_ISBLANK(c) (c & 0x80)
51
#define GRN_STR_CTYPE(c) (c & 0x7f)
52
53
GRN_API
int
grn_isspace
(
const
char
*s,
grn_encoding
encoding);
54
int8_t
grn_atoi8
(
const
char
*nptr,
const
char
*end,
const
char
**rest);
55
uint8_t
grn_atoui8
(
const
char
*nptr,
const
char
*end,
const
char
**rest);
56
int16_t
grn_atoi16
(
const
char
*nptr,
const
char
*end,
const
char
**rest);
57
uint16_t
grn_atoui16
(
const
char
*nptr,
const
char
*end,
const
char
**rest);
58
GRN_API
int
grn_atoi
(
const
char
*nptr,
const
char
*end,
const
char
**rest);
59
GRN_API
unsigned
int
grn_atoui
(
const
char
*nptr,
const
char
*end,
const
char
**rest);
60
unsigned
int
grn_htoui
(
const
char
*nptr,
const
char
*end,
const
char
**rest);
61
GRN_API
int64_t
grn_atoll
(
const
char
*nptr,
const
char
*end,
const
char
**rest);
62
grn_rc
grn_itoa
(
int
i
,
char
*p,
char
*end,
char
**rest);
63
grn_rc
grn_lltoa
(int64_t
i
,
char
*p,
char
*end,
char
**rest);
64
grn_rc
grn_ulltoa
(uint64_t
i
,
char
*p,
char
*end,
char
**rest);
65
GRN_API
grn_rc
grn_aton
(
grn_ctx
*ctx,
const
char
*p,
const
char
*end,
const
char
**rest,
grn_obj
*res);
66
67
GRN_API
void
grn_itoh
(
unsigned
int
i
,
char
*p,
unsigned
int
len);
68
int
grn_str_tok
(
const
char
*str,
size_t
str_len,
char
delim,
const
char
**tokbuf,
int
buf_size,
const
char
**rest);
69
GRN_API
int
grn_str_getopt
(
int
argc,
char
*
const
argv[],
const
grn_str_getopt_opt
*opts,
int
*flags);
70
71
extern
int
grn_str_margin_size
;
72
73
char
*
grn_itob
(
grn_id
id
,
char
*p);
74
grn_id
grn_btoi
(
char
*
b
);
75
76
grn_rc
grn_substring
(
grn_ctx
*ctx,
char
**str,
char
**str_end,
int
start,
int
end,
grn_encoding
encoding);
77
78
GRN_API
int
grn_charlen_
(
grn_ctx
*ctx,
const
char
*str,
const
char
*end,
grn_encoding
encoding);
79
GRN_API
grn_str
*
grn_str_open_
(
grn_ctx
*ctx,
const
char
*str,
unsigned
int
str_len,
int
flags,
grn_encoding
encoding);
80
81
#define GRN_BULK_INCR_LEN(buf,len) do {\
82
if (GRN_BULK_OUTP(buf)) {\
83
(buf)->u.b.curr += (len);\
84
} else {\
85
(buf)->header.flags += (len);\
86
}\
87
} while (0)
88
89
#define GRN_BULK_SET_CURR(buf,p) do {\
90
if (GRN_BULK_OUTP(buf)) {\
91
(buf)->u.b.curr = (char *)(p);\
92
} else {\
93
(buf)->header.flags = (char *)(p) - GRN_BULK_HEAD(buf);\
94
}\
95
} while (0)
96
97
grn_rc
grn_text_ulltoa
(
grn_ctx
*ctx,
grn_obj
*buf,
unsigned
long
long
int
i
);
98
99
GRN_API
const
char
*
grn_text_cgidec
(
grn_ctx
*ctx,
grn_obj
*buf,
100
const
char
*p,
const
char
*e,
101
const
char
*delimiters);
102
103
#define GRN_TOK_VOID (0x00)
104
#define GRN_TOK_SYMBOL (0x01)
105
#define GRN_TOK_STRING (0x02)
106
#define GRN_TOK_QUOTE (0x03)
107
108
GRN_API
const
char
*
grn_text_unesc_tok
(
grn_ctx
*ctx,
grn_obj
*buf,
109
const
char
*p,
const
char
*e,
110
char
*tok_type);
111
112
GRN_API
void
grn_str_url_path_normalize
(
grn_ctx
*ctx,
113
const
char
*path,
size_t
path_len,
114
char
*buf,
size_t
buf_len);
115
116
#define GRN_OBJ_FORMAT_XML_ELEMENT_MASK (0x01<<1)
117
#define GRN_OBJ_FORMAT_XML_ELEMENT_RESULTSET (0x00<<1)
118
#define GRN_OBJ_FORMAT_XML_ELEMENT_NAVIGATIONENTRY (0x01<<1)
119
120
#include <stdio.h>
121
GRN_API
grn_rc
grn_text_fgets
(
grn_ctx
*ctx,
grn_obj
*buf, FILE *fp);
122
123
grn_bool
grn_bulk_is_zero
(
grn_ctx
*ctx,
grn_obj
*obj);
124
125
#ifdef __cplusplus
126
}
127
#endif
128
129
#endif
/* GRN_STR_H */
Generated on Sun Nov 10 2013 09:49:04 for Groonga 3.0.9 Source Code Document by
1.8.1.2