mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-12-28 19:06:01 +01:00
Remove unused execute_command
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
This commit is contained in:
parent
fcbc9cf883
commit
3a0fe29336
1 changed files with 2 additions and 81 deletions
83
utils.c
83
utils.c
|
@ -9,9 +9,10 @@
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
#include <girara/datastructures.h>
|
||||||
#include <girara/session.h>
|
#include <girara/session.h>
|
||||||
#include <girara/utils.h>
|
|
||||||
#include <girara/settings.h>
|
#include <girara/settings.h>
|
||||||
|
#include <girara/utils.h>
|
||||||
#include <glib/gi18n.h>
|
#include <glib/gi18n.h>
|
||||||
|
|
||||||
#include "links.h"
|
#include "links.h"
|
||||||
|
@ -22,10 +23,6 @@
|
||||||
#include "page.h"
|
#include "page.h"
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
|
|
||||||
#include <girara/datastructures.h>
|
|
||||||
|
|
||||||
#define BLOCK_SIZE 64
|
|
||||||
|
|
||||||
const char*
|
const char*
|
||||||
file_get_extension(const char* path)
|
file_get_extension(const char* path)
|
||||||
{
|
{
|
||||||
|
@ -59,82 +56,6 @@ file_valid_extension(zathura_t* zathura, const char* path)
|
||||||
return (plugin == NULL) ? false : true;
|
return (plugin == NULL) ? false : true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
execute_command(char* const argv[], char** output)
|
|
||||||
{
|
|
||||||
if (!output) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
int p[2];
|
|
||||||
if (pipe(p)) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
pid_t pid = fork();
|
|
||||||
|
|
||||||
if (pid == -1) { // failure
|
|
||||||
return false;
|
|
||||||
} else if (pid == 0) { // child
|
|
||||||
dup2(p[1], 1);
|
|
||||||
close(p[0]);
|
|
||||||
|
|
||||||
if (execvp(argv[0], argv) == -1) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} else { // parent
|
|
||||||
dup2(p[0], 0);
|
|
||||||
close(p[1]);
|
|
||||||
|
|
||||||
/* read output */
|
|
||||||
unsigned int bc = BLOCK_SIZE;
|
|
||||||
unsigned int i = 0;
|
|
||||||
char* buffer = malloc(sizeof(char) * bc);
|
|
||||||
*output = NULL;
|
|
||||||
|
|
||||||
if (!buffer) {
|
|
||||||
close(p[0]);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
char c;
|
|
||||||
while (1 == read(p[0], &c, 1)) {
|
|
||||||
buffer[i++] = c;
|
|
||||||
|
|
||||||
if (i == bc) {
|
|
||||||
bc += BLOCK_SIZE;
|
|
||||||
char* tmp = realloc(buffer, sizeof(char) * bc);
|
|
||||||
|
|
||||||
if (!tmp) {
|
|
||||||
free(buffer);
|
|
||||||
close(p[0]);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
buffer = tmp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
char* tmp = realloc(buffer, sizeof(char) * (bc + 1));
|
|
||||||
if (!tmp) {
|
|
||||||
free(buffer);
|
|
||||||
close(p[0]);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
buffer = tmp;
|
|
||||||
buffer[i] = '\0';
|
|
||||||
|
|
||||||
*output = buffer;
|
|
||||||
|
|
||||||
/* wait for child to terminate */
|
|
||||||
waitpid(pid, NULL, 0);
|
|
||||||
close(p[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
document_index_build(GtkTreeModel* model, GtkTreeIter* parent,
|
document_index_build(GtkTreeModel* model, GtkTreeIter* parent,
|
||||||
girara_tree_node_t* tree)
|
girara_tree_node_t* tree)
|
||||||
|
|
Loading…
Reference in a new issue