1/* Copyright (c) 2013, Vsevolod Stakhov
2 * All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 * * Redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright
--- 10 unchanged lines hidden (view full) ---
19 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
20 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
21 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 */
23
24#ifndef UCL_INTERNAL_H_
25#define UCL_INTERNAL_H_
26
27#ifdef HAVE_CONFIG_H
28#include "config.h"
29#else
30/* Help embedded builds */
31#define HAVE_SYS_TYPES_H
32#define HAVE_SYS_MMAN_H
33#define HAVE_SYS_STAT_H
34#define HAVE_SYS_PARAM_H
35#define HAVE_LIMITS_H
36#define HAVE_FCNTL_H
37#define HAVE_ERRNO_H
38#define HAVE_UNISTD_H
39#define HAVE_CTYPE_H
40#define HAVE_STDIO_H
41#define HAVE_STRING_H
42#define HAVE_FLOAT_H
43#define HAVE_LIBGEN_H
44#define HAVE_MATH_H
45#define HAVE_STDBOOL_H
46#define HAVE_STDINT_H
47#define HAVE_STDARG_H
48#define HAVE_REGEX_H
49#endif
50
51#ifdef HAVE_SYS_TYPES_H
52#include <sys/types.h>
53#endif
54
55#ifdef HAVE_SYS_MMAN_H
56# ifndef _WIN32
57# include <sys/mman.h>
58# endif
59#endif
60#ifdef HAVE_SYS_STAT_H
61#include <sys/stat.h>
62#endif
63#ifdef HAVE_SYS_PARAM_H
64#include <sys/param.h>
65#endif
66
67#ifdef HAVE_LIMITS_H
68#include <limits.h>
69#endif
70#ifdef HAVE_FCNTL_H
71#include <fcntl.h>
72#endif
73#ifdef HAVE_ERRNO_H
74#include <errno.h>
75#endif
76#ifdef HAVE_UNISTD_H
77#include <unistd.h>
78#endif
79#ifdef HAVE_CTYPE_H
80#include <ctype.h>
81#endif
82#ifdef HAVE_STDIO_H
83#include <stdio.h>
84#endif
85#ifdef HAVE_STRING_H
86#include <string.h>
87#endif
88
89#include "utlist.h"
90#include "utstring.h"
91#include "uthash.h"
92#include "ucl.h"
93#include "ucl_hash.h"
94#include "xxhash.h"
95
--- 209 unchanged lines hidden (view full) ---
305 * @param obj object to set if a string is numeric
306 * @param start start of string
307 * @param end end of string
308 * @param pos position where parsing has stopped
309 * @param allow_double allow parsing of floating point values
310 * @return 0 if string is numeric and error code (EINVAL or ERANGE) in case of conversion error
311 */
312int ucl_maybe_parse_number (ucl_object_t *obj,
313 const char *start, const char *end, const char **pos,
314 bool allow_double, bool number_bytes, bool allow_time);
315
316
317static inline ucl_object_t *
318ucl_hash_search_obj (ucl_hash_t* hashlin, ucl_object_t *obj)
319{
320 return (ucl_object_t *)ucl_hash_search (hashlin, obj->key, obj->keylen);
321}
322
--- 22 unchanged lines hidden ---
2 * All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 * * Redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright
--- 10 unchanged lines hidden (view full) ---
19 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
20 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
21 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 */
23
24#ifndef UCL_INTERNAL_H_
25#define UCL_INTERNAL_H_
26
27#ifdef HAVE_CONFIG_H
28#include "config.h"
29#else
30/* Help embedded builds */
31#define HAVE_SYS_TYPES_H
32#define HAVE_SYS_MMAN_H
33#define HAVE_SYS_STAT_H
34#define HAVE_SYS_PARAM_H
35#define HAVE_LIMITS_H
36#define HAVE_FCNTL_H
37#define HAVE_ERRNO_H
38#define HAVE_UNISTD_H
39#define HAVE_CTYPE_H
40#define HAVE_STDIO_H
41#define HAVE_STRING_H
42#define HAVE_FLOAT_H
43#define HAVE_LIBGEN_H
44#define HAVE_MATH_H
45#define HAVE_STDBOOL_H
46#define HAVE_STDINT_H
47#define HAVE_STDARG_H
48#define HAVE_REGEX_H
49#endif
50
51#ifdef HAVE_SYS_TYPES_H
52#include <sys/types.h>
53#endif
54
55#ifdef HAVE_SYS_MMAN_H
56# ifndef _WIN32
57# include <sys/mman.h>
58# endif
59#endif
60#ifdef HAVE_SYS_STAT_H
61#include <sys/stat.h>
62#endif
63#ifdef HAVE_SYS_PARAM_H
64#include <sys/param.h>
65#endif
66
67#ifdef HAVE_LIMITS_H
68#include <limits.h>
69#endif
70#ifdef HAVE_FCNTL_H
71#include <fcntl.h>
72#endif
73#ifdef HAVE_ERRNO_H
74#include <errno.h>
75#endif
76#ifdef HAVE_UNISTD_H
77#include <unistd.h>
78#endif
79#ifdef HAVE_CTYPE_H
80#include <ctype.h>
81#endif
82#ifdef HAVE_STDIO_H
83#include <stdio.h>
84#endif
85#ifdef HAVE_STRING_H
86#include <string.h>
87#endif
88
89#include "utlist.h"
90#include "utstring.h"
91#include "uthash.h"
92#include "ucl.h"
93#include "ucl_hash.h"
94#include "xxhash.h"
95
--- 209 unchanged lines hidden (view full) ---
305 * @param obj object to set if a string is numeric
306 * @param start start of string
307 * @param end end of string
308 * @param pos position where parsing has stopped
309 * @param allow_double allow parsing of floating point values
310 * @return 0 if string is numeric and error code (EINVAL or ERANGE) in case of conversion error
311 */
312int ucl_maybe_parse_number (ucl_object_t *obj,
313 const char *start, const char *end, const char **pos,
314 bool allow_double, bool number_bytes, bool allow_time);
315
316
317static inline ucl_object_t *
318ucl_hash_search_obj (ucl_hash_t* hashlin, ucl_object_t *obj)
319{
320 return (ucl_object_t *)ucl_hash_search (hashlin, obj->key, obj->keylen);
321}
322
--- 22 unchanged lines hidden ---