summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorunknown <bar@mysql.com>2005-10-20 11:12:34 +0500
committerunknown <bar@mysql.com>2005-10-20 11:12:34 +0500
commitb488e98747ffb25a7efac1b4bff43049cffad9de (patch)
tree2aa03882d1e2394198bacc0cbeb3bcb7ce8ba3aa /mysys
parent3d53c870d379e86cdfe3498cde843258fad52bb5 (diff)
parentf4911002726902f44cb7ebfa7487e0b84cf1b896 (diff)
downloadmariadb-git-b488e98747ffb25a7efac1b4bff43049cffad9de.tar.gz
Merge mysql.com:/usr/home/bar/mysql-4.1
into mysql.com:/usr/home/bar/mysql-5.0 mysys/charset.c: Auto merged
Diffstat (limited to 'mysys')
-rw-r--r--mysys/charset.c31
-rw-r--r--mysys/my_lib.c15
2 files changed, 32 insertions, 14 deletions
diff --git a/mysys/charset.c b/mysys/charset.c
index e61d08cbc33..64b15fab0c2 100644
--- a/mysys/charset.c
+++ b/mysys/charset.c
@@ -38,6 +38,22 @@ my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2)
}
+static uint
+get_collation_number_internal(const char *name)
+{
+ CHARSET_INFO **cs;
+ for (cs= all_charsets;
+ cs < all_charsets+array_elements(all_charsets)-1 ;
+ cs++)
+ {
+ if ( cs[0] && cs[0]->name &&
+ !my_strcasecmp(&my_charset_latin1, cs[0]->name, name))
+ return cs[0]->number;
+ }
+ return 0;
+}
+
+
static my_bool init_state_maps(CHARSET_INFO *cs)
{
uint i;
@@ -189,7 +205,8 @@ static my_bool simple_cs_is_full(CHARSET_INFO *cs)
static int add_collation(CHARSET_INFO *cs)
{
- if (cs->name && (cs->number || (cs->number=get_collation_number(cs->name))))
+ if (cs->name && (cs->number ||
+ (cs->number=get_collation_number_internal(cs->name))))
{
if (!all_charsets[cs->number])
{
@@ -419,18 +436,8 @@ void free_charsets(void)
uint get_collation_number(const char *name)
{
- CHARSET_INFO **cs;
init_available_charsets(MYF(0));
-
- for (cs= all_charsets;
- cs < all_charsets+array_elements(all_charsets)-1 ;
- cs++)
- {
- if ( cs[0] && cs[0]->name &&
- !my_strcasecmp(&my_charset_latin1, cs[0]->name, name))
- return cs[0]->number;
- }
- return 0; /* this mimics find_type() */
+ return get_collation_number_internal(name);
}
diff --git a/mysys/my_lib.c b/mysys/my_lib.c
index c3b0b57e549..1908c70f407 100644
--- a/mysys/my_lib.c
+++ b/mysys/my_lib.c
@@ -427,6 +427,18 @@ MY_DIR *my_dir(const char *path, myf MyFlags)
do
{
#ifdef __BORLANDC__
+ attrib= find.ff_attrib;
+#else
+ attrib= find.attrib;
+ /*
+ Do not show hidden and system files which Windows sometimes create.
+ Note. Because Borland's findfirst() is called with the third
+ argument = 0 hidden/system files are excluded from the search.
+ */
+ if (attrib & (_A_HIDDEN | _A_SYSTEM))
+ continue;
+#endif
+#ifdef __BORLANDC__
if (!(finfo.name= strdup_root(names_storage, find.ff_name)))
goto error;
#else
@@ -442,11 +454,10 @@ MY_DIR *my_dir(const char *path, myf MyFlags)
bzero(finfo.mystat, sizeof(MY_STAT));
#ifdef __BORLANDC__
finfo.mystat->st_size=find.ff_fsize;
- mode=MY_S_IREAD; attrib=find.ff_attrib;
#else
finfo.mystat->st_size=find.size;
- mode=MY_S_IREAD; attrib=find.attrib;
#endif
+ mode=MY_S_IREAD;
if (!(attrib & _A_RDONLY))
mode|=MY_S_IWRITE;
if (attrib & _A_SUBDIR)