You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.0 KiB
113 lines
3.0 KiB
/*
|
|
* $Id: plu_args.c,v 1.9 2006/10/12 14:21:21 desrod Exp $
|
|
*
|
|
* plu_args.c: common popt argument processing routines
|
|
*
|
|
* Copyright (C) 2004 by Adriaan de Groot <groot@kde.org>
|
|
*
|
|
* 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.,
|
|
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*
|
|
*/
|
|
|
|
#include "pi-userland.h"
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#include "pi-header.h"
|
|
|
|
char *plu_port = NULL;
|
|
int plu_timeout = 0;
|
|
int plu_quiet = 0;
|
|
static char *badoption_help = NULL;
|
|
|
|
|
|
#define ARGUMENT_BAD_OPTION 17227
|
|
|
|
static void callback(poptContext pc,
|
|
int reason,
|
|
const struct poptOption *opt,
|
|
const char *arg,
|
|
void *data)
|
|
{
|
|
static int have_complained_already = 0;
|
|
switch(opt->val) {
|
|
case 'v' :
|
|
print_splash(poptGetInvocationName(pc));
|
|
exit(0);
|
|
break;
|
|
case ARGUMENT_BAD_OPTION:
|
|
if (!have_complained_already) {
|
|
fprintf(stderr," WARNING: You are using deprecated options. %s\n\n", badoption_help ? "Use these instead:" : "See --help for more.");
|
|
if (badoption_help) fprintf(stderr,"%s",badoption_help);
|
|
have_complained_already=1;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
struct poptOption plu_common_options[] = {
|
|
{ NULL, 0, POPT_ARG_CALLBACK, callback, 0, NULL, NULL},
|
|
{ "port", 'p', POPT_ARG_STRING, &plu_port, 0 , "Use device <port> to communicate with Palm", "<port>"},
|
|
{ "timeout", 't', POPT_ARG_INT, &plu_timeout, 0 , "Use timeout <timeout> seconds", "<timeout>"},
|
|
{ "version", 0 , POPT_ARG_NONE, NULL, 'v', "Display version information", NULL},
|
|
{ "quiet", 'q', POPT_ARG_NONE, &plu_quiet, 0 , "Suppress 'Hit HotSync button' message", NULL},
|
|
{ "bad-option",0, POPT_ARG_NONE | POPT_ARGFLAG_DOC_HIDDEN, NULL, ARGUMENT_BAD_OPTION, NULL, NULL },
|
|
POPT_TABLEEND
|
|
} ;
|
|
|
|
|
|
void plu_badoption(poptContext pc, int optc)
|
|
{
|
|
fprintf(stderr, "%s: %s\n",
|
|
poptBadOption(pc, POPT_BADOPTION_NOALIAS),
|
|
poptStrerror(optc));
|
|
|
|
poptPrintUsage(pc, stderr, 0);
|
|
exit(1);
|
|
}
|
|
|
|
|
|
void plu_popt_alias(poptContext pc,
|
|
const char *alias_long,
|
|
char alias_short,
|
|
const char *expansion)
|
|
{
|
|
struct poptAlias alias = {
|
|
alias_long,
|
|
alias_short,
|
|
0,
|
|
NULL
|
|
} ;
|
|
|
|
poptParseArgvString(expansion,&alias.argc,&alias.argv);
|
|
poptAddAlias(pc,alias,0);
|
|
}
|
|
|
|
|
|
void plu_set_badoption_help(const char *h)
|
|
{
|
|
if (badoption_help) free(badoption_help);
|
|
badoption_help = NULL;
|
|
if (h) badoption_help = strdup(h);
|
|
}
|
|
|
|
/* vi: set ts=8 sw=4 sts=4 noexpandtab: cin */
|
|
/* ex: set tabstop=4 expandtab: */
|
|
/* Local Variables: */
|
|
/* indent-tabs-mode: t */
|
|
/* c-basic-offset: 8 */
|
|
/* End: */
|