My Project
Loading...
Searching...
No Matches
Functions | Variables
feOpt.h File Reference
#include "resources/fegetopt.h"
#include "Singular/feOptTab.h"
#include "Singular/feOpt.inc"

Go to the source code of this file.

Functions

void feOptHelp (const char *name)
 
void feOptDumpVersionTuple (void)
 
static void * feOptValue (feOptIndex opt)
 
int feOptValue (feOptIndex opt, char **val)
 
int feOptValue (feOptIndex opt, int *val)
 
feOptIndex feGetOptIndex (const char *name)
 
feOptIndex feGetOptIndex (int optc)
 
const char * feSetOptValue (feOptIndex opt, int optarg)
 
const char * feSetOptValue (feOptIndex opt, char *optarg)
 
void fePrintOptValues ()
 

Variables

const char SHORT_OPTS_STRING []
 
EXTERN_VAR struct fe_option feOptSpec []
 

Function Documentation

◆ feGetOptIndex() [1/2]

feOptIndex feGetOptIndex ( const char *  name)

Definition at line 104 of file feOpt.cc.

105{
106 int opt = 0;
107
108 while (opt != (int) FE_OPT_UNDEF)
109 {
110 if (strcmp(feOptSpec[opt].name, name) == 0)
111 return (feOptIndex) opt;
112 opt = opt + 1;
113 }
114 return FE_OPT_UNDEF;
115}
feOptIndex
Definition: feOptGen.h:15
@ FE_OPT_UNDEF
Definition: feOptGen.h:15
EXTERN_VAR struct fe_option feOptSpec[]
Definition: feOpt.h:17
int name
New type name for int.
Definition: templateForC.h:21

◆ feGetOptIndex() [2/2]

feOptIndex feGetOptIndex ( int  optc)

Definition at line 117 of file feOpt.cc.

118{
119 int opt = 0;
120
121 if (optc == LONG_OPTION_RETURN) return FE_OPT_UNDEF;
122
123 while (opt != (int) FE_OPT_UNDEF)
124 {
125 if (feOptSpec[opt].val == optc)
126 return (feOptIndex) opt;
127 opt = opt + 1;
128 }
129 return FE_OPT_UNDEF;
130}
#define LONG_OPTION_RETURN
Definition: feOptTab.h:4

◆ feOptDumpVersionTuple()

void feOptDumpVersionTuple ( void  )

Definition at line 423 of file feOpt.cc.

424{
425 printf("%s\n",VERSION);
426}

◆ feOptHelp()

void feOptHelp ( const char *  name)

Definition at line 372 of file feOpt.cc.

373{
374 int i = 0;
375 char tmp[60];
376#if defined(ESINGULAR)
377 printf("ESingular starts up Singular within emacs;\n");
378#elif defined(TSINGULAR)
379 printf("TSingular starts up Singular within a terminal window;\n");
380#endif
381 printf("Singular is a Computer Algebra System (CAS) for Polynomial Computations.\n");
382 printf("Usage: %s [options] [file1 [file2 ...]]\n", name);
383 printf("Options:\n");
384
385 while (feOptSpec[i].name != 0)
386 {
387 if (feOptSpec[i].help != NULL
388#ifdef SING_NDEBUG
389 && *(feOptSpec[i].help) != '/'
390#endif
391 )
392 {
393 if (feOptSpec[i].has_arg > 0)
394 {
395 if (feOptSpec[i].has_arg > 1)
396 sprintf(tmp, "%s[=%s]", feOptSpec[i].name, feOptSpec[i].arg_name);
397 else
398 sprintf(tmp, "%s=%s", feOptSpec[i].name, feOptSpec[i].arg_name);
399
400 printf(" %c%c --%-20s %s\n",
401 (feOptSpec[i].val != LONG_OPTION_RETURN ? '-' : ' '),
402 (feOptSpec[i].val != LONG_OPTION_RETURN ? feOptSpec[i].val : ' '),
403 tmp,
404 feOptSpec[i].help);
405 }
406 else
407 {
408 printf(" %c%c --%-20s %s\n",
409 (feOptSpec[i].val != LONG_OPTION_RETURN ? '-' : ' '),
410 (feOptSpec[i].val != LONG_OPTION_RETURN ? feOptSpec[i].val : ' '),
412 feOptSpec[i].help);
413 }
414 }
415 i++;
416 }
417
418 printf("\nFor more information, type `help;' from within Singular or visit\n");
419 printf("https://www.singular.uni-kl.de or consult the\n");
420 printf("Singular manual (available as on-line info or html manual).\n");
421}
int i
Definition: cfEzgcd.cc:132
#define help
Definition: libparse.cc:1230
#define NULL
Definition: omList.c:12

◆ feOptValue() [1/3]

static void * feOptValue ( feOptIndex  opt)
inlinestatic

Definition at line 40 of file feOpt.h.

41{
42 return feOptSpec[(int)opt].value;
43}

◆ feOptValue() [2/3]

int feOptValue ( feOptIndex  opt,
char **  val 
)
inline

Definition at line 44 of file feOpt.h.

45{
46 if (opt != FE_OPT_UNDEF && feOptSpec[(int)opt].type == feOptString)
47 {
48 *val = (char*) feOptSpec[(int)opt].value;
49 return TRUE;
50 }
51 *val = NULL;
52 return FALSE;
53}
#define TRUE
Definition: auxiliary.h:100
#define FALSE
Definition: auxiliary.h:96
@ feOptString
Definition: fegetopt.h:77
void * value
Definition: fegetopt.h:93

◆ feOptValue() [3/3]

int feOptValue ( feOptIndex  opt,
int *  val 
)
inline

Definition at line 54 of file feOpt.h.

55{
56 if (opt != FE_OPT_UNDEF && feOptSpec[(int)opt].type != feOptString)
57 {
58 *val = (int) ((long)(feOptSpec[(int)opt].value));
59 return TRUE;
60 }
61 *val = 0;
62 return FALSE;
63}

◆ fePrintOptValues()

void fePrintOptValues ( )

Definition at line 337 of file feOpt.cc.

338{
339 int i = 0;
340
341 while (feOptSpec[i].name != 0)
342 {
343 if (feOptSpec[i].help != NULL && feOptSpec[i].type != feOptUntyped
344#ifndef SING_NDEBUG
345 && *(feOptSpec[i].help) != '/'
346#endif
347 )
348 {
349 if (feOptSpec[i].type == feOptString)
350 {
351 if (feOptSpec[i].value == NULL)
352 {
353 Print("// --%-15s\n", feOptSpec[i].name);
354 }
355 else
356 {
357 Print("// --%-15s \"%s\"\n", feOptSpec[i].name, (char*) feOptSpec[i].value);
358 }
359 }
360 else
361 {
362 Print("// --%-15s %d\n", feOptSpec[i].name, (int)(long)feOptSpec[i].value);
363 }
364 }
365 i++;
366 }
367}
#define Print
Definition: emacs.cc:80
@ feOptUntyped
Definition: fegetopt.h:77

◆ feSetOptValue() [1/2]

const char * feSetOptValue ( feOptIndex  opt,
char *  optarg 
)

Definition at line 154 of file feOpt.cc.

155{
156 if (opt == FE_OPT_UNDEF) return "option undefined";
157
158 if (feOptSpec[opt].type != feOptUntyped)
159 {
160 if (feOptSpec[opt].type != feOptString)
161 {
162 if (optarg != NULL)
163 {
164 errno = 0;
165 feOptSpec[opt].value = (void*) strtol(optarg, NULL, 10);
166 if (errno) return "invalid integer argument";
167 }
168 else
169 {
170 feOptSpec[opt].value = (void*) 0;
171 }
172 }
173 else
174 {
175 assume(feOptSpec[opt].type == feOptString);
176 if (feOptSpec[opt].set && feOptSpec[opt].value != NULL)
177 omFree(feOptSpec[opt].value);
178 if (optarg != NULL)
179 feOptSpec[opt].value = omStrDup(optarg);
180 else
181 feOptSpec[opt].value = NULL;
182 feOptSpec[opt].set = 1;
183 }
184 }
185 return feOptAction(opt);
186}
static const char * feOptAction(feOptIndex opt)
Definition: feOpt.cc:202
int set
Definition: fegetopt.h:94
#define assume(x)
Definition: mod2.h:389
#define omStrDup(s)
Definition: omAllocDecl.h:263
#define omFree(addr)
Definition: omAllocDecl.h:261

◆ feSetOptValue() [2/2]

const char * feSetOptValue ( feOptIndex  opt,
int  optarg 
)

Definition at line 188 of file feOpt.cc.

189{
190 if (opt == FE_OPT_UNDEF) return "option undefined";
191
192 if (feOptSpec[opt].type != feOptUntyped)
193 {
194 if (feOptSpec[opt].type == feOptString)
195 return "option value needs to be an integer";
196
197 feOptSpec[opt].value = (void*)(long) optarg;
198 }
199 return feOptAction(opt);
200}

Variable Documentation

◆ feOptSpec

EXTERN_VAR struct fe_option feOptSpec[]

Definition at line 17 of file feOpt.h.

◆ SHORT_OPTS_STRING

const char SHORT_OPTS_STRING[]
extern

Definition at line 29 of file feOpt.cc.