bool cmd_open(girara_session_t* session, girara_list_t* argument_list) { g_return_val_if_fail(session != NULL, false); g_return_val_if_fail(session->global.data != NULL, false); zathura_t* zathura = session->global.data; const int argc = girara_list_size(argument_list); if (argc > 2) { girara_notify(session, GIRARA_ERROR, _("Too many arguments.")); return false; } else if (argc >= 1) { if (zathura->document != NULL) { document_close(zathura, false); } document_open(zathura, girara_list_nth(argument_list, 0), (argc == 2) ? girara_list_nth(argument_list, 1) : NULL, ZATHURA_PAGE_NUMBER_UNSPECIFIED); } else { girara_notify(session, GIRARA_ERROR, _("No arguments given.")); return false; } return true; }
gboolean cb_password_dialog(GtkEntry* entry, void* data) { if (entry == NULL || data == NULL) { goto error_ret; } zathura_password_dialog_info_t* dialog = data; if (dialog->path == NULL) { free(dialog); goto error_ret; } if (dialog->zathura == NULL) { goto error_free; } char* input = gtk_editable_get_chars(GTK_EDITABLE(entry), 0, -1); /* no or empty password: ask again */ if (input == NULL || strlen(input) == 0) { if (input != NULL) { g_free(input); } gdk_threads_add_idle(password_dialog, dialog); return false; } /* try to open document again */ if (document_open(dialog->zathura, dialog->path, dialog->uri, input, ZATHURA_PAGE_NUMBER_UNSPECIFIED) == false) { gdk_threads_add_idle(password_dialog, dialog); } else { g_free(dialog->path); g_free(dialog->uri); free(dialog); } g_free(input); return true; error_free: g_free(dialog->path); free(dialog); error_ret: return false; }
bool sc_reload(girara_session_t* session, girara_argument_t* UNUSED(argument), girara_event_t* UNUSED(event), unsigned int UNUSED(t)) { g_return_val_if_fail(session != NULL, false); g_return_val_if_fail(session->global.data != NULL, false); zathura_t* zathura = session->global.data; if (zathura->file_monitor.file_path == NULL) { return false; } /* close current document */ document_close(zathura, true); /* reopen document */ document_open(zathura, zathura->file_monitor.file_path, zathura->file_monitor.password); return false; }
bool sc_reload(girara_session_t* session, girara_argument_t* UNUSED(argument), girara_event_t* UNUSED(event), unsigned int UNUSED(t)) { g_return_val_if_fail(session != NULL, false); g_return_val_if_fail(session->global.data != NULL, false); zathura_t* zathura = session->global.data; if (zathura->file_monitor.monitor == NULL) { return false; } /* close current document */ document_close(zathura, true); /* reopen document */ document_open( zathura, zathura_filemonitor_get_filepath(zathura->file_monitor.monitor), NULL, zathura->file_monitor.password, ZATHURA_PAGE_NUMBER_UNSPECIFIED); return false; }