diff options
author | Alexander Nozdrin <alik@sun.com> | 2009-12-12 23:38:59 +0300 |
---|---|---|
committer | Alexander Nozdrin <alik@sun.com> | 2009-12-12 23:38:59 +0300 |
commit | bc2d4e620ac81824b2e30bf8a1c92e164717b2e1 (patch) | |
tree | 2a2432e481d124691d9fa4b39d8a192264178bd1 /extra/comp_err.c | |
parent | bd1f8f5bfaf9748ca445401687cca97a89e0dfee (diff) | |
parent | 69cfd5c8ecd20bca0e651efcbb8b5affc24c1af4 (diff) | |
download | mariadb-git-bc2d4e620ac81824b2e30bf8a1c92e164717b2e1.tar.gz |
Manual merge from mysql-trunk-merge.
Conflicts:
- extra/comp_err.c
- mysql-test/collections/default.experimental
- mysql-test/r/archive.result
- mysql-test/r/select.result
- mysql-test/suite/binlog/r/binlog_unsafe.result
- mysql-test/suite/binlog/t/binlog_unsafe.test
- mysql-test/suite/rpl/t/disabled.def
- mysql-test/t/archive.test
- mysql-test/t/select.test
- sql/item.cc
- sql/item.h
- sql/item_timefunc.cc
- sql/sql_base.cc
- sql/sql_delete.cc
- sql/sql_load.cc
- sql/sql_partition.cc
- sql/sql_table.cc
- storage/innobase/handler/ha_innodb.cc
- vio/vio.c
Diffstat (limited to 'extra/comp_err.c')
-rw-r--r-- | extra/comp_err.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/extra/comp_err.c b/extra/comp_err.c index 4bcd4c74a1d..0b894dae477 100644 --- a/extra/comp_err.c +++ b/extra/comp_err.c @@ -660,7 +660,7 @@ static ha_checksum checksum_format_specifier(const char* msg) case 'u': case 'x': case 's': - chksum= my_checksum(chksum, start, (uint) (p - start)); + chksum= my_checksum(chksum, start, (uint) (p + 1 - start)); start= 0; /* Not in format specifier anymore */ break; @@ -1030,8 +1030,10 @@ static char *parse_text_line(char *pos) { int i, nr; char *row= pos; + size_t len; DBUG_ENTER("parse_text_line"); + len= strlen (pos); while (*pos) { if (*pos == '\\') @@ -1039,11 +1041,11 @@ static char *parse_text_line(char *pos) switch (*++pos) { case '\\': case '"': - (void) strmov(pos - 1, pos); + (void) memmove (pos - 1, pos, len - (row - pos)); break; case 'n': pos[-1]= '\n'; - (void) strmov(pos, pos + 1); + (void) memmove (pos, pos + 1, len - (row - pos)); break; default: if (*pos >= '0' && *pos < '8') @@ -1053,10 +1055,10 @@ static char *parse_text_line(char *pos) nr= nr * 8 + (*(pos++) - '0'); pos -= i; pos[-1]= nr; - (void) strmov(pos, pos + i); + (void) memmove (pos, pos + i, len - (row - pos)); } else if (*pos) - (void) strmov(pos - 1, pos); /* Remove '\' */ + (void) memmove (pos - 1, pos, len - (row - pos)); /* Remove '\' */ } } else |