Loading BitKeeper/etc/logging_ok +1 −0 Original line number Diff line number Diff line Loading @@ -42,3 +42,4 @@ bell@sanja.is.com.ua kaj@work.mysql.com mwagner@cash.mwagner.org tom@basil-firewall.home.com jani@rhols221.adsl.netsonic.fi Docs/manual.texi +21 −21 Original line number Diff line number Diff line Loading @@ -48296,7 +48296,7 @@ Fixed bug with empty expression for boolean fulltext search. @item Fixed core dump bug in updating fulltext key from/to @code{NULL}. @item ODBC compatibility: Added @code{BIT_LENGTH()} ODBC compatibility: Added @code{BIT_LENGTH()}. @item Fixed core dump bug in @code{GROUP BY BINARY column}. @item Loading @@ -48315,7 +48315,7 @@ For more information, read @ref{Cast Functions}. @code{CREATE ... SELECT} on @code{DATE} and @code{TIME} functions now create columns of the expected type. @item Changed order of how keys are created in tables. Changed order in which keys are created in tables. @item Added a new columns @code{Null} and @code{Index_type} to @code{SHOW INDEX}. @end itemize Loading @@ -48330,17 +48330,17 @@ Fixed bug when @code{HANDLER} was used with some unsupported table type. @code{mysqldump} now puts @code{ALTER TABLE table_name DISABLE KEYS} and @code{ALTER TABLE table_name DISABLE KEYS} in the sql dump. @item Added @code{mysql_fix_extensions} script Added @code{mysql_fix_extensions} script. @item Fixed stack overrun problem @code{LOAD DATA FROM MASTER} on OSF1. @item Fixed shutdown problem on HPUX. Fixed shutdown problem on HP-UX. @item Added functions @code{des_encrypt()} and @code{des_decrypt()}. @item Added statement @code{FLUSH DES_KEY_FILE}. @item Added mysqld option @code{--des-key-file}. Added @code{mysqld} option @code{--des-key-file}. @item @code{HEX(string)} now returns the characters in string converted to hexadecimal. Loading @@ -48352,7 +48352,7 @@ Changed @code{SELECT ... IN SHARE MODE} to @item A new query cache to cache results from identical @code{SELECT} queries. @item Fixed core dump bug on 64 bit machines when it got a wrong communication Fixed core dump bug on 64-bit machines when it got an incorrect communication packet. @item @code{MATCH ... AGAINST(... IN BOOLEAN MODE)} can now work Loading @@ -48370,7 +48370,7 @@ of @code{FULLTEXT} indexes. Fixed bug in @code{DELETE ... WHERE ... MATCH ...}. @item Added support for @code{MATCH ... AGAINST(... IN BOOLEAN MODE)}. @strong{Note: you have to rebuild your tables with @strong{Note: you must rebuild your tables with @code{ALTER TABLE tablename TYPE=MyISAM} to be able to use boolean fulltext search}. @item Loading @@ -48391,7 +48391,7 @@ Added boolean fulltext search code. It should be considered early alpha. Extended @code{MODIFY} and @code{CHANGE} in @code{ALTER TABLE} to accept the @code{AFTER} keyword. @item Index are now used with @code{ORDER BY} on a whole @code{InnoDB} table. Indexes are now used with @code{ORDER BY} on a whole @code{InnoDB} table. @end itemize @node News-4.0.0, , News-4.0.1, News-4.0.x Loading Loading @@ -48446,28 +48446,28 @@ Speed up all internal list handling. @item Speed up @code{IS NULL}, @code{ISNULL()} and some other internal primitives. @item Creating full text indexes are now much faster. Full text index creation now is much faster. @item Tree-like cache to speed up bulk inserts and @code{myisam_bulk_insert_tree_size} variable. @item Searching on packed (@code{CHAR}/@code{VARCHAR}) keys are now much faster. Searching on packed (@code{CHAR}/@code{VARCHAR}) keys is now much faster. @item Optimised queries of type: @code{SELECT DISTINCT * from table_name ORDER by key_part1 LIMIT #} @code{SELECT DISTINCT * from table_name ORDER by key_part1 LIMIT #}. @item @code{SHOW CREATE TABLE} now shows all table attributes. @item @code{ORDER BY ... DESC} can now use keys. @item @code{LOAD DATA FROM MASTER} "auto-magically" sets up a slave. @code{LOAD DATA FROM MASTER} ``auto-magically'' sets up a slave. @item Renamed @code{safe_mysqld} to @code{mysqld_safe}. @item Added support for symbolic links to @code{MyISAM} tables. Symlink handling is now enabled by default for Windows. @item @code{LOAD DATA FROM MASTER} "auto-magically" sets up a slave. @code{LOAD DATA FROM MASTER} ``auto-magically'' sets up a slave. @item Added @code{SQL_CALC_FOUND_ROWS} and @code{FOUND_ROWS()}. This makes it possible to know how many rows a query would have returned Loading @@ -48486,15 +48486,15 @@ Added @code{ORDER BY} syntax to @code{UPDATE} and @code{DELETE}. Added @code{ALTER TABLE table_name DISABLE KEYS} and @code{ALTER TABLE table_name ENABLE KEYS} commands. @item Allow one to use @code{IN} instead of @code{FROM} in @code{SHOW} commands. Allow use of @code{IN} as a synonym for @code{FROM} in @code{SHOW} commands. @item Implemented ``repair by sort'' for @code{FULLTEXT} indexes. @code{REPAIR TABLE}, @code{ALTER TABLE}, and @code{OPTIMIZE TABLE} for tables with @code{FULLTEXT} indexes are now up to 100 times faster. @item Allow ANSI SQL syntax @code{X'hexadecimal-number'} Allow ANSI SQL syntax @code{X'hexadecimal-number'}. @item Cleaned up global lock handling for @code{FLUSH TABLES WITH READ LOCK} Cleaned up global lock handling for @code{FLUSH TABLES WITH READ LOCK}. @item Fixed problem with @code{DATETIME = constant} in @code{WHERE} optimisation. @item Loading Loading @@ -48610,13 +48610,13 @@ Restrict InnoDB keys to 500 bytes. @item InnoDB now supports @code{NULL} in keys. @item Fixed shutdown problem on HPUX. (Introduced in 3.23.46) Fixed shutdown problem on HP-UX. (Introduced in 3.23.46) @item Fixed core-dump bug in replication when using SELECT RELEASE_LOCK(); Fixed core-dump bug in replication when using @code{SELECT RELEASE_LOCK()}. @item Added new command: @code{DO expression,[expression]} @item Added @code{slave-skip-errors} option Added @code{slave-skip-errors} option. @item Added statistics variables for all MySQL commands. (@code{SHOW STATUS} is now much longer). Loading @@ -48627,7 +48627,7 @@ Fixed that @code{GROUP BY expr DESC} works. @item Fixed bug when using @code{t1 LEFT JOIN t2 ON t2.key=constant}. @item @code{mysql_config} now also work with binary (relocated) distributions. @code{mysql_config} now also works with binary (relocated) distributions. @end itemize @node News-3.23.46, News-3.23.45, News-3.23.47, News-3.23.x client/mysqltest.c +51 −6 Original line number Diff line number Diff line Loading @@ -15,7 +15,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* mysqltest test tool * See man page for more information. * See the manual for more information * TODO: document better how mysqltest works * * Written by: * Sasha Pachev <sasha@mysql.com> Loading @@ -26,9 +27,6 @@ /********************************************************************** TODO: - Print also the queries that returns a result to the log file; This makes it much easier to find out what's wrong. - Do comparison line by line, instead of doing a full comparison of the text file. This will save space as we don't need to keep many results in memory. It will also make it possible to do simple Loading @@ -43,7 +41,7 @@ **********************************************************************/ #define MTEST_VERSION "1.13" #define MTEST_VERSION "1.14" #include <my_global.h> #include <mysql_embed.h> Loading Loading @@ -88,6 +86,12 @@ #define CON_RETRY_SLEEP 2 #define MAX_CON_TRIES 5 #ifndef OS2 #define SLAVE_POLL_INTERVAL 300000 /* 0.3 of a sec */ #else #defile SLAVE_POLL_INTERVAL 0.3 #endif enum {OPT_MANAGER_USER=256,OPT_MANAGER_HOST,OPT_MANAGER_PASSWD, OPT_MANAGER_PORT,OPT_MANAGER_WAIT_TIMEOUT}; Loading Loading @@ -187,6 +191,7 @@ Q_DISABLE_RPL_PARSE, Q_EVAL_RESULT, Q_ENABLE_QUERY_LOG, Q_DISABLE_QUERY_LOG, Q_ENABLE_RESULT_LOG, Q_DISABLE_RESULT_LOG, Q_SERVER_START, Q_SERVER_STOP,Q_REQUIRE_MANAGER, Q_WAIT_FOR_SLAVE_TO_STOP, Q_UNKNOWN, /* Unknown command. */ Q_COMMENT, /* Comments, ignored. */ Q_COMMENT_WITH_COMMAND Loading Loading @@ -222,7 +227,7 @@ const char *command_names[] = { "enable_query_log", "disable_query_log", "enable_result_log", "disable_result_log", "server_start", "server_stop", "require_manager", "require_manager", "wait_for_slave_to_stop", 0 }; Loading Loading @@ -653,6 +658,45 @@ int open_file(const char* name) return 0; } /* ugly long name, but we are following the convention */ int do_wait_for_slave_to_stop(struct st_query* __attribute__((unused)) q) { MYSQL* mysql = &cur_con->mysql; #ifndef OS2 struct timeval t; #endif for (;;) { MYSQL_RES* res; MYSQL_ROW row; int done; LINT_INIT(res); if (mysql_query(mysql,"show status like 'Slave_running'") || !(res=mysql_store_result(mysql))) die("Query failed while probing slave for stop: %s", mysql_error(mysql)); if (!(row=mysql_fetch_row(res)) || !row[1]) { mysql_free_result(res); die("Strange result from query while probing slave for stop"); } done = !strcmp(row[1],"OFF"); mysql_free_result(res); if (done) break; #ifndef OS2 t.tv_sec=0; t.tv_usec=SLAVE_POLL_INTERVAL; select(0,0,0,0,&t); /* sleep */ #else DosSleep(OS2_SLAVE_POLL_INTERVAL); #endif } return 0; } int do_require_manager(struct st_query* __attribute__((unused)) q) { if (!manager) Loading Loading @@ -2335,6 +2379,7 @@ int main(int argc, char** argv) case Q_DISABLE_RESULT_LOG: disable_result_log=1; break; case Q_SOURCE: do_source(q); break; case Q_SLEEP: do_sleep(q); break; case Q_WAIT_FOR_SLAVE_TO_STOP: do_wait_for_slave_to_stop(q); break; case Q_REQUIRE_MANAGER: do_require_manager(q); break; #ifndef EMBEDDED_LIBRARY case Q_SERVER_START: do_server_start(q); break; Loading include/Makefile.am +1 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ noinst_HEADERS = config-win.h \ my_dir.h mysys_err.h my_base.h \ my_nosys.h my_alarm.h queues.h \ my_tree.h hash.h thr_alarm.h thr_lock.h \ getopt.h t_ctype.h violite.h md5.h \ getopt.h my_getopt.h t_ctype.h violite.h md5.h \ mysql_version.h.in # mysql_version.h are generated Loading include/my_getopt.h 0 → 100644 +46 −0 Original line number Diff line number Diff line /* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ struct my_optarg { char *arg; /* option argument */ int pos; /* next element in ARGV */ int verbose; /* 0 = inhibit warnings of unrecognized options */ int unrecognized; /* position of the unrecognized option */ }; enum get_opt_var_type { GET_NO_ARG, GET_INT, GET_LL, GET_STR }; enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG }; struct my_option { const char *name; /* Name of the option */ const char *comment; /* option comment, for autom. --help */ char *value; /* The variable value */ const char **str_values; /* Pointer to possible values */ enum get_opt_var_type var_type; enum get_opt_arg_type arg_type; int id; /* unique id or short option */ long long def_value; /* Default value */ long long min_value; /* Min allowed value */ long long max_value; /* Max allowed value */ long long sub_size; /* Subtract this from given value */ long block_size; /* Value should be a mult. of this */ int app_type; /* To be used by an application */ my_bool changeable_var; /* If true, the option is a variable */ }; Loading
BitKeeper/etc/logging_ok +1 −0 Original line number Diff line number Diff line Loading @@ -42,3 +42,4 @@ bell@sanja.is.com.ua kaj@work.mysql.com mwagner@cash.mwagner.org tom@basil-firewall.home.com jani@rhols221.adsl.netsonic.fi
Docs/manual.texi +21 −21 Original line number Diff line number Diff line Loading @@ -48296,7 +48296,7 @@ Fixed bug with empty expression for boolean fulltext search. @item Fixed core dump bug in updating fulltext key from/to @code{NULL}. @item ODBC compatibility: Added @code{BIT_LENGTH()} ODBC compatibility: Added @code{BIT_LENGTH()}. @item Fixed core dump bug in @code{GROUP BY BINARY column}. @item Loading @@ -48315,7 +48315,7 @@ For more information, read @ref{Cast Functions}. @code{CREATE ... SELECT} on @code{DATE} and @code{TIME} functions now create columns of the expected type. @item Changed order of how keys are created in tables. Changed order in which keys are created in tables. @item Added a new columns @code{Null} and @code{Index_type} to @code{SHOW INDEX}. @end itemize Loading @@ -48330,17 +48330,17 @@ Fixed bug when @code{HANDLER} was used with some unsupported table type. @code{mysqldump} now puts @code{ALTER TABLE table_name DISABLE KEYS} and @code{ALTER TABLE table_name DISABLE KEYS} in the sql dump. @item Added @code{mysql_fix_extensions} script Added @code{mysql_fix_extensions} script. @item Fixed stack overrun problem @code{LOAD DATA FROM MASTER} on OSF1. @item Fixed shutdown problem on HPUX. Fixed shutdown problem on HP-UX. @item Added functions @code{des_encrypt()} and @code{des_decrypt()}. @item Added statement @code{FLUSH DES_KEY_FILE}. @item Added mysqld option @code{--des-key-file}. Added @code{mysqld} option @code{--des-key-file}. @item @code{HEX(string)} now returns the characters in string converted to hexadecimal. Loading @@ -48352,7 +48352,7 @@ Changed @code{SELECT ... IN SHARE MODE} to @item A new query cache to cache results from identical @code{SELECT} queries. @item Fixed core dump bug on 64 bit machines when it got a wrong communication Fixed core dump bug on 64-bit machines when it got an incorrect communication packet. @item @code{MATCH ... AGAINST(... IN BOOLEAN MODE)} can now work Loading @@ -48370,7 +48370,7 @@ of @code{FULLTEXT} indexes. Fixed bug in @code{DELETE ... WHERE ... MATCH ...}. @item Added support for @code{MATCH ... AGAINST(... IN BOOLEAN MODE)}. @strong{Note: you have to rebuild your tables with @strong{Note: you must rebuild your tables with @code{ALTER TABLE tablename TYPE=MyISAM} to be able to use boolean fulltext search}. @item Loading @@ -48391,7 +48391,7 @@ Added boolean fulltext search code. It should be considered early alpha. Extended @code{MODIFY} and @code{CHANGE} in @code{ALTER TABLE} to accept the @code{AFTER} keyword. @item Index are now used with @code{ORDER BY} on a whole @code{InnoDB} table. Indexes are now used with @code{ORDER BY} on a whole @code{InnoDB} table. @end itemize @node News-4.0.0, , News-4.0.1, News-4.0.x Loading Loading @@ -48446,28 +48446,28 @@ Speed up all internal list handling. @item Speed up @code{IS NULL}, @code{ISNULL()} and some other internal primitives. @item Creating full text indexes are now much faster. Full text index creation now is much faster. @item Tree-like cache to speed up bulk inserts and @code{myisam_bulk_insert_tree_size} variable. @item Searching on packed (@code{CHAR}/@code{VARCHAR}) keys are now much faster. Searching on packed (@code{CHAR}/@code{VARCHAR}) keys is now much faster. @item Optimised queries of type: @code{SELECT DISTINCT * from table_name ORDER by key_part1 LIMIT #} @code{SELECT DISTINCT * from table_name ORDER by key_part1 LIMIT #}. @item @code{SHOW CREATE TABLE} now shows all table attributes. @item @code{ORDER BY ... DESC} can now use keys. @item @code{LOAD DATA FROM MASTER} "auto-magically" sets up a slave. @code{LOAD DATA FROM MASTER} ``auto-magically'' sets up a slave. @item Renamed @code{safe_mysqld} to @code{mysqld_safe}. @item Added support for symbolic links to @code{MyISAM} tables. Symlink handling is now enabled by default for Windows. @item @code{LOAD DATA FROM MASTER} "auto-magically" sets up a slave. @code{LOAD DATA FROM MASTER} ``auto-magically'' sets up a slave. @item Added @code{SQL_CALC_FOUND_ROWS} and @code{FOUND_ROWS()}. This makes it possible to know how many rows a query would have returned Loading @@ -48486,15 +48486,15 @@ Added @code{ORDER BY} syntax to @code{UPDATE} and @code{DELETE}. Added @code{ALTER TABLE table_name DISABLE KEYS} and @code{ALTER TABLE table_name ENABLE KEYS} commands. @item Allow one to use @code{IN} instead of @code{FROM} in @code{SHOW} commands. Allow use of @code{IN} as a synonym for @code{FROM} in @code{SHOW} commands. @item Implemented ``repair by sort'' for @code{FULLTEXT} indexes. @code{REPAIR TABLE}, @code{ALTER TABLE}, and @code{OPTIMIZE TABLE} for tables with @code{FULLTEXT} indexes are now up to 100 times faster. @item Allow ANSI SQL syntax @code{X'hexadecimal-number'} Allow ANSI SQL syntax @code{X'hexadecimal-number'}. @item Cleaned up global lock handling for @code{FLUSH TABLES WITH READ LOCK} Cleaned up global lock handling for @code{FLUSH TABLES WITH READ LOCK}. @item Fixed problem with @code{DATETIME = constant} in @code{WHERE} optimisation. @item Loading Loading @@ -48610,13 +48610,13 @@ Restrict InnoDB keys to 500 bytes. @item InnoDB now supports @code{NULL} in keys. @item Fixed shutdown problem on HPUX. (Introduced in 3.23.46) Fixed shutdown problem on HP-UX. (Introduced in 3.23.46) @item Fixed core-dump bug in replication when using SELECT RELEASE_LOCK(); Fixed core-dump bug in replication when using @code{SELECT RELEASE_LOCK()}. @item Added new command: @code{DO expression,[expression]} @item Added @code{slave-skip-errors} option Added @code{slave-skip-errors} option. @item Added statistics variables for all MySQL commands. (@code{SHOW STATUS} is now much longer). Loading @@ -48627,7 +48627,7 @@ Fixed that @code{GROUP BY expr DESC} works. @item Fixed bug when using @code{t1 LEFT JOIN t2 ON t2.key=constant}. @item @code{mysql_config} now also work with binary (relocated) distributions. @code{mysql_config} now also works with binary (relocated) distributions. @end itemize @node News-3.23.46, News-3.23.45, News-3.23.47, News-3.23.x
client/mysqltest.c +51 −6 Original line number Diff line number Diff line Loading @@ -15,7 +15,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* mysqltest test tool * See man page for more information. * See the manual for more information * TODO: document better how mysqltest works * * Written by: * Sasha Pachev <sasha@mysql.com> Loading @@ -26,9 +27,6 @@ /********************************************************************** TODO: - Print also the queries that returns a result to the log file; This makes it much easier to find out what's wrong. - Do comparison line by line, instead of doing a full comparison of the text file. This will save space as we don't need to keep many results in memory. It will also make it possible to do simple Loading @@ -43,7 +41,7 @@ **********************************************************************/ #define MTEST_VERSION "1.13" #define MTEST_VERSION "1.14" #include <my_global.h> #include <mysql_embed.h> Loading Loading @@ -88,6 +86,12 @@ #define CON_RETRY_SLEEP 2 #define MAX_CON_TRIES 5 #ifndef OS2 #define SLAVE_POLL_INTERVAL 300000 /* 0.3 of a sec */ #else #defile SLAVE_POLL_INTERVAL 0.3 #endif enum {OPT_MANAGER_USER=256,OPT_MANAGER_HOST,OPT_MANAGER_PASSWD, OPT_MANAGER_PORT,OPT_MANAGER_WAIT_TIMEOUT}; Loading Loading @@ -187,6 +191,7 @@ Q_DISABLE_RPL_PARSE, Q_EVAL_RESULT, Q_ENABLE_QUERY_LOG, Q_DISABLE_QUERY_LOG, Q_ENABLE_RESULT_LOG, Q_DISABLE_RESULT_LOG, Q_SERVER_START, Q_SERVER_STOP,Q_REQUIRE_MANAGER, Q_WAIT_FOR_SLAVE_TO_STOP, Q_UNKNOWN, /* Unknown command. */ Q_COMMENT, /* Comments, ignored. */ Q_COMMENT_WITH_COMMAND Loading Loading @@ -222,7 +227,7 @@ const char *command_names[] = { "enable_query_log", "disable_query_log", "enable_result_log", "disable_result_log", "server_start", "server_stop", "require_manager", "require_manager", "wait_for_slave_to_stop", 0 }; Loading Loading @@ -653,6 +658,45 @@ int open_file(const char* name) return 0; } /* ugly long name, but we are following the convention */ int do_wait_for_slave_to_stop(struct st_query* __attribute__((unused)) q) { MYSQL* mysql = &cur_con->mysql; #ifndef OS2 struct timeval t; #endif for (;;) { MYSQL_RES* res; MYSQL_ROW row; int done; LINT_INIT(res); if (mysql_query(mysql,"show status like 'Slave_running'") || !(res=mysql_store_result(mysql))) die("Query failed while probing slave for stop: %s", mysql_error(mysql)); if (!(row=mysql_fetch_row(res)) || !row[1]) { mysql_free_result(res); die("Strange result from query while probing slave for stop"); } done = !strcmp(row[1],"OFF"); mysql_free_result(res); if (done) break; #ifndef OS2 t.tv_sec=0; t.tv_usec=SLAVE_POLL_INTERVAL; select(0,0,0,0,&t); /* sleep */ #else DosSleep(OS2_SLAVE_POLL_INTERVAL); #endif } return 0; } int do_require_manager(struct st_query* __attribute__((unused)) q) { if (!manager) Loading Loading @@ -2335,6 +2379,7 @@ int main(int argc, char** argv) case Q_DISABLE_RESULT_LOG: disable_result_log=1; break; case Q_SOURCE: do_source(q); break; case Q_SLEEP: do_sleep(q); break; case Q_WAIT_FOR_SLAVE_TO_STOP: do_wait_for_slave_to_stop(q); break; case Q_REQUIRE_MANAGER: do_require_manager(q); break; #ifndef EMBEDDED_LIBRARY case Q_SERVER_START: do_server_start(q); break; Loading
include/Makefile.am +1 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ noinst_HEADERS = config-win.h \ my_dir.h mysys_err.h my_base.h \ my_nosys.h my_alarm.h queues.h \ my_tree.h hash.h thr_alarm.h thr_lock.h \ getopt.h t_ctype.h violite.h md5.h \ getopt.h my_getopt.h t_ctype.h violite.h md5.h \ mysql_version.h.in # mysql_version.h are generated Loading
include/my_getopt.h 0 → 100644 +46 −0 Original line number Diff line number Diff line /* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ struct my_optarg { char *arg; /* option argument */ int pos; /* next element in ARGV */ int verbose; /* 0 = inhibit warnings of unrecognized options */ int unrecognized; /* position of the unrecognized option */ }; enum get_opt_var_type { GET_NO_ARG, GET_INT, GET_LL, GET_STR }; enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG }; struct my_option { const char *name; /* Name of the option */ const char *comment; /* option comment, for autom. --help */ char *value; /* The variable value */ const char **str_values; /* Pointer to possible values */ enum get_opt_var_type var_type; enum get_opt_arg_type arg_type; int id; /* unique id or short option */ long long def_value; /* Default value */ long long min_value; /* Min allowed value */ long long max_value; /* Max allowed value */ long long sub_size; /* Subtract this from given value */ long block_size; /* Value should be a mult. of this */ int app_type; /* To be used by an application */ my_bool changeable_var; /* If true, the option is a variable */ };