summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
Diffstat (limited to 'extra')
-rw-r--r--extra/comp_err.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/extra/comp_err.c b/extra/comp_err.c
index 175dc246f5f..2ec4240392f 100644
--- a/extra/comp_err.c
+++ b/extra/comp_err.c
@@ -42,11 +42,12 @@ static int copy_rows(FILE *to);
int main(int argc,char *argv[])
{
+ uint csnum= 0;
int i,error,files,length;
uchar head[32];
FILE *from,*to;
MY_INIT(argv[0]);
-
+
get_options(&argc,&argv);
error=1;
row_count=files=0;
@@ -70,6 +71,13 @@ int main(int argc,char *argv[])
goto end;
}
+ if (!(csnum= get_charset_number(charset_name, MY_CS_PRIMARY)))
+ {
+ fprintf(stderr,"Unknown character '%s' in '%s'\n",charset_name, *argv);
+ fclose(from);
+ goto end;
+ }
+
if (remember_rows(from,'}') < 0) /* Remember rows */
{
fprintf(stderr,"Can't find textrows in '%s'\n",*argv);
@@ -100,7 +108,8 @@ int main(int argc,char *argv[])
{
int2store(head+10+i+i,file_row_pos[i]);
}
-
+ head[30]= csnum;
+
fseek(to,0l,0);
if (fwrite(head,1,32,to) != 32)
goto end;
@@ -144,7 +153,6 @@ static void get_options(register int *argc,register char **argv[])
printf("%s (Compile errormessage) Ver 1.3\n",progname);
break;
case 'C':
- printf("pos=%s\n", pos+1);
charsets_dir= pos+1;
*(pos--)= '\0';
break;