|
Packit Service |
c5cf8c |
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
|
|
Packit Service |
c5cf8c |
/*
|
|
Packit Service |
c5cf8c |
*
|
|
Packit Service |
c5cf8c |
* (C) 2001 by Argonne National Laboratory.
|
|
Packit Service |
c5cf8c |
* See COPYRIGHT in top-level directory.
|
|
Packit Service |
c5cf8c |
*/
|
|
Packit Service |
c5cf8c |
#include "GetOpt.h"
|
|
Packit Service |
c5cf8c |
#include <stdio.h>
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
bool GetOpt(int *argc, LPTSTR ** argv, CLPTSTR flag)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int i, j;
|
|
Packit Service |
c5cf8c |
if (flag == NULL)
|
|
Packit Service |
c5cf8c |
return false;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
for (i = 0; i < *argc; i++) {
|
|
Packit Service |
c5cf8c |
if (_tcsicmp((*argv)[i], flag) == 0) {
|
|
Packit Service |
c5cf8c |
for (j = i; j < *argc; j++) {
|
|
Packit Service |
c5cf8c |
(*argv)[j] = (*argv)[j + 1];
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
*argc -= 1;
|
|
Packit Service |
c5cf8c |
return true;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
return false;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
bool GetOptInt(int *argc, LPTSTR ** argv, CLPTSTR flag, int *n)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int i, j;
|
|
Packit Service |
c5cf8c |
if (flag == NULL)
|
|
Packit Service |
c5cf8c |
return false;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
for (i = 0; i < *argc; i++) {
|
|
Packit Service |
c5cf8c |
if (_tcsicmp((*argv)[i], flag) == 0) {
|
|
Packit Service |
c5cf8c |
if (i + 1 == *argc)
|
|
Packit Service |
c5cf8c |
return false;
|
|
Packit Service |
c5cf8c |
*n = _ttoi((*argv)[i + 1]);
|
|
Packit Service |
c5cf8c |
for (j = i; j < *argc - 1; j++) {
|
|
Packit Service |
c5cf8c |
(*argv)[j] = (*argv)[j + 2];
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
*argc -= 2;
|
|
Packit Service |
c5cf8c |
return true;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
return false;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
bool GetOptLong(int *argc, LPTSTR ** argv, CLPTSTR flag, long *n)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int i;
|
|
Packit Service |
c5cf8c |
if (GetOptInt(argc, argv, flag, &i)) {
|
|
Packit Service |
c5cf8c |
*n = (long) i;
|
|
Packit Service |
c5cf8c |
return true;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
return false;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
bool GetOptDouble(int *argc, LPTSTR ** argv, CLPTSTR flag, double *d)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int i, j;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if (flag == NULL)
|
|
Packit Service |
c5cf8c |
return false;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
for (i = 0; i < *argc; i++) {
|
|
Packit Service |
c5cf8c |
if (_tcsicmp((*argv)[i], flag) == 0) {
|
|
Packit Service |
c5cf8c |
if (i + 1 == *argc)
|
|
Packit Service |
c5cf8c |
return false;
|
|
Packit Service |
c5cf8c |
*d = _tcstod((*argv)[i + 1], NULL);
|
|
Packit Service |
c5cf8c |
for (j = i; j < *argc - 1; j++) {
|
|
Packit Service |
c5cf8c |
(*argv)[j] = (*argv)[j + 2];
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
*argc -= 2;
|
|
Packit Service |
c5cf8c |
return true;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
return false;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
bool GetOptString(int *argc, LPTSTR ** argv, CLPTSTR flag, char *str)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int i, j;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if (flag == NULL)
|
|
Packit Service |
c5cf8c |
return false;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
for (i = 0; i < *argc; i++) {
|
|
Packit Service |
c5cf8c |
if (_tcsicmp((*argv)[i], flag) == 0) {
|
|
Packit Service |
c5cf8c |
if (i + 1 == *argc)
|
|
Packit Service |
c5cf8c |
return false;
|
|
Packit Service |
c5cf8c |
strcpy(str, (*argv)[i + 1]);
|
|
Packit Service |
c5cf8c |
for (j = i; j < *argc - 1; j++) {
|
|
Packit Service |
c5cf8c |
(*argv)[j] = (*argv)[j + 2];
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
*argc -= 2;
|
|
Packit Service |
c5cf8c |
return true;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
return false;
|
|
Packit Service |
c5cf8c |
}
|