1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
/*
* $Id: boolean.c,v 2.4 2002/03/29 04:13:03 bkorb Exp $
*
* Automated Options Paged Usage module.
*
* This routine will run run-on options through a pager so the
* user may examine, print or edit them at their leisure.
*/
/*
* Automated Options copyright 1992-2002 Bruce Korb
*
* Automated Options is free software.
* You may 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, or (at your option) any later version.
*
* Automated Options 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 Automated Options. See the file "COPYING". If not,
* write to: The Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* As a special exception, Bruce Korb gives permission for additional
* uses of the text contained in his release of AutoOpts.
*
* The exception is that, if you link the AutoOpts library with other
* files to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
* linking the AutoOpts library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by Bruce Korb under
* the name AutoOpts. If you copy code from other sources under the
* General Public License into a copy of AutoOpts, as the General Public
* License permits, the exception does not apply to the code that you add
* in this way. To avoid misleading anyone as to the status of such
* modified files, you must delete this exception notice from them.
*
* If you write modifications of your own for AutoOpts, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <memory.h>
#include "autoopts.h"
/*
* The value is true, unless it starts with 'n' or 'f' or "#f" or
* it is an empty string or it is a number that evaluates to zero
*/
void
optionBooleanVal( pOpts, pOD )
tOptions* pOpts;
tOptDesc* pOD;
{
long val;
char* pz;
ag_bool res = AG_TRUE;
switch (*(pOD->pzLastArg)) {
case '0':
val = strtol( pOD->pzLastArg, &pz, 0 );
if ((val != 0) || (*pz != NUL))
break;
/* FALLTHROUGH */
case 'N':
case 'n':
case 'F':
case 'f':
case NUL:
res = AG_FALSE;
break;
case '#':
if (pOD->pzLastArg[1] != 'f')
break;
res = AG_FALSE;
}
pOD->pzLastArg = (char*)res;
}
/*
* Local Variables:
* c-file-style: "stroustrup"
* indent-tabs-mode: nil
* End:
* pgusage.c ends here */
|