X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Firssi%2Fsrc%2Fcore%2Fargs.c;fp=apps%2Firssi%2Fsrc%2Fcore%2Fargs.c;h=1597de2771e615b65fef6404c2e3be511601973b;hb=18d69a0a1fec438e241bb4f431506ed59a34066b;hp=ab26ee14b22b97c5d9f3bbab6eee7013a873257a;hpb=f7be6adec0248118cddde9b04522c13cd90568cd;p=silc.git diff --git a/apps/irssi/src/core/args.c b/apps/irssi/src/core/args.c index ab26ee14..1597de27 100644 --- a/apps/irssi/src/core/args.c +++ b/apps/irssi/src/core/args.c @@ -1,5 +1,5 @@ /* - args.c : small frontend to libPopt command line argument parser + args.c : small frontend to GOption command line argument parser Copyright (C) 1999-2001 Timo Sirainen @@ -13,54 +13,40 @@ 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 + 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "module.h" #include "args.h" -GArray *iopt_tables = NULL; +static GOptionContext *context = NULL; -void args_register(struct poptOption *options) +void args_register(GOptionEntry *options) { - if (iopt_tables == NULL) { - iopt_tables = g_array_new(TRUE, TRUE, - sizeof(struct poptOption)); - } + if (context == NULL) + context = g_option_context_new(""); - while (options->longName != NULL || options->shortName != '\0' || - options->arg != NULL) { - g_array_append_val(iopt_tables, *options); - options = options+1; - } + g_option_context_add_main_entries(context, options, "Irssi"); } void args_execute(int argc, char *argv[]) { - poptContext con; - int nextopt; + GError* error = NULL; - if (iopt_tables == NULL) + if (context == NULL) return; - con = poptGetContext(PACKAGE, argc, argv, - (struct poptOption *) (iopt_tables->data), 0); - poptReadDefaultConfig(con, TRUE); - - while ((nextopt = poptGetNextOpt(con)) > 0) ; + g_option_context_parse(context, &argc, &argv, &error); + g_option_context_free(context); + context = NULL; - if (nextopt != -1) { - printf("Error on option %s: %s.\n" + if (error != NULL) { + printf("%s\n" "Run '%s --help' to see a full list of " "available command line options.\n", - poptBadOption(con, 0), poptStrerror(nextopt), argv[0]); + error->message, argv[0]); exit(1); } - - g_array_free(iopt_tables, TRUE); - iopt_tables = NULL; - - poptFreeContext(con); }