[alsa-utils][PATCH 02/14] axfer: minor code arrangement in a point of stdio detection
Takashi Sakamoto
o-takashi at sakamocchi.jp
Thu Mar 11 06:21:33 CET 2021
Current implementation sets stdio member in a condition branch, however
it's convenient to set it always regardless of any condition.
This commit arranges assignment to the member.
Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
---
axfer/container.c | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/axfer/container.c b/axfer/container.c
index 8733ff7..fb35eba 100644
--- a/axfer/container.c
+++ b/axfer/container.c
@@ -169,6 +169,14 @@ int container_parser_init(struct container_context *cntr,
// Open a target descriptor.
if (!strcmp(path, "-")) {
cntr->fd = fileno(stdin);
+ } else {
+ cntr->fd = open(path, O_RDONLY);
+ if (cntr->fd < 0)
+ return -errno;
+ }
+
+ cntr->stdio = (cntr->fd == fileno(stdin));
+ if (cntr->stdio) {
if (isatty(cntr->fd)) {
fprintf(stderr,
"A terminal is referred for standard input. "
@@ -176,11 +184,6 @@ int container_parser_init(struct container_context *cntr,
"should be referred instead.\n");
return -EIO;
}
- cntr->stdio = true;
- } else {
- cntr->fd = open(path, O_RDONLY);
- if (cntr->fd < 0)
- return -errno;
}
err = set_nonblock_flag(cntr->fd);
@@ -254,6 +257,14 @@ int container_builder_init(struct container_context *cntr,
return -EINVAL;
if (!strcmp(path, "-")) {
cntr->fd = fileno(stdout);
+ } else {
+ cntr->fd = open(path, O_RDWR | O_CREAT | O_TRUNC, 0644);
+ if (cntr->fd < 0)
+ return -errno;
+ }
+
+ cntr->stdio = (cntr->fd == fileno(stdout));
+ if (cntr->stdio) {
if (isatty(cntr->fd)) {
fprintf(stderr,
"A terminal is referred for standard output. "
@@ -261,11 +272,6 @@ int container_builder_init(struct container_context *cntr,
"should be referred instead.\n");
return -EIO;
}
- cntr->stdio = true;
- } else {
- cntr->fd = open(path, O_RDWR | O_CREAT | O_TRUNC, 0644);
- if (cntr->fd < 0)
- return -errno;
}
err = set_nonblock_flag(cntr->fd);
--
2.27.0
More information about the Alsa-devel
mailing list