summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorpem@mysql.com <>2004-02-10 18:44:02 +0100
committerpem@mysql.com <>2004-02-10 18:44:02 +0100
commitc8585f3283816dea04c28774ef87537521b6aa80 (patch)
treef04786f8a211a4c03eab547b7332792201289ac1 /mysys
parent5344528b0034f0254d4c72b203c5888f1c8526c2 (diff)
parent9de20058342fa7387071a3d70291a26db2e210c0 (diff)
downloadmariadb-git-c8585f3283816dea04c28774ef87537521b6aa80.tar.gz
Merge 4.1 into 5.0.
Diffstat (limited to 'mysys')
-rw-r--r--mysys/charset.c29
-rw-r--r--mysys/default.c5
-rw-r--r--mysys/mf_iocache.c6
-rw-r--r--mysys/mf_pack.c2
-rw-r--r--mysys/mf_wcomp.c2
-rw-r--r--mysys/my_getopt.c29
-rw-r--r--mysys/my_new.cc4
-rw-r--r--mysys/typelib.c2
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);
}