diff options
Diffstat (limited to 'fluid/app/args.cxx')
| -rw-r--r-- | fluid/app/args.cxx | 56 |
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; } - |
