#include #include #include #include #include static EDJournal *journal = NULL; static GApplication *app = NULL; static void interrupt(int signal) { if (app != NULL) { g_application_release(app); } } static void new_entry(EDJournal *sender, EDJournalFile *file, EDJournalEntry *entry, gpointer data) { fprintf(stdout, "new event!\n"); } static void activate(GApplication *self, gpointer data) { gchar *location = NULL; GError *error = NULL; journal = ed_journal_new_with_location(location, &error); if (journal == NULL) { fprintf(stderr, "failed to open journal: %s\n", error->message); g_application_quit(self); return; } g_signal_connect(journal, "new-entry", G_CALLBACK(new_entry), NULL); g_application_hold(self); } int main(int ac, char **av) { app = g_application_new("org.nola.edwatch", 0); if (app == NULL) { return 3; } signal(SIGINT, interrupt); g_signal_connect(app, "activate", G_CALLBACK(activate), NULL); g_application_run(app, 0, NULL); return 0; }