Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
ccc41712
Commit
ccc41712
authored
May 28, 2004
by
monty@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Portability fix (using 'char' as argument to C functions may give warnings)
parent
be7f1a35
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
19 deletions
+25
-19
include/m_string.h
include/m_string.h
+1
-1
mysql-test/r/variables.result
mysql-test/r/variables.result
+1
-0
strings/int2str.c
strings/int2str.c
+23
-18
No files found.
include/m_string.h
View file @
ccc41712
...
...
@@ -225,7 +225,7 @@ extern long strtol(const char *str, char **ptr, int base);
extern
ulong
strtoul
(
const
char
*
str
,
char
**
ptr
,
int
base
);
#endif
extern
char
*
int2str
(
long
val
,
char
*
dst
,
int
radix
,
char
upcase
);
extern
char
*
int2str
(
long
val
,
char
*
dst
,
int
radix
,
int
upcase
);
extern
char
*
int10_to_str
(
long
val
,
char
*
dst
,
int
radix
);
extern
char
*
str2int
(
const
char
*
src
,
int
radix
,
long
lower
,
long
upper
,
long
*
val
);
...
...
mysql-test/r/variables.result
View file @
ccc41712
...
...
@@ -385,6 +385,7 @@ select 1;
1
1
select @@session.key_buffer_size;
ERROR HY000: Variable 'key_buffer_size' is a GLOBAL variable
set ft_boolean_syntax = @@init_connect;
ERROR HY000: Variable 'ft_boolean_syntax' is a GLOBAL variable and should be set with SET GLOBAL
set global ft_boolean_syntax = @@init_connect;
...
...
strings/int2str.c
View file @
ccc41712
...
...
@@ -34,7 +34,7 @@ char NEAR _dig_vec_lower[] =
val - value to convert
dst - points to buffer where string representation should be stored
radix - radix of scale of notation
upcase -
flag indicating that whenever
we should use upper-case digits
upcase -
set to 1 if
we should use upper-case digits
DESCRIPTION
Converts the (long) integer value to its character form and moves it to
...
...
@@ -52,34 +52,39 @@ char NEAR _dig_vec_lower[] =
char
*
int2str
(
register
long
int
val
,
register
char
*
dst
,
register
int
radix
,
char
upcase
)
int
upcase
)
{
char
buffer
[
65
];
register
char
*
p
;
long
int
new_val
;
char
*
dig_vec
=
upcase
?
_dig_vec_upper
:
_dig_vec_lower
;
if
(
radix
<
0
)
{
if
(
radix
<
-
36
||
radix
>
-
2
)
return
NullS
;
if
(
val
<
0
)
{
if
(
radix
<
0
)
{
if
(
radix
<
-
36
||
radix
>
-
2
)
return
NullS
;
if
(
val
<
0
)
{
*
dst
++
=
'-'
;
val
=
-
val
;
}
radix
=
-
radix
;
}
else
{
if
(
radix
>
36
||
radix
<
2
)
return
NullS
;
}
/* The slightly contorted code which follows is due to the
fact that few machines directly support unsigned long / and %.
Certainly the VAX C compiler generates a subroutine call. In
the interests of efficiency (hollow laugh) I let this happen
for the first digit only; after that "val" will be in range so
that signed integer division will do. Sorry 'bout that.
CHECK THE CODE PRODUCED BY YOUR C COMPILER. The first % and /
should be unsigned, the second % and / signed, but C compilers
tend to be extraordinarily sensitive to minor details of style.
This works on a VAX, that's all I claim for it.
*/
else
if
(
radix
>
36
||
radix
<
2
)
return
NullS
;
/*
The slightly contorted code which follows is due to the fact that
few machines directly support unsigned long / and %. Certainly
the VAX C compiler generates a subroutine call. In the interests
of efficiency (hollow laugh) I let this happen for the first digit
only; after that "val" will be in range so that signed integer
division will do. Sorry 'bout that. CHECK THE CODE PRODUCED BY
YOUR C COMPILER. The first % and / should be unsigned, the second
% and / signed, but C compilers tend to be extraordinarily
sensitive to minor details of style. This works on a VAX, that's
all I claim for it.
*/
p
=
&
buffer
[
sizeof
(
buffer
)
-
1
];
*
p
=
'\0'
;
new_val
=
(
ulong
)
val
/
(
ulong
)
radix
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment