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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
d9965d31
Commit
d9965d31
authored
Feb 28, 2003
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge work:/my/mysql-4.1 into narttu.mysql.fi:/my/mysql-4.1
parents
b5c46778
2ef62c12
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
75 additions
and
36 deletions
+75
-36
cmd-line-utils/libedit/readline.c
cmd-line-utils/libedit/readline.c
+2
-2
configure.in
configure.in
+1
-0
include/config-win.h
include/config-win.h
+6
-1
include/my_global.h
include/my_global.h
+2
-2
include/my_xml.h
include/my_xml.h
+16
-10
include/thr_lock.h
include/thr_lock.h
+2
-2
mysql-test/Makefile.am
mysql-test/Makefile.am
+3
-1
sql/log_event.cc
sql/log_event.cc
+2
-2
sql/mysqld.cc
sql/mysqld.cc
+2
-0
sql/repl_failsafe.cc
sql/repl_failsafe.cc
+1
-1
sql/slave.cc
sql/slave.cc
+1
-1
sql/sql_class.cc
sql/sql_class.cc
+1
-1
sql/sql_insert.cc
sql/sql_insert.cc
+1
-0
sql/sql_show.cc
sql/sql_show.cc
+1
-4
strings/xml.c
strings/xml.c
+34
-9
No files found.
cmd-line-utils/libedit/readline.c
View file @
d9965d31
...
@@ -1239,7 +1239,7 @@ filename_completion_function(const char *text, int state)
...
@@ -1239,7 +1239,7 @@ filename_completion_function(const char *text, int state)
/* otherwise, get first entry where first */
/* otherwise, get first entry where first */
/* filename_len characters are equal */
/* filename_len characters are equal */
if
(
entry
->
d_name
[
0
]
==
filename
[
0
]
if
(
entry
->
d_name
[
0
]
==
filename
[
0
]
#if
defined(__SVR4) || defined(__linux__)
#if
def HAVE_DIRENT_H
&&
strlen
(
entry
->
d_name
)
>=
filename_len
&&
strlen
(
entry
->
d_name
)
>=
filename_len
#else
#else
&&
entry
->
d_namlen
>=
filename_len
&&
entry
->
d_namlen
>=
filename_len
...
@@ -1252,7 +1252,7 @@ filename_completion_function(const char *text, int state)
...
@@ -1252,7 +1252,7 @@ filename_completion_function(const char *text, int state)
if
(
entry
)
{
/* match found */
if
(
entry
)
{
/* match found */
struct
stat
stbuf
;
struct
stat
stbuf
;
#if
defined(__SVR4) || defined(__linux__)
#if
def HAVE_DIRENT_H
len
=
strlen
(
entry
->
d_name
)
+
len
=
strlen
(
entry
->
d_name
)
+
#else
#else
len
=
entry
->
d_namlen
+
len
=
entry
->
d_namlen
+
...
...
configure.in
View file @
d9965d31
...
@@ -1825,6 +1825,7 @@ AC_CHECK_FUNCS(alarm bmove \
...
@@ -1825,6 +1825,7 @@ AC_CHECK_FUNCS(alarm bmove \
sigset sigthreadmask pthread_sigmask pthread_setprio pthread_setprio_np
\
sigset sigthreadmask pthread_sigmask pthread_setprio pthread_setprio_np
\
pthread_setschedparam pthread_attr_setprio pthread_attr_setschedparam
\
pthread_setschedparam pthread_attr_setprio pthread_attr_setschedparam
\
pthread_attr_create pthread_getsequence_np pthread_attr_setstacksize
\
pthread_attr_create pthread_getsequence_np pthread_attr_setstacksize
\
pthread_attr_getstacksize
\
pthread_condattr_create rwlock_init pthread_rwlock_rdlock
\
pthread_condattr_create rwlock_init pthread_rwlock_rdlock
\
fchmod getpass getpassphrase initgroups mlockall
)
fchmod getpass getpassphrase initgroups mlockall
)
...
...
include/config-win.h
View file @
d9965d31
...
@@ -143,6 +143,11 @@ typedef uint rf_SetTimer;
...
@@ -143,6 +143,11 @@ typedef uint rf_SetTimer;
#define HAVE_NAMED_PIPE
/* We can only create pipes on NT */
#define HAVE_NAMED_PIPE
/* We can only create pipes on NT */
#endif
#endif
/* We need to close files to break connections on shutdown */
#ifndef SIGNAL_WITH_VIO_CLOSE
#define SIGNAL_WITH_VIO_CLOSE
#endif
/* Use all character sets in MySQL */
/* Use all character sets in MySQL */
#define USE_MB 1
#define USE_MB 1
#define USE_MB_IDENT 1
#define USE_MB_IDENT 1
...
@@ -324,4 +329,4 @@ inline double ulonglong2double(ulonglong value)
...
@@ -324,4 +329,4 @@ inline double ulonglong2double(ulonglong value)
#define statistic_increment(V,L) thread_safe_increment((V),(L))
#define statistic_increment(V,L) thread_safe_increment((V),(L))
#define shared_memory_buffer_length 16000
#define shared_memory_buffer_length 16000
#define default_shared_memory_base_name "MYSQL"
;
#define default_shared_memory_base_name "MYSQL"
include/my_global.h
View file @
d9965d31
...
@@ -110,6 +110,7 @@
...
@@ -110,6 +110,7 @@
#define __STDC_EXT__ 1
/* To get large file support on hpux */
#define __STDC_EXT__ 1
/* To get large file support on hpux */
#endif
#endif
#ifdef HPUX11
/*
/*
Fix warnings on HPUX11
Fix warnings on HPUX11
There is something really strange with HPUX11 include files as you get
There is something really strange with HPUX11 include files as you get
...
@@ -117,11 +118,10 @@
...
@@ -117,11 +118,10 @@
do the following:
do the following:
*/
*/
#if !defined(_XOPEN_SOURCE_EXTENDED) && ! defined(__cplusplus)
#if !defined(_XOPEN_SOURCE_EXTENDED) && ! defined(__cplusplus)
#define _XOPEN_SOURCE_EXTENDED
#define _XOPEN_SOURCE_EXTENDED
1
#endif
#endif
/* Fix type of socklen as this is depending on the above define */
/* Fix type of socklen as this is depending on the above define */
#ifdef HPUX11
#undef SOCKET_SIZE_TYPE
#undef SOCKET_SIZE_TYPE
#ifdef _XOPEN_SOURCE_EXTENDED
#ifdef _XOPEN_SOURCE_EXTENDED
#define SOCKET_SIZE_TYPE socklen_t
#define SOCKET_SIZE_TYPE socklen_t
...
...
include/my_xml.h
View file @
d9965d31
...
@@ -37,16 +37,22 @@ typedef struct xml_stack_st
...
@@ -37,16 +37,22 @@ typedef struct xml_stack_st
void
*
user_data
;
void
*
user_data
;
int
(
*
enter
)(
struct
xml_stack_st
*
st
,
const
char
*
val
,
uint
len
);
int
(
*
enter
)(
struct
xml_stack_st
*
st
,
const
char
*
val
,
uint
len
);
int
(
*
value
)(
struct
xml_stack_st
*
st
,
const
char
*
val
,
uint
len
);
int
(
*
value
)(
struct
xml_stack_st
*
st
,
const
char
*
val
,
uint
len
);
int
(
*
leave
)(
struct
xml_stack_st
*
st
,
const
char
*
val
,
uint
len
);
int
(
*
leave
_xml
)(
struct
xml_stack_st
*
st
,
const
char
*
val
,
uint
len
);
}
MY_XML_PARSER
;
}
MY_XML_PARSER
;
void
my_xml_parser_create
(
MY_XML_PARSER
*
st
);
void
my_xml_parser_create
(
MY_XML_PARSER
*
st
);
void
my_xml_parser_free
(
MY_XML_PARSER
*
st
);
void
my_xml_parser_free
(
MY_XML_PARSER
*
st
);
int
my_xml_parse
(
MY_XML_PARSER
*
st
,
const
char
*
str
,
uint
len
);
int
my_xml_parse
(
MY_XML_PARSER
*
st
,
const
char
*
str
,
uint
len
);
void
my_xml_set_value_handler
(
MY_XML_PARSER
*
st
,
int
(
*
)(
MY_XML_PARSER
*
,
const
char
*
,
uint
len
));
void
my_xml_set_value_handler
(
MY_XML_PARSER
*
st
,
int
(
*
)(
MY_XML_PARSER
*
,
void
my_xml_set_enter_handler
(
MY_XML_PARSER
*
st
,
int
(
*
)(
MY_XML_PARSER
*
,
const
char
*
,
uint
len
));
const
char
*
,
void
my_xml_set_leave_handler
(
MY_XML_PARSER
*
st
,
int
(
*
)(
MY_XML_PARSER
*
,
const
char
*
,
uint
len
));
uint
len
));
void
my_xml_set_enter_handler
(
MY_XML_PARSER
*
st
,
int
(
*
)(
MY_XML_PARSER
*
,
const
char
*
,
uint
len
));
void
my_xml_set_leave_handler
(
MY_XML_PARSER
*
st
,
int
(
*
)(
MY_XML_PARSER
*
,
const
char
*
,
uint
len
));
void
my_xml_set_user_data
(
MY_XML_PARSER
*
st
,
void
*
);
void
my_xml_set_user_data
(
MY_XML_PARSER
*
st
,
void
*
);
uint
my_xml_error_pos
(
MY_XML_PARSER
*
st
);
uint
my_xml_error_pos
(
MY_XML_PARSER
*
st
);
...
...
include/thr_lock.h
View file @
d9965d31
...
@@ -43,8 +43,8 @@ enum thr_lock_type { TL_IGNORE=-1,
...
@@ -43,8 +43,8 @@ enum thr_lock_type { TL_IGNORE=-1,
*/
*/
TL_WRITE_ALLOW_WRITE
,
TL_WRITE_ALLOW_WRITE
,
/*
/*
Write lock, but allow other threads to read
/ write
.
Write lock, but allow other threads to read.
Used by ALTER TABLE in MySQL to
mark to
allow readers
Used by ALTER TABLE in MySQL to allow readers
to use the table until ALTER TABLE is finished.
to use the table until ALTER TABLE is finished.
*/
*/
TL_WRITE_ALLOW_READ
,
TL_WRITE_ALLOW_READ
,
...
...
mysql-test/Makefile.am
View file @
d9965d31
...
@@ -27,7 +27,7 @@ CLEANFILES = $(test_SCRIPTS)
...
@@ -27,7 +27,7 @@ CLEANFILES = $(test_SCRIPTS)
dist-hook
:
dist-hook
:
mkdir
-p
$(distdir)
/t
$(distdir)
/r
$(distdir)
/include
\
mkdir
-p
$(distdir)
/t
$(distdir)
/r
$(distdir)
/include
\
$(distdir)
/std_data
$(distdir)
/std_data
$(INSTALL_DATA)
$(srcdir)
/t/
*
.test
$(srcdir)
/t/
*
.opt
$(srcdir)
/t/
*
.sh
$(distdir)
/t
$(INSTALL_DATA)
$(srcdir)
/t/
*
.test
$(srcdir)
/t/
*
.opt
$(srcdir)
/t/
*
.sh
$(
srcdir)
/t/
*
.slave-mi
$(
distdir)
/t
$(INSTALL_DATA)
$(srcdir)
/include/
*
.inc
$(distdir)
/include
$(INSTALL_DATA)
$(srcdir)
/include/
*
.inc
$(distdir)
/include
$(INSTALL_DATA)
$(srcdir)
/r/
*
.result
$(srcdir)
/r/
*
.require
$(distdir)
/r
$(INSTALL_DATA)
$(srcdir)
/r/
*
.result
$(srcdir)
/r/
*
.require
$(distdir)
/r
$(INSTALL_DATA)
$(srcdir)
/std_data/
*
.dat
$(srcdir)
/std_data/
*
.000001
$(distdir)
/std_data
$(INSTALL_DATA)
$(srcdir)
/std_data/
*
.dat
$(srcdir)
/std_data/
*
.000001
$(distdir)
/std_data
...
@@ -41,6 +41,8 @@ install-data-local:
...
@@ -41,6 +41,8 @@ install-data-local:
$(INSTALL_DATA)
$(srcdir)
/README
$(DESTDIR)$(testdir)
$(INSTALL_DATA)
$(srcdir)
/README
$(DESTDIR)$(testdir)
$(INSTALL_DATA)
$(srcdir)
/t/
*
.test
$(DESTDIR)$(testdir)
/t
$(INSTALL_DATA)
$(srcdir)
/t/
*
.test
$(DESTDIR)$(testdir)
/t
$(INSTALL_DATA)
$(srcdir)
/t/
*
.opt
$(DESTDIR)$(testdir)
/t
$(INSTALL_DATA)
$(srcdir)
/t/
*
.opt
$(DESTDIR)$(testdir)
/t
$(INSTALL_DATA)
$(srcdir)
/t/
*
.sh
$(DESTDIR)$(testdir)
/t
$(INSTALL_DATA)
$(srcdir)
/t/
*
.slave-mi
$(DESTDIR)$(testdir)
/t
$(INSTALL_DATA)
$(srcdir)
/r/
*
.result
$(DESTDIR)$(testdir)
/r
$(INSTALL_DATA)
$(srcdir)
/r/
*
.result
$(DESTDIR)$(testdir)
/r
$(INSTALL_DATA)
$(srcdir)
/r/
*
.require
$(DESTDIR)$(testdir)
/r
$(INSTALL_DATA)
$(srcdir)
/r/
*
.require
$(DESTDIR)$(testdir)
/r
$(INSTALL_DATA)
$(srcdir)
/include/
*
.inc
$(DESTDIR)$(testdir)
/include
$(INSTALL_DATA)
$(srcdir)
/include/
*
.inc
$(DESTDIR)$(testdir)
/include
...
...
sql/log_event.cc
View file @
d9965d31
...
@@ -1937,14 +1937,14 @@ int Rand_log_event::write_data(IO_CACHE* file)
...
@@ -1937,14 +1937,14 @@ int Rand_log_event::write_data(IO_CACHE* file)
#ifdef MYSQL_CLIENT
#ifdef MYSQL_CLIENT
void
Rand_log_event
::
print
(
FILE
*
file
,
bool
short_form
,
char
*
last_db
)
void
Rand_log_event
::
print
(
FILE
*
file
,
bool
short_form
,
char
*
last_db
)
{
{
char
llbuff
[
22
];
char
llbuff
[
22
]
,
llbuff2
[
22
]
;
if
(
!
short_form
)
if
(
!
short_form
)
{
{
print_header
(
file
);
print_header
(
file
);
fprintf
(
file
,
"
\t
Rand
\n
"
);
fprintf
(
file
,
"
\t
Rand
\n
"
);
}
}
fprintf
(
file
,
"SET @@RAND_SEED1=%s, @@RAND_SEED2=%s;
\n
"
,
fprintf
(
file
,
"SET @@RAND_SEED1=%s, @@RAND_SEED2=%s;
\n
"
,
llstr
(
seed1
,
llbuff
),
llstr
(
seed2
,
llbuff
));
llstr
(
seed1
,
llbuff
),
llstr
(
seed2
,
llbuff
2
));
fflush
(
file
);
fflush
(
file
);
}
}
#endif // MYSQL_CLIENT
#endif // MYSQL_CLIENT
...
...
sql/mysqld.cc
View file @
d9965d31
...
@@ -2352,6 +2352,7 @@ int main(int argc, char **argv)
...
@@ -2352,6 +2352,7 @@ int main(int argc, char **argv)
if
(
init_thread_environment
())
if
(
init_thread_environment
())
unireg_abort
(
1
);
unireg_abort
(
1
);
pthread_attr_setstacksize
(
&
connection_attrib
,
thread_stack
);
pthread_attr_setstacksize
(
&
connection_attrib
,
thread_stack
);
#ifdef HAVE_PTHREAD_ATTR_GETSTACKSIZE
{
{
/* Retrieve used stack size; Needed for checking stack overflows */
/* Retrieve used stack size; Needed for checking stack overflows */
size_t
stack_size
;
size_t
stack_size
;
...
@@ -2363,6 +2364,7 @@ int main(int argc, char **argv)
...
@@ -2363,6 +2364,7 @@ int main(int argc, char **argv)
thread_stack
=
stack_size
;
thread_stack
=
stack_size
;
}
}
}
}
#endif
(
void
)
thr_setconcurrency
(
concurrency
);
// 10 by default
(
void
)
thr_setconcurrency
(
concurrency
);
// 10 by default
select_thread
=
pthread_self
();
select_thread
=
pthread_self
();
...
...
sql/repl_failsafe.cc
View file @
d9965d31
...
@@ -59,13 +59,13 @@ static int init_failsafe_rpl_thread(THD* thd)
...
@@ -59,13 +59,13 @@ static int init_failsafe_rpl_thread(THD* thd)
{
{
DBUG_ENTER
(
"init_failsafe_rpl_thread"
);
DBUG_ENTER
(
"init_failsafe_rpl_thread"
);
thd
->
system_thread
=
thd
->
bootstrap
=
1
;
thd
->
system_thread
=
thd
->
bootstrap
=
1
;
thd
->
host_or_ip
=
""
;
thd
->
client_capabilities
=
0
;
thd
->
client_capabilities
=
0
;
my_net_init
(
&
thd
->
net
,
0
);
my_net_init
(
&
thd
->
net
,
0
);
thd
->
net
.
read_timeout
=
slave_net_timeout
;
thd
->
net
.
read_timeout
=
slave_net_timeout
;
thd
->
max_client_packet_length
=
thd
->
net
.
max_packet
;
thd
->
max_client_packet_length
=
thd
->
net
.
max_packet
;
thd
->
master_access
=
~
0
;
thd
->
master_access
=
~
0
;
thd
->
priv_user
=
0
;
thd
->
priv_user
=
0
;
thd
->
system_thread
=
1
;
pthread_mutex_lock
(
&
LOCK_thread_count
);
pthread_mutex_lock
(
&
LOCK_thread_count
);
thd
->
thread_id
=
thread_id
++
;
thd
->
thread_id
=
thread_id
++
;
pthread_mutex_unlock
(
&
LOCK_thread_count
);
pthread_mutex_unlock
(
&
LOCK_thread_count
);
...
...
sql/slave.cc
View file @
d9965d31
...
@@ -1863,6 +1863,7 @@ static int init_slave_thread(THD* thd, SLAVE_THD_TYPE thd_type)
...
@@ -1863,6 +1863,7 @@ static int init_slave_thread(THD* thd, SLAVE_THD_TYPE thd_type)
{
{
DBUG_ENTER
(
"init_slave_thread"
);
DBUG_ENTER
(
"init_slave_thread"
);
thd
->
system_thread
=
thd
->
bootstrap
=
1
;
thd
->
system_thread
=
thd
->
bootstrap
=
1
;
thd
->
host_or_ip
=
""
;
thd
->
client_capabilities
=
0
;
thd
->
client_capabilities
=
0
;
my_net_init
(
&
thd
->
net
,
0
);
my_net_init
(
&
thd
->
net
,
0
);
thd
->
net
.
read_timeout
=
slave_net_timeout
;
thd
->
net
.
read_timeout
=
slave_net_timeout
;
...
@@ -1870,7 +1871,6 @@ static int init_slave_thread(THD* thd, SLAVE_THD_TYPE thd_type)
...
@@ -1870,7 +1871,6 @@ static int init_slave_thread(THD* thd, SLAVE_THD_TYPE thd_type)
thd
->
priv_user
=
0
;
thd
->
priv_user
=
0
;
thd
->
slave_thread
=
1
;
thd
->
slave_thread
=
1
;
thd
->
options
=
(((
opt_log_slave_updates
)
?
OPTION_BIN_LOG
:
0
)
|
OPTION_AUTO_IS_NULL
)
;
thd
->
options
=
(((
opt_log_slave_updates
)
?
OPTION_BIN_LOG
:
0
)
|
OPTION_AUTO_IS_NULL
)
;
thd
->
system_thread
=
1
;
thd
->
client_capabilities
=
CLIENT_LOCAL_FILES
;
thd
->
client_capabilities
=
CLIENT_LOCAL_FILES
;
thd
->
real_id
=
pthread_self
();
thd
->
real_id
=
pthread_self
();
pthread_mutex_lock
(
&
LOCK_thread_count
);
pthread_mutex_lock
(
&
LOCK_thread_count
);
...
...
sql/sql_class.cc
View file @
d9965d31
...
@@ -83,7 +83,7 @@ THD::THD():user_time(0), is_fatal_error(0),
...
@@ -83,7 +83,7 @@ THD::THD():user_time(0), is_fatal_error(0),
global_read_lock
(
0
),
bootstrap
(
0
)
global_read_lock
(
0
),
bootstrap
(
0
)
{
{
host
=
user
=
priv_user
=
db
=
query
=
ip
=
0
;
host
=
user
=
priv_user
=
db
=
query
=
ip
=
0
;
host_or_ip
=
"unknown ip
"
;
host_or_ip
=
"connecting host
"
;
locked
=
killed
=
count_cuted_fields
=
some_tables_deleted
=
no_errors
=
password
=
locked
=
killed
=
count_cuted_fields
=
some_tables_deleted
=
no_errors
=
password
=
query_start_used
=
prepare_command
=
0
;
query_start_used
=
prepare_command
=
0
;
db_length
=
query_length
=
col_access
=
0
;
db_length
=
query_length
=
col_access
=
0
;
...
...
sql/sql_insert.cc
View file @
d9965d31
...
@@ -588,6 +588,7 @@ class delayed_insert :public ilink {
...
@@ -588,6 +588,7 @@ class delayed_insert :public ilink {
bzero
((
char
*
)
&
thd
.
net
,
sizeof
(
thd
.
net
));
// Safety
bzero
((
char
*
)
&
thd
.
net
,
sizeof
(
thd
.
net
));
// Safety
thd
.
system_thread
=
1
;
thd
.
system_thread
=
1
;
thd
.
host_or_ip
=
""
;
bzero
((
char
*
)
&
info
,
sizeof
(
info
));
bzero
((
char
*
)
&
info
,
sizeof
(
info
));
pthread_mutex_init
(
&
mutex
,
MY_MUTEX_INIT_FAST
);
pthread_mutex_init
(
&
mutex
,
MY_MUTEX_INIT_FAST
);
pthread_cond_init
(
&
cond
,
NULL
);
pthread_cond_init
(
&
cond
,
NULL
);
...
...
sql/sql_show.cc
View file @
d9965d31
...
@@ -1326,10 +1326,7 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
...
@@ -1326,10 +1326,7 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
thd_info
->
user
=
thd
->
strdup
(
tmp
->
user
?
tmp
->
user
:
thd_info
->
user
=
thd
->
strdup
(
tmp
->
user
?
tmp
->
user
:
(
tmp
->
system_thread
?
(
tmp
->
system_thread
?
"system user"
:
"unauthenticated user"
));
"system user"
:
"unauthenticated user"
));
thd_info
->
host
=
thd
->
strdup
(
tmp
->
host
?
tmp
->
host
:
thd_info
->
host
=
thd
->
strdup
(
tmp
->
host_or_ip
);
(
tmp
->
ip
?
tmp
->
ip
:
(
tmp
->
system_thread
?
"none"
:
"connecting host"
)));
if
((
thd_info
->
db
=
tmp
->
db
))
// Safe test
if
((
thd_info
->
db
=
tmp
->
db
))
// Safe test
thd_info
->
db
=
thd
->
strdup
(
thd_info
->
db
);
thd_info
->
db
=
thd
->
strdup
(
thd_info
->
db
);
thd_info
->
command
=
(
int
)
tmp
->
command
;
thd_info
->
command
=
(
int
)
tmp
->
command
;
...
...
strings/xml.c
View file @
d9965d31
...
@@ -37,6 +37,7 @@ typedef struct xml_attr_st
...
@@ -37,6 +37,7 @@ typedef struct xml_attr_st
const
char
*
end
;
const
char
*
end
;
}
MY_XML_ATTR
;
}
MY_XML_ATTR
;
static
const
char
*
lex2str
(
int
lex
)
static
const
char
*
lex2str
(
int
lex
)
{
{
switch
(
lex
)
switch
(
lex
)
...
@@ -97,7 +98,8 @@ static int my_xml_scan(MY_XML_PARSER *p,MY_XML_ATTR *a)
...
@@ -97,7 +98,8 @@ static int my_xml_scan(MY_XML_PARSER *p,MY_XML_ATTR *a)
else
if
(
(
p
->
cur
[
0
]
==
'"'
)
||
(
p
->
cur
[
0
]
==
'\''
)
)
else
if
(
(
p
->
cur
[
0
]
==
'"'
)
||
(
p
->
cur
[
0
]
==
'\''
)
)
{
{
p
->
cur
++
;
p
->
cur
++
;
for
(
;
(
p
->
cur
<
p
->
end
)
&&
(
p
->
cur
[
0
]
!=
a
->
beg
[
0
]);
p
->
cur
++
);
for
(
;
(
p
->
cur
<
p
->
end
)
&&
(
p
->
cur
[
0
]
!=
a
->
beg
[
0
]);
p
->
cur
++
)
{}
a
->
end
=
p
->
cur
;
a
->
end
=
p
->
cur
;
if
(
a
->
beg
[
0
]
==
p
->
cur
[
0
])
p
->
cur
++
;
if
(
a
->
beg
[
0
]
==
p
->
cur
[
0
])
p
->
cur
++
;
a
->
beg
++
;
a
->
beg
++
;
...
@@ -106,7 +108,10 @@ static int my_xml_scan(MY_XML_PARSER *p,MY_XML_ATTR *a)
...
@@ -106,7 +108,10 @@ static int my_xml_scan(MY_XML_PARSER *p,MY_XML_ATTR *a)
}
}
else
else
{
{
for
(
;
(
p
->
cur
<
p
->
end
)
&&
!
strchr
(
"?'
\"
=/<>
\t\r\n
"
,
p
->
cur
[
0
]);
p
->
cur
++
);
for
(;
(
p
->
cur
<
p
->
end
)
&&
!
strchr
(
"?'
\"
=/<>
\t\r\n
"
,
p
->
cur
[
0
]);
p
->
cur
++
)
{}
a
->
end
=
p
->
cur
;
a
->
end
=
p
->
cur
;
my_xml_norm_text
(
a
);
my_xml_norm_text
(
a
);
lex
=
MY_XML_IDENT
;
lex
=
MY_XML_IDENT
;
...
@@ -145,6 +150,7 @@ static int my_xml_enter(MY_XML_PARSER *st, const char *str, uint len)
...
@@ -145,6 +150,7 @@ static int my_xml_enter(MY_XML_PARSER *st, const char *str, uint len)
return
st
->
enter
?
st
->
enter
(
st
,
st
->
attr
,
st
->
attrend
-
st
->
attr
)
:
MY_XML_OK
;
return
st
->
enter
?
st
->
enter
(
st
,
st
->
attr
,
st
->
attrend
-
st
->
attr
)
:
MY_XML_OK
;
}
}
static
void
mstr
(
char
*
s
,
const
char
*
src
,
uint
l1
,
uint
l2
)
static
void
mstr
(
char
*
s
,
const
char
*
src
,
uint
l1
,
uint
l2
)
{
{
l1
=
l1
<
l2
?
l1
:
l2
;
l1
=
l1
<
l2
?
l1
:
l2
;
...
@@ -152,6 +158,7 @@ static void mstr(char *s,const char *src,uint l1, uint l2)
...
@@ -152,6 +158,7 @@ static void mstr(char *s,const char *src,uint l1, uint l2)
s
[
l1
]
=
'\0'
;
s
[
l1
]
=
'\0'
;
}
}
static
int
my_xml_leave
(
MY_XML_PARSER
*
p
,
const
char
*
str
,
uint
slen
)
static
int
my_xml_leave
(
MY_XML_PARSER
*
p
,
const
char
*
str
,
uint
slen
)
{
{
char
*
e
;
char
*
e
;
...
@@ -172,7 +179,7 @@ static int my_xml_leave(MY_XML_PARSER *p, const char *str, uint slen)
...
@@ -172,7 +179,7 @@ static int my_xml_leave(MY_XML_PARSER *p, const char *str, uint slen)
return
MY_XML_ERROR
;
return
MY_XML_ERROR
;
}
}
rc
=
p
->
leave
?
p
->
leave
(
p
,
p
->
attr
,
p
->
attrend
-
p
->
attr
)
:
MY_XML_OK
;
rc
=
p
->
leave
_xml
?
p
->
leave_xml
(
p
,
p
->
attr
,
p
->
attrend
-
p
->
attr
)
:
MY_XML_OK
;
*
e
=
'\0'
;
*
e
=
'\0'
;
p
->
attrend
=
e
;
p
->
attrend
=
e
;
...
@@ -237,7 +244,8 @@ int my_xml_parse(MY_XML_PARSER *p,const char *str, uint len)
...
@@ -237,7 +244,8 @@ int my_xml_parse(MY_XML_PARSER *p,const char *str, uint len)
}
}
else
else
{
{
sprintf
(
p
->
errstr
,
"3: %s unexpected (ident or '/' wanted)"
,
lex2str
(
lex
));
sprintf
(
p
->
errstr
,
"3: %s unexpected (ident or '/' wanted)"
,
lex2str
(
lex
));
return
MY_XML_ERROR
;
return
MY_XML_ERROR
;
}
}
...
@@ -256,7 +264,8 @@ int my_xml_parse(MY_XML_PARSER *p,const char *str, uint len)
...
@@ -256,7 +264,8 @@ int my_xml_parse(MY_XML_PARSER *p,const char *str, uint len)
}
}
else
else
{
{
sprintf
(
p
->
errstr
,
"4: %s unexpected (ident or string wanted)"
,
lex2str
(
lex
));
sprintf
(
p
->
errstr
,
"4: %s unexpected (ident or string wanted)"
,
lex2str
(
lex
));
return
MY_XML_ERROR
;
return
MY_XML_ERROR
;
}
}
}
}
...
@@ -318,35 +327,47 @@ int my_xml_parse(MY_XML_PARSER *p,const char *str, uint len)
...
@@ -318,35 +327,47 @@ int my_xml_parse(MY_XML_PARSER *p,const char *str, uint len)
return
MY_XML_OK
;
return
MY_XML_OK
;
}
}
void
my_xml_parser_create
(
MY_XML_PARSER
*
p
)
void
my_xml_parser_create
(
MY_XML_PARSER
*
p
)
{
{
bzero
((
void
*
)
p
,
sizeof
(
p
[
0
]));
bzero
((
void
*
)
p
,
sizeof
(
p
[
0
]));
}
}
void
my_xml_parser_free
(
MY_XML_PARSER
*
p
__attribute__
((
unused
)))
void
my_xml_parser_free
(
MY_XML_PARSER
*
p
__attribute__
((
unused
)))
{
{
}
}
void
my_xml_set_value_handler
(
MY_XML_PARSER
*
p
,
int
(
*
action
)(
MY_XML_PARSER
*
p
,
const
char
*
s
,
uint
l
))
void
my_xml_set_value_handler
(
MY_XML_PARSER
*
p
,
int
(
*
action
)(
MY_XML_PARSER
*
p
,
const
char
*
s
,
uint
l
))
{
{
p
->
value
=
action
;
p
->
value
=
action
;
}
}
void
my_xml_set_enter_handler
(
MY_XML_PARSER
*
p
,
int
(
*
action
)(
MY_XML_PARSER
*
p
,
const
char
*
s
,
uint
l
))
void
my_xml_set_enter_handler
(
MY_XML_PARSER
*
p
,
int
(
*
action
)(
MY_XML_PARSER
*
p
,
const
char
*
s
,
uint
l
))
{
{
p
->
enter
=
action
;
p
->
enter
=
action
;
}
}
void
my_xml_set_leave_handler
(
MY_XML_PARSER
*
p
,
int
(
*
action
)(
MY_XML_PARSER
*
p
,
const
char
*
s
,
uint
l
))
void
my_xml_set_leave_handler
(
MY_XML_PARSER
*
p
,
int
(
*
action
)(
MY_XML_PARSER
*
p
,
const
char
*
s
,
uint
l
))
{
{
p
->
leave
=
action
;
p
->
leave
_xml
=
action
;
}
}
void
my_xml_set_user_data
(
MY_XML_PARSER
*
p
,
void
*
user_data
)
void
my_xml_set_user_data
(
MY_XML_PARSER
*
p
,
void
*
user_data
)
{
{
p
->
user_data
=
user_data
;
p
->
user_data
=
user_data
;
}
}
const
char
*
my_xml_error_string
(
MY_XML_PARSER
*
p
)
const
char
*
my_xml_error_string
(
MY_XML_PARSER
*
p
)
{
{
return
p
->
errstr
;
return
p
->
errstr
;
...
@@ -358,8 +379,10 @@ uint my_xml_error_pos(MY_XML_PARSER *p)
...
@@ -358,8 +379,10 @@ uint my_xml_error_pos(MY_XML_PARSER *p)
const
char
*
beg
=
p
->
beg
;
const
char
*
beg
=
p
->
beg
;
const
char
*
s
;
const
char
*
s
;
for
(
s
=
p
->
beg
;
s
<
p
->
cur
;
s
++
)
for
(
s
=
p
->
beg
;
s
<
p
->
cur
;
s
++
)
{
if
(
s
[
0
]
==
'\n'
)
if
(
s
[
0
]
==
'\n'
)
beg
=
s
;
beg
=
s
;
}
return
p
->
cur
-
beg
;
return
p
->
cur
-
beg
;
}
}
...
@@ -368,7 +391,9 @@ uint my_xml_error_lineno(MY_XML_PARSER *p)
...
@@ -368,7 +391,9 @@ uint my_xml_error_lineno(MY_XML_PARSER *p)
uint
res
=
0
;
uint
res
=
0
;
const
char
*
s
;
const
char
*
s
;
for
(
s
=
p
->
beg
;
s
<
p
->
cur
;
s
++
)
for
(
s
=
p
->
beg
;
s
<
p
->
cur
;
s
++
)
{
if
(
s
[
0
]
==
'\n'
)
if
(
s
[
0
]
==
'\n'
)
res
++
;
res
++
;
}
return
res
;
return
res
;
}
}
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