mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-12-28 23:16:02 +01:00
Reduce some of the #ifdef madness
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
This commit is contained in:
parent
564ae2bdd6
commit
ec5268a975
1 changed files with 35 additions and 33 deletions
|
@ -18,6 +18,10 @@
|
||||||
#include "synctex.h"
|
#include "synctex.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef GDK_WINDOWING_X11
|
||||||
|
typedef int Window;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Init locale */
|
/* Init locale */
|
||||||
static void
|
static void
|
||||||
init_locale(void)
|
init_locale(void)
|
||||||
|
@ -45,7 +49,7 @@ set_log_level(const char* loglevel)
|
||||||
#ifdef WITH_SYNCTEX
|
#ifdef WITH_SYNCTEX
|
||||||
static int
|
static int
|
||||||
run_synctex_forward(const char* synctex_fwd, const char* filename,
|
run_synctex_forward(const char* synctex_fwd, const char* filename,
|
||||||
int synctex_pid)
|
int synctex_pid)
|
||||||
{
|
{
|
||||||
GFile* file = g_file_new_for_commandline_arg(filename);
|
GFile* file = g_file_new_for_commandline_arg(filename);
|
||||||
if (file == NULL) {
|
if (file == NULL) {
|
||||||
|
@ -60,8 +64,8 @@ run_synctex_forward(const char* synctex_fwd, const char* filename,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int line = 0;
|
int line = 0;
|
||||||
int column = 0;
|
int column = 0;
|
||||||
char* input_file = NULL;
|
char* input_file = NULL;
|
||||||
if (synctex_parse_input(synctex_fwd, &input_file, &line, &column) == false) {
|
if (synctex_parse_input(synctex_fwd, &input_file, &line, &column) == false) {
|
||||||
girara_error("Failed to parse argument to --synctex-forward.");
|
girara_error("Failed to parse argument to --synctex-forward.");
|
||||||
|
@ -69,13 +73,15 @@ run_synctex_forward(const char* synctex_fwd, const char* filename,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const int ret = zathura_dbus_synctex_position(real_path, input_file, line, column, synctex_pid);
|
const int ret = zathura_dbus_synctex_position(real_path, input_file, line,
|
||||||
|
column, synctex_pid);
|
||||||
g_free(input_file);
|
g_free(input_file);
|
||||||
g_free(real_path);
|
g_free(real_path);
|
||||||
|
|
||||||
if (ret == -1) {
|
if (ret == -1) {
|
||||||
/* D-Bus or SyncTeX failed */
|
/* D-Bus or SyncTeX failed */
|
||||||
girara_error("Got no usable data from SyncTeX or D-Bus failed in some way.");
|
girara_error(
|
||||||
|
"Got no usable data from SyncTeX or D-Bus failed in some way.");
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -84,12 +90,8 @@ run_synctex_forward(const char* synctex_fwd, const char* filename,
|
||||||
|
|
||||||
static zathura_t*
|
static zathura_t*
|
||||||
init_zathura(const char* config_dir, const char* data_dir,
|
init_zathura(const char* config_dir, const char* data_dir,
|
||||||
const char* cache_dir, const char* plugin_path, char** argv,
|
const char* cache_dir, const char* plugin_path, char** argv,
|
||||||
#ifdef GDK_WINDOWING_X11
|
char* synctex_editor, Window embed)
|
||||||
char* synctex_editor, Window embed)
|
|
||||||
#else
|
|
||||||
char* synctex_editor)
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
/* create zathura session */
|
/* create zathura session */
|
||||||
zathura_t* zathura = zathura_create();
|
zathura_t* zathura = zathura_create();
|
||||||
|
@ -114,7 +116,8 @@ init_zathura(const char* config_dir, const char* data_dir,
|
||||||
|
|
||||||
#ifdef WITH_SYNCTEX
|
#ifdef WITH_SYNCTEX
|
||||||
if (synctex_editor != NULL) {
|
if (synctex_editor != NULL) {
|
||||||
girara_setting_set(zathura->ui.session, "synctex-editor-command", synctex_editor);
|
girara_setting_set(zathura->ui.session, "synctex-editor-command",
|
||||||
|
synctex_editor);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -138,11 +141,11 @@ main(int argc, char* argv[])
|
||||||
gchar* synctex_editor = NULL;
|
gchar* synctex_editor = NULL;
|
||||||
gchar* synctex_fwd = NULL;
|
gchar* synctex_fwd = NULL;
|
||||||
gchar* mode = NULL;
|
gchar* mode = NULL;
|
||||||
bool forkback = false;
|
bool forkback = false;
|
||||||
bool print_version = false;
|
bool print_version = false;
|
||||||
int page_number = ZATHURA_PAGE_NUMBER_UNSPECIFIED;
|
int page_number = ZATHURA_PAGE_NUMBER_UNSPECIFIED;
|
||||||
#ifdef WITH_SYNCTEX
|
#ifdef WITH_SYNCTEX
|
||||||
int synctex_pid = -1;
|
int synctex_pid = -1;
|
||||||
#endif
|
#endif
|
||||||
#ifdef GDK_WINDOWING_X11
|
#ifdef GDK_WINDOWING_X11
|
||||||
Window embed = 0;
|
Window embed = 0;
|
||||||
|
@ -189,7 +192,8 @@ main(int argc, char* argv[])
|
||||||
/* handle synctex forward synchronization */
|
/* handle synctex forward synchronization */
|
||||||
if (synctex_fwd != NULL) {
|
if (synctex_fwd != NULL) {
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
girara_error("Too many arguments or missing filename while running with --synctex-forward");
|
girara_error("Too many arguments or missing filename while running with "
|
||||||
|
"--synctex-forward");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,7 +212,8 @@ main(int argc, char* argv[])
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* check mode */
|
/* check mode */
|
||||||
if (mode != NULL && g_strcmp0(mode, "presentation") != 0 && g_strcmp0(mode, "fullscreen") != 0) {
|
if (mode != NULL && g_strcmp0(mode, "presentation") != 0 &&
|
||||||
|
g_strcmp0(mode, "fullscreen") != 0) {
|
||||||
girara_error("Invalid argument for --mode: %s", mode);
|
girara_error("Invalid argument for --mode: %s", mode);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -220,7 +225,7 @@ main(int argc, char* argv[])
|
||||||
*
|
*
|
||||||
* So if there is one -- in argv, we need to ignore it. */
|
* So if there is one -- in argv, we need to ignore it. */
|
||||||
const bool has_double_dash = argc > 1 && g_strcmp0(argv[1], "--") == 0;
|
const bool has_double_dash = argc > 1 && g_strcmp0(argv[1], "--") == 0;
|
||||||
const int file_idx_base = has_double_dash ? 2 : 1;
|
const int file_idx_base = has_double_dash ? 2 : 1;
|
||||||
|
|
||||||
int file_idx = argc > file_idx_base ? file_idx_base : 0;
|
int file_idx = argc > file_idx_base ? file_idx_base : 0;
|
||||||
/* Fork instances for other files. */
|
/* Fork instances for other files. */
|
||||||
|
@ -230,11 +235,13 @@ main(int argc, char* argv[])
|
||||||
if (pid == 0) { /* child */
|
if (pid == 0) { /* child */
|
||||||
file_idx = idx;
|
file_idx = idx;
|
||||||
if (setsid() == -1) {
|
if (setsid() == -1) {
|
||||||
girara_error("Could not start new process group: %s", strerror(errno));
|
girara_error("Could not start new process group: %s",
|
||||||
|
strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
} else if (pid < 0) { /* error */
|
}
|
||||||
|
else if (pid < 0) { /* error */
|
||||||
girara_error("Could not fork: %s", strerror(errno));
|
girara_error("Could not fork: %s", strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -242,11 +249,13 @@ main(int argc, char* argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fork into the background if the user really wants to ... */
|
/* Fork into the background if the user really wants to ... */
|
||||||
if (print_version == false && forkback == true && file_idx < file_idx_base + 1) {
|
if (print_version == false && forkback == true &&
|
||||||
|
file_idx < file_idx_base + 1) {
|
||||||
const pid_t pid = fork();
|
const pid_t pid = fork();
|
||||||
if (pid > 0) { /* parent */
|
if (pid > 0) { /* parent */
|
||||||
return 0;
|
return 0;
|
||||||
} else if (pid < 0) { /* error */
|
}
|
||||||
|
else if (pid < 0) { /* error */
|
||||||
girara_error("Could not fork: %s", strerror(errno));
|
girara_error("Could not fork: %s", strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -262,11 +271,7 @@ main(int argc, char* argv[])
|
||||||
|
|
||||||
/* Create zathura session */
|
/* Create zathura session */
|
||||||
zathura_t* zathura = init_zathura(config_dir, data_dir, cache_dir,
|
zathura_t* zathura = init_zathura(config_dir, data_dir, cache_dir,
|
||||||
#ifdef GDK_WINDOWING_X11
|
plugin_path, argv, synctex_editor, embed);
|
||||||
plugin_path, argv, synctex_editor, embed);
|
|
||||||
#else
|
|
||||||
plugin_path, argv, synctex_editor);
|
|
||||||
#endif
|
|
||||||
if (zathura == NULL) {
|
if (zathura == NULL) {
|
||||||
girara_error("Could not initialize zathura.");
|
girara_error("Could not initialize zathura.");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -289,11 +294,8 @@ main(int argc, char* argv[])
|
||||||
if (page_number > 0) {
|
if (page_number > 0) {
|
||||||
--page_number;
|
--page_number;
|
||||||
}
|
}
|
||||||
#ifdef WITH_SYNCTEX
|
document_open_idle(zathura, argv[file_idx], password, page_number, mode,
|
||||||
document_open_idle(zathura, argv[file_idx], password, page_number, mode, synctex_fwd);
|
synctex_fwd);
|
||||||
#else
|
|
||||||
document_open_idle(zathura, argv[file_idx], password, page_number, mode, NULL);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* run zathura */
|
/* run zathura */
|
||||||
|
|
Loading…
Reference in a new issue