diff --git a/synctex.c b/synctex.c index 9a9c91f..e3cd1bb 100644 --- a/synctex.c +++ b/synctex.c @@ -11,15 +11,24 @@ void synctex_edit(zathura_t* zathura, zathura_page_t* page, int x, int y) { - zathura_document_t* doc = zathura_page_get_document(page); - const char *filename = zathura_document_get_path(doc); - int pageIdx = zathura_page_get_index(page); - - char *buffer = g_strdup_printf("%d:%d:%d:%s", pageIdx+1, x, y, filename); - if (buffer == NULL) + if (zathura == NULL || page == NULL) { return; + } - if (zathura->synctex.editor) { + zathura_document_t* document = zathura_page_get_document(page); + if (document == NULL) { + return; + } + + const char *filename = zathura_document_get_path(document); + if (filename == NULL) { + return; + } + + int page_idx = zathura_page_get_index(page); + char *buffer = g_strdup_printf("%d:%d:%d:%s", page_idx + 1, x, y, filename); + + if (zathura->synctex.editor != NULL) { char* argv[] = {"synctex", "edit", "-o", buffer, "-x", zathura->synctex.editor, NULL}; g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL); } else {