16
16
/* There may be prolems include all of theese. Try to test in
17
17
configure with ones are needed? */
19
/* This is needed for the definitions of strchr... on solaris */
22
#ifndef DRIZZLED_INTERNAL_M_STRING_H
23
#define DRIZZLED_INTERNAL_M_STRING_H
25
#if defined(HAVE_STRINGS_H)
26
21
#include <strings.h>
28
#if defined(HAVE_STRING_H)
38
/* This is needed for the definitions of memcpy... on solaris */
39
#if defined(HAVE_MEMORY_H) && !defined(__cplusplus)
29
#include <drizzled/visibility.h>
48
34
extern void bmove_upp(unsigned char *dst,const unsigned char *src,size_t len);
50
extern void bchange(unsigned char *dst,size_t old_len,const unsigned char *src,
51
size_t new_len,size_t tot_len);
52
extern char *strfield(char *src,int fields,int chars,int blanks,
54
extern char *strfill(char * s,size_t len,char fill);
55
extern char *strkey(char *dst,char *head,char *tail,char *flags);
56
extern char *strmake(char *dst,const char *src,size_t length);
58
extern char *strsuff(const char *src,const char *suffix);
59
extern char *strxcat(char *dst,const char *src, ...);
60
extern char *strxmov(char *dst,const char *src, ...);
61
extern char *strxcpy(char *dst,const char *src, ...);
62
extern char *strxncat(char *dst,size_t len, const char *src, ...);
63
extern char *strxncpy(char *dst,size_t len, const char *src, ...);
65
36
/* Conversion routines */
71
double my_strtod(const char *str, char **end, int *error);
72
double my_atof(const char *nptr);
73
size_t my_fcvt(double x, int precision, char *to, bool *error);
74
size_t my_gcvt(double x, my_gcvt_arg_type type, int width, char *to,
43
DRIZZLED_API double my_strtod(const char *str, char **end, int *error);
44
DRIZZLED_API double my_atof(const char *nptr);
45
DRIZZLED_API size_t my_fcvt(double x, int precision, char *to, bool *error);
46
DRIZZLED_API size_t my_gcvt(double x, my_gcvt_arg_type type, int width, char *to, bool *error);
77
48
#define NOT_FIXED_DEC (uint8_t)31
94
65
#define MAX_DECPT_FOR_F_FORMAT DBL_DIG
97
The maximum possible field width for my_gcvt() conversion.
98
(DBL_DIG + 2) significant digits + sign + "." + ("e-NNN" or
99
MAX_DECPT_FOR_F_FORMAT zeros for cases when |x|<1 and the 'f' format is used).
101
#define MY_GCVT_MAX_FIELD_WIDTH (DBL_DIG + 4 + cmax(5, MAX_DECPT_FOR_F_FORMAT))
104
67
extern char *llstr(int64_t value,char *buff);
105
68
extern char *ullstr(int64_t value,char *buff);
107
70
extern char *int2str(int32_t val, char *dst, int radix, int upcase);
108
71
extern char *int10_to_str(int32_t val,char *dst,int radix);
109
int64_t my_strtoll10(const char *nptr, char **endptr, int *error);
110
extern char *int64_t2str(int64_t val,char *dst,int radix);
111
extern char *int64_t10_to_str(int64_t val,char *dst,int radix);
72
DRIZZLED_API int64_t my_strtoll10(const char *nptr, char **endptr, int *error);
73
DRIZZLED_API char *int64_t2str(int64_t val,char *dst,int radix);
74
DRIZZLED_API char *int64_t10_to_str(int64_t val,char *dst,int radix);