mirror of
https://github.com/MariaDB/server.git
synced 2026-05-06 23:25:34 +02:00
my_getopt:
- some minor bugfixes - made code more readable - support for printing GET_BOOL type options in my_print_variables(), value is either TRUE or FALSE client/mysqlbinlog.cc: Changes in my_getopt my_print_variables() client/mysqlmanager-pwgen.c: Changes in my_getopt my_print_variables() client/mysqlmanagerc.c: Changes in my_getopt my_print_variables() client/mysqltest.c: Changes in my_getopt my_print_variables() myisam/myisamchk.c: Changes in my_getopt my_print_variables() mysys/my_getopt.c: Made code more readable. Fixed bug in my_print_variables(). Added printing for options whether they are enabled or not FALSE / TRUE. This also separates GET_BOOL type options from variables that can actually take values as an argument.
This commit is contained in:
parent
6a97c5912f
commit
ebb98af730
6 changed files with 79 additions and 88 deletions
|
|
@ -125,7 +125,7 @@ static void die(const char* fmt, ...)
|
|||
|
||||
static void print_version()
|
||||
{
|
||||
printf("%s Ver 2.0 for %s at %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
|
||||
printf("%s Ver 2.1 for %s at %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -141,7 +141,6 @@ Dumps a MySQL binary log in a format usable for viewing or for pipeing to\n\
|
|||
the mysql command line client\n\n");
|
||||
printf("Usage: %s [options] log-files\n", my_progname);
|
||||
my_print_help(my_long_options);
|
||||
putchar('\n');
|
||||
my_print_variables(my_long_options);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
#define MANAGER_PWGEN_VERSION "1.1"
|
||||
#define MANAGER_PWGEN_VERSION "1.2"
|
||||
|
||||
#include <my_global.h>
|
||||
#include <m_ctype.h>
|
||||
|
|
@ -72,7 +72,6 @@ void usage()
|
|||
printf("Generates a password file to be used by mysqltest.\n\n");
|
||||
printf("Usage: %s [OPTIONS]\n", my_progname);
|
||||
my_print_help(my_long_options);
|
||||
putchar('\n');
|
||||
my_print_variables(my_long_options);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
#define MANAGER_CLIENT_VERSION "1.2"
|
||||
#define MANAGER_CLIENT_VERSION "1.3"
|
||||
|
||||
#include <my_global.h>
|
||||
#include <mysql.h>
|
||||
|
|
@ -93,7 +93,7 @@ void usage()
|
|||
printf("Command-line client for MySQL manager daemon.\n\n");
|
||||
printf("Usage: %s [OPTIONS] < command_file\n", my_progname);
|
||||
my_print_help(my_long_options);
|
||||
printf(" --no-defaults Don't read default options from any options file.\n\n");
|
||||
printf(" --no-defaults Don't read default options from any options file.\n");
|
||||
my_print_variables(my_long_options);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
|
||||
**********************************************************************/
|
||||
|
||||
#define MTEST_VERSION "1.20"
|
||||
#define MTEST_VERSION "1.21"
|
||||
|
||||
#include <my_global.h>
|
||||
#include <mysql_embed.h>
|
||||
|
|
@ -1873,7 +1873,7 @@ void usage()
|
|||
printf("Runs a test against the mysql server and compares output with a results file.\n\n");
|
||||
printf("Usage: %s [OPTIONS] [database] < test_file\n", my_progname);
|
||||
my_print_help(my_long_options);
|
||||
printf(" --no-defaults Don't read default options from any options file.\n\n");
|
||||
printf(" --no-defaults Don't read default options from any options file.\n");
|
||||
my_print_variables(my_long_options);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -292,7 +292,7 @@ static struct my_option my_long_options[] =
|
|||
|
||||
static void print_version(void)
|
||||
{
|
||||
printf("%s Ver 2.4 for %s at %s\n", my_progname, SYSTEM_TYPE,
|
||||
printf("%s Ver 2.5 for %s at %s\n", my_progname, SYSTEM_TYPE,
|
||||
MACHINE_TYPE);
|
||||
}
|
||||
|
||||
|
|
@ -380,7 +380,6 @@ static void usage(void)
|
|||
(It may be VERY slow to do a sort the first time!)");
|
||||
|
||||
print_defaults("my", load_default_groups);
|
||||
putchar('\n');
|
||||
my_print_variables(my_long_options);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -283,7 +283,7 @@ int handle_options(int *argc, char ***argv,
|
|||
*/
|
||||
*((my_bool*) optp->value)= (my_bool) (!optend || *optend == '1');
|
||||
(*argc)--;
|
||||
continue;
|
||||
continue; // For GET_BOOL get_one_option() shouldn't be called
|
||||
}
|
||||
argument= optend;
|
||||
}
|
||||
|
|
@ -330,7 +330,7 @@ int handle_options(int *argc, char ***argv,
|
|||
{
|
||||
*((my_bool*) optp->value)= (my_bool) 1;
|
||||
(*argc)--;
|
||||
continue;
|
||||
continue; // For GET_BOOL get_one_option() shouldn't be called
|
||||
}
|
||||
else if (optp->arg_type == REQUIRED_ARG ||
|
||||
optp->arg_type == OPT_ARG)
|
||||
|
|
@ -414,23 +414,33 @@ static int setval (const struct my_option *opts, char *argument,
|
|||
if (!result_pos)
|
||||
return ERR_NO_PTR_TO_VARIABLE;
|
||||
|
||||
if (opts->var_type == GET_INT || opts->var_type == GET_UINT)
|
||||
switch (opts->var_type) {
|
||||
case GET_INT:
|
||||
case GET_UINT: /* fall through */
|
||||
*((int*) result_pos)= (int) getopt_ll(argument, opts, &err);
|
||||
else if (opts->var_type == GET_LONG || opts->var_type == GET_ULONG)
|
||||
break;
|
||||
case GET_LONG:
|
||||
case GET_ULONG: /* fall through */
|
||||
*((long*) result_pos)= (long) getopt_ll(argument, opts, &err);
|
||||
else if (opts->var_type == GET_LL)
|
||||
break;
|
||||
case GET_LL:
|
||||
*((longlong*) result_pos)= getopt_ll(argument, opts, &err);
|
||||
else if (opts->var_type == GET_ULL)
|
||||
break;
|
||||
case GET_ULL:
|
||||
*((ulonglong*) result_pos)= getopt_ull(argument, opts, &err);
|
||||
else if (opts->var_type == GET_STR)
|
||||
break;
|
||||
case GET_STR:
|
||||
*((char**) result_pos)= argument;
|
||||
else if (opts->var_type == GET_STR_ALLOC)
|
||||
{
|
||||
break;
|
||||
case GET_STR_ALLOC:
|
||||
if ((*((char**) result_pos)))
|
||||
my_free((*(char**) result_pos),
|
||||
MYF(MY_WME | MY_FAE));
|
||||
if (!(*((char**) result_pos)= my_strdup(argument, MYF(MY_WME))))
|
||||
return ERR_OUT_OF_MEMORY;
|
||||
break;
|
||||
default: /* dummy default to avoid compiler warnings */
|
||||
break;
|
||||
}
|
||||
if (err)
|
||||
return ERR_UNKNOWN_SUFFIX;
|
||||
|
|
@ -587,27 +597,38 @@ static void init_variables(const struct my_option *options)
|
|||
{
|
||||
if (options->value)
|
||||
{
|
||||
if (options->var_type == GET_INT)
|
||||
*((int*) options->u_max_value)= *((int*) options->value)=
|
||||
(int) options->def_value;
|
||||
else if (options->var_type == GET_UINT)
|
||||
*((uint*) options->u_max_value)= *((uint*) options->value)=
|
||||
(uint) options->def_value;
|
||||
else if (options->var_type == GET_BOOL)
|
||||
switch (options->var_type) {
|
||||
case GET_BOOL:
|
||||
*((my_bool*) options->u_max_value)= *((my_bool*) options->value)=
|
||||
(my_bool) options->def_value;
|
||||
else if (options->var_type == GET_LONG)
|
||||
break;
|
||||
case GET_INT:
|
||||
*((int*) options->u_max_value)= *((int*) options->value)=
|
||||
(int) options->def_value;
|
||||
break;
|
||||
case GET_UINT:
|
||||
*((uint*) options->u_max_value)= *((uint*) options->value)=
|
||||
(uint) options->def_value;
|
||||
break;
|
||||
case GET_LONG:
|
||||
*((long*) options->u_max_value)= *((long*) options->value)=
|
||||
(long) options->def_value;
|
||||
else if (options->var_type == GET_ULONG)
|
||||
break;
|
||||
case GET_ULONG:
|
||||
*((ulong*) options->u_max_value)= *((ulong*) options->value)=
|
||||
(ulong) options->def_value;
|
||||
else if (options->var_type == GET_LL)
|
||||
break;
|
||||
case GET_LL:
|
||||
*((longlong*) options->u_max_value)= *((longlong*) options->value)=
|
||||
(longlong) options->def_value;
|
||||
else if (options->var_type == GET_ULL)
|
||||
break;
|
||||
case GET_ULL:
|
||||
*((ulonglong*) options->u_max_value)= *((ulonglong*) options->value)=
|
||||
(ulonglong) options->def_value;
|
||||
break;
|
||||
default: /* dummy default to avoid compiler warnings */
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -696,8 +717,9 @@ void my_print_variables(const struct my_option *options)
|
|||
char buff[255];
|
||||
const struct my_option *optp;
|
||||
|
||||
printf("Variables (--variable-name=value) Default value\n");
|
||||
printf("--------------------------------- -------------\n");
|
||||
printf("\nVariables (--variable-name=value)\n");
|
||||
printf("and boolean options {FALSE|TRUE} Value (after reading options)\n");
|
||||
printf("--------------------------------- -----------------------------\n");
|
||||
for (optp= options; optp->id; optp++)
|
||||
{
|
||||
if (optp->value)
|
||||
|
|
@ -706,64 +728,36 @@ void my_print_variables(const struct my_option *options)
|
|||
length= strlen(optp->name);
|
||||
for (; length < name_space; length++)
|
||||
putchar(' ');
|
||||
if (optp->var_type == GET_STR || optp->var_type == GET_STR_ALLOC)
|
||||
{
|
||||
if (*((char**) optp->value))
|
||||
printf("%s\n", *((char**) optp->value));
|
||||
else
|
||||
printf("(No default value)\n");
|
||||
}
|
||||
else if (optp->var_type == GET_BOOL)
|
||||
{
|
||||
if (!optp->def_value && !*((my_bool*) optp->value))
|
||||
printf("(No default value)\n");
|
||||
else
|
||||
printf("%d\n", *((my_bool*) optp->value));
|
||||
}
|
||||
else if (optp->var_type == GET_INT)
|
||||
{
|
||||
if (!optp->def_value && !*((int*) optp->value))
|
||||
printf("(No default value)\n");
|
||||
else
|
||||
printf("%d\n", *((int*) optp->value));
|
||||
}
|
||||
else if (optp->var_type == GET_UINT)
|
||||
{
|
||||
if (!optp->def_value && !*((uint*) optp->value))
|
||||
printf("(No default value)\n");
|
||||
else
|
||||
printf("%d\n", *((uint*) optp->value));
|
||||
}
|
||||
else if (optp->var_type == GET_LONG)
|
||||
{
|
||||
if (!optp->def_value && !*((long*) optp->value))
|
||||
printf("(No default value)\n");
|
||||
else
|
||||
printf("%lu\n", *((long*) optp->value));
|
||||
}
|
||||
else if (optp->var_type == GET_ULONG)
|
||||
{
|
||||
if (!optp->def_value && !*((ulong*) optp->value))
|
||||
printf("(No default value)\n");
|
||||
else
|
||||
printf("%lu\n", *((ulong*) optp->value));
|
||||
}
|
||||
else if (optp->var_type == GET_LL)
|
||||
{
|
||||
if (!optp->def_value && !*((longlong*) optp->value))
|
||||
printf("(No default value)\n");
|
||||
else
|
||||
printf("%s\n", llstr(*((longlong*) optp->value), buff));
|
||||
}
|
||||
else if (optp->var_type == GET_ULL)
|
||||
{
|
||||
if (!optp->def_value && !*((ulonglong*) optp->value))
|
||||
printf("(No default value)\n");
|
||||
else
|
||||
{
|
||||
longlong2str(*((ulonglong*) optp->value), buff, 10);
|
||||
printf("%s\n", buff);
|
||||
}
|
||||
switch (optp->var_type) {
|
||||
case GET_STR:
|
||||
case GET_STR_ALLOC: /* fall through */
|
||||
printf("%s\n", *((char**) optp->value) ? *((char**) optp->value) :
|
||||
"(No default value)");
|
||||
break;
|
||||
case GET_BOOL:
|
||||
printf("%s\n", *((my_bool*) optp->value) ? "TRUE" : "FALSE");
|
||||
break;
|
||||
case GET_INT:
|
||||
printf("%d\n", *((int*) optp->value));
|
||||
break;
|
||||
case GET_UINT:
|
||||
printf("%d\n", *((uint*) optp->value));
|
||||
break;
|
||||
case GET_LONG:
|
||||
printf("%lu\n", *((long*) optp->value));
|
||||
break;
|
||||
case GET_ULONG:
|
||||
printf("%lu\n", *((ulong*) optp->value));
|
||||
break;
|
||||
case GET_LL:
|
||||
printf("%s\n", llstr(*((longlong*) optp->value), buff));
|
||||
break;
|
||||
case GET_ULL:
|
||||
longlong2str(*((ulonglong*) optp->value), buff, 10);
|
||||
printf("%s\n", buff);
|
||||
break;
|
||||
default: /* dummy default to avoid compiler warnings */
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue