From f0764b98e5c136cb948a8034949064f610acca24 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 28 Oct 2024 13:15:32 +0100 Subject: [PATCH] qrcode-util: add debug message to show why a qrcode wasn't printed --- src/shared/qrcode-util.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/shared/qrcode-util.c b/src/shared/qrcode-util.c index 36cd5dcd7c..56eace395e 100644 --- a/src/shared/qrcode-util.c +++ b/src/shared/qrcode-util.c @@ -179,8 +179,10 @@ int print_qrcode_full(FILE *out, const char *header, const char *string, unsigne /* If this is not a UTF-8 system or ANSI colors aren't supported/disabled don't print any QR * codes */ - if (!is_locale_utf8() || !colors_enabled()) - return -EOPNOTSUPP; + if (!is_locale_utf8()) + return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Not an UTF-8 system, cannot print qrcode"); + if (!colors_enabled()) + return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Colors are disabled, cannot print qrcode"); r = dlopen_qrencode(); if (r < 0) @@ -188,21 +190,21 @@ int print_qrcode_full(FILE *out, const char *header, const char *string, unsigne qr = sym_QRcode_encodeString(string, 0, QR_ECLEVEL_L, QR_MODE_8, 1); if (!qr) - return -ENOMEM; + return log_oom_debug(); if (row != UINT_MAX && column != UINT_MAX) { - int fd; unsigned qr_code_width, qr_code_height; - fd = fileno(out); + + int fd = fileno(out); if (fd < 0) return log_debug_errno(errno, "Failed to get file descriptor from the file stream: %m"); - qr_code_width = qr_code_height = qr->width + 8; + qr_code_width = qr_code_height = qr->width + 8; if (column + qr_code_width > tty_width) column = tty_width - qr_code_width; /* Terminal characters are twice as high as they are wide so it's qr_code_height / 2, - * our QR code prints an extra new line, so we have -1 as well */ + * our QR code prints an extra new line, so we have -1 as well */ if (row + qr_code_height > tty_height) row = tty_height - (qr_code_height / 2 ) - 1; @@ -218,7 +220,6 @@ int print_qrcode_full(FILE *out, const char *header, const char *string, unsigne fprintf(out, "\n%s:\n\n", header); write_qrcode(out, qr, row, column); - fputc('\n', out); sym_QRcode_free(qr); -- 2.25.1