From a742c56ee7182c13178f49d85b3b6a03f964b816 Mon Sep 17 00:00:00 2001 From: Francesco Abbate Date: Thu, 18 Mar 2021 10:06:01 +0100 Subject: [PATCH] Minor xrdb buffer optimization --- src/xrdb_parse.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/xrdb_parse.c b/src/xrdb_parse.c index 24961b72..47018106 100644 --- a/src/xrdb_parse.c +++ b/src/xrdb_parse.c @@ -68,15 +68,14 @@ static int xrdb_try_dpi_match(const char *line, int len) { return -1; } -#define XRDB_READ_BUF_SIZE 256 -static void xrdb_complete_reading(int read_fd) { - char buf[XRDB_READ_BUF_SIZE]; +static void xrdb_complete_reading(int read_fd, char *buf, size_t buf_size) { while (1) { - int nr = read(read_fd, buf, XRDB_READ_BUF_SIZE); + int nr = read(read_fd, buf, buf_size); if (nr <= 0) return; } } +#define XRDB_READ_BUF_SIZE 256 static int xrdb_parse_for_dpi(int read_fd) { char buf[XRDB_READ_BUF_SIZE]; char buf_remaining = 0; @@ -93,7 +92,7 @@ static int xrdb_parse_for_dpi(int read_fd) { if (nlptr < buf_limit) { int dpi_read = xrdb_try_dpi_match(line_start, nlptr - line_start); if (dpi_read > 0) { - xrdb_complete_reading(read_fd); + xrdb_complete_reading(read_fd, buf, XRDB_READ_BUF_SIZE); return dpi_read; } /* doesn't match: position after newline to search again */