a
This commit is contained in:
parent
f3986f2acf
commit
ec67b06594
1 changed files with 58 additions and 75 deletions
17
ccc.c
17
ccc.c
|
@ -13,8 +13,6 @@
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
|
|
||||||
#include <sixel.h>
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "file.h"
|
#include "file.h"
|
||||||
#include "icons.h"
|
#include "icons.h"
|
||||||
|
@ -872,7 +870,6 @@ void show_file_content(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strstr(current_file.name, ".jpg") == NULL && strstr(current_file.name, ".png") == NULL) {
|
|
||||||
int c;
|
int c;
|
||||||
/* Check if its binary */
|
/* Check if its binary */
|
||||||
while ((c = fgetc(file)) != EOF) {
|
while ((c = fgetc(file)) != EOF) {
|
||||||
|
@ -881,7 +878,6 @@ void show_file_content(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
int pipe_fd[2];
|
int pipe_fd[2];
|
||||||
if (pipe(pipe_fd) == -1) {
|
if (pipe(pipe_fd) == -1) {
|
||||||
perror("pipe");
|
perror("pipe");
|
||||||
|
@ -891,26 +887,14 @@ void show_file_content(void)
|
||||||
if (pid == 0) {
|
if (pid == 0) {
|
||||||
/* Child */
|
/* Child */
|
||||||
move_cursor(1, half_width);
|
move_cursor(1, half_width);
|
||||||
if (strstr(current_file.name, ".jpg") || strstr(current_file.name, ".png")) {
|
|
||||||
sixel_encoder_t *encoder = NULL;
|
|
||||||
sixel_encoder_new(&encoder, NULL);
|
|
||||||
/* Should be enough for most terminal */
|
|
||||||
char width[5];
|
|
||||||
snprintf(width, 5, "%d", (cols - half_width) * 6);
|
|
||||||
sixel_encoder_setopt(encoder, 'w', width);
|
|
||||||
sixel_encoder_encode(encoder, current_file.name);
|
|
||||||
sixel_encoder_unref(encoder);
|
|
||||||
} else {
|
|
||||||
close(pipe_fd[0]);
|
close(pipe_fd[0]);
|
||||||
dup2(pipe_fd[1], STDOUT_FILENO);
|
dup2(pipe_fd[1], STDOUT_FILENO);
|
||||||
dup2(pipe_fd[1], STDERR_FILENO);
|
dup2(pipe_fd[1], STDERR_FILENO);
|
||||||
close(pipe_fd[1]);
|
close(pipe_fd[1]);
|
||||||
execlp("vip", "vip", "-c", current_file.name, NULL);
|
execlp("vip", "vip", "-c", current_file.name, NULL);
|
||||||
}
|
|
||||||
_exit(1);
|
_exit(1);
|
||||||
} else if (pid > 0) {
|
} else if (pid > 0) {
|
||||||
/* Parent */
|
/* Parent */
|
||||||
if (!strstr(current_file.name, ".jpg") && !strstr(current_file.name, ".png")) {
|
|
||||||
close(pipe_fd[1]);
|
close(pipe_fd[1]);
|
||||||
char buffer[4096];
|
char buffer[4096];
|
||||||
int row = 1;
|
int row = 1;
|
||||||
|
@ -965,7 +949,6 @@ void show_file_content(void)
|
||||||
/* Line ends with ANSI reset, print it */
|
/* Line ends with ANSI reset, print it */
|
||||||
printf("\033[0m");
|
printf("\033[0m");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
fclose(stream);
|
fclose(stream);
|
||||||
}
|
}
|
||||||
waitpid(pid, NULL, 0);
|
waitpid(pid, NULL, 0);
|
||||||
|
|
Loading…
Reference in a new issue