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
a7c5b9c2
Commit
a7c5b9c2
authored
Jan 27, 2001
by
monty@donna.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Portability fixes for OPENBSD, OS2 and Windows
parent
5218a03a
Changes
27
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
127 additions
and
80 deletions
+127
-80
Docs/manual.texi
Docs/manual.texi
+12
-10
configure.in
configure.in
+2
-1
include/my_sys.h
include/my_sys.h
+0
-7
ltconfig
ltconfig
+3
-2
ltmain.sh
ltmain.sh
+2
-0
mit-pthreads/net/net_internal.h
mit-pthreads/net/net_internal.h
+1
-0
mit-pthreads/net/proto_internal.h
mit-pthreads/net/proto_internal.h
+1
-0
mit-pthreads/net/res_internal.h
mit-pthreads/net/res_internal.h
+1
-0
mit-pthreads/net/serv_internal.h
mit-pthreads/net/serv_internal.h
+1
-0
myisammrg/myrg_open.c
myisammrg/myrg_open.c
+14
-8
mysys/my_getwd.c
mysys/my_getwd.c
+4
-0
sql/field.cc
sql/field.cc
+2
-2
sql/field.h
sql/field.h
+1
-0
sql/ha_berkeley.cc
sql/ha_berkeley.cc
+7
-10
sql/ha_berkeley.h
sql/ha_berkeley.h
+2
-3
sql/item_sum.h
sql/item_sum.h
+3
-0
sql/log.cc
sql/log.cc
+4
-0
sql/log_event.h
sql/log_event.h
+4
-0
sql/mysqld.cc
sql/mysqld.cc
+0
-1
sql/net_serv.cc
sql/net_serv.cc
+2
-2
sql/sql_analyse.h
sql/sql_analyse.h
+15
-0
sql/sql_class.h
sql/sql_class.h
+3
-0
sql/sql_map.h
sql/sql_map.h
+4
-0
sql/sql_repl.cc
sql/sql_repl.cc
+1
-2
sql/sql_string.h
sql/sql_string.h
+7
-0
sql/sql_table.cc
sql/sql_table.cc
+0
-1
strings/longlong2str-x86.s
strings/longlong2str-x86.s
+31
-31
No files found.
Docs/manual.texi
View file @
a7c5b9c2
...
@@ -2222,6 +2222,9 @@ Apart from the following links, you can find and download a lot of
...
@@ -2222,6 +2222,9 @@ Apart from the following links, you can find and download a lot of
@item @uref{http://www.4t2.com/mysql}@*
@item @uref{http://www.4t2.com/mysql}@*
Information about the German MySQL mailing list.
Information about the German MySQL mailing list.
@item @uref{http://www2.rent-a-database.de/mysql/}
@strong{MySQL} manual in German.
@item @uref{http://www.bitmover.com:8888//home/bk/mysql}@*
@item @uref{http://www.bitmover.com:8888//home/bk/mysql}@*
Web access to the @strong{MySQL} BitKeeper repository.
Web access to the @strong{MySQL} BitKeeper repository.
...
@@ -3612,7 +3615,7 @@ Payment should be made to:
...
@@ -3612,7 +3615,7 @@ Payment should be made to:
Postgirot Bank AB
Postgirot Bank AB
105 06 STOCKHOLM, SWEDEN
105 06 STOCKHOLM, SWEDEN
TCX DataKonsult
AB
MySQL
AB
BOX 6434
BOX 6434
11382 STOCKHOLM, SWEDEN
11382 STOCKHOLM, SWEDEN
...
@@ -3629,7 +3632,7 @@ If you want to pay by check, make it payable to ``MySQL Finland AB'' and
...
@@ -3629,7 +3632,7 @@ If you want to pay by check, make it payable to ``MySQL Finland AB'' and
mail it to the address below:
mail it to the address below:
@example
@example
TCX DataKonsult
AB
MySQL
AB
BOX 6434, Torsgatan 21
BOX 6434, Torsgatan 21
11382 STOCKHOLM, SWEDEN
11382 STOCKHOLM, SWEDEN
@end example
@end example
...
@@ -8903,17 +8906,19 @@ below:
...
@@ -8903,17 +8906,19 @@ below:
@example
@example
shell> BINDIR/mysqladmin version
shell> BINDIR/mysqladmin version
mysqladmin Ver 6.3 Distrib 3.22.9-beta, for pc-linux-gnu on i686
mysqladmin Ver 8.14 Distrib 3.23.32, for linux on i586
TCX Datakonsult AB, by Monty
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version 3.2
2.9-beta
Server version 3.2
3.32-debug
Protocol version 10
Protocol version 10
Connection Localhost via Unix socket
Connection Localhost via Unix socket
TCP port 3306
TCP port 3306
UNIX socket /tmp/mysql.sock
UNIX socket /tmp/mysql.sock
Uptime: 16 sec
Uptime: 16 sec
Running threads: 1 Questions: 20 Reloads: 2 Open tables: 3
Threads: 1 Questions: 9 Slow queries: 0 Opens: 7 Flush tables: 2 Open tables: 0 Queries per second avg: 0.000 Memory in use: 132K Max memory used: 16773K
@end example
@end example
To get a feeling for what else you can do with @code{BINDIR/mysqladmin},
To get a feeling for what else you can do with @code{BINDIR/mysqladmin},
...
@@ -18528,7 +18533,7 @@ CHECK TABLE tbl_name[,tbl_name...] [option [option...]]
...
@@ -18528,7 +18533,7 @@ CHECK TABLE tbl_name[,tbl_name...] [option [option...]]
option = QUICK | FAST | MEDIUM | EXTEND | CHANGED
option = QUICK | FAST | MEDIUM | EXTEND | CHANGED
@end example
@end example
@code{CHECK TABLE} only works on @code{MyISAM}
and @code{BDB}
tables. On
@code{CHECK TABLE} only works on @code{MyISAM} tables. On
@code{MyISAM} tables it's the same thing as running @code{myisamchk -m
@code{MyISAM} tables it's the same thing as running @code{myisamchk -m
table_name} on the table.
table_name} on the table.
...
@@ -18567,9 +18572,6 @@ For dynamic sized @code{MyISAM} tables a started check will always
...
@@ -18567,9 +18572,6 @@ For dynamic sized @code{MyISAM} tables a started check will always
do a @code{MEDIUM} check. For static size rows we skip the row scan
do a @code{MEDIUM} check. For static size rows we skip the row scan
for @code{QUICK} and @code{FAST} as the rows are very seldom corrupted.
for @code{QUICK} and @code{FAST} as the rows are very seldom corrupted.
Note that for BDB tables the different check options doesn't affect the
check in any way!
You can combine check options as in:
You can combine check options as in:
@example
@example
configure.in
View file @
a7c5b9c2
...
@@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
...
@@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_INIT
(
sql/mysqld.cc
)
AC_INIT
(
sql/mysqld.cc
)
AC_CANONICAL_SYSTEM
AC_CANONICAL_SYSTEM
# The Docs Makefile.am parses this line!
# The Docs Makefile.am parses this line!
AM_INIT_AUTOMAKE
(
mysql, 3.23.3
2
)
AM_INIT_AUTOMAKE
(
mysql, 3.23.3
3
)
AM_CONFIG_HEADER
(
config.h
)
AM_CONFIG_HEADER
(
config.h
)
PROTOCOL_VERSION
=
10
PROTOCOL_VERSION
=
10
...
@@ -129,6 +129,7 @@ fi
...
@@ -129,6 +129,7 @@ fi
# Still need ranlib for readline; local static use only so no libtool.
# Still need ranlib for readline; local static use only so no libtool.
AC_PROG_RANLIB
AC_PROG_RANLIB
# We use libtool
# We use libtool
#AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
AM_PROG_LIBTOOL
#AC_LIBTOOL_DLOPEN AC_LIBTOOL_WIN32_DLL AC_DISABLE_FAST_INSTALL AC_DISABLE_SHARED AC_DISABLE_STATIC
#AC_LIBTOOL_DLOPEN AC_LIBTOOL_WIN32_DLL AC_DISABLE_FAST_INSTALL AC_DISABLE_SHARED AC_DISABLE_STATIC
...
...
include/my_sys.h
View file @
a7c5b9c2
...
@@ -41,13 +41,6 @@ extern int NEAR my_errno; /* Last error in mysys */
...
@@ -41,13 +41,6 @@ extern int NEAR my_errno; /* Last error in mysys */
#include <stdarg.h>
#include <stdarg.h>
#ifdef __EMX__
/* record loging flags (F_GETLK, F_SETLK, F_SETLKW) */
#define F_RDLCK 1
/* FreeBSD: shared or read lock */
#define F_UNLCK 2
/* FreeBSD: unlock */
#define F_WRLCK 3
/* FreeBSD: exclusive or write lock */
#endif
#define MYSYS_PROGRAM_USES_CURSES() { error_handler_hook = my_message_curses; mysys_uses_curses=1; }
#define MYSYS_PROGRAM_USES_CURSES() { error_handler_hook = my_message_curses; mysys_uses_curses=1; }
#define MYSYS_PROGRAM_DONT_USE_CURSES() { error_handler_hook = my_message_no_curses; mysys_uses_curses=0;}
#define MYSYS_PROGRAM_DONT_USE_CURSES() { error_handler_hook = my_message_no_curses; mysys_uses_curses=0;}
#define MY_INIT(name); { my_progname= name; my_init(); }
#define MY_INIT(name); { my_progname= name; my_init(); }
...
...
ltconfig
View file @
a7c5b9c2
...
@@ -1411,8 +1411,8 @@ else
...
@@ -1411,8 +1411,8 @@ else
os2
*
)
os2
*
)
hardcode_libdir_flag_spec
=
'-L$libdir'
hardcode_libdir_flag_spec
=
'-L$libdir'
hardcode_minus_L
=
yes
hardcode_minus_L
=
yes
allow_undefined_flag
=
unsupported
allow_undefined_flag
=
" "
archive_cmds
=
'$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll
-Zcrtdll -o $lib $libobjs $deplibs $linkopt
s $objdir/$libname.def'
archive_cmds
=
'$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll
$linkflags -o $lib $libobjs $deplib
s $objdir/$libname.def'
old_archive_from_new_cmds
=
'emximp -o $objdir/$libname.a $objdir/$libname.def'
old_archive_from_new_cmds
=
'emximp -o $objdir/$libname.a $objdir/$libname.def'
;;
;;
...
@@ -2036,6 +2036,7 @@ os2*)
...
@@ -2036,6 +2036,7 @@ os2*)
need_lib_prefix
=
no
need_lib_prefix
=
no
library_names_spec
=
'$libname.dll $libname.a'
library_names_spec
=
'$libname.dll $libname.a'
dynamic_linker
=
'OS/2 ld.exe'
dynamic_linker
=
'OS/2 ld.exe'
deplibs_check_method
=
pass_all
shlibpath_var
=
LIBPATH
shlibpath_var
=
LIBPATH
;;
;;
...
...
ltmain.sh
View file @
a7c5b9c2
...
@@ -819,6 +819,7 @@ compiler."
...
@@ -819,6 +819,7 @@ compiler."
old_convenience
=
old_convenience
=
deplibs
=
deplibs
=
linkopts
=
linkopts
=
linkflags
=
if
test
-n
"
$shlibpath_var
"
;
then
if
test
-n
"
$shlibpath_var
"
;
then
# get the directories listed in $shlibpath_var
# get the directories listed in $shlibpath_var
...
@@ -1159,6 +1160,7 @@ compiler."
...
@@ -1159,6 +1160,7 @@ compiler."
# Unknown arguments in both finalize_command and compile_command need
# Unknown arguments in both finalize_command and compile_command need
# to be aesthetically quoted because they are evaled later.
# to be aesthetically quoted because they are evaled later.
arg
=
`
$echo
"X
$arg
"
|
$Xsed
-e
"
$sed_quote_subst
"
`
arg
=
`
$echo
"X
$arg
"
|
$Xsed
-e
"
$sed_quote_subst
"
`
linkflags
=
"
$linkflags
$arg
"
case
"
$arg
"
in
case
"
$arg
"
in
*
[
\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \
]
*
|
*
]
*
)
*
[
\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \
]
*
|
*
]
*
)
arg
=
"
\"
$arg
\"
"
arg
=
"
\"
$arg
\"
"
...
...
mit-pthreads/net/net_internal.h
View file @
a7c5b9c2
...
@@ -44,6 +44,7 @@ static char *rcsid = "$Id$";
...
@@ -44,6 +44,7 @@ static char *rcsid = "$Id$";
#include <resolv.h>
#include <resolv.h>
#define NET_BUFSIZE 4096
#define NET_BUFSIZE 4096
#undef ALIGN
#define ALIGN(p, t) ((char *)(((((long)(p) - 1) / sizeof(t)) + 1) * sizeof(t)))
#define ALIGN(p, t) ((char *)(((((long)(p) - 1) / sizeof(t)) + 1) * sizeof(t)))
#define SP(p, t, n) (ALIGN(p, t) + (n) * sizeof(t))
#define SP(p, t, n) (ALIGN(p, t) + (n) * sizeof(t))
...
...
mit-pthreads/net/proto_internal.h
View file @
a7c5b9c2
...
@@ -44,6 +44,7 @@ static char *rcsid = "$Id$";
...
@@ -44,6 +44,7 @@ static char *rcsid = "$Id$";
#include <resolv.h>
#include <resolv.h>
#define PROTO_BUFSIZE 4096
#define PROTO_BUFSIZE 4096
#undef ALIGN
#define ALIGN(p, t) ((char *)(((((long)(p) - 1) / sizeof(t)) + 1) * sizeof(t)))
#define ALIGN(p, t) ((char *)(((((long)(p) - 1) / sizeof(t)) + 1) * sizeof(t)))
#define SP(p, t, n) (ALIGN(p, t) + (n) * sizeof(t))
#define SP(p, t, n) (ALIGN(p, t) + (n) * sizeof(t))
...
...
mit-pthreads/net/res_internal.h
View file @
a7c5b9c2
...
@@ -44,6 +44,7 @@ static char *rcsid = "$Id$";
...
@@ -44,6 +44,7 @@ static char *rcsid = "$Id$";
#include <resolv.h>
#include <resolv.h>
#define HOST_BUFSIZE 4096
#define HOST_BUFSIZE 4096
#undef ALIGN
#define ALIGN(p, t) ((char *)(((((long)(p) - 1) / sizeof(t)) + 1) * sizeof(t)))
#define ALIGN(p, t) ((char *)(((((long)(p) - 1) / sizeof(t)) + 1) * sizeof(t)))
#define SP(p, t, n) (ALIGN(p, t) + (n) * sizeof(t))
#define SP(p, t, n) (ALIGN(p, t) + (n) * sizeof(t))
...
...
mit-pthreads/net/serv_internal.h
View file @
a7c5b9c2
...
@@ -44,6 +44,7 @@ static char *rcsid = "$Id$";
...
@@ -44,6 +44,7 @@ static char *rcsid = "$Id$";
#include <resolv.h>
#include <resolv.h>
#define SERV_BUFSIZE 4096
#define SERV_BUFSIZE 4096
#undef ALIGN
#define ALIGN(p, t) ((char *)(((((long)(p) - 1) / sizeof(t)) + 1) * sizeof(t)))
#define ALIGN(p, t) ((char *)(((((long)(p) - 1) / sizeof(t)) + 1) * sizeof(t)))
#define SP(p, t, n) (ALIGN(p, t) + (n) * sizeof(t))
#define SP(p, t, n) (ALIGN(p, t) + (n) * sizeof(t))
...
...
myisammrg/myrg_open.c
View file @
a7c5b9c2
...
@@ -36,11 +36,12 @@ int mode;
...
@@ -36,11 +36,12 @@ int mode;
int
handle_locking
;
int
handle_locking
;
{
{
int
save_errno
,
i
,
errpos
;
int
save_errno
,
i
,
errpos
;
uint
files
,
dir_length
;
uint
files
,
dir_length
,
length
;
ulonglong
file_offset
;
ulonglong
file_offset
;
char
name_buff
[
FN_REFLEN
*
2
],
buff
[
FN_REFLEN
],
*
end
;
char
name_buff
[
FN_REFLEN
*
2
],
buff
[
FN_REFLEN
],
*
end
;
MYRG_INFO
info
,
*
m_info
;
MYRG_INFO
info
,
*
m_info
;
FILE
*
file
;
File
fd
;
IO_CACHE
file
;
MI_INFO
*
isam
,
*
last_isam
;
MI_INFO
*
isam
,
*
last_isam
;
DBUG_ENTER
(
"myrg_open"
);
DBUG_ENTER
(
"myrg_open"
);
...
@@ -49,15 +50,18 @@ int handle_locking;
...
@@ -49,15 +50,18 @@ int handle_locking;
isam
=
0
;
isam
=
0
;
errpos
=
files
=
0
;
errpos
=
files
=
0
;
bzero
((
gptr
)
&
info
,
sizeof
(
info
));
bzero
((
gptr
)
&
info
,
sizeof
(
info
));
if
(
!
(
file
=
my_fopen
(
fn_format
(
name_buff
,
name
,
""
,
MYRG_NAME_EXT
,
4
),
bzero
((
char
*
)
&
file
,
sizeof
(
file
));
O_RDONLY
|
O_SHARE
,
MYF
(
0
))))
if
((
fd
=
my_open
(
fn_format
(
name_buff
,
name
,
""
,
MYRG_NAME_EXT
,
4
),
O_RDONLY
|
O_SHARE
,
MYF
(
0
)))
<
0
||
init_io_cache
(
&
file
,
fd
,
IO_SIZE
,
READ_CACHE
,
0
,
0
,
MYF
(
MY_WME
|
MY_NABP
)))
goto
err
;
goto
err
;
errpos
=
1
;
errpos
=
1
;
dir_length
=
dirname_part
(
name_buff
,
name
);
dir_length
=
dirname_part
(
name_buff
,
name
);
info
.
reclength
=
0
;
info
.
reclength
=
0
;
while
(
fgets
(
buff
,
FN_REFLEN
-
1
,
file
))
while
(
(
length
=
my_b_gets
(
&
file
,
buff
,
FN_REFLEN
-
1
)
))
{
{
if
((
end
=
strend
(
buff
)
)[
-
1
]
==
'\n'
)
if
((
end
=
buff
+
length
)[
-
1
]
==
'\n'
)
end
[
-
1
]
=
'\0'
;
end
[
-
1
]
=
'\0'
;
if
(
buff
[
0
]
&&
buff
[
0
]
!=
'#'
)
/* Skipp empty lines and comments */
if
(
buff
[
0
]
&&
buff
[
0
]
!=
'#'
)
/* Skipp empty lines and comments */
{
{
...
@@ -118,7 +122,8 @@ int handle_locking;
...
@@ -118,7 +122,8 @@ int handle_locking;
m_info
->
end_table
=
m_info
->
open_tables
+
files
;
m_info
->
end_table
=
m_info
->
open_tables
+
files
;
m_info
->
last_used_table
=
m_info
->
open_tables
;
m_info
->
last_used_table
=
m_info
->
open_tables
;
VOID
(
my_fclose
(
file
,
MYF
(
0
)));
VOID
(
my_close
(
fd
,
MYF
(
0
)));
end_io_cache
(
&
file
);
m_info
->
open_list
.
data
=
(
void
*
)
m_info
;
m_info
->
open_list
.
data
=
(
void
*
)
m_info
;
pthread_mutex_lock
(
&
THR_LOCK_open
);
pthread_mutex_lock
(
&
THR_LOCK_open
);
myrg_open_list
=
list_add
(
myrg_open_list
,
&
m_info
->
open_list
);
myrg_open_list
=
list_add
(
myrg_open_list
,
&
m_info
->
open_list
);
...
@@ -132,7 +137,8 @@ err:
...
@@ -132,7 +137,8 @@ err:
my_free
((
char
*
)
m_info
,
MYF
(
0
));
my_free
((
char
*
)
m_info
,
MYF
(
0
));
/* Fall through */
/* Fall through */
case
1
:
case
1
:
VOID
(
my_fclose
(
file
,
MYF
(
0
)));
VOID
(
my_close
(
fd
,
MYF
(
0
)));
end_io_cache
(
&
file
);
for
(
i
=
files
;
i
--
>
0
;
)
for
(
i
=
files
;
i
--
>
0
;
)
{
{
isam
=
last_isam
;
isam
=
last_isam
;
...
...
mysys/my_getwd.c
View file @
a7c5b9c2
...
@@ -29,6 +29,10 @@
...
@@ -29,6 +29,10 @@
#include <direct.h>
#include <direct.h>
#endif
#endif
#ifdef __EMX__
// chdir2 support also drive change
#define chdir _chdir2
#endif
/* Gets current working directory in buff. Directory is allways ended
/* Gets current working directory in buff. Directory is allways ended
with FN_LIBCHAR */
with FN_LIBCHAR */
...
...
sql/field.cc
View file @
a7c5b9c2
...
@@ -4710,13 +4710,13 @@ create_field::create_field(Field *old_field,Field *orig_field)
...
@@ -4710,13 +4710,13 @@ create_field::create_field(Field *old_field,Field *orig_field)
orig_field
)
orig_field
)
{
{
char
buff
[
MAX_FIELD_WIDTH
],
*
pos
;
char
buff
[
MAX_FIELD_WIDTH
],
*
pos
;
String
tmp
(
buff
,
sizeof
(
buff
))
,
*
res
;
String
tmp
(
buff
,
sizeof
(
buff
));
/* Get the value from record[2] (the default value row) */
/* Get the value from record[2] (the default value row) */
my_ptrdiff_t
diff
=
(
my_ptrdiff_t
)
(
orig_field
->
table
->
rec_buff_length
*
2
);
my_ptrdiff_t
diff
=
(
my_ptrdiff_t
)
(
orig_field
->
table
->
rec_buff_length
*
2
);
orig_field
->
move_field
(
diff
);
// Points now at record[2]
orig_field
->
move_field
(
diff
);
// Points now at record[2]
bool
is_null
=
orig_field
->
is_real_null
();
bool
is_null
=
orig_field
->
is_real_null
();
res
=
orig_field
->
val_str
(
&
tmp
,
&
tmp
);
orig_field
->
val_str
(
&
tmp
,
&
tmp
);
orig_field
->
move_field
(
-
diff
);
// Back to record[0]
orig_field
->
move_field
(
-
diff
);
// Back to record[0]
if
(
!
is_null
)
if
(
!
is_null
)
{
{
...
...
sql/field.h
View file @
a7c5b9c2
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
class
Send_field
;
class
Send_field
;
struct
st_cache_field
;
struct
st_cache_field
;
void
field_conv
(
Field
*
to
,
Field
*
from
);
class
Field
{
class
Field
{
Field
(
const
Item
&
);
/* Prevent use of theese */
Field
(
const
Item
&
);
/* Prevent use of theese */
...
...
sql/ha_berkeley.cc
View file @
a7c5b9c2
...
@@ -110,8 +110,6 @@ static void berkeley_noticecall(DB_ENV *db_env, db_notices notice);
...
@@ -110,8 +110,6 @@ static void berkeley_noticecall(DB_ENV *db_env, db_notices notice);
bool
berkeley_init
(
void
)
bool
berkeley_init
(
void
)
{
{
char
buff
[
1024
],
*
config
[
10
],
**
conf_pos
,
*
str_pos
;
conf_pos
=
config
;
str_pos
=
buff
;
DBUG_ENTER
(
"berkeley_init"
);
DBUG_ENTER
(
"berkeley_init"
);
if
(
!
berkeley_tmpdir
)
if
(
!
berkeley_tmpdir
)
...
@@ -387,6 +385,7 @@ berkeley_cmp_packed_key(DB *file, const DBT *new_key, const DBT *saved_key)
...
@@ -387,6 +385,7 @@ berkeley_cmp_packed_key(DB *file, const DBT *new_key, const DBT *saved_key)
/* The following is not yet used; Should be used for fixed length keys */
/* The following is not yet used; Should be used for fixed length keys */
#ifdef NOT_YET
static
int
static
int
berkeley_cmp_fix_length_key
(
DB
*
file
,
const
DBT
*
new_key
,
const
DBT
*
saved_key
)
berkeley_cmp_fix_length_key
(
DB
*
file
,
const
DBT
*
new_key
,
const
DBT
*
saved_key
)
{
{
...
@@ -407,7 +406,7 @@ berkeley_cmp_fix_length_key(DB *file, const DBT *new_key, const DBT *saved_key)
...
@@ -407,7 +406,7 @@ berkeley_cmp_fix_length_key(DB *file, const DBT *new_key, const DBT *saved_key)
}
}
return
key
->
handler
.
bdb_return_if_eq
;
return
key
->
handler
.
bdb_return_if_eq
;
}
}
#endif
/* Compare key against row */
/* Compare key against row */
...
@@ -1901,7 +1900,6 @@ longlong ha_berkeley::get_auto_increment()
...
@@ -1901,7 +1900,6 @@ longlong ha_berkeley::get_auto_increment()
{
{
DBT
row
,
old_key
;
DBT
row
,
old_key
;
bzero
((
char
*
)
&
row
,
sizeof
(
row
));
bzero
((
char
*
)
&
row
,
sizeof
(
row
));
uint
key_len
;
KEY
*
key_info
=
&
table
->
key_info
[
active_index
];
KEY
*
key_info
=
&
table
->
key_info
[
active_index
];
/* Reading next available number for a sub key */
/* Reading next available number for a sub key */
...
@@ -1947,6 +1945,7 @@ longlong ha_berkeley::get_auto_increment()
...
@@ -1947,6 +1945,7 @@ longlong ha_berkeley::get_auto_increment()
Analyzing, checking, and optimizing tables
Analyzing, checking, and optimizing tables
****************************************************************************/
****************************************************************************/
#ifdef NOT_YET
static
void
print_msg
(
THD
*
thd
,
const
char
*
table_name
,
const
char
*
op_name
,
static
void
print_msg
(
THD
*
thd
,
const
char
*
table_name
,
const
char
*
op_name
,
const
char
*
msg_type
,
const
char
*
fmt
,
...)
const
char
*
msg_type
,
const
char
*
fmt
,
...)
{
{
...
@@ -1970,7 +1969,7 @@ static void print_msg(THD *thd, const char *table_name, const char *op_name,
...
@@ -1970,7 +1969,7 @@ static void print_msg(THD *thd, const char *table_name, const char *op_name,
thd
->
packet
.
length
()))
thd
->
packet
.
length
()))
thd
->
killed
=
1
;
thd
->
killed
=
1
;
}
}
#endif
int
ha_berkeley
::
analyze
(
THD
*
thd
,
HA_CHECK_OPT
*
check_opt
)
int
ha_berkeley
::
analyze
(
THD
*
thd
,
HA_CHECK_OPT
*
check_opt
)
{
{
...
@@ -2025,14 +2024,14 @@ int ha_berkeley::optimize(THD* thd, HA_CHECK_OPT* check_opt)
...
@@ -2025,14 +2024,14 @@ int ha_berkeley::optimize(THD* thd, HA_CHECK_OPT* check_opt)
int
ha_berkeley
::
check
(
THD
*
thd
,
HA_CHECK_OPT
*
check_opt
)
int
ha_berkeley
::
check
(
THD
*
thd
,
HA_CHECK_OPT
*
check_opt
)
{
{
char
name_buff
[
FN_REFLEN
];
int
error
;
DB
*
tmp_file
;
DBUG_ENTER
(
"ha_berkeley::check"
);
DBUG_ENTER
(
"ha_berkeley::check"
);
DBUG_RETURN
(
HA_ADMIN_NOT_IMPLEMENTED
);
DBUG_RETURN
(
HA_ADMIN_NOT_IMPLEMENTED
);
#ifdef NOT_YET
#ifdef NOT_YET
char
name_buff
[
FN_REFLEN
];
int
error
;
DB
*
tmp_file
;
/*
/*
To get this to work we need to ensure that no running transaction is
To get this to work we need to ensure that no running transaction is
using the table. We also need to create a new environment without
using the table. We also need to create a new environment without
...
@@ -2242,7 +2241,6 @@ void ha_berkeley::get_status()
...
@@ -2242,7 +2241,6 @@ void ha_berkeley::get_status()
static
int
write_status
(
DB
*
status_block
,
char
*
buff
,
uint
length
)
static
int
write_status
(
DB
*
status_block
,
char
*
buff
,
uint
length
)
{
{
DB_TXN
*
trans
;
DBT
row
,
key
;
DBT
row
,
key
;
int
error
;
int
error
;
const
char
*
key_buff
=
"status"
;
const
char
*
key_buff
=
"status"
;
...
@@ -2285,7 +2283,6 @@ static void update_status(BDB_SHARE *share, TABLE *table)
...
@@ -2285,7 +2283,6 @@ static void update_status(BDB_SHARE *share, TABLE *table)
}
}
{
{
char
rec_buff
[
4
+
MAX_KEY
*
4
],
*
pos
=
rec_buff
;
char
rec_buff
[
4
+
MAX_KEY
*
4
],
*
pos
=
rec_buff
;
const
char
*
key_buff
=
"status"
;
int4store
(
pos
,
share
->
rows
);
pos
+=
4
;
int4store
(
pos
,
share
->
rows
);
pos
+=
4
;
for
(
uint
i
=
0
;
i
<
table
->
keys
;
i
++
)
for
(
uint
i
=
0
;
i
<
table
->
keys
;
i
++
)
{
{
...
...
sql/ha_berkeley.h
View file @
a7c5b9c2
...
@@ -64,7 +64,7 @@ class ha_berkeley: public handler
...
@@ -64,7 +64,7 @@ class ha_berkeley: public handler
ulong
max_row_length
(
const
byte
*
buf
);
ulong
max_row_length
(
const
byte
*
buf
);
int
pack_row
(
DBT
*
row
,
const
byte
*
record
,
bool
new_row
);
int
pack_row
(
DBT
*
row
,
const
byte
*
record
,
bool
new_row
);
void
unpack_row
(
char
*
record
,
DBT
*
row
);
void
unpack_row
(
char
*
record
,
DBT
*
row
);
void
ha_berkeley
::
unpack_key
(
char
*
record
,
DBT
*
key
,
uint
index
);
void
unpack_key
(
char
*
record
,
DBT
*
key
,
uint
index
);
DBT
*
create_key
(
DBT
*
key
,
uint
keynr
,
char
*
buff
,
const
byte
*
record
,
DBT
*
create_key
(
DBT
*
key
,
uint
keynr
,
char
*
buff
,
const
byte
*
record
,
int
key_length
=
MAX_KEY_LENGTH
);
int
key_length
=
MAX_KEY_LENGTH
);
DBT
*
pack_key
(
DBT
*
key
,
uint
keynr
,
char
*
buff
,
const
byte
*
key_ptr
,
DBT
*
pack_key
(
DBT
*
key
,
uint
keynr
,
char
*
buff
,
const
byte
*
key_ptr
,
...
@@ -156,13 +156,12 @@ class ha_berkeley: public handler
...
@@ -156,13 +156,12 @@ class ha_berkeley: public handler
void
get_status
();
void
get_status
();
inline
void
get_auto_primary_key
(
byte
*
to
)
inline
void
get_auto_primary_key
(
byte
*
to
)
{
{
ulonglong
tmp
;
pthread_mutex_lock
(
&
share
->
mutex
);
pthread_mutex_lock
(
&
share
->
mutex
);
share
->
auto_ident
++
;
share
->
auto_ident
++
;
int5store
(
to
,
share
->
auto_ident
);
int5store
(
to
,
share
->
auto_ident
);
pthread_mutex_unlock
(
&
share
->
mutex
);
pthread_mutex_unlock
(
&
share
->
mutex
);
}
}
longlong
ha_berkeley
::
get_auto_increment
();
longlong
get_auto_increment
();
};
};
extern
bool
berkeley_skip
,
berkeley_shared_data
;
extern
bool
berkeley_skip
,
berkeley_shared_data
;
...
...
sql/item_sum.h
View file @
a7c5b9c2
...
@@ -166,6 +166,8 @@ class Item_sum_count_distinct :public Item_sum_int
...
@@ -166,6 +166,8 @@ class Item_sum_count_distinct :public Item_sum_int
/* Item to get the value of a stored sum function */
/* Item to get the value of a stored sum function */
class
Item_sum_avg
;
class
Item_avg_field
:
public
Item_result_field
class
Item_avg_field
:
public
Item_result_field
{
{
public:
public:
...
@@ -200,6 +202,7 @@ class Item_sum_avg :public Item_sum_num
...
@@ -200,6 +202,7 @@ class Item_sum_avg :public Item_sum_num
const
char
*
func_name
()
const
{
return
"avg"
;
}
const
char
*
func_name
()
const
{
return
"avg"
;
}
};
};
class
Item_sum_std
;
class
Item_std_field
:
public
Item_result_field
class
Item_std_field
:
public
Item_result_field
{
{
...
...
sql/log.cc
View file @
a7c5b9c2
...
@@ -18,6 +18,10 @@
...
@@ -18,6 +18,10 @@
/* logging of commands */
/* logging of commands */
/* TODO: Abort logging when we get an error in reading or writing log files */
/* TODO: Abort logging when we get an error in reading or writing log files */
#ifdef __EMX__
#include <io.h>
#endif
#include "mysql_priv.h"
#include "mysql_priv.h"
#include "sql_acl.h"
#include "sql_acl.h"
#include "sql_repl.h"
#include "sql_repl.h"
...
...
sql/log_event.h
View file @
a7c5b9c2
...
@@ -18,6 +18,10 @@
...
@@ -18,6 +18,10 @@
#ifndef _LOG_EVENT_H
#ifndef _LOG_EVENT_H
#define _LOG_EVENT_H
#define _LOG_EVENT_H
#ifdef __EMX__
#undef write // remove pthread.h macro definition, conflict with write() class member
#endif
#if defined(__GNUC__) && !defined(MYSQL_CLIENT)
#if defined(__GNUC__) && !defined(MYSQL_CLIENT)
#pragma interface
/* gcc class implementation */
#pragma interface
/* gcc class implementation */
#endif
#endif
...
...
sql/mysqld.cc
View file @
a7c5b9c2
...
@@ -1048,7 +1048,6 @@ static void init_signals(void)
...
@@ -1048,7 +1048,6 @@ static void init_signals(void)
#elif defined(__EMX__)
#elif defined(__EMX__)
static
void
sig_reload
(
int
signo
)
static
void
sig_reload
(
int
signo
)
{
{
//reload_acl_and_cache(~0); // Flush everything
reload_acl_and_cache
((
THD
*
)
0
,
~
0
,
(
TABLE_LIST
*
)
0
);
// Flush everything
reload_acl_and_cache
((
THD
*
)
0
,
~
0
,
(
TABLE_LIST
*
)
0
);
// Flush everything
signal
(
signo
,
SIG_ACK
);
signal
(
signo
,
SIG_ACK
);
}
}
...
...
sql/net_serv.cc
View file @
a7c5b9c2
...
@@ -271,7 +271,7 @@ net_real_write(NET *net,const char *packet,ulong len)
...
@@ -271,7 +271,7 @@ net_real_write(NET *net,const char *packet,ulong len)
int
length
;
int
length
;
char
*
pos
,
*
end
;
char
*
pos
,
*
end
;
thr_alarm_t
alarmed
;
thr_alarm_t
alarmed
;
#if !defined(__WIN__)
&& !defined(__EMX__)
#if !defined(__WIN__)
ALARM
alarm_buff
;
ALARM
alarm_buff
;
#endif
#endif
uint
retry_count
=
0
;
uint
retry_count
=
0
;
...
@@ -426,7 +426,7 @@ static void my_net_skip_rest(NET *net, ulong remain, thr_alarm_t *alarmed)
...
@@ -426,7 +426,7 @@ static void my_net_skip_rest(NET *net, ulong remain, thr_alarm_t *alarmed)
if
((
int
)
(
length
=
vio_read
(
net
->
vio
,(
char
*
)
net
->
buff
,
remain
))
<=
0L
)
if
((
int
)
(
length
=
vio_read
(
net
->
vio
,(
char
*
)
net
->
buff
,
remain
))
<=
0L
)
{
{
my_bool
interrupted
=
vio_should_retry
(
net
->
vio
);
my_bool
interrupted
=
vio_should_retry
(
net
->
vio
);
if
(
!
thr_got_alarm
(
&
alarmed
)
&&
interrupted
)
if
(
!
thr_got_alarm
(
alarmed
)
&&
interrupted
)
{
/* Probably in MIT threads */
{
/* Probably in MIT threads */
if
(
retry_count
++
<
RETRY_COUNT
)
if
(
retry_count
++
<
RETRY_COUNT
)
continue
;
continue
;
...
...
sql/sql_analyse.h
View file @
a7c5b9c2
...
@@ -88,6 +88,9 @@ public:
...
@@ -88,6 +88,9 @@ public:
};
};
int
collect_string
(
String
*
element
,
element_count
count
,
TREE_INFO
*
info
);
class
field_str
:
public
field_info
class
field_str
:
public
field_info
{
{
String
min_arg
,
max_arg
;
String
min_arg
,
max_arg
;
...
@@ -130,6 +133,9 @@ public:
...
@@ -130,6 +133,9 @@ public:
{
return
(
String
*
)
0
;
}
{
return
(
String
*
)
0
;
}
};
};
int
collect_real
(
double
*
element
,
element_count
count
,
TREE_INFO
*
info
);
class
field_real
:
public
field_info
class
field_real
:
public
field_info
{
{
double
min_arg
,
max_arg
;
double
min_arg
,
max_arg
;
...
@@ -174,6 +180,9 @@ public:
...
@@ -174,6 +180,9 @@ public:
{
return
(
tree_walk_action
)
collect_real
;}
{
return
(
tree_walk_action
)
collect_real
;}
};
};
int
collect_longlong
(
longlong
*
element
,
element_count
count
,
TREE_INFO
*
info
);
class
field_longlong
:
public
field_info
class
field_longlong
:
public
field_info
{
{
longlong
min_arg
,
max_arg
;
longlong
min_arg
,
max_arg
;
...
@@ -216,6 +225,8 @@ public:
...
@@ -216,6 +225,8 @@ public:
{
return
(
tree_walk_action
)
collect_longlong
;}
{
return
(
tree_walk_action
)
collect_longlong
;}
};
};
int
collect_ulonglong
(
ulonglong
*
element
,
element_count
count
,
TREE_INFO
*
info
);
class
field_ulonglong
:
public
field_info
class
field_ulonglong
:
public
field_info
{
{
...
@@ -261,6 +272,10 @@ public:
...
@@ -261,6 +272,10 @@ public:
};
};
Procedure
*
proc_analyse_init
(
THD
*
thd
,
ORDER
*
param
,
select_result
*
result
,
List
<
Item
>
&
field_list
);
class
analyse
:
public
Procedure
class
analyse
:
public
Procedure
{
{
protected:
protected:
...
...
sql/sql_class.h
View file @
a7c5b9c2
...
@@ -102,6 +102,9 @@ public:
...
@@ -102,6 +102,9 @@ public:
/* character conversion tables */
/* character conversion tables */
class
CONVERT
;
CONVERT
*
get_convert_set
(
const
char
*
name_ptr
);
class
CONVERT
class
CONVERT
{
{
const
uchar
*
from_map
,
*
to_map
;
const
uchar
*
from_map
,
*
to_map
;
...
...
sql/sql_map.h
View file @
a7c5b9c2
...
@@ -21,6 +21,10 @@
...
@@ -21,6 +21,10 @@
#pragma interface
/* gcc class implementation */
#pragma interface
/* gcc class implementation */
#endif
#endif
class
mapped_files
;
mapped_files
*
map_file
(
const
my_string
name
,
byte
*
magic
,
uint
magic_length
);
void
unmap_file
(
mapped_files
*
map
);
class
mapped_files
:
public
ilink
{
class
mapped_files
:
public
ilink
{
byte
*
map
;
byte
*
map
;
ha_rows
size
;
ha_rows
size
;
...
...
sql/sql_repl.cc
View file @
a7c5b9c2
...
@@ -26,8 +26,7 @@
...
@@ -26,8 +26,7 @@
extern
const
char
*
any_db
;
extern
const
char
*
any_db
;
extern
pthread_handler_decl
(
handle_slave
,
arg
);
extern
pthread_handler_decl
(
handle_slave
,
arg
);
static
int
fake_rotate_event
(
NET
*
net
,
String
*
packet
,
const
char
*
log_file_name
);
static
int
fake_rotate_event
(
NET
*
net
,
String
*
packet
,
char
*
log_file_name
,
static
int
fake_rotate_event
(
NET
*
net
,
String
*
packet
,
char
*
log_file_name
,
const
char
**
errmsg
)
const
char
**
errmsg
)
...
...
sql/sql_string.h
View file @
a7c5b9c2
...
@@ -25,6 +25,13 @@
...
@@ -25,6 +25,13 @@
#define NOT_FIXED_DEC 31
#define NOT_FIXED_DEC 31
#endif
#endif
class
String
;
int
sortcmp
(
const
String
*
a
,
const
String
*
b
);
int
stringcmp
(
const
String
*
a
,
const
String
*
b
);
String
*
copy_if_not_alloced
(
String
*
a
,
String
*
b
,
uint32
arg_length
);
int
wild_case_compare
(
String
&
match
,
String
&
wild
,
char
escape
);
int
wild_compare
(
String
&
match
,
String
&
wild
,
char
escape
);
class
String
class
String
{
{
char
*
Ptr
;
char
*
Ptr
;
...
...
sql/sql_table.cc
View file @
a7c5b9c2
...
@@ -798,7 +798,6 @@ static int send_check_errmsg(THD* thd, TABLE_LIST* table,
...
@@ -798,7 +798,6 @@ static int send_check_errmsg(THD* thd, TABLE_LIST* table,
static
int
prepare_for_restore
(
THD
*
thd
,
TABLE_LIST
*
table
)
static
int
prepare_for_restore
(
THD
*
thd
,
TABLE_LIST
*
table
)
{
{
String
*
packet
=
&
thd
->
packet
;
DBUG_ENTER
(
"prepare_for_restore"
);
DBUG_ENTER
(
"prepare_for_restore"
);
if
(
table
->
table
)
// do not overwrite existing tables on restore
if
(
table
->
table
)
// do not overwrite existing tables on restore
...
...
strings/longlong2str-x86.s
View file @
a7c5b9c2
...
@@ -14,8 +14,8 @@
...
@@ -14,8 +14,8 @@
along
with
this
program
; if not, write to the Free Software
along
with
this
program
; if not, write to the Free Software
Foundation
,
Inc
.
,
59
Temple
Place
,
Suite
330
,
Boston
,
MA
02111
-
1307
USA
*/
Foundation
,
Inc
.
,
59
Temple
Place
,
Suite
330
,
Boston
,
MA
02111
-
1307
USA
*/
/*
Optimized
longlong2str
function
for
Intel
80
x86
(
gcc
/
gas
syntax
)
*/
#
Optimized
longlong2str
function
for
Intel
80
x86
(
gcc
/
gas
syntax
)
/*
Some
set
sequences
are
optimized
for
pentuimpro
II
*/
#
Some
set
sequences
are
optimized
for
pentuimpro
II
.
file
"longlong2str.s"
.
file
"longlong2str.s"
.
version
"1.01"
.
version
"1.01"
...
@@ -32,90 +32,90 @@ longlong2str:
...
@@ -32,90 +32,90 @@ longlong2str:
pushl
%
esi
pushl
%
esi
pushl
%
edi
pushl
%
edi
pushl
%
ebx
pushl
%
ebx
movl
100
(%
esp
),%
esi
/*
Lower
part
of
val
*/
movl
100
(%
esp
),%
esi
#
Lower
part
of
val
movl
104
(%
esp
),%
ebp
/*
Higher
part
of
val
*/
movl
104
(%
esp
),%
ebp
#
Higher
part
of
val
movl
108
(%
esp
),%
edi
/*
get
dst
*/
movl
108
(%
esp
),%
edi
#
get
dst
movl
112
(%
esp
),%
ebx
/*
Radix
*/
movl
112
(%
esp
),%
ebx
#
Radix
movl
%
ebx
,%
eax
movl
%
ebx
,%
eax
testl
%
eax
,%
eax
testl
%
eax
,%
eax
jge
.
L144
jge
.
L144
addl
$
36
,%
eax
addl
$
36
,%
eax
cmpl
$
34
,%
eax
cmpl
$
34
,%
eax
ja
.
Lerror
/*
Wrong
radix
*/
ja
.
Lerror
#
Wrong
radix
testl
%
ebp
,%
ebp
testl
%
ebp
,%
ebp
jge
.
L146
jge
.
L146
movb
$
45
,(%
edi
)
/*
Add
sign
*/
movb
$
45
,(%
edi
)
#
Add
sign
incl
%
edi
/*
Change
sign
of
val
*/
incl
%
edi
#
Change
sign
of
val
negl
%
esi
negl
%
esi
adcl
$
0
,%
ebp
adcl
$
0
,%
ebp
negl
%
ebp
negl
%
ebp
.
L146
:
.
L146
:
negl
%
ebx
/*
Change
radix
to
positive
*/
negl
%
ebx
#
Change
radix
to
positive
jmp
.
L148
jmp
.
L148
.
p2align
4
,,
7
.
align
4
.
L144
:
.
L144
:
addl
$
-
2
,%
eax
addl
$
-
2
,%
eax
cmpl
$
34
,%
eax
cmpl
$
34
,%
eax
ja
.
Lerror
/*
Radix
in
range
*/
ja
.
Lerror
#
Radix
in
range
.
L148
:
.
L148
:
movl
%
esi
,%
eax
/*
Test
if
zero
(
for
easy
loop
)
*/
movl
%
esi
,%
eax
#
Test
if
zero
(
for
easy
loop
)
orl
%
ebp
,%
eax
orl
%
ebp
,%
eax
jne
.
L150
jne
.
L150
movb
$
48
,(%
edi
)
movb
$
48
,(%
edi
)
incl
%
edi
incl
%
edi
jmp
.
L164
jmp
.
L164
.
p2align
4
,,
7
.
align
4
.
L150
:
.
L150
:
leal
92
(%
esp
),%
ecx
/*
End
of
buffer
*/
leal
92
(%
esp
),%
ecx
#
End
of
buffer
jmp
.
L155
jmp
.
L155
.
p2align
4
,,
7
.
align
4
.
L153
:
.
L153
:
/
*
val
is
stored
in
in
ebp
:
esi
*/
#
val
is
stored
in
in
ebp
:
esi
movl
%
ebp
,%
eax
/*
High
part
of
value
*/
movl
%
ebp
,%
eax
#
High
part
of
value
xorl
%
edx
,%
edx
xorl
%
edx
,%
edx
divl
%
ebx
divl
%
ebx
movl
%
eax
,%
ebp
movl
%
eax
,%
ebp
movl
%
esi
,%
eax
movl
%
esi
,%
eax
divl
%
ebx
divl
%
ebx
movl
%
eax
,%
esi
/*
quotent
in
ebp
:
esi
*/
movl
%
eax
,%
esi
#
quotent
in
ebp
:
esi
movb
_dig_vec
(%
edx
),%
al
/*
al
is
faster
than
dl
*/
movb
_dig_vec
(%
edx
),%
al
#
al
is
faster
than
dl
decl
%
ecx
decl
%
ecx
movb
%
al
,(%
ecx
)
/*
store
value
in
buff
*/
movb
%
al
,(%
ecx
)
#
store
value
in
buff
.
p2align
4
,,
7
.
align
4
.
L155
:
.
L155
:
testl
%
ebp
,%
ebp
testl
%
ebp
,%
ebp
ja
.
L153
ja
.
L153
testl
%
esi
,%
esi
/*
rest
value
*/
testl
%
esi
,%
esi
#
rest
value
jl
.
L153
jl
.
L153
je
.
L160
/*
Ready
*/
je
.
L160
#
Ready
movl
%
esi
,%
eax
movl
%
esi
,%
eax
movl
$
_dig_vec
,%
ebp
movl
$
_dig_vec
,%
ebp
.
p2align
4
,,
7
.
align
4
.
L154
:
/
*
Do
rest
with
integer
precision
*/
.
L154
:
#
Do
rest
with
integer
precision
cltd
cltd
divl
%
ebx
divl
%
ebx
decl
%
ecx
decl
%
ecx
movb
(%
edx
,%
ebp
),%
dl
/*
bh
is
always
zero
as
ebx
=
radix
<
36
*/
movb
(%
edx
,%
ebp
),%
dl
#
bh
is
always
zero
as
ebx
=
radix
<
36
testl
%
eax
,%
eax
testl
%
eax
,%
eax
movb
%
dl
,(%
ecx
)
movb
%
dl
,(%
ecx
)
jne
.
L154
jne
.
L154
.
L160
:
.
L160
:
movl
%
ecx
,%
esi
movl
%
ecx
,%
esi
leal
92
(%
esp
),%
ecx
/*
End
of
buffer
*/
leal
92
(%
esp
),%
ecx
#
End
of
buffer
subl
%
esi
,%
ecx
subl
%
esi
,%
ecx
rep
rep
movsb
movsb
.
L164
:
.
L164
:
movl
%
edi
,%
eax
/*
Pointer
to
end
null
*/
movl
%
edi
,%
eax
#
Pointer
to
end
null
movb
$
0
,(%
edi
)
/*
Store
the
end
null
*/
movb
$
0
,(%
edi
)
#
Store
the
end
null
.
L165
:
.
L165
:
popl
%
ebx
popl
%
ebx
...
@@ -126,7 +126,7 @@ longlong2str:
...
@@ -126,7 +126,7 @@ longlong2str:
ret
ret
.
Lerror
:
.
Lerror
:
xorl
%
eax
,%
eax
/*
Wrong
radix
*/
xorl
%
eax
,%
eax
#
Wrong
radix
jmp
.
L165
jmp
.
L165
.
Lfe3
:
.
Lfe3
:
...
...
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