aboutsummaryrefslogtreecommitdiff
path: root/src/io
diff options
context:
space:
mode:
authorJ08nY2017-05-29 15:11:38 +0200
committerJ08nY2017-05-29 15:11:38 +0200
commitba8c1f2bc424205cbb167b3c65ce184912c6173a (patch)
treedb21c80b3e7ed411ddbdc4151f82b875b83f279e /src/io
parent03eedf3f3e69093af6fd2717bbad04ffdfc7c25a (diff)
downloadecgen-ba8c1f2bc424205cbb167b3c65ce184912c6173a.tar.gz
ecgen-ba8c1f2bc424205cbb167b3c65ce184912c6173a.tar.zst
ecgen-ba8c1f2bc424205cbb167b3c65ce184912c6173a.zip
Diffstat (limited to 'src/io')
-rw-r--r--src/io/cli.h14
-rw-r--r--src/io/input.c19
-rw-r--r--src/io/input.h23
-rw-r--r--src/io/output.c3
-rw-r--r--src/io/output.h3
5 files changed, 25 insertions, 37 deletions
diff --git a/src/io/cli.h b/src/io/cli.h
index 3ae314e..6e0ab99 100644
--- a/src/io/cli.h
+++ b/src/io/cli.h
@@ -16,8 +16,22 @@ extern char cli_doc[];
extern char cli_args_doc[];
extern struct argp_option cli_options[];
+/**
+ * @brief
+ * @param key
+ * @param arg
+ * @param state
+ * @return
+ */
error_t cli_parse(int key, char *arg, struct argp_state *state);
+/**
+ * @brief
+ * @param key
+ * @param text
+ * @param input
+ * @return
+ */
char *cli_filter(int key, const char *text, void *input);
#endif // ECGEN_CLI_H
diff --git a/src/io/input.c b/src/io/input.c
index 2b18a53..726b710 100644
--- a/src/io/input.c
+++ b/src/io/input.c
@@ -94,32 +94,19 @@ GEN input_string(const char *prompt) {
return result;
}
-GEN input_param(param_t param, const char *prompt, unsigned long bits) {
- switch (param) {
- case PARAM_PRIME:
- return input_prime(prompt, bits);
- case PARAM_INT:
- return input_int(prompt, bits);
- case PARAM_SHORT:
- return input_short(prompt);
- case PARAM_STRING:
- return input_string(prompt);
- }
- return gen_m1;
-}
-
-void input_init(const config_t *cfg) {
+bool input_init(const config_t *cfg) {
if (cfg->input) {
in = fopen(cfg->input, "r");
delim = ',';
if (!in) {
perror("Failed to open input file.");
- exit(1);
+ return false;
}
} else {
in = stdin;
delim = '\n';
}
+ return true;
}
void input_quit(void) {
diff --git a/src/io/input.h b/src/io/input.h
index 579af3c..fa69503 100644
--- a/src/io/input.h
+++ b/src/io/input.h
@@ -11,13 +11,6 @@
#include "math/random.h"
#include "math/types.h"
-typedef enum PARAM {
- PARAM_PRIME,
- PARAM_INT,
- PARAM_SHORT,
- PARAM_STRING
-} param_t;
-
/**
*
* @param prompt
@@ -50,26 +43,18 @@ GEN input_string(const char *prompt);
/**
*
- * @param param
- * @param prompt
- * @param bits
- * @return
- */
-GEN input_param(param_t param, const char *prompt, unsigned long bits);
-
-/**
- *
*/
extern FILE *in;
/**
- *
+ * @brief Initialize input based on cfg.
* @param cfg
+ * @return whether the initialization was successful
*/
-void input_init(const config_t *cfg);
+bool input_init(const config_t *cfg);
/**
- *
+ * @brief Deinitialize input.
*/
void input_quit(void);
diff --git a/src/io/output.c b/src/io/output.c
index dafbf14..1904a22 100644
--- a/src/io/output.c
+++ b/src/io/output.c
@@ -292,7 +292,7 @@ void output_f_end(FILE *out, const config_t *cfg) {
void output_o_end(const config_t *cfg) { output_f_end(out, cfg); }
-void output_init(const config_t *cfg) {
+bool output_init(const config_t *cfg) {
json_set_allocation_functions(try_malloc, pari_free);
if (cfg->output) {
@@ -333,6 +333,7 @@ void output_init(const config_t *cfg) {
break;
}
}
+ return true;
}
void output_quit(void) {
diff --git a/src/io/output.h b/src/io/output.h
index cafffc1..f04e665 100644
--- a/src/io/output.h
+++ b/src/io/output.h
@@ -208,8 +208,9 @@ extern FILE *verbose;
/**
* @brief Initialize output based on cfg.
* @param cfg
+ * @return whether the initialization was successful
*/
-void output_init(const config_t *cfg);
+bool output_init(const config_t *cfg);
/**
* @brief Deinitialize output.