summaryrefslogtreecommitdiff
path: root/caln/mkevent.c
diff options
context:
space:
mode:
Diffstat (limited to 'caln/mkevent.c')
-rw-r--r--caln/mkevent.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/caln/mkevent.c b/caln/mkevent.c
new file mode 100644
index 0000000..6c3f025
--- /dev/null
+++ b/caln/mkevent.c
@@ -0,0 +1,39 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+static void
+usage() {
+ fprintf(stderr, "mkevent \"contents\" Tomorrow | NUM NUM [NUM]\n");
+ exit(1);
+}
+
+int
+main (int argc, char **argv) {
+ if (argc < 3)
+ usage();
+
+ time_t ut = time(NULL);
+ struct tm *t = localtime(&ut);
+
+ if ((strcmp(argv[2], "tomorrow") & strcmp(argv[2], "Tomorrow") & strcmp("Tom", argv[2])) == 0)
+ ut += 86400;
+ else {
+ char buf[256] = {0};
+ snprintf(buf, 256, "%s %s",
+ (argv[2]) ? argv[2] : "",
+ (argv[3]) ? argv[3] : "");
+ int day, month;
+ int ret = sscanf(buf, "%d %d", &day, &month);
+
+ t->tm_mday = day;
+ t->tm_mon = month - 1;
+
+ if (ret < 2) usage();
+
+ ut = mktime(t);
+ }
+
+ printf("%zu|%s\n", ut, argv[1]);
+}