From nobody Fri Mar 11 19:26:15 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id D6B6C1A15826; Fri, 11 Mar 2022 19:26:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KFbWq5hzpz3FMl; Fri, 11 Mar 2022 19:26:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1647026775; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WVabaaII/SuhaeWX6BPWTI8f28Vedbexq3u8E4vYc2I=; b=eHr7u2uoC+n69QiNnV84bMYvLwMYEUKE798bbwns7snqaamTNLyvJgkKHys5FEfRmtql8T W8RrCwVVK2XOKYQQbZ5d2sIEHYYpn8urp2nMDBvQYDjn4L6Y+Hl0dYy0BvBdJsFF8+etiE V682vYIpk3Gx3ivvQkdH082EyuzL9ksIQLTj+r49rK2idD5lH79fm4OikHs8w2wWzEV3Sp yshA4aZHNjcciJ7p3chkILH4OU8KjDmdQtgzC6CfIVeKeekO5qU3mDCLeSJAyGkkctm0b9 u6woc9sgCd5rVcpS6YMiDfiddahgga1i+DpQmMMS0hrGQ5ySyD3vMVWSwqCuVA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A449F1EF1D; Fri, 11 Mar 2022 19:26:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 22BJQFHh014477; Fri, 11 Mar 2022 19:26:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 22BJQFf3014476; Fri, 11 Mar 2022 19:26:15 GMT (envelope-from git) Date: Fri, 11 Mar 2022 19:26:15 GMT Message-Id: <202203111926.22BJQFf3014476@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: 425e57e7a2f7 - main - loader: support numeric and named bright colors (8-15) List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 425e57e7a2f754f7be8425bf3b00ce1469aba5b0 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1647026775; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WVabaaII/SuhaeWX6BPWTI8f28Vedbexq3u8E4vYc2I=; b=IH8LwPBKVaNEUWJPPWNMX1JsoXXENuPEVhr5E+YzYxG6Zv071YmqrAbNIrI/+VAg2se6zH Fr3zMOdIfaO6O2z5ok/9dsI+L3qDH9HyQUjhaVNsp+tnwGnqCWymj1l0H4aozm9vSmeILp QMkxjjoF8jO6GOJyYWrSKwsS8JgAYFnGbL86Dlp9wd/Z10zLrdXgsHSYqzVs0beXLWXQHk RpSZSHdkyGuEG6CMKQ7WErGSlt0pFanEYMXmMj/lC4PySoL7vnfZYxwnxINJu2Bu+GtZQ1 p7BrpRzQjlE7ezND99EuUnr7GJGwmkb+1YbE5uukAmMXX1Q30O5DzEqogxEPwQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1647026775; a=rsa-sha256; cv=none; b=b6jDMrtrJkbv4bosDOnOSzjcpiKs7yXzLfbVNv5ksdDbKHf74K+plwP3DFMs1NAYLakJrj dlg4pq8PujqTvY5Sy0jBa/OYQWaXE7PpkPD78utpi1FQmewXPHPmtdEFWAwjy5PNVqMubR 6MSXPQK8uMtN46xM0xmYYEpIY0aPcb/B11vPBVwszLouvKHv2SUd8W3ItdkKrmpNIp2Czw IMLHE3Pbk8cWSp8R9rZEeA7bXgNFcn3CxZCmT2q4D0vXjReV6pUlVdUUKSdtVhQ5DroJmk FXN/mAOgt0+glBvIQx2ZNHULqPSOZ/yN835Euyizq3FqhVG1uldZvZEKSfDHng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=425e57e7a2f754f7be8425bf3b00ce1469aba5b0 commit 425e57e7a2f754f7be8425bf3b00ce1469aba5b0 Author: Ed Maste AuthorDate: 2022-03-09 21:08:04 +0000 Commit: Ed Maste CommitDate: 2022-03-11 19:20:34 +0000 loader: support numeric and named bright colors (8-15) Accept "bright" or "light" prefix for named colors. For numeric colors, update error message to specify that values 0 to 15 are allowed, and verify that values are in that range. Reviewed by: imp, tsoome (both earlier version) MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D34512 --- stand/efi/libefi/efi_console.c | 34 ++++++++++++++++++++++------------ stand/i386/libi386/vidconsole.c | 34 ++++++++++++++++++++++------------ 2 files changed, 44 insertions(+), 24 deletions(-) diff --git a/stand/efi/libefi/efi_console.c b/stand/efi/libefi/efi_console.c index a63cba5e3f34..8cfb1a748a73 100644 --- a/stand/efi/libefi/efi_console.c +++ b/stand/efi/libefi/efi_console.c @@ -437,36 +437,44 @@ efi_cons_probe(struct console *cp) static bool color_name_to_teken(const char *name, int *val) { + int light = 0; + if (strncasecmp(name, "light", 5) == 0) { + name += 5; + light = TC_LIGHT; + } else if (strncasecmp(name, "bright", 6) == 0) { + name += 6; + light = TC_LIGHT; + } if (strcasecmp(name, "black") == 0) { - *val = TC_BLACK; + *val = TC_BLACK | light; return (true); } if (strcasecmp(name, "red") == 0) { - *val = TC_RED; + *val = TC_RED | light; return (true); } if (strcasecmp(name, "green") == 0) { - *val = TC_GREEN; + *val = TC_GREEN | light; return (true); } if (strcasecmp(name, "brown") == 0) { - *val = TC_BROWN; + *val = TC_BROWN | light; return (true); } if (strcasecmp(name, "blue") == 0) { - *val = TC_BLUE; + *val = TC_BLUE | light; return (true); } if (strcasecmp(name, "magenta") == 0) { - *val = TC_MAGENTA; + *val = TC_MAGENTA | light; return (true); } if (strcasecmp(name, "cyan") == 0) { - *val = TC_CYAN; + *val = TC_CYAN | light; return (true); } if (strcasecmp(name, "white") == 0) { - *val = TC_WHITE; + *val = TC_WHITE | light; return (true); } return (false); @@ -476,7 +484,7 @@ static int efi_set_colors(struct env_var *ev, int flags, const void *value) { int val = 0; - char buf[2]; + char buf[3]; const void *evalue; const teken_attr_t *ap; teken_attr_t a; @@ -489,14 +497,16 @@ efi_set_colors(struct env_var *ev, int flags, const void *value) evalue = buf; } else { char *end; + long lval; errno = 0; - val = (int)strtol(value, &end, 0); - if (errno != 0 || *end != '\0') { + lval = strtol(value, &end, 0); + if (errno != 0 || *end != '\0' || lval < 0 || lval > 15) { printf("Allowed values are either ansi color name or " - "number from range [0-7].\n"); + "number from range [0-15].\n"); return (CMD_OK); } + val = (int)lval; evalue = value; } diff --git a/stand/i386/libi386/vidconsole.c b/stand/i386/libi386/vidconsole.c index b933a7807687..3a6cba8f1561 100644 --- a/stand/i386/libi386/vidconsole.c +++ b/stand/i386/libi386/vidconsole.c @@ -524,36 +524,44 @@ vidc_probe(struct console *cp) static bool color_name_to_teken(const char *name, int *val) { + int light = 0; + if (strncasecmp(name, "light", 5) == 0) { + name += 5; + light = TC_LIGHT; + } else if (strncasecmp(name, "bright", 6) == 0) { + name += 6; + light = TC_LIGHT; + } if (strcasecmp(name, "black") == 0) { - *val = TC_BLACK; + *val = TC_BLACK | light; return (true); } if (strcasecmp(name, "red") == 0) { - *val = TC_RED; + *val = TC_RED | light; return (true); } if (strcasecmp(name, "green") == 0) { - *val = TC_GREEN; + *val = TC_GREEN | light; return (true); } if (strcasecmp(name, "brown") == 0) { - *val = TC_BROWN; + *val = TC_BROWN | light; return (true); } if (strcasecmp(name, "blue") == 0) { - *val = TC_BLUE; + *val = TC_BLUE | light; return (true); } if (strcasecmp(name, "magenta") == 0) { - *val = TC_MAGENTA; + *val = TC_MAGENTA | light; return (true); } if (strcasecmp(name, "cyan") == 0) { - *val = TC_CYAN; + *val = TC_CYAN | light; return (true); } if (strcasecmp(name, "white") == 0) { - *val = TC_WHITE; + *val = TC_WHITE | light; return (true); } return (false); @@ -563,7 +571,7 @@ static int vidc_set_colors(struct env_var *ev, int flags, const void *value) { int val = 0; - char buf[2]; + char buf[3]; const void *evalue; const teken_attr_t *ap; teken_attr_t a; @@ -576,14 +584,16 @@ vidc_set_colors(struct env_var *ev, int flags, const void *value) evalue = buf; } else { char *end; + long lval; errno = 0; - val = (int)strtol(value, &end, 0); - if (errno != 0 || *end != '\0') { + lval = strtol(value, &end, 0); + if (errno != 0 || *end != '\0' || lval < 0 || lval > 15) { printf("Allowed values are either ansi color name or " - "number from range [0-7].\n"); + "number from range [0-15].\n"); return (CMD_OK); } + val = (int)lval; evalue = value; }