summaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
authorAnton Luka Šijanec <anton@sijanec.eu>2021-09-20 21:12:28 +0200
committerAnton Luka Šijanec <anton@sijanec.eu>2021-09-20 21:12:28 +0200
commit70cf778548fc47d99fef83b892191902178d1242 (patch)
tree2e621cd1fb1e7a2c030f6391fab2037e29fb8458 /src/main.c
parentthis will NEVER work (no, it will, i'm just tired) (diff)
downloaddiscord.c-70cf778548fc47d99fef83b892191902178d1242.tar
discord.c-70cf778548fc47d99fef83b892191902178d1242.tar.gz
discord.c-70cf778548fc47d99fef83b892191902178d1242.tar.bz2
discord.c-70cf778548fc47d99fef83b892191902178d1242.tar.lz
discord.c-70cf778548fc47d99fef83b892191902178d1242.tar.xz
discord.c-70cf778548fc47d99fef83b892191902178d1242.tar.zst
discord.c-70cf778548fc47d99fef83b892191902178d1242.zip
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index 401fb2d..7288332 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3,10 +3,20 @@
#include <math.h>
#include <libwebsockets.h>
#include <assert.h>
+#include <signal.h>
#include <lib.c>
#include <ui.c>
#include <api.c>
+int dc_interrupted;
+void dc_signal (int i) {
+ dc_interrupted++;
+ return;
+}
int main (int argc, char * argv[]) {
+ if (DC_JSON_PATHS_LENGTH != sizeof(dc_json_paths)/sizeof(dc_json_paths[0]) || DC_JSON_PATHS_LENGTH > 255) {
+ fprintf(stderr, "json paths enum: %d, array: %d (255 is max, must be same)\n", DC_JSON_PATHS_LENGTH, sizeof(dc_json_paths)/sizeof(dc_json_paths[0]));
+ return 1;
+ }
struct dc_program * p = dc_program_init();
struct dc_client * client = dc_client_init();
lws_set_log_level(0xFF /* all message types */, NULL /* not change output location - cerr */);
@@ -18,9 +28,10 @@ int main (int argc, char * argv[]) {
.client = client
};
dc_api_i(i);
- while (1)
+ signal(SIGINT, dc_signal);
+ while (!dc_interrupted)
i = dc_api_o(i);
/* dc_ui(argc, argv); */
- dc_program_free(p);
+ dc_program_free(p, DC_UNSET);
return 0;
}