From 1fd1232450a215a37915e3657964f2dad7ce72d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Sun, 3 Feb 2019 13:27:20 +0100 Subject: Add graphviz output for TRIE's. Add simple output in dot format for trie structures. Along with a slightly updated main which handles a few more command line arguments. Also updated makefile to generate pdf's from dot files and dot-files from parse. --- main.c | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 9ee1288b..27385b55 100644 --- a/main.c +++ b/main.c @@ -1,25 +1,52 @@ #include +#include +#include #include "calendar.h" #include "macro.h" #include "vcal.h" -#include "stdio.h" +#include "graphs.h" + +typedef struct { + int argc; + char** argv; +} arg; + +int arg_shift (arg* a) { + if (a->argc == 0) return 0; + + ++a->argv; + return --a->argc; + +} int main (int argc, char* argv[argc]) { - if (argc < 2) { + arg args = { .argc = argc, .argv = argv }; + + if (arg_shift(&args) == 0) { puts("Please give vdir as first argument"); exit (1); } SNEW(vcalendar, cal); - read_vcalendar(&cal, argv[1]); + read_vcalendar(&cal, args.argv[0]); + arg_shift(&args); - printf("\nParsed calendar file containing [%lu] events\n", - cal.n_events); - for (size_t i = 0; i < cal.n_events; i++) { - printf("%3lu. %s\n", i + 1, get_property(cal.events[i], "SUMMARY")->val.mem); + if (args.argc == 0 || strcmp(args.argv[0], "-p") == 0) { + printf("\nParsed calendar file containing [%lu] events\n", + cal.n_events); + for (size_t i = 0; i < cal.n_events; i++) { + printf("%3lu. %s\n", i + 1, get_property(cal.events[i], "SUMMARY")->val.mem); + } + } else if (strcmp(args.argv[0], "-g") == 0) { + if (arg_shift(&args) == 0) { + create_graph(cal.events[0], "graph.dot"); + } else { + create_graph(cal.events[0], args.argv[0]); + } } + free_vcalendar(&cal); } -- cgit v1.2.3