pmaports/temp/kbd/0001-libkbdfile-Check-compression-suffix-even-if-the-suff.patch
Daniele Debernardi 6b0aae4442
temp/kbd: new aport (!572)
[ci:skip-build]: already built successfully in CI
2019-09-14 04:32:19 +02:00

68 lines
1.8 KiB
Diff

From 7e27102b6fc6991a6a4eca422b513781a26b1639 Mon Sep 17 00:00:00 2001
From: Alexey Gladkov <gladkov.alexey@gmail.com>
Date: Wed, 21 Aug 2019 13:29:16 +0200
Subject: [PATCH] libkbdfile: Check compression suffix even if the suffix is
part of filename
Link: https://github.com/legionus/kbd/issues/32
Signed-off-by: Alexey Gladkov <gladkov.alexey@gmail.com>
---
src/libkbdfile/kbdfile.c | 25 ++++++++++++-------------
src/libkbdfile/kbdfile.h | 2 ++
2 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/src/libkbdfile/kbdfile.c b/src/libkbdfile/kbdfile.c
index fb8e035..487b434 100644
--- a/src/libkbdfile/kbdfile.c
+++ b/src/libkbdfile/kbdfile.c
@@ -344,20 +344,13 @@ StartScan:
snprintf(fp->pathname, sizeof(fp->pathname), "%s/%s%s%s", dir, fnam, suf[index], (dc ? dc->ext : ""));
if (!dc) {
- fp->flags &= ~KBDFILE_PIPE;
- fp->fd = fopen(fp->pathname, "r");
+ rc = maybe_pipe_open(fp);
+ goto EndScan;
+ }
- if (!(fp->fd)) {
- strerror_r(errno, errbuf, sizeof(errbuf));
- ERR(fp->ctx, "fopen: %s: %s", fp->pathname, errbuf);
- rc = -1;
- goto EndScan;
- }
- } else {
- if (pipe_open(dc, fp) < 0) {
- rc = -1;
- goto EndScan;
- }
+ if (pipe_open(dc, fp) < 0) {
+ rc = -1;
+ goto EndScan;
}
}
@@ -457,3 +450,9 @@ kbdfile_open(struct kbdfile_ctx *ctx, const char *filename)
return fp;
}
+
+int
+kbdfile_is_compressed(struct kbdfile *fp)
+{
+ return (fp->flags & KBDFILE_PIPE);
+}
diff --git a/src/libkbdfile/kbdfile.h b/src/libkbdfile/kbdfile.h
index 412179a..0318a8e 100644
--- a/src/libkbdfile/kbdfile.h
+++ b/src/libkbdfile/kbdfile.h
@@ -45,6 +45,8 @@ int kbdfile_set_pathname(struct kbdfile *fp, const char *pathname);
FILE *kbdfile_get_file(struct kbdfile *fp);
int kbdfile_set_file(struct kbdfile *fp, FILE *x);
+int kbdfile_is_compressed(struct kbdfile *fp);
+
#include <syslog.h>
void