From fdee1cbbb43a668f50bc6496dae125786e78536b Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 28 Apr 2004 14:19:02 +0200 Subject: bug#3556 - soundex --- mysys/mf_soundex.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mysys') diff --git a/mysys/mf_soundex.c b/mysys/mf_soundex.c index 6409caa356d..9fe54ffafa0 100644 --- a/mysys/mf_soundex.c +++ b/mysys/mf_soundex.c @@ -51,7 +51,7 @@ void soundex(register my_string out_pntr, my_string in_pntr, if (remove_garbage) { - while (*in_pntr && isspace(*in_pntr)) /* Skipp pre-space */ + while (*in_pntr && !isalpha(*in_pntr)) in_pntr++; } *out_pntr++ = toupper(*in_pntr); /* Copy first letter */ @@ -97,7 +97,7 @@ static char get_scode(char **ptr, pbool remove_garbage) ch=toupper(**ptr); if (ch < 'A' || ch > 'Z') { - if (isalpha(ch)) /* If exetended alfa (country spec) */ + if (isalpha(ch)) /* If extended alpha (country spec) */ return '0'; /* threat as vokal */ return 0; /* Can't map */ } -- cgit v1.2.1 From ad3d7a210df918b1f01e55f08fb15e7f95eb11c6 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 28 Apr 2004 15:33:03 +0200 Subject: bug#3529 - my_getopt doesn't process short OPT_ARG options correctly cleanup --- mysys/my_getopt.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'mysys') diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c index 8e1276990c0..d304b5076f9 100644 --- a/mysys/my_getopt.c +++ b/mysys/my_getopt.c @@ -32,7 +32,7 @@ static longlong getopt_ll(char *arg, const struct my_option *optp, int *err); static ulonglong getopt_ull(char *arg, const struct my_option *optp, int *err); static void init_variables(const struct my_option *options); -static int setval(const struct my_option *opts, char *argument, +static int setval(const struct my_option *opts,char *argument, my_bool set_maximum_value); /* @@ -315,8 +315,8 @@ int handle_options(int *argc, char ***argv, { if (!optend) /* No argument -> enable option */ *((my_bool*) optp->value)= (my_bool) 1; - else /* If argument differs from 0, enable option, else disable */ - *((my_bool*) optp->value)= (my_bool) atoi(optend) != 0; + else + argument= optend; } } else if (optp->arg_type == REQUIRED_ARG && !optend) @@ -362,18 +362,24 @@ int handle_options(int *argc, char ***argv, /* This is in effect a jump out of the outer loop */ optend= (char*) " "; } - else if (optp->arg_type == REQUIRED_ARG) + else { /* Check if there are more arguments after this one */ - if (!*++pos) + if (!pos[1]) { - if (my_getopt_print_errors) - fprintf(stderr, - "%s: option '-%c' requires an argument\n", - progname, optp->id); - return EXIT_ARGUMENT_REQUIRED; + if (optp->var_type == GET_BOOL && optp->arg_type == OPT_ARG) + { + *((my_bool*) optp->value)= (my_bool) 1; + get_one_option(optp->id, optp, argument); + continue; + } + if (my_getopt_print_errors) + fprintf(stderr, + "%s: option '-%c' requires an argument\n", + progname, optp->id); + return EXIT_ARGUMENT_REQUIRED; } - argument= *pos; + argument= *++pos; (*argc)--; /* the other loop will break, because *optend + 1 == 0 */ } @@ -445,6 +451,9 @@ static int setval(const struct my_option *opts, char *argument, return EXIT_NO_PTR_TO_VARIABLE; switch (opts->var_type) { + case GET_BOOL: /* If argument differs from 0, enable option, else disable */ + *((my_bool*) result_pos)= (my_bool) atoi(argument) != 0; + break; case GET_INT: case GET_UINT: /* fall through */ *((int*) result_pos)= (int) getopt_ll(argument, opts, &err); -- cgit v1.2.1 From 1175b48555a51c1d4c9dd8f1fe26506cfa85380a Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 30 Apr 2004 22:52:08 +0200 Subject: followup - error fixed --- mysys/my_getopt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'mysys') diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c index d304b5076f9..3d216ed7aa0 100644 --- a/mysys/my_getopt.c +++ b/mysys/my_getopt.c @@ -367,9 +367,10 @@ int handle_options(int *argc, char ***argv, /* Check if there are more arguments after this one */ if (!pos[1]) { - if (optp->var_type == GET_BOOL && optp->arg_type == OPT_ARG) + if (optp->arg_type == OPT_ARG) { - *((my_bool*) optp->value)= (my_bool) 1; + if (optp->var_type == GET_BOOL) + *((my_bool*) optp->value)= (my_bool) 1; get_one_option(optp->id, optp, argument); continue; } -- cgit v1.2.1 From d3f1288044e609cdc1275b9357eed348bef48819 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 30 Apr 2004 23:12:37 +0200 Subject: better followup fix for my_getopt (Argh!) --- mysys/my_getopt.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'mysys') diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c index 3d216ed7aa0..da7c0ebd1d2 100644 --- a/mysys/my_getopt.c +++ b/mysys/my_getopt.c @@ -364,16 +364,16 @@ int handle_options(int *argc, char ***argv, } else { + if (optp->arg_type == OPT_ARG) + { + if (optp->var_type == GET_BOOL) + *((my_bool*) optp->value)= (my_bool) 1; + get_one_option(optp->id, optp, argument); + continue; + } /* Check if there are more arguments after this one */ if (!pos[1]) { - if (optp->arg_type == OPT_ARG) - { - if (optp->var_type == GET_BOOL) - *((my_bool*) optp->value)= (my_bool) 1; - get_one_option(optp->id, optp, argument); - continue; - } if (my_getopt_print_errors) fprintf(stderr, "%s: option '-%c' requires an argument\n", -- cgit v1.2.1