mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-11-11 00:03:49 +01:00
24081171db
No functional changes. Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com> Signed-off-by: Sebastian Ramacher <s.ramacher@gmx.at>
170 lines
4.1 KiB
C
170 lines
4.1 KiB
C
/* See LICENSE file for license and copyright information */
|
|
|
|
#include "commands.h"
|
|
#include "bookmarks.h"
|
|
#include "database.h"
|
|
#include "zathura.h"
|
|
#include "print.h"
|
|
#include "document.h"
|
|
|
|
bool
|
|
cmd_bookmark_create(girara_session_t* UNUSED(session), girara_list_t*
|
|
UNUSED(argument_list))
|
|
{
|
|
return true;
|
|
}
|
|
|
|
bool
|
|
cmd_bookmark_delete(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;
|
|
if (zathura->document == NULL) {
|
|
girara_notify(session, GIRARA_ERROR, "No document opened.");
|
|
return false;
|
|
}
|
|
|
|
const unsigned int argc = girara_list_size(argument_list);
|
|
if (argc != 1) {
|
|
girara_notify(session, GIRARA_ERROR, "Invalid number of arguments given.");
|
|
return false;
|
|
}
|
|
|
|
const char* bookmark = girara_list_nth(argument_list, 0);
|
|
if (zathura_bookmark_remove(zathura, bookmark)) {
|
|
girara_notify(session, GIRARA_INFO, "Removed bookmark: %s", bookmark);
|
|
} else {
|
|
girara_notify(session, GIRARA_ERROR, "Failed to remove bookmark: %s", bookmark);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
bool
|
|
cmd_bookmark_open(girara_session_t* UNUSED(session), girara_list_t*
|
|
UNUSED(argument_list))
|
|
{
|
|
return true;
|
|
}
|
|
|
|
bool
|
|
cmd_close(girara_session_t* session, girara_list_t* UNUSED(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;
|
|
if (zathura->document == NULL) {
|
|
// nothing needs to be done
|
|
return true;
|
|
}
|
|
|
|
document_close(zathura);
|
|
|
|
return true;
|
|
}
|
|
|
|
bool
|
|
cmd_info(girara_session_t* UNUSED(session), girara_list_t*
|
|
UNUSED(argument_list))
|
|
{
|
|
return true;
|
|
}
|
|
|
|
bool
|
|
cmd_help(girara_session_t* UNUSED(session), girara_list_t*
|
|
UNUSED(argument_list))
|
|
{
|
|
return true;
|
|
}
|
|
|
|
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) {
|
|
document_close(zathura);
|
|
}
|
|
|
|
document_open(zathura, girara_list_nth(argument_list, 0), (argc == 2) ? girara_list_nth(argument_list, 1) : NULL);
|
|
}
|
|
else {
|
|
girara_notify(session, GIRARA_ERROR, "No arguments given.");
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
bool
|
|
cmd_print(girara_session_t* session, girara_list_t* UNUSED(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;
|
|
|
|
if (zathura->document == NULL) {
|
|
girara_notify(session, GIRARA_ERROR, "No open document.");
|
|
return false;
|
|
}
|
|
|
|
print((zathura_t*) session->global.data);
|
|
|
|
return true;
|
|
}
|
|
|
|
bool
|
|
cmd_save(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;
|
|
|
|
if (zathura->document == NULL) {
|
|
girara_notify(session, GIRARA_ERROR, "No open document.");
|
|
return false;
|
|
}
|
|
|
|
if (girara_list_size(argument_list) == 1) {
|
|
document_save(zathura, girara_list_nth(argument_list, 0), false);
|
|
}
|
|
else {
|
|
girara_notify(session, GIRARA_ERROR, "Invalid number of arguments.");
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
bool
|
|
cmd_savef(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;
|
|
|
|
if (zathura->document == NULL) {
|
|
girara_notify(session, GIRARA_ERROR, "No open document.");
|
|
return false;
|
|
}
|
|
|
|
if (girara_list_size(argument_list) == 1) {
|
|
document_save(zathura, girara_list_nth(argument_list, 0), true);
|
|
}
|
|
else {
|
|
girara_notify(session, GIRARA_ERROR, "Invalid number of arguments.");
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|