/* depend: */
/* cflags: */
-/* linker: cmd.o tui.o -lpdcurses */
+/* linker: cmd.o debug.o tui.o -lpdcurses */
#include <stdlib.h>
#include "cmd.h"
+#include "debug.h"
#include "tui.h"
int display (char **lines, int xmax, int ymax)
}
}
+/* help message */
+int usage (int ret)
+{
+ FILE *fd = ret ? stderr : stdout;
+ fprintf (fd, "usage: %s [-c command] [-f file] [-h] [-v]\n", progname);
+ fprintf (fd, " -c: command\n");
+ fprintf (fd, " -i: input file\n");
+ fprintf (fd, " -h: help message\n");
+ fprintf (fd, " -v: verbose level (%d)\n", verbose);
+
+ return ret;
+}
+
+/* main function */
int main (int argc, char *argv[])
{
- char titre[256] = {0};
+ int rc = 0;
+ char *input = NULL;
+ char *command = NULL;
+ char c;
+
+ /* get basename */
+ char *pt = progname = argv[0];
+ while (*pt) {
+ if ((*pt == '/') || (*pt == '\\')) {
+ progname = pt + 1;
+ }
+ pt++;
+ }
+ /* process argument */
+ while (argc-- > 1) {
+ char *arg = *(++argv);
+ if (arg[0] != '-') {
+ VERBOSE (ERROR, fprintf (stderr, "%s: invalid option -- %s\n", progname, arg));
+ return usage (1);
+ }
+ char c = arg[1];
+ switch (c) {
+ case 'c':
+ arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
+ if ((arg) && (command == NULL)) {
+ command = arg;
+ } else {
+ VERBOSE (ERROR, fprintf (stderr, "%s: error for command '%s'\n", progname, arg));
+ return usage (1);
+ }
+ break;
+ case 'f':
+ arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
+ if ((arg) && (file == NULL)) {
+ file = arg;
+ } else {
+ VERBOSE (ERROR, fprintf (stderr, "%s: error for file '%s'\n", progname, arg));
+ return usage (1);
+ }
+ break;
+ case 'v':
+ arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
+ if (arg == NULL) {
+ VERBOSE (ERROR, fprintf (stderr, "%s: missing verbose level\n", progname));
+ return usage (1);
+ }
+ verbose = atoi (arg);
+ break;
+ case 'h':
+ default:
+ return usage (c != 'h');
+ }
+ }
+
+ char titre[256] = {0};
sprintf (titre, "Application: %s", (argc > 1) ? argv[1] : "demonstration program");
//setlocale (LC_ALL, "");