source: git/Singular/feOpt.h @ ba6841

spielwiese
Last change on this file since ba6841 was ba6841, checked in by jgmbenoit <quatermaster@…>, 9 years ago
version tuple dump option Add a --dump-versiontuple long hidden option (that literaly dump Singular version) to Singular front-end programs in view to employ help2man to generate manpages.
  • 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
35void feOptHelp(const char* name);
36void feOptDumpVersionTuple(void);
37
38#ifdef __cplusplus
39
40static inline void* feOptValue(feOptIndex opt)
41{
42  return feOptSpec[(int)opt].value;
43}
44inline int feOptValue(feOptIndex opt, char** val)
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}
54inline int feOptValue(feOptIndex opt, int* val)
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}
64
65// maps name to otions
66feOptIndex feGetOptIndex(const char* name);
67feOptIndex feGetOptIndex(int optc);
68
69// Setting option values:
70// Return: NULL -- everything ok
71//         "error-string" on error
72
73// opt->type must be feOptInt or feOptBool
74const char* feSetOptValue(feOptIndex opt, int optarg);
75// for opt->type != feOptString, optarg is converted
76// to an int
77const char* feSetOptValue(feOptIndex opt, char* optarg);
78
79void fePrintOptValues();
80
81#endif /* __cplusplus */
82
83#endif /*  FEOPTS_H */
Note: See TracBrowser for help on using the repository browser.