diff options
author | pem@mysql.com <> | 2004-02-10 18:44:02 +0100 |
---|---|---|
committer | pem@mysql.com <> | 2004-02-10 18:44:02 +0100 |
commit | c8585f3283816dea04c28774ef87537521b6aa80 (patch) | |
tree | f04786f8a211a4c03eab547b7332792201289ac1 /mysys | |
parent | 5344528b0034f0254d4c72b203c5888f1c8526c2 (diff) | |
parent | 9de20058342fa7387071a3d70291a26db2e210c0 (diff) | |
download | mariadb-git-c8585f3283816dea04c28774ef87537521b6aa80.tar.gz |
Merge 4.1 into 5.0.
Diffstat (limited to 'mysys')
-rw-r--r-- | mysys/charset.c | 29 | ||||
-rw-r--r-- | mysys/default.c | 5 | ||||
-rw-r--r-- | mysys/mf_iocache.c | 6 | ||||
-rw-r--r-- | mysys/mf_pack.c | 2 | ||||
-rw-r--r-- | mysys/mf_wcomp.c | 2 | ||||
-rw-r--r-- | mysys/my_getopt.c | 29 | ||||
-rw-r--r-- | mysys/my_new.cc | 4 | ||||
-rw-r--r-- | mysys/typelib.c | 2 |
8 files changed, 54 insertions, 25 deletions
diff --git a/mysys/charset.c b/mysys/charset.c index 1fe926a51d6..5bf0ea972a5 100644 --- a/mysys/charset.c +++ b/mysys/charset.c @@ -131,7 +131,8 @@ static void simple_cs_init_functions(CHARSET_INFO *cs) cs->coll= &my_collation_8bit_simple_ci_handler; cs->cset= &my_charset_8bit_handler; - cs->mbmaxlen = 1; + cs->mbminlen= 1; + cs->mbmaxlen= 1; } @@ -273,6 +274,7 @@ static int simple_cs_copy_data(CHARSET_INFO *to, CHARSET_INFO *from) if (create_fromuni(to)) goto err; } + to->mbminlen= 1; to->mbmaxlen= 1; return 0; @@ -357,7 +359,7 @@ static int add_collation(CHARSET_INFO *cs) } -#define MAX_BUF 1024*16 +#define MY_MAX_ALLOWED_BUF 1024*1024 #define MY_CHARSET_INDEX "Index.xml" const char *charsets_dir= NULL; @@ -369,16 +371,19 @@ static my_bool my_read_charset_file(const char *filename, myf myflags) char *buf; int fd; uint len; + MY_STAT stat_info; - if (!(buf= (char *)my_malloc(MAX_BUF,myflags))) - return FALSE; + if (!my_stat(filename, &stat_info, MYF(MY_WME)) || + ((len= (uint)stat_info.st_size) > MY_MAX_ALLOWED_BUF) || + !(buf= (char *)my_malloc(len,myflags))) + return TRUE; if ((fd=my_open(filename,O_RDONLY,myflags)) < 0) { my_free(buf,myflags); return TRUE; } - len=read(fd,buf,MAX_BUF); + len=read(fd,buf,len); my_close(fd,myflags); if (my_parse_charset_xml(buf,len,add_collation)) @@ -532,14 +537,14 @@ static CHARSET_INFO *get_internal_charset(uint cs_number, myf flags) while we may changing the cs_info_table */ pthread_mutex_lock(&THR_LOCK_charset); - - cs= all_charsets[cs_number]; - - if (cs && !(cs->state & MY_CS_COMPILED) && !(cs->state & MY_CS_LOADED)) + if ((cs= all_charsets[cs_number])) { - strxmov(get_charsets_dir(buf), cs->csname, ".xml", NullS); - my_read_charset_file(buf,flags); - cs= (cs->state & MY_CS_LOADED) ? cs : NULL; + if (!(cs->state & MY_CS_COMPILED) && !(cs->state & MY_CS_LOADED)) + { + strxmov(get_charsets_dir(buf), cs->csname, ".xml", NullS); + my_read_charset_file(buf,flags); + } + cs= (cs->state & MY_CS_AVAILABLE) ? cs : NULL; } pthread_mutex_unlock(&THR_LOCK_charset); return cs; diff --git a/mysys/default.c b/mysys/default.c index 3a751eb4e29..a01ed4dd39f 100644 --- a/mysys/default.c +++ b/mysys/default.c @@ -224,7 +224,7 @@ int load_defaults(const char *conf_file, const char **groups, if (*argc >= 2 && !strcmp(argv[0][1],"--print-defaults")) { found_print_defaults=1; - --*argc; ++*argv; /* skipp argument */ + --*argc; ++*argv; /* skip argument */ } if (*argc) @@ -461,7 +461,8 @@ static char *remove_end_comment(char *ptr) else if (quote == *ptr) quote= 0; } - if (!quote && *ptr == '#') /* We are not inside a comment */ + /* We are not inside a comment */ + if (!quote && *ptr == '#') { *ptr= 0; return ptr; diff --git a/mysys/mf_iocache.c b/mysys/mf_iocache.c index b5c80d9482f..f64dc5abf2d 100644 --- a/mysys/mf_iocache.c +++ b/mysys/mf_iocache.c @@ -829,7 +829,7 @@ int _my_b_async_read(register IO_CACHE *info, byte *Buffer, uint Count) next_pos_in_file=(info->pos_in_file+ (uint) (info->read_end - info->request_pos)); - /* If reading large blocks, or first read or read with skipp */ + /* If reading large blocks, or first read or read with skip */ if (Count) { if (next_pos_in_file == info->end_of_file) @@ -1175,8 +1175,8 @@ int _flush_io_cache(IO_CACHE *info, int need_append_buffer_lock) info IO_CACHE Handle to free NOTES - It's currently safe to call this if one has called io_cache_init() - on the 'info' object, even if io_cache_init() failed. + It's currently safe to call this if one has called init_io_cache() + on the 'info' object, even if init_io_cache() failed. This function is also safe to call twice with the same handle. RETURN diff --git a/mysys/mf_pack.c b/mysys/mf_pack.c index e2e811fe89a..638bbaf7baf 100644 --- a/mysys/mf_pack.c +++ b/mysys/mf_pack.c @@ -146,7 +146,7 @@ uint cleanup_dirname(register my_string to, const char *from) if (*pos == FN_LIBCHAR) { if ((uint) (pos-start) > length && bcmp(pos-length,parent,length) == 0) - { /* If .../../; skipp prev */ + { /* If .../../; skip prev */ pos-=length; if (pos != start) { /* not /../ */ diff --git a/mysys/mf_wcomp.c b/mysys/mf_wcomp.c index c2a103688f2..1a01388a3db 100644 --- a/mysys/mf_wcomp.c +++ b/mysys/mf_wcomp.c @@ -49,7 +49,7 @@ int wild_compare(register const char *str, register const char *wildstr, if (*wildstr++ == wild_one) { if (! *str || (str_is_pattern && *str == wild_many)) - DBUG_RETURN(1); /* One char; skipp */ + DBUG_RETURN(1); /* One char; skip */ if (*str++ == wild_prefix && str_is_pattern && *str) str++; } diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c index 76f8f6bf852..b278eaa36e1 100644 --- a/mysys/my_getopt.c +++ b/mysys/my_getopt.c @@ -285,6 +285,19 @@ int handle_options(int *argc, char ***argv, return EXIT_AMBIGUOUS_OPTION; } } + if ((optp->var_type & GET_TYPE_MASK) == GET_DISABLED) + { + if (my_getopt_print_errors) + fprintf(stderr, + "%s: %s: Option '%s' used, but is disabled\n", my_progname, + option_is_loose ? "WARNING" : "ERROR", opt_str); + if (option_is_loose) + { + (*argc)--; + continue; + } + return EXIT_OPTION_DISABLED; + } if (must_be_var && (optp->var_type & GET_TYPE_MASK) == GET_NO_ARG) { if (my_getopt_print_errors) @@ -358,6 +371,14 @@ int handle_options(int *argc, char ***argv, { /* Option recognized. Find next what to do with it */ opt_found= 1; + if ((optp->var_type & GET_TYPE_MASK) == GET_DISABLED) + { + if (my_getopt_print_errors) + fprintf(stderr, + "%s: ERROR: Option '-%c' used, but is disabled\n", + my_progname, optp->id); + return EXIT_OPTION_DISABLED; + } if ((optp->var_type & GET_TYPE_MASK) == GET_BOOL && optp->arg_type == NO_ARG) { @@ -550,7 +571,7 @@ static int findopt(char *optpat, uint length, const struct my_option **opt_res, char **ffname) { - int count; + uint count; struct my_option *opt= (struct my_option *) *opt_res; for (count= 0; opt->name; opt++) @@ -562,7 +583,8 @@ static int findopt(char *optpat, uint length, *ffname= (char *) opt->name; /* We only need to know one prev */ if (!opt->name[length]) /* Exact match */ return 1; - count++; + if (!count || strcmp(*ffname, opt->name)) /* Don't count synonyms */ + count++; } } return count; @@ -882,7 +904,8 @@ void my_print_variables(const struct my_option *options) longlong2str(*((ulonglong*) value), buff, 10); printf("%s\n", buff); break; - default: /* dummy default to avoid compiler warnings */ + default: + printf("(Disabled)\n"); break; } } diff --git a/mysys/my_new.cc b/mysys/my_new.cc index 5f2da90bbd1..ec27502d8aa 100644 --- a/mysys/my_new.cc +++ b/mysys/my_new.cc @@ -19,9 +19,9 @@ with gcc 3.0.x to avoid including libstdc++ */ -#include "mysys_priv.h" +#ifdef USE_MYSYS_NEW -#ifdef USE_MYSYS_NEW +#include "mysys_priv.h" void *operator new (size_t sz) { diff --git a/mysys/typelib.c b/mysys/typelib.c index e4eda5bd675..9aaf97d143f 100644 --- a/mysys/typelib.c +++ b/mysys/typelib.c @@ -66,7 +66,7 @@ int find_type(my_string x, TYPELIB *typelib, uint full_name) if (! *j) { while (*i == ' ') - i++; /* skipp_end_space */ + i++; /* skip_end_space */ if (! *i) DBUG_RETURN(pos+1); } |