Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F108293134
D34512.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D34512.diff
View Options
diff --git a/stand/efi/libefi/efi_console.c b/stand/efi/libefi/efi_console.c
--- a/stand/efi/libefi/efi_console.c
+++ b/stand/efi/libefi/efi_console.c
@@ -437,36 +437,44 @@
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 @@
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 @@
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
--- a/stand/i386/libi386/vidconsole.c
+++ b/stand/i386/libi386/vidconsole.c
@@ -524,36 +524,44 @@
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 @@
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 @@
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;
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jan 24, 2:39 PM (20 h, 17 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16089583
Default Alt Text
D34512.diff (3 KB)
Attached To
Mode
D34512: loader: support numeric and named bright colors (8-15)
Attached
Detach File
Event Timeline
Log In to Comment