mirror of
https://github.com/systemd/systemd.git
synced 2025-01-10 05:18:17 +03:00
bsod: do not check for color support
When invoked on a running system, bsod would not print the qrcode. The check for "color support" on stdout is pointless, since we're not printing to stdout but to a terminal fd that is opened separately.
This commit is contained in:
parent
f0764b98e5
commit
5a64c86936
@ -212,7 +212,9 @@ static int display_emergency_message_fullscreen(const char *message) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
r = print_qrcode_full(stream, "Scan the QR code", message, qr_code_start_row, qr_code_start_column, w.ws_col, w.ws_row);
|
||||
r = print_qrcode_full(stream, "Scan the QR code",
|
||||
message, qr_code_start_row, qr_code_start_column, w.ws_col, w.ws_row,
|
||||
/* check_tty= */ false);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "QR code could not be printed, ignoring: %m");
|
||||
|
||||
|
@ -173,7 +173,16 @@ static void write_qrcode(FILE *output, QRcode *qr, unsigned int row, unsigned in
|
||||
fflush(output);
|
||||
}
|
||||
|
||||
int print_qrcode_full(FILE *out, const char *header, const char *string, unsigned row, unsigned column, unsigned tty_width, unsigned tty_height) {
|
||||
int print_qrcode_full(
|
||||
FILE *out,
|
||||
const char *header,
|
||||
const char *string,
|
||||
unsigned row,
|
||||
unsigned column,
|
||||
unsigned tty_width,
|
||||
unsigned tty_height,
|
||||
bool check_tty) {
|
||||
|
||||
QRcode* qr;
|
||||
int r;
|
||||
|
||||
@ -181,7 +190,7 @@ int print_qrcode_full(FILE *out, const char *header, const char *string, unsigne
|
||||
* codes */
|
||||
if (!is_locale_utf8())
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Not an UTF-8 system, cannot print qrcode");
|
||||
if (!colors_enabled())
|
||||
if (check_tty && !colors_enabled())
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Colors are disabled, cannot print qrcode");
|
||||
|
||||
r = dlopen_qrencode();
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
@ -8,15 +9,29 @@
|
||||
#if HAVE_QRENCODE
|
||||
int dlopen_qrencode(void);
|
||||
|
||||
int print_qrcode_full(FILE *out, const char *header, const char *string, unsigned row, unsigned column, unsigned tty_width, unsigned tty_height);
|
||||
static inline int print_qrcode(FILE *out, const char *header, const char *string) {
|
||||
return print_qrcode_full(out, header, string, UINT_MAX, UINT_MAX, UINT_MAX, UINT_MAX);
|
||||
}
|
||||
int print_qrcode_full(
|
||||
FILE *out,
|
||||
const char *header,
|
||||
const char *string,
|
||||
unsigned row,
|
||||
unsigned column,
|
||||
unsigned tty_width,
|
||||
unsigned tty_height,
|
||||
bool check_tty);
|
||||
#else
|
||||
static inline int print_qrcode_full(FILE *out, const char *header, const char *string, unsigned row, unsigned column, unsigned tty_width, unsigned tty_height) {
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
static inline int print_qrcode(FILE *out, const char *header, const char *string) {
|
||||
static inline int print_qrcode_full(
|
||||
FILE *out,
|
||||
const char *header,
|
||||
const char *string,
|
||||
unsigned row,
|
||||
unsigned column,
|
||||
unsigned tty_width,
|
||||
unsigned tty_height,
|
||||
bool check_tty) {
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline int print_qrcode(FILE *out, const char *header, const char *string) {
|
||||
return print_qrcode_full(out, header, string, UINT_MAX, UINT_MAX, UINT_MAX, UINT_MAX, true);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user