Commit a90b2f30 authored by unknown's avatar unknown

Added useful exit error code for programs using my_getopt in case

of an error in option handling. This can sometimes be useful in
scripts.

Changed some exit code names and corresponding numbers.

Fixed a bug in mysqld.cc, in replication related options.

Added a global flag in my_getopt, which can be set by any program
that is using my_getopt, which tells whether the client should
print the error message itself, or whether my_getopt should do it.
The default is that my_getopt will print the error messages.


client/mysql.cc:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
client/mysqladmin.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
client/mysqlbinlog.cc:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
client/mysqlcheck.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
client/mysqldump.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
client/mysqlimport.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
client/mysqlmanager-pwgen.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
client/mysqlmanagerc.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
client/mysqlshow.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
client/mysqltest.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
client/thread_test.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
extra/my_print_defaults.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
extra/mysql_install.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
extra/perror.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
extra/resolve_stack_dump.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
extra/resolveip.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
include/my_getopt.h:
  Added global (flag) variable which tells my_getopt whether to
  print errors or just silently exit with proper error code.
include/mysys_err.h:
  Changed exit code names and corresponding numbers.
isam/isamchk.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
isam/pack_isam.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
myisam/ft_dump.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
myisam/ft_eval.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
myisam/ft_test1.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
myisam/mi_test1.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
myisam/myisamchk.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
myisam/myisampack.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
mysys/my_getopt.c:
  Changed exit code names and corresponding numbers. Added a flag
  for checking whether my_getopt should print the error message,
  or whether it should be printed by the client itself.
sql/gen_lex_hash.cc:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
sql/mysqld.cc:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
  
  Fixed a bug when compiling in non-debug mode, some replication
  related options were not enabled while they should be. This made
  'make test' to fail in rpl000010 when --with-debug was not used.
tools/mysqlmanager.c:
  Added useful exit error code for programs using my_getopt in case
  of an error in option handling. This can sometimes be useful in
  scripts.
parent bb4cf4c2
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
#include <signal.h> #include <signal.h>
#include <violite.h> #include <violite.h>
const char *VER= "12.7"; const char *VER= "12.8";
/* Don't try to make a nice table if the data is too big */ /* Don't try to make a nice table if the data is too big */
#define MAX_COLUMN_LENGTH 1024 #define MAX_COLUMN_LENGTH 1024
...@@ -739,11 +739,7 @@ static int get_options(int argc, char **argv) ...@@ -739,11 +739,7 @@ static int get_options(int argc, char **argv)
strmov(default_pager, pager); strmov(default_pager, pager);
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (status.batch) /* disable pager and outfile in this case */ if (status.batch) /* disable pager and outfile in this case */
{ {
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include <my_pthread.h> /* because of signal() */ #include <my_pthread.h> /* because of signal() */
#endif #endif
#define ADMIN_VERSION "8.34" #define ADMIN_VERSION "8.35"
#define MAX_MYSQL_VAR 64 #define MAX_MYSQL_VAR 64
#define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */ #define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */
#define MAX_TRUNC_LENGTH 3 #define MAX_TRUNC_LENGTH 3
...@@ -247,11 +247,8 @@ int main(int argc,char *argv[]) ...@@ -247,11 +247,8 @@ int main(int argc,char *argv[])
free_defaults() free_defaults()
*/ */
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (argc == 0) if (argc == 0)
{ {
usage(); usage();
......
...@@ -124,7 +124,7 @@ static void die(const char* fmt, ...) ...@@ -124,7 +124,7 @@ static void die(const char* fmt, ...)
static void print_version() static void print_version()
{ {
printf("%s Ver 2.2 for %s at %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE); printf("%s Ver 2.3 for %s at %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
} }
...@@ -223,11 +223,8 @@ static int parse_args(int *argc, char*** argv) ...@@ -223,11 +223,8 @@ static int parse_args(int *argc, char*** argv)
result_file = stdout; result_file = stdout;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return 0; return 0;
} }
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
/* By Jani Tolonen, 2001-04-20, MySQL Development Team */ /* By Jani Tolonen, 2001-04-20, MySQL Development Team */
#define CHECK_VERSION "2.3" #define CHECK_VERSION "2.4"
#include "client_priv.h" #include "client_priv.h"
#include <m_ctype.h> #include <m_ctype.h>
...@@ -265,11 +265,7 @@ static int get_options(int *argc, char ***argv) ...@@ -265,11 +265,7 @@ static int get_options(int *argc, char ***argv)
load_defaults("my", load_default_groups, argc, argv); load_defaults("my", load_default_groups, argc, argv);
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (!what_to_do) if (!what_to_do)
{ {
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
** and adapted to mysqldump 05/11/01 by Jani Tolonen ** and adapted to mysqldump 05/11/01 by Jani Tolonen
*/ */
#define DUMP_VERSION "9.05" #define DUMP_VERSION "9.06"
#include <my_global.h> #include <my_global.h>
#include <my_sys.h> #include <my_sys.h>
...@@ -360,11 +360,7 @@ static int get_options(int *argc, char ***argv) ...@@ -360,11 +360,7 @@ static int get_options(int *argc, char ***argv)
load_defaults("my",load_default_groups,argc,argv); load_defaults("my",load_default_groups,argc,argv);
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (opt_delayed) if (opt_delayed)
opt_lock=0; /* Can't have lock with delayed */ opt_lock=0; /* Can't have lock with delayed */
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
** * * ** * *
** ************************* ** *************************
*/ */
#define IMPORT_VERSION "3.3" #define IMPORT_VERSION "3.4"
#include "client_priv.h" #include "client_priv.h"
#include "mysql_version.h" #include "mysql_version.h"
...@@ -204,11 +204,8 @@ static int get_options(int *argc, char ***argv) ...@@ -204,11 +204,8 @@ static int get_options(int *argc, char ***argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (enclosed && opt_enclosed) if (enclosed && opt_enclosed)
{ {
fprintf(stderr, "You can't use ..enclosed.. and ..optionally-enclosed.. at the same time.\n"); fprintf(stderr, "You can't use ..enclosed.. and ..optionally-enclosed.. at the same time.\n");
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#define MANAGER_PWGEN_VERSION "1.3" #define MANAGER_PWGEN_VERSION "1.4"
#include <my_global.h> #include <my_global.h>
#include <m_ctype.h> #include <m_ctype.h>
...@@ -96,11 +96,8 @@ int parse_args(int argc, char** argv) ...@@ -96,11 +96,8 @@ int parse_args(int argc, char** argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return 0; return 0;
} }
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#define MANAGER_CLIENT_VERSION "1.3" #define MANAGER_CLIENT_VERSION "1.4"
#include <my_global.h> #include <my_global.h>
#include <mysql.h> #include <mysql.h>
...@@ -132,12 +132,10 @@ int parse_args(int argc, char **argv) ...@@ -132,12 +132,10 @@ int parse_args(int argc, char **argv)
load_defaults("my",load_default_groups,&argc,&argv); load_defaults("my",load_default_groups,&argc,&argv);
default_argv= argv; default_argv= argv;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return 0; return 0;
} }
int main(int argc, char** argv) int main(int argc, char** argv)
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
/* Show databases, tables or columns */ /* Show databases, tables or columns */
#define SHOW_VERSION "9.3" #define SHOW_VERSION "9.4"
#include <my_global.h> #include <my_global.h>
#include "client_priv.h" #include "client_priv.h"
...@@ -241,11 +241,7 @@ get_options(int *argc,char ***argv) ...@@ -241,11 +241,7 @@ get_options(int *argc,char ***argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (tty_password) if (tty_password)
opt_password=get_tty_password(NullS); opt_password=get_tty_password(NullS);
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
**********************************************************************/ **********************************************************************/
#define MTEST_VERSION "1.22" #define MTEST_VERSION "1.23"
#include <my_global.h> #include <my_global.h>
#include <mysql_embed.h> #include <mysql_embed.h>
...@@ -1957,11 +1957,7 @@ int parse_args(int argc, char **argv) ...@@ -1957,11 +1957,7 @@ int parse_args(int argc, char **argv)
default_argv= argv; default_argv= argv;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (argc > 1) if (argc > 1)
{ {
......
...@@ -173,11 +173,7 @@ static void get_options(int argc, char **argv) ...@@ -173,11 +173,7 @@ static void get_options(int argc, char **argv)
load_defaults("my",load_default_groups,&argc,&argv); load_defaults("my",load_default_groups,&argc,&argv);
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
free_defaults(argv); free_defaults(argv);
if (tty_password) if (tty_password)
......
...@@ -55,7 +55,7 @@ static struct my_option my_long_options[] = ...@@ -55,7 +55,7 @@ static struct my_option my_long_options[] =
static void usage(my_bool version) static void usage(my_bool version)
{ {
printf("%s Ver 1.4 for %s at %s\n",my_progname,SYSTEM_TYPE, printf("%s Ver 1.5 for %s at %s\n",my_progname,SYSTEM_TYPE,
MACHINE_TYPE); MACHINE_TYPE);
if (version) if (version)
return; return;
...@@ -92,11 +92,8 @@ static int get_options(int *argc,char ***argv) ...@@ -92,11 +92,8 @@ static int get_options(int *argc,char ***argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (*argc < 1) if (*argc < 1)
{ {
usage(0); usage(0);
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
/* Install or upgrade MySQL server. By Sasha Pachev <sasha@mysql.com> /* Install or upgrade MySQL server. By Sasha Pachev <sasha@mysql.com>
*/ */
#define INSTALL_VERSION "1.1" #define INSTALL_VERSION "1.2"
#define DONT_USE_RAID #define DONT_USE_RAID
#include <my_global.h> #include <my_global.h>
...@@ -219,11 +219,8 @@ static int parse_args(int argc, char **argv) ...@@ -219,11 +219,8 @@ static int parse_args(int argc, char **argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return 0; return 0;
} }
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
/* Return error-text for system error messages and nisam messages */ /* Return error-text for system error messages and nisam messages */
#define PERROR_VERSION "2.8" #define PERROR_VERSION "2.9"
#include <my_global.h> #include <my_global.h>
#include <my_sys.h> #include <my_sys.h>
...@@ -141,11 +141,8 @@ static int get_options(int *argc,char ***argv) ...@@ -141,11 +141,8 @@ static int get_options(int *argc,char ***argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (!*argc && !print_all_codes) if (!*argc && !print_all_codes)
{ {
usage(); usage();
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#define INIT_SYM_TABLE 4096 #define INIT_SYM_TABLE 4096
#define INC_SYM_TABLE 4096 #define INC_SYM_TABLE 4096
#define MAX_SYM_SIZE 128 #define MAX_SYM_SIZE 128
#define DUMP_VERSION "1.3" #define DUMP_VERSION "1.4"
#define HEX_INVALID (uchar)255 #define HEX_INVALID (uchar)255
typedef ulong my_long_addr_t ; /* at some point, we need to fix configure typedef ulong my_long_addr_t ; /* at some point, we need to fix configure
...@@ -121,11 +121,8 @@ static int parse_args(int argc, char **argv) ...@@ -121,11 +121,8 @@ static int parse_args(int argc, char **argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
/* /*
The following code is to make the command compatible with the old The following code is to make the command compatible with the old
version that required one to use the -n and -s options version that required one to use the -n and -s options
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
/* Resolves IP's to hostname and hostnames to IP's */ /* Resolves IP's to hostname and hostnames to IP's */
#define RESOLVE_VERSION "2.1" #define RESOLVE_VERSION "2.2"
#include <my_global.h> #include <my_global.h>
#include <m_ctype.h> #include <m_ctype.h>
...@@ -94,11 +94,8 @@ static int get_options(int *argc,char ***argv) ...@@ -94,11 +94,8 @@ static int get_options(int *argc,char ***argv)
/* load_defaults("my",load_default_groups,argc,argv); */ /* load_defaults("my",load_default_groups,argc,argv); */
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (*argc == 0) if (*argc == 0)
{ {
usage(); usage();
......
...@@ -39,6 +39,7 @@ struct my_option ...@@ -39,6 +39,7 @@ struct my_option
}; };
extern char *disabled_my_option; extern char *disabled_my_option;
extern my_bool my_getopt_print_errors;
extern int handle_options (int *argc, char ***argv, extern int handle_options (int *argc, char ***argv,
const struct my_option *longopts, const struct my_option *longopts,
......
...@@ -54,7 +54,23 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */ ...@@ -54,7 +54,23 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */
#define EE_CANT_SYMLINK 25 #define EE_CANT_SYMLINK 25
#define EE_REALPATH 26 #define EE_REALPATH 26
/* exit codes for all MySQL programs */
#define EXIT_UNSPECIFIED_ERROR 1
#define EXIT_UNKNOWN_OPTION 2
#define EXIT_AMBIGUOUS_OPTION 3
#define EXIT_NO_ARGUMENT_ALLOWED 4
#define EXIT_ARGUMENT_REQUIRED 5
#define EXIT_VAR_PREFIX_NOT_UNIQUE 6
#define EXIT_UNKNOWN_VARIABLE 7
#define EXIT_OUT_OF_MEMORY 8
#define EXIT_UNKNOWN_SUFFIX 9
#define EXIT_NO_PTR_TO_VARIABLE 10
#define EXIT_CANNOT_CONNECT_TO_SERVICE 11
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
...@@ -335,7 +335,7 @@ static struct my_option my_long_options[] = ...@@ -335,7 +335,7 @@ static struct my_option my_long_options[] =
static void print_version(void) static void print_version(void)
{ {
printf("%s Ver 6.00 for %s at %s\n", my_progname, SYSTEM_TYPE, printf("%s Ver 6.01 for %s at %s\n", my_progname, SYSTEM_TYPE,
MACHINE_TYPE); MACHINE_TYPE);
} }
...@@ -665,11 +665,7 @@ static void get_options(register int *argc, register char ***argv) ...@@ -665,11 +665,7 @@ static void get_options(register int *argc, register char ***argv)
testflag|=T_WRITE_LOOP; testflag|=T_WRITE_LOOP;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (*argc == 0) if (*argc == 0)
{ {
......
...@@ -278,7 +278,7 @@ static struct my_option my_long_options[] = ...@@ -278,7 +278,7 @@ static struct my_option my_long_options[] =
static void print_version(void) static void print_version(void)
{ {
printf("%s Ver 5.9 for %s on %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE); printf("%s Ver 5.10 for %s on %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
} }
static void usage(void) static void usage(void)
...@@ -353,11 +353,8 @@ static void get_options(int *argc, char ***argv) ...@@ -353,11 +353,8 @@ static void get_options(int *argc, char ***argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
my_progname= argv[0][0]; my_progname= argv[0][0];
if (isatty(fileno(stdout))) if (isatty(fileno(stdout)))
write_loop=1; write_loop=1;
......
...@@ -245,11 +245,7 @@ static void get_options(int argc, char *argv[]) ...@@ -245,11 +245,7 @@ static void get_options(int argc, char *argv[])
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
} /* get options */ } /* get options */
......
...@@ -179,11 +179,8 @@ static void get_options(int argc, char *argv[]) ...@@ -179,11 +179,8 @@ static void get_options(int argc, char *argv[])
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if(!(d_file=argv[optind])) print_error(1,"No d_file"); if(!(d_file=argv[optind])) print_error(1,"No d_file");
if(!(df=fopen(d_file,"r"))) if(!(df=fopen(d_file,"r")))
print_error(1,"fopen(%s)",d_file); print_error(1,"fopen(%s)",d_file);
......
...@@ -284,11 +284,7 @@ static void get_options(int argc,char *argv[]) ...@@ -284,11 +284,7 @@ static void get_options(int argc,char *argv[])
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return; return;
} /* get options */ } /* get options */
......
...@@ -623,7 +623,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -623,7 +623,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
key_cacheing=1; key_cacheing=1;
break; break;
case 'V': case 'V':
printf("test1 Ver 1.1 \n"); printf("test1 Ver 1.2 \n");
exit(0); exit(0);
case '#': case '#':
DEBUGGER_ON; DEBUGGER_ON;
...@@ -644,11 +644,8 @@ static void get_options(int argc, char *argv[]) ...@@ -644,11 +644,8 @@ static void get_options(int argc, char *argv[])
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return; return;
} /* get options */ } /* get options */
......
...@@ -292,7 +292,7 @@ static struct my_option my_long_options[] = ...@@ -292,7 +292,7 @@ static struct my_option my_long_options[] =
static void print_version(void) static void print_version(void)
{ {
printf("%s Ver 2.5 for %s at %s\n", my_progname, SYSTEM_TYPE, printf("%s Ver 2.6 for %s at %s\n", my_progname, SYSTEM_TYPE,
MACHINE_TYPE); MACHINE_TYPE);
} }
...@@ -615,13 +615,15 @@ get_one_option(int optid, ...@@ -615,13 +615,15 @@ get_one_option(int optid,
static void get_options(register int *argc,register char ***argv) static void get_options(register int *argc,register char ***argv)
{ {
int ho_error;
load_defaults("my", load_default_groups, argc, argv); load_defaults("my", load_default_groups, argc, argv);
default_argv= *argv; default_argv= *argv;
if (isatty(fileno(stdout))) if (isatty(fileno(stdout)))
check_param.testflag|=T_WRITE_LOOP; check_param.testflag|=T_WRITE_LOOP;
if (handle_options(argc, argv, my_long_options, get_one_option)) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
exit(1); exit(ho_error);
/* If using repair, then update checksum if one uses --update-state */ /* If using repair, then update checksum if one uses --update-state */
if ((check_param.testflag & T_UPDATE_STATE) && if ((check_param.testflag & T_UPDATE_STATE) &&
......
...@@ -269,7 +269,7 @@ static struct my_option my_long_options[] = ...@@ -269,7 +269,7 @@ static struct my_option my_long_options[] =
static void print_version(void) static void print_version(void)
{ {
printf("%s Ver 1.20 for %s on %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE); printf("%s Ver 1.21 for %s on %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
} }
static void usage(void) static void usage(void)
...@@ -347,11 +347,8 @@ static void get_options(int *argc,char ***argv) ...@@ -347,11 +347,8 @@ static void get_options(int *argc,char ***argv)
write_loop=1; write_loop=1;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (!*argc) if (!*argc)
{ {
usage(); usage();
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <my_getopt.h> #include <my_getopt.h>
#include <assert.h> #include <assert.h>
#include <my_sys.h> #include <my_sys.h>
#include <mysys_err.h>
static int findopt (char *optpat, uint length, static int findopt (char *optpat, uint length,
const struct my_option **opt_res, const struct my_option **opt_res,
...@@ -42,17 +43,11 @@ static const char *special_opt_prefix[]= ...@@ -42,17 +43,11 @@ static const char *special_opt_prefix[]=
char *disabled_my_option= (char*) "0"; char *disabled_my_option= (char*) "0";
/* Return error values from handle_options */ /* This is a flag that can be set in client programs. 0 means that
my_getopt will not print error messages, but the client should do
it by itself */
#define ERR_UNKNOWN_OPTION 1 my_bool my_getopt_print_errors= 1;
#define ERR_AMBIGUOUS_OPTION 2
#define ERR_NO_ARGUMENT_ALLOWED 3
#define ERR_ARGUMENT_REQUIRED 4
#define ERR_VAR_PREFIX_NOT_UNIQUE 5
#define ERR_UNKNOWN_VARIABLE 6
#define ERR_OUT_OF_MEMORY 7
#define ERR_UNKNOWN_SUFFIX 8
#define ERR_NO_PTR_TO_VARIABLE 9
/* /*
...@@ -106,9 +101,10 @@ int handle_options(int *argc, char ***argv, ...@@ -106,9 +101,10 @@ int handle_options(int *argc, char ***argv,
/* the argument must be in next argv */ /* the argument must be in next argv */
if (!*++pos) if (!*++pos)
{ {
if (my_getopt_print_errors)
fprintf(stderr, "%s: Option '-O' requires an argument\n", fprintf(stderr, "%s: Option '-O' requires an argument\n",
progname); progname);
return ERR_ARGUMENT_REQUIRED; return EXIT_ARGUMENT_REQUIRED;
} }
cur_arg= *pos; cur_arg= *pos;
(*argc)--; (*argc)--;
...@@ -128,10 +124,11 @@ int handle_options(int *argc, char ***argv, ...@@ -128,10 +124,11 @@ int handle_options(int *argc, char ***argv,
cur_arg+= 14; cur_arg+= 14;
if (!*cur_arg) if (!*cur_arg)
{ {
if (my_getopt_print_errors)
fprintf(stderr, fprintf(stderr,
"%s: Option '--set-variable' requires an argument\n", "%s: Option '--set-variable' requires an argument\n",
progname); progname);
return ERR_ARGUMENT_REQUIRED; return EXIT_ARGUMENT_REQUIRED;
} }
} }
else if (cur_arg[14]) /* garbage, or another option. break out */ else if (cur_arg[14]) /* garbage, or another option. break out */
...@@ -141,10 +138,11 @@ int handle_options(int *argc, char ***argv, ...@@ -141,10 +138,11 @@ int handle_options(int *argc, char ***argv,
/* the argument must be in next argv */ /* the argument must be in next argv */
if (!*++pos) if (!*++pos)
{ {
if (my_getopt_print_errors)
fprintf(stderr, fprintf(stderr,
"%s: Option '--set-variable' requires an argument\n", "%s: Option '--set-variable' requires an argument\n",
progname); progname);
return ERR_ARGUMENT_REQUIRED; return EXIT_ARGUMENT_REQUIRED;
} }
cur_arg= *pos; cur_arg= *pos;
(*argc)--; (*argc)--;
...@@ -200,11 +198,12 @@ int handle_options(int *argc, char ***argv, ...@@ -200,11 +198,12 @@ int handle_options(int *argc, char ***argv,
{ {
if (opt_found > 1) if (opt_found > 1)
{ {
if (my_getopt_print_errors)
fprintf(stderr, fprintf(stderr,
"%s: ambiguous option '--%s-%s' (--%s-%s)\n", "%s: ambiguous option '--%s-%s' (--%s-%s)\n",
progname, special_opt_prefix[i], cur_arg, progname, special_opt_prefix[i], cur_arg,
special_opt_prefix[i], prev_found); special_opt_prefix[i], prev_found);
return ERR_AMBIGUOUS_OPTION; return EXIT_AMBIGUOUS_OPTION;
} }
if (i < DISABLE_OPTION_COUNT) if (i < DISABLE_OPTION_COUNT)
optend= disabled_my_option; optend= disabled_my_option;
...@@ -224,19 +223,21 @@ int handle_options(int *argc, char ***argv, ...@@ -224,19 +223,21 @@ int handle_options(int *argc, char ***argv,
{ {
if (must_be_var) if (must_be_var)
{ {
if (my_getopt_print_errors)
fprintf(stderr, fprintf(stderr,
"%s: %s: unknown variable '%s'\n", progname, "%s: %s: unknown variable '%s'\n", progname,
option_is_loose ? "WARNING" : "ERROR", cur_arg); option_is_loose ? "WARNING" : "ERROR", cur_arg);
if (!option_is_loose) if (!option_is_loose)
return ERR_UNKNOWN_VARIABLE; return EXIT_UNKNOWN_VARIABLE;
} }
else else
{ {
if (my_getopt_print_errors)
fprintf(stderr, fprintf(stderr,
"%s: %s: unknown option '--%s'\n", progname, "%s: %s: unknown option '--%s'\n", progname,
option_is_loose ? "WARNING" : "ERROR", cur_arg); option_is_loose ? "WARNING" : "ERROR", cur_arg);
if (!option_is_loose) if (!option_is_loose)
return ERR_UNKNOWN_OPTION; return EXIT_UNKNOWN_OPTION;
} }
if (option_is_loose) if (option_is_loose)
{ {
...@@ -249,30 +250,34 @@ int handle_options(int *argc, char ***argv, ...@@ -249,30 +250,34 @@ int handle_options(int *argc, char ***argv,
{ {
if (must_be_var) if (must_be_var)
{ {
if (my_getopt_print_errors)
fprintf(stderr, "%s: variable prefix '%s' is not unique\n", fprintf(stderr, "%s: variable prefix '%s' is not unique\n",
progname, cur_arg); progname, cur_arg);
return ERR_VAR_PREFIX_NOT_UNIQUE; return EXIT_VAR_PREFIX_NOT_UNIQUE;
} }
else else
{ {
if (my_getopt_print_errors)
fprintf(stderr, "%s: ambiguous option '--%s' (%s, %s)\n", fprintf(stderr, "%s: ambiguous option '--%s' (%s, %s)\n",
progname, cur_arg, prev_found, optp->name); progname, cur_arg, prev_found, optp->name);
return ERR_AMBIGUOUS_OPTION; return EXIT_AMBIGUOUS_OPTION;
} }
} }
if (must_be_var && (!optp->value || optp->var_type == GET_BOOL)) if (must_be_var && (!optp->value || optp->var_type == GET_BOOL))
{ {
if (my_getopt_print_errors)
fprintf(stderr, "%s: option '%s' cannot take an argument\n", fprintf(stderr, "%s: option '%s' cannot take an argument\n",
progname, optp->name); progname, optp->name);
return ERR_NO_ARGUMENT_ALLOWED; return EXIT_NO_ARGUMENT_ALLOWED;
} }
if (optp->arg_type == NO_ARG) if (optp->arg_type == NO_ARG)
{ {
if (optend && !special_used) if (optend && !special_used)
{ {
if (my_getopt_print_errors)
fprintf(stderr, "%s: option '--%s' cannot take an argument\n", fprintf(stderr, "%s: option '--%s' cannot take an argument\n",
progname, optp->name); progname, optp->name);
return ERR_NO_ARGUMENT_ALLOWED; return EXIT_NO_ARGUMENT_ALLOWED;
} }
if (optp->var_type == GET_BOOL) if (optp->var_type == GET_BOOL)
{ {
...@@ -306,9 +311,10 @@ int handle_options(int *argc, char ***argv, ...@@ -306,9 +311,10 @@ int handle_options(int *argc, char ***argv,
/* Check if there are more arguments after this one */ /* Check if there are more arguments after this one */
if (!*++pos) if (!*++pos)
{ {
if (my_getopt_print_errors)
fprintf(stderr, "%s: option '--%s' requires an argument\n", fprintf(stderr, "%s: option '--%s' requires an argument\n",
progname, optp->name); progname, optp->name);
return ERR_ARGUMENT_REQUIRED; return EXIT_ARGUMENT_REQUIRED;
} }
argument= *pos; argument= *pos;
(*argc)--; (*argc)--;
...@@ -347,9 +353,11 @@ int handle_options(int *argc, char ***argv, ...@@ -347,9 +353,11 @@ int handle_options(int *argc, char ***argv,
/* Check if there are more arguments after this one */ /* Check if there are more arguments after this one */
if (!*++pos) if (!*++pos)
{ {
fprintf(stderr, "%s: option '-%c' requires an argument\n", if (my_getopt_print_errors)
fprintf(stderr,
"%s: option '-%c' requires an argument\n",
progname, optp->id); progname, optp->id);
return ERR_ARGUMENT_REQUIRED; return EXIT_ARGUMENT_REQUIRED;
} }
argument= *pos; argument= *pos;
(*argc)--; (*argc)--;
...@@ -369,9 +377,10 @@ int handle_options(int *argc, char ***argv, ...@@ -369,9 +377,10 @@ int handle_options(int *argc, char ***argv,
} }
if (!opt_found) if (!opt_found)
{ {
if (my_getopt_print_errors)
fprintf(stderr, fprintf(stderr,
"%s: unknown option '-%c'\n", progname, *cur_arg); "%s: unknown option '-%c'\n", progname, *cur_arg);
return ERR_UNKNOWN_OPTION; return EXIT_UNKNOWN_OPTION;
} }
} }
(*argc)--; /* option handled (short), decrease argument count */ (*argc)--; /* option handled (short), decrease argument count */
...@@ -412,7 +421,7 @@ static int setval (const struct my_option *opts, char *argument, ...@@ -412,7 +421,7 @@ static int setval (const struct my_option *opts, char *argument,
opts->u_max_value : opts->value; opts->u_max_value : opts->value;
if (!result_pos) if (!result_pos)
return ERR_NO_PTR_TO_VARIABLE; return EXIT_NO_PTR_TO_VARIABLE;
switch (opts->var_type) { switch (opts->var_type) {
case GET_INT: case GET_INT:
...@@ -437,13 +446,13 @@ static int setval (const struct my_option *opts, char *argument, ...@@ -437,13 +446,13 @@ static int setval (const struct my_option *opts, char *argument,
my_free((*(char**) result_pos), my_free((*(char**) result_pos),
MYF(MY_WME | MY_FAE)); MYF(MY_WME | MY_FAE));
if (!(*((char**) result_pos)= my_strdup(argument, MYF(MY_WME)))) if (!(*((char**) result_pos)= my_strdup(argument, MYF(MY_WME))))
return ERR_OUT_OF_MEMORY; return EXIT_OUT_OF_MEMORY;
break; break;
default: /* dummy default to avoid compiler warnings */ default: /* dummy default to avoid compiler warnings */
break; break;
} }
if (err) if (err)
return ERR_UNKNOWN_SUFFIX; return EXIT_UNKNOWN_SUFFIX;
} }
return 0; return 0;
} }
......
...@@ -356,7 +356,7 @@ void print_arrays() ...@@ -356,7 +356,7 @@ void print_arrays()
static void usage(int version) static void usage(int version)
{ {
printf("%s Ver 3.4 Distrib %s, for %s (%s)\n", printf("%s Ver 3.5 Distrib %s, for %s (%s)\n",
my_progname, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE); my_progname, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE);
if (version) if (version)
return; return;
...@@ -394,11 +394,8 @@ static int get_options(int argc, char **argv) ...@@ -394,11 +394,8 @@ static int get_options(int argc, char **argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (argc >= 1) if (argc >= 1)
{ {
usage(0); usage(0);
......
...@@ -3053,7 +3053,6 @@ static struct my_option my_long_options[] = ...@@ -3053,7 +3053,6 @@ static struct my_option my_long_options[] =
*/ */
{"memlock", OPT_MEMLOCK, "Lock mysqld in memory", (gptr*) &locked_in_memory, {"memlock", OPT_MEMLOCK, "Lock mysqld in memory", (gptr*) &locked_in_memory,
(gptr*) &locked_in_memory, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, (gptr*) &locked_in_memory, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
#ifndef DBUG_OFF
{"disconnect-slave-event-count", OPT_DISCONNECT_SLAVE_EVENT_COUNT, {"disconnect-slave-event-count", OPT_DISCONNECT_SLAVE_EVENT_COUNT,
"Undocumented: Meant for debugging and testing of replication", "Undocumented: Meant for debugging and testing of replication",
(gptr*) &disconnect_slave_event_count, (gptr*) &disconnect_slave_event_count,
...@@ -3070,7 +3069,6 @@ static struct my_option my_long_options[] = ...@@ -3070,7 +3069,6 @@ static struct my_option my_long_options[] =
(gptr*) &opt_sporadic_binlog_dump_fail, (gptr*) &opt_sporadic_binlog_dump_fail,
(gptr*) &opt_sporadic_binlog_dump_fail, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, (gptr*) &opt_sporadic_binlog_dump_fail, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
0}, 0},
#endif
{"safemalloc-mem-limit", OPT_SAFEMALLOC_MEM_LIMIT, {"safemalloc-mem-limit", OPT_SAFEMALLOC_MEM_LIMIT,
"Simulate memory shortage when compiled with the --with-debug=full option", "Simulate memory shortage when compiled with the --with-debug=full option",
0, 0, 0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
...@@ -4421,11 +4419,7 @@ static void get_options(int argc,char **argv) ...@@ -4421,11 +4419,7 @@ static void get_options(int argc,char **argv)
#endif #endif
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
fix_paths(); fix_paths();
default_table_type_name=ha_table_typelib.type_names[default_table_type-1]; default_table_type_name=ha_table_typelib.type_names[default_table_type-1];
......
...@@ -41,8 +41,8 @@ ...@@ -41,8 +41,8 @@
#include <sys/wait.h> #include <sys/wait.h>
#endif #endif
#define MANAGER_VERSION "1.1" #define MANAGER_VERSION "1.2"
#define MANAGER_GREETING "MySQL Server Management Daemon v. 1.0" #define MANAGER_GREETING "MySQL Server Management Daemon v. 1.2"
#define LOG_ERR 1 #define LOG_ERR 1
#define LOG_WARN 2 #define LOG_WARN 2
...@@ -1332,11 +1332,8 @@ static int parse_args(int argc, char **argv) ...@@ -1332,11 +1332,8 @@ static int parse_args(int argc, char **argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment