#
8f92a81b |
| 03-Apr-2017 |
Bruce Evans <bde@FreeBSD.org> |
Remove the global variable 'info' and fix associated bugs and style bugs.
This variable was used 4 times in 1 function and all uses were wrong. The 4 uses were in he test_frame() (show) function, to
Remove the global variable 'info' and fix associated bugs and style bugs.
This variable was used 4 times in 1 function and all uses were wrong. The 4 uses were in he test_frame() (show) function, to try to restore 4 colors, 2 unnecessarily and these 2 now broken. This was wrong because it is the previous colors that must be restored, but the global holds the original colors. Excessive setting of colors at the end restored the previous colors correctly in most cases, but I removed this a couple of revisions ago.
Originally, this variable had 1 correct use, to test for being on a vty as a side effect of initializing it. This is now down in init(), and init() also leaves a better-named global with the same contents.
Fix this by reading the current console info into a local variable in test_frame(), as is done for several other functions. Fix style bugs in this reading for all callers: - extra blank lines - all error messages different. The first one now in init() is not as specific as the old one, but it is after a different specific one for another ioctl and is unlikely to be reached when the first ioctl succeeds. Ones after the first are to repeat the ioctl, so are even more likely to be reached. The correctness of full removal of the old global depends on the error handling for failure to initialize it being unreachable. - err() instead of warn() for failure in load_font(). This is almost unreachable, and it makes no sense to continue after undoing previous changes with revert(). - unreachable return after err() for failure in dump_screen().
Undo large renaming of local variables from the good name 'info' to the bad name _info, which was done to protect the buggy global's bad name from -Wshadow warnings.
show more ...
|
#
2b881cf4 |
| 03-Apr-2017 |
Bruce Evans <bde@FreeBSD.org> |
Save errno across revert().
Change 25 uses of errc() to err(). 2 of these were correct. 23 used errno for the arg so were just a verbose spelling of err(). 5 of these were just style bugs, and 18
Save errno across revert().
Change 25 uses of errc() to err(). 2 of these were correct. 23 used errno for the arg so were just a verbose spelling of err(). 5 of these were just style bugs, and 18 depended on revert() saving errno.
1 warn() also depended on revert() saving errno.
Remove 2 warnx()'s that duplicate the message from a later errx(). These used to be before returns, and should have reported errno in some cases. errno is also not reported for for openguess() failures.
Only "restore" the video mode in revert() if the mode was just set (necessarily partially). Setting the mode to its current setting doesn't "restore" it, but resets it, with the least harmful change being to clear the screen. revert() is called even for some harmless syntax errors and usually did nothing except reset the mode. Now it usually does nothing. The only things that it tries to restore apart from the mode are the active vty number, the screen map, 2 colors that only need to be restored (only after a mode change) to fix kernel bugs, and 3 colors that can't be restored due to kernel bugs. (This is mostly for sc, since vt doesn't support mode changes.)
revert() is not called for syntax and setting errors after [mode], so the mode reset is only done for failures to set raster mode after setting graphics mode. normal colors can only be set after [mode], and that is why reverting them should be unnecessary.
show more ...
|
#
1b8c842e |
| 03-Apr-2017 |
Bruce Evans <bde@FreeBSD.org> |
Fix some parsing and error handling bugs.
r146736 added an undocumented syntax and many bugs handling it. The documented syntax is "... [mode] [fg [bg]] [show]", where it is critical for reducing a
Fix some parsing and error handling bugs.
r146736 added an undocumented syntax and many bugs handling it. The documented syntax is "... [mode] [fg [bg]] [show]", where it is critical for reducing ambiguity and keeping things simple that the mode is parsed first. r146736 added buggy support for "... [mode] [fg [bg]] [show] [mode] [fg [bg]]". One error was that after for failing to set a partially-supported graphics mode, argv[optind] remains pointing to the mode so doesn't match the first [fg [bg]], so the setting is attempted again, with slightly worse error handling.
Fix this by removing it (support for the trailing '[mode] [fg [bg]]') and cleaning up. The cleanups are mostly to remove convolutions and bugs that didn't work to handle the ambiguous syntax '[fg [bg]] [fg [bg]]' when [mode] and [show] are not present. Globals were set to allow repeating the color settings at the end. The functions that set the colors earlier were misnamed from set* to get*. All that they "got" is is settings from argv. They applied the settings to the kernel and the globals.
Fix restoration of colors in revert() by restoring 2 after the mode change. Colors should not need to be restored, but a bug in scteken clobbers them on any mode change, including ones for restoration. Don't move the restoration of the other 3. Teken doesn't clobber them on mode changes because it doesn't support them at all (sc still supports the border color, but only using a non-teken ioctl).
Add restoration of colors after a successful mode change to work around the scteken bug there too. The bug was previously masked by the general setting of colors at the end.
Fix a longstanding parsing/error handling bug by exiting almost immediately after matching the [mode] arg but failing to set the mode. Just revert if necessary. Don't return to continue parsing but do it wrong. This bug caused spamming the output with a usage() message and exiting with status 1 whenever [mode] is not present bug [fg [bg]] or [show]. The exit code 1 was actualy an ambiguous internal code for failure to match [mode] or failure to set [mode]. This 1 was obfuscated by spelling it EXIT_FAILURE, but actual exit codes spell EXIT_FAILURE as 1. Remove another global which could have been used to disambiguate this but was only used to micro-optimize the (unnecessary except for other bugs) setting of colors at the end.
show more ...
|
#
12dd1cd3 |
| 02-Apr-2017 |
Bruce Evans <bde@FreeBSD.org> |
Remove checks that background (bg) colors are not bright and buggy attempts to keep them that way. The bg brightness bit is interpreted as blinking in some modes, but it would barely be useful to di
Remove checks that background (bg) colors are not bright and buggy attempts to keep them that way. The bg brightness bit is interpreted as blinking in some modes, but it would barely be useful to disallow setting it when it would give blinking in code which knew when that is. The old code mostly knew this wrong, and added handling errors. It is in fact impossible to know, since future mode switches may change the meaning of the bit many times on the screen and in history.
Old versions of vidcontrol disallowed bg color numbers >= 8 in all cases. This is very VGA/syscons-centric. Syscons uses the VGA defaults of blinking fg instead of bright bg in text mode and bright bg in graphics mode. On VGA, this is very easy to toggle at any time, and vt blows away the VGA text mode default at boot time.
r146736 changed this to try to allow bg color numbers in graphics mode only. This is even more VGA/syscons-centric, and there are many bugs in this, and many nearby bugs in the parser. These are increased or decreased by differences and bugs in vt and teken.
Perhaps the most obvious bug was that almost any vidcontrol command which changes any color or the mode causes an error if the initial fg color is bright. E.g., in syscons text mode, after "vidcontrol lightwhite" to make the fg bright, another "vidcontrol lightwhite" is rejected and buggy fixup code changes the fg to white. This is because the bright fg color creates a bright bg color for the phantom reverse video attribute, so was rejected. (The reverse video attribute is phantom because teken ignores the user's setting of it and simply reverses the fg attributes to create the bg attributes. Sometimes some layer masks off the brightness/blinking bit, but not here.)
Perhaps the next most obvious one was that "vidcontrol lightgreen lightblue" was misparsed as 2 settings of the fg instead of 1 setting of the fg and 1 invalid setting of the bg. This is because the parser supports an undocumented syntax with many parsing bugs (an ambiguity gives this one).
I recently fix bugs in teken that broke setting of bright fg's and bg's in the normal way. This gave more settings of then, so the old bugs showed up more often.
show more ...
|
#
9b3ece1c |
| 04-Feb-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r313243
|
#
65575c14 |
| 29-Jan-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r312894 through r312967.
|
#
2b375b4e |
| 28-Jan-2017 |
Yoshihiro Takahashi <nyan@FreeBSD.org> |
Remove pc98 support completely. I thank all developers and contributors for pc98.
Relnotes: yes
|
#
2828dafc |
| 10-Nov-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r308227 through r308490.
|
#
becf2d11 |
| 05-Nov-2016 |
Ed Maste <emaste@FreeBSD.org> |
vidcontrol: use calloc where appropriate
Reported by: kib
|
#
aba6e414 |
| 04-Nov-2016 |
Ed Maste <emaste@FreeBSD.org> |
vidcontrol: improve error handling in vt(4) font loading
PR: 209078 Reported by: ecturt@gmail.com Reviewed by: Oliver Pinter Differential Revision: https://reviews.freebsd.org/D8176
|
Revision tags: release/11.0.1, release/11.0.0, release/10.3.0 |
|
#
d9b9dae1 |
| 22-Jan-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r294169 through r294598.
|
#
009e81b1 |
| 22-Jan-2016 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
MFH @r294567
|
#
59d43d11 |
| 20-Jan-2016 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: The FreeBSD Foundation
|
#
449d10e5 |
| 19-Jan-2016 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Add "vidcontrol -i active", to print out active vty number, to be used with eg "vidcontrol -s".
Reviewed by: emaste@ MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: ht
Add "vidcontrol -i active", to print out active vty number, to be used with eg "vidcontrol -s".
Reviewed by: emaste@ MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D4968
show more ...
|
Revision tags: release/10.2.0 |
|
#
416ba5c7 |
| 22-Jun-2015 |
Navdeep Parhar <np@FreeBSD.org> |
Catch up with HEAD (r280229-r284686).
|
#
98e0ffae |
| 27-May-2015 |
Simon J. Gerraty <sjg@FreeBSD.org> |
Merge sync of head
|
#
7757a1b4 |
| 03-May-2015 |
Baptiste Daroussin <bapt@FreeBSD.org> |
Merge from head
|
#
7263c8c0 |
| 22-Apr-2015 |
Glen Barber <gjb@FreeBSD.org> |
MFH: r280643-r281852
Sponsored by: The FreeBSD Foundation
|
#
7fffcb0d |
| 20-Apr-2015 |
Glen Barber <gjb@FreeBSD.org> |
MFH: r281668 through r281783
Sponsored by: The FreeBSD Foundation
|
#
16028f6a |
| 20-Apr-2015 |
Ed Maste <emaste@FreeBSD.org> |
vidcontrol: skip invalid video modes returned by vt(4)
vt(4) has a stub CONS_MODEINFO ioctl that does not provide any data but returns success. This needs to be fixed in the kernel, but address it i
vidcontrol: skip invalid video modes returned by vt(4)
vt(4) has a stub CONS_MODEINFO ioctl that does not provide any data but returns success. This needs to be fixed in the kernel, but address it in vidcontrol(1) as well in case it's run on an older kernel.
Reviewed by: bde Sponsored by: The FreeBSD Foundation
show more ...
|
#
bbfcc42e |
| 16-Apr-2015 |
Ed Maste <emaste@FreeBSD.org> |
vidcontrol: make size argument optional again for syscons
r273544 changed the -f option allow no arguments in vt mode (used to reset the font back to the default), but broke the optionality of the s
vidcontrol: make size argument optional again for syscons
r273544 changed the -f option allow no arguments in vt mode (used to reset the font back to the default), but broke the optionality of the size argument for syscons. Drop the required argument from syscons' optstring for -f so the optional argument handler works the same way for both syscons and vt.
Reported by: bde Sponsored by: The FreeBSD Foundation
show more ...
|
#
8f0ea33f |
| 13-Jan-2015 |
Glen Barber <gjb@FreeBSD.org> |
Reintegrate head revisions r273096-r277147
Sponsored by: The FreeBSD Foundation
|
#
9268022b |
| 19-Nov-2014 |
Simon J. Gerraty <sjg@FreeBSD.org> |
Merge from head@274682
|
Revision tags: release/10.1.0 |
|
#
5c9ef378 |
| 04-Nov-2014 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
Sync to HEAD@r274095.
|
#
069f1c25 |
| 23-Oct-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Add PIO_VFONT_DEFAULT ioctl to restore the default builtin font
To restore the default font using vidcontrol(1), use the "-f" flag without an argument: vidcontrol -f < /dev/ttyv0
PR: 19
vt(4): Add PIO_VFONT_DEFAULT ioctl to restore the default builtin font
To restore the default font using vidcontrol(1), use the "-f" flag without an argument: vidcontrol -f < /dev/ttyv0
PR: 193910 Differential Revision: https://reviews.freebsd.org/D971 Submitted by: Marcin Cieslak <saper@saper.info> Reviewed by: ray@, emaste@ Approved by: ray@ MFC after: 1 week
show more ...
|