summaryrefslogtreecommitdiff
path: root/fluid/app/args.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'fluid/app/args.cxx')
-rw-r--r--fluid/app/args.cxx56
1 files changed, 33 insertions, 23 deletions
diff --git a/fluid/app/args.cxx b/fluid/app/args.cxx
index b9d958e8c..70faebafc 100644
--- a/fluid/app/args.cxx
+++ b/fluid/app/args.cxx
@@ -22,8 +22,21 @@
#include <FL/filename.H>
#include <FL/fl_ask.H>
-using namespace fld;
-using namespace fld::app;
+#include <string.h>
+#include "../src/flstring.h"
+
+
+fld::app::Args::Args()
+: update_file(0),
+ compile_file(0),
+ compile_strings(0),
+ show_version(0)
+{
+ code_filename[0] = '\0';
+ header_filename[0] = '\0';
+ autodoc_path[0] = '\0';
+}
+
/**
Load args from command line into variables.
@@ -33,12 +46,12 @@ using namespace fld::app;
\return 0 if the args were handled successfully, -1 if there was an error
and the usage message was shown.
*/
-int Args::load(int argc,char **argv) {
+int fld::app::Args::load(int argc, char **argv) {
int i = 1;
Fl::args_to_utf8(argc, argv); // for MSYS2/MinGW
- if ( (Fl::args(argc,argv,i,arg_cb) == 0) // unsupported argument found
- || (Fluid.batch_mode && (i != argc-1)) // .fl filename missing
- || (!Fluid.batch_mode && (i < argc-1)) // more than one filename found
+ if ( (Fl::args(argc, argv, i, arg_cb) == 0) // unsupported argument found
+ || (Fluid.batch_mode && (i != argc - 1)) // .fl filename missing
+ || (!Fluid.batch_mode && (i < argc - 1)) // more than one filename found
|| (argv[i] && (argv[i][0] == '-'))) { // unknown option
static const char *msg =
"usage: %s <switches> name.fl\n"
@@ -50,13 +63,12 @@ int Args::load(int argc,char **argv) {
" --help : brief usage information\n"
" --version, -v : print fluid version number\n"
" -d : enable internal debugging\n";
- const char *app_name = nullptr;
- if ( (argc > 0) && argv[0] && argv[0][0] )
+ const char *app_name = 0;
+ if ((argc > 0) && argv[0] && argv[0][0])
app_name = fl_filename_name(argv[0]);
- if ( !app_name || !app_name[0])
+ if (!app_name || !app_name[0])
app_name = "fluid";
#ifdef _MSC_VER
- // TODO: if this is fluid-cmd, use stderr and not fl_message
fl_message(msg, app_name);
#else
fprintf(stderr, msg, app_name);
@@ -67,7 +79,7 @@ int Args::load(int argc,char **argv) {
}
-int Args::arg_cb(int argc, char** argv, int& i) {
+int fld::app::Args::arg_cb(int argc, char** argv, int& i) {
return Fluid.args.arg(argc, argv, i);
}
@@ -79,11 +91,11 @@ int Args::arg_cb(int argc, char** argv, int& i) {
\param[inout] i current argument index
\return number of arguments used; if 0, the argument is not supported
*/
-int Args::arg(int argc, char** argv, int& i) {
+int fld::app::Args::arg(int argc, char** argv, int& i) {
if (argv[i][0] != '-')
return 0;
if (argv[i][1] == 'd' && !argv[i][2]) {
- Fluid.debug_external_editor=1;
+ Fluid.debug_external_editor = 1;
i++; return 1;
}
if (argv[i][1] == 'u' && !argv[i][2]) {
@@ -96,7 +108,7 @@ int Args::arg(int argc, char** argv, int& i) {
Fluid.batch_mode++;
i++; return 1;
}
- if ((strcmp(argv[i], "-v")==0) || (strcmp(argv[i], "--version")==0)) {
+ if ((strcmp(argv[i], "-v") == 0) || (strcmp(argv[i], "--version") == 0)) {
show_version = 1;
i++; return 1;
}
@@ -106,31 +118,29 @@ int Args::arg(int argc, char** argv, int& i) {
Fluid.batch_mode++;
i++; return 1;
}
- if (argv[i][1] == 'o' && !argv[i][2] && i+1 < argc) {
- code_filename = argv[i+1];
+ if (argv[i][1] == 'o' && !argv[i][2] && i + 1 < argc) {
+ strlcpy(code_filename, argv[i + 1], FL_PATH_MAX);
Fluid.batch_mode++;
i += 2; return 2;
}
#ifndef NDEBUG
- if ((i+1 < argc) && (strcmp(argv[i], "--autodoc") == 0)) {
- autodoc_path = argv[i+1];
+ if ((i + 1 < argc) && (strcmp(argv[i], "--autodoc") == 0)) {
+ strlcpy(autodoc_path, argv[i + 1], FL_PATH_MAX);
i += 2; return 2;
}
#endif
- if (strcmp(argv[i], "--help")==0) {
+ if (strcmp(argv[i], "--help") == 0) {
return 0;
}
if (argv[i][1] == 'h' && !argv[i][2]) {
- if ( (i+1 < argc) && (argv[i+1][0] != '-') ) {
- header_filename = argv[i+1];
+ if ((i + 1 < argc) && (argv[i + 1][0] != '-')) {
+ strlcpy(header_filename, argv[i + 1], FL_PATH_MAX);
Fluid.batch_mode++;
i += 2;
return 2;
} else {
- // a lone "-h" without a filename will output the help string
return 0;
}
}
return 0;
}
-