diff --git a/Docs/manual.texi b/Docs/manual.texi index c1088814f52b7314588805a1a21ad3abc59a36ee..613f0fabc7b8278f31262df2d0b51aa63f34bd52 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -50344,6 +50344,10 @@ each individual 4.0.x release. @itemize @bullet @item +Fixed a bug in my_getopt in handling of special prefixes (--skip-, --enable-). +--skip-external-locking didn't work and the bug may have affected other +similar options. +@item Fixed bug in checking for output file name of the @code{tee} option. @end itemize diff --git a/client/mysql.cc b/client/mysql.cc index 69633d1edce9e94a66cde27945282ea55c8af3b8..05e758dd5bdff887edd147501f8deec5b73c54c1 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -40,7 +40,7 @@ #include <signal.h> #include <violite.h> -const char *VER= "12.12"; +const char *VER= "12.13"; /* Don't try to make a nice table if the data is too big */ #define MAX_COLUMN_LENGTH 1024 @@ -1318,11 +1318,13 @@ com_help (String *buffer __attribute__((unused)), { reg1 int i; - put_info("\nFull documentation of MySQL is available at\nhttp://www.mysql.com/documentation/mysql/bychapter/\n", INFO_INFO); - put_info("For technical support contracts, visit https://order.mysql.com/\n", INFO_INFO); - put_info("MySQL commands:",INFO_INFO); + put_info("\nFor the complete MySQL Manual online visit:\n http://www.mysql.com/documentation\n", INFO_INFO); + put_info("For info on technical support from MySQL developers visit:\n http://www.mysql.com/support\n", INFO_INFO); + put_info("For info on MySQL books, utilities, consultants, etc. visit:\n http://www.mysql.com/portal\n", INFO_INFO); + put_info("List of all MySQL commands:", INFO_INFO); if (!named_cmds) - put_info("Note that all text commands must be first on line and end with ';'",INFO_INFO); + put_info(" (Commands must appear first on line and end with ';')\n", + INFO_INFO); for (i = 0; commands[i].name; i++) { if (commands[i].func) diff --git a/client/mysqlcheck.c b/client/mysqlcheck.c index fdc7b5cf4d75066ab1857a137389318e96f3f27e..150795e81a3759267d9d043efb8f249698a9e244 100644 --- a/client/mysqlcheck.c +++ b/client/mysqlcheck.c @@ -16,7 +16,7 @@ /* By Jani Tolonen, 2001-04-20, MySQL Development Team */ -#define CHECK_VERSION "2.4" +#define CHECK_VERSION "2.4.1" #include "client_priv.h" #include <m_ctype.h> @@ -53,7 +53,7 @@ static struct my_option my_long_options[] = {"analyze", 'a', "Analyze given tables.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, {"all-in-1", '1', - "Instead of making one query for each table, execute all queries in 1 query separately for each database. Table names will be in a comma separeted list.", + "Instead of issuing one query for each table, use one query per database, naming all tables in the database in a comma-separated list.", (gptr*) &opt_all_in_1, (gptr*) &opt_all_in_1, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"auto-repair", OPT_AUTO_REPAIR, @@ -80,7 +80,7 @@ static struct my_option my_long_options[] = {"default-character-set", OPT_DEFAULT_CHARSET, "Set the default character set", (gptr*) &default_charset, (gptr*) &default_charset, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"fast",'F', "Check only tables that hasn't been closed properly", + {"fast",'F', "Check only tables that haven't been closed properly", (gptr*) &opt_fast, (gptr*) &opt_fast, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"force", 'f', "Continue even if we get an sql-error.", @@ -169,7 +169,7 @@ static void usage(void) puts("and you are welcome to modify and redistribute it under the GPL license.\n"); puts("This program can be used to CHECK (-c,-m,-C), REPAIR (-r), ANALYZE (-a)"); puts("or OPTIMIZE (-o) tables. Some of the options (like -e or -q) can be"); - puts("used same time. It works on MyISAM and in some cases on BDB tables."); + puts("used at the same time. It works on MyISAM and in some cases on BDB tables."); puts("Please consult the MySQL manual for latest information about the"); puts("above. The options -c,-r,-a and -o are exclusive to each other, which"); puts("means that the last option will be used, if several was specified.\n"); diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c index 5b86fddbbdb8f180729f291425d2bac38669f964..466b6dd7a309f04ea476237ee62bf5fa3b9b0411 100644 --- a/mysys/my_getopt.c +++ b/mysys/my_getopt.c @@ -210,10 +210,16 @@ int handle_options(int *argc, char ***argv, switch (i) { case OPT_SKIP: case OPT_DISABLE: /* fall through */ - optend= disabled_my_option; + /* + double negation is actually enable again, + for example: --skip-option=0 -> option = TRUE + */ + optend= (optend && *optend == '0' && !(*(optend + 1))) ? + (char*) "1" : disabled_my_option; break; case OPT_ENABLE: - optend= (char*) "1"; + optend= (optend && *optend == '0' && !(*(optend + 1))) ? + disabled_my_option : (char*) "1"; break; case OPT_MAXIMUM: set_maximum_value= 1; @@ -278,7 +284,8 @@ int handle_options(int *argc, char ***argv, } if (optp->arg_type == NO_ARG) { - if (optend && special_used) + // if (optend && special_used) + if (optend && optp->var_type != GET_BOOL) { if (my_getopt_print_errors) fprintf(stderr, "%s: option '--%s' cannot take an argument\n",