source: git/Singular/feOpt.h @ 7b8818

spielwiese
Last change on this file since 7b8818 was 6ce030f, checked in by Oleksandr Motsak <motsak@…>, 12 years ago
removal of the $Id$ svn tag from everywhere NOTE: the git SHA1 may be used instead (only on special places) NOTE: the libraries Singular/LIB/*.lib still contain the marker due to our current use of svn
  • Property mode set to 100644
File size: 1.8 KB
Line 
1#ifndef FEOPTS_H
2#define FEOPTS_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/*
7* ABSTRACT: Declarations for working with Options
8*/
9
10#include <Singular/fegetopt.h>
11
12#include <Singular/feOptTab.h>
13
14extern const char SHORT_OPTS_STRING[];
15
16/* specifies format of options */
17extern struct fe_option feOptSpec[];
18
19/* provides feOptIndex enum type for fast accesses to feOptSpec */
20#if ! defined(GENERATE_DEPEND)
21
22# ifdef ESINGULAR
23#  include <Singular/feOptES.inc>
24# elif defined(TSINGULAR)
25#  include <Singular/feOptTS.inc>
26# else
27#  include <Singular/feOpt.inc>
28# endif
29
30#else
31typedef enum {FE_OPT_UNDEF}  feOptIndex;
32#endif
33
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39void feOptHelp(const char* name);
40
41void* feGetOptValue(feOptIndex opt);
42
43
44#ifdef __cplusplus
45}
46
47inline void* feOptValue(feOptIndex opt)
48{
49  return feOptSpec[(int)opt].value;
50}
51inline int feOptValue(feOptIndex opt, char** val)
52{
53  if (opt != FE_OPT_UNDEF && feOptSpec[(int)opt].type == feOptString)
54  {
55    *val = (char*) feOptSpec[(int)opt].value;
56    return TRUE;
57  }
58  *val = NULL;
59  return FALSE;
60}
61inline int feOptValue(feOptIndex opt, int* val)
62{
63  if (opt != FE_OPT_UNDEF && feOptSpec[(int)opt].type != feOptString)
64  {
65    *val = (int) ((long)(feOptSpec[(int)opt].value));
66    return TRUE;
67  }
68  *val = 0;
69  return FALSE;
70}
71
72// maps name to otions
73feOptIndex feGetOptIndex(const char* name);
74feOptIndex feGetOptIndex(int optc);
75
76// Setting option values:
77// Return: NULL -- everything ok
78//         "error-string" on error
79
80// opt->type must be feOptInt or feOptBool
81const char* feSetOptValue(feOptIndex opt, int optarg);
82// for opt->type != feOptString, optarg is converted
83// to an int
84const char* feSetOptValue(feOptIndex opt, char* optarg);
85
86void fePrintOptValues();
87
88#endif /* __cplusplus */
89
90#endif /*  FEOPTS_H */
Note: See TracBrowser for help on using the repository browser.