~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/internal/m_string.h

mergeĀ lp:~hingo/drizzle/drizzle-auth_ldap-fix-and-docs

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
/* There may be prolems include all of theese. Try to test in
17
17
   configure with ones are needed? */
18
18
 
19
 
/*  This is needed for the definitions of strchr... on solaris */
20
 
 
21
 
 
22
 
#ifndef DRIZZLED_INTERNAL_M_STRING_H
23
 
#define DRIZZLED_INTERNAL_M_STRING_H
24
 
 
25
 
#if defined(HAVE_STRINGS_H)
 
19
#pragma once
 
20
 
26
21
#include <strings.h>
27
 
#endif
28
 
#if defined(HAVE_STRING_H)
29
 
#include <string.h>
30
 
#endif
31
 
 
32
 
#include <stdlib.h>
33
 
#include <stddef.h>
 
22
#include <cstring>
 
23
#include <cstdlib>
 
24
#include <cstddef>
34
25
#include <cassert>
35
 
#include <limits.h>
36
 
#include <ctype.h>
37
 
 
38
 
/*  This is needed for the definitions of memcpy... on solaris */
39
 
#if defined(HAVE_MEMORY_H) && !defined(__cplusplus)
40
 
#include <memory.h>
41
 
#endif
42
 
 
43
 
namespace drizzled
44
 
{
45
 
namespace internal
46
 
{
 
26
#include <climits>
 
27
#include <cctype>
 
28
 
 
29
#include <drizzled/visibility.h>
 
30
 
 
31
namespace drizzled {
 
32
namespace internal {
47
33
 
48
34
extern void bmove_upp(unsigned char *dst,const unsigned char *src,size_t len);
49
35
 
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,
53
 
                           int tabch);
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);
57
 
 
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, ...);
64
 
 
65
36
/* Conversion routines */
66
 
typedef enum {
 
37
enum my_gcvt_arg_type
 
38
{
67
39
  MY_GCVT_ARG_FLOAT,
68
40
  MY_GCVT_ARG_DOUBLE
69
 
} my_gcvt_arg_type;
 
41
};
70
42
 
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,
75
 
               bool *error);
 
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);
76
47
 
77
48
#define NOT_FIXED_DEC (uint8_t)31
78
49
 
93
64
*/
94
65
#define MAX_DECPT_FOR_F_FORMAT DBL_DIG
95
66
 
96
 
/*
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).
100
 
*/
101
 
#define MY_GCVT_MAX_FIELD_WIDTH (DBL_DIG + 4 + cmax(5, MAX_DECPT_FOR_F_FORMAT))
102
 
 
103
 
 
104
67
extern char *llstr(int64_t value,char *buff);
105
68
extern char *ullstr(int64_t value,char *buff);
106
69
 
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);
112
75
 
113
76
 
114
77
/**
132
95
} /* namespace internal */
133
96
} /* namespace drizzled */
134
97
 
135
 
#endif /* DRIZZLED_INTERNAL_M_STRING_H */