From: Zbigniew Jędrzejewski-Szmek Date: Mon, 28 Oct 2024 12:15:32 +0000 (+0100) Subject: qrcode-util: add debug message to show why a qrcode wasn't printed X-Git-Tag: v257-rc1~95^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f0764b98e5c136cb948a8034949064f610acca24;p=thirdparty%2Fsystemd.git qrcode-util: add debug message to show why a qrcode wasn't printed --- diff --git a/src/shared/qrcode-util.c b/src/shared/qrcode-util.c index 36cd5dcd7cf..56eace395e3 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);