OPNsense - FreeBSD source
Find a file
Bruce Evans af032a9dec Fix clobbering of the default attribute and the screen position in
scteken_init().  Move the internals of scteken_sync() into a local
function to help do this.

scteken_init() reset or adjusted the default attribute and screen
position at least 3 and 5 times, respectively.  Warm init shouldn't
do any more than reset the "input" state.
  (scterm-sc.c (which still works after minor editing), only resets
  the escape state and the saved cursor position, and then does a
  nearly-null sync of the current color.)

This mainly broke mode changes, and was most noticeable when the
background color is not teken's default (usually black).  Then the
screen gets cleared in the wrong color.  vidcontrol restores the
default normal attribute and tries to restore the default reverse
attribute.  vidcontrol doesn't clear the screen again after restoring
the attribute(s), and it is too late to do it there without flicker.
Now the default normal attribute is restored before the change affects
the rendering.

When the foreground color is not teken's default, clearing with the
wrong attributes gave strange cursor colors for some cursor types.

The default reverse attribute is not restored since it is unsupported.

2/3 of the clobbering was from 2 resetting window resizing calls.  The
second one is needed to restore the size, but must not reset.  Window
resizing also sanitizes the cursor position, and after the main reset
resets the window size, the cursor row would often be adjusted from
24 to 23 if it were not already reset to 0.  scteken_sync() is good
for restoring the window size and the cursor position in the correct
order, but was unusable at init time since scp->ts is not always
initialized then.  Adjust to use its internals.

I didn't notice any problems from the cursor reset.  The cursor should
be reset, and a previous fix was to reset it consistently a little
later.

Doing nothing for warm init works almost as well, if not better.  It
is not very useful to reset the escape state for mode changes, since
the reset is especially likely to be null then.  The escape state is
most likely to be non-initial and corrupted by its most normal uses
-- sloppy non-atomic output where a context switch or just mixing
stdout with stderr splits up escape sequences.
2017-04-12 16:21:55 +00:00
bin sh: Add test for unaliasing an alias that is currently in use. 2017-04-08 21:57:59 +00:00
cddl MFV r316693: 2017-04-10 22:56:38 +00:00
contrib Fix build with LLD by removing duplicate symbols already in IBVERBS_1.0. 2017-04-10 21:26:37 +00:00
crypto Fix linking with lld by marking OPENSSL_armcap_P as hidden. 2017-04-07 12:41:57 +00:00
etc Revert r316487. It is broken, causing boot to fail due to line 25 in 2017-04-06 12:52:05 +00:00
gnu Temporary readd GNU diff 2017-03-19 17:19:59 +00:00
include Implement the memset_s(3) function as specified by the C11 ISO/IEC 2017-03-30 04:57:26 +00:00
kerberos5 kerberos5: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:34:36 +00:00
lib 8046 Let calloc() do the multiplication in libzfs_fru_refresh 2017-04-10 22:46:34 +00:00
libexec Emply contemporary function prototypes in bootpd, rather than relying on 2017-03-26 14:37:12 +00:00
release - Increase the image size for RPI2 and IMX6-based boards from 1G 2017-04-07 16:55:13 +00:00
rescue Fix linking /rescue/rescue to multiple programs in usr.bin after r315113 2017-03-20 22:33:22 +00:00
sbin Work around an issue with mksnap_ffs not working in chroot'ed environment. 2017-04-11 21:55:39 +00:00
secure Upgrade to OpenSSH 7.4p1. 2017-03-06 01:37:05 +00:00
share OpenBSD 6.1 release added. 2017-04-12 11:41:35 +00:00
sys Fix clobbering of the default attribute and the screen position in 2017-04-12 16:21:55 +00:00
targets META_MODE: add additional reachover relative paths to DIRDEPS_BUILD 2017-04-07 07:46:21 +00:00
tests Remove the unportable -msse4 here too after fixing crc32_sse42.c to not 2017-04-02 09:24:58 +00:00
tools makeman: don't copy $FreeBSD$ tags from source files into output 2017-04-11 17:01:20 +00:00
usr.bin add a stub --speed-large-files for compatibility with GNU diff 2017-04-08 08:46:02 +00:00
usr.sbin Do not register in CTL portal groups without portals. 2017-04-10 10:38:12 +00:00
.arcconfig callsign isn't required anymore 2016-09-29 06:19:45 +00:00
.arclint phabricator related changes: 2015-04-20 20:33:22 +00:00
COPYRIGHT Bump copyright year. 2016-12-31 12:41:42 +00:00
LOCKS Explicitly require Security Officer's approval for kernel PRNG bits. 2013-09-17 14:19:05 +00:00
MAINTAINERS As suggested by several people, note that I prefer to communicate by email. 2017-03-03 20:23:21 +00:00
Makefile Include RISC-V target to universe build. 2017-04-12 10:45:19 +00:00
Makefile.inc1 Introduce LLD_BOOTSTRAP to control lld as bootstrap linker 2017-04-09 01:35:19 +00:00
Makefile.libcompat META_MODE: Fix build-tools still sometimes rebuilding during target build. 2017-04-06 18:21:59 +00:00
ObsoleteFiles.inc Fix typos to stop removing new files. 2017-04-01 19:08:22 +00:00
README README: remove nonexistent 'games' directory. 2016-05-18 10:43:13 +00:00
README.md Remove hard line breaks from README.md 2017-03-01 15:39:58 +00:00
UPDATING do not require binutils port when using lld as ld 2017-04-07 23:37:22 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory. This file was last revised on: FreeBSD

For copyright information, please see the file COPYRIGHT in this directory (additional copyright information also exists for some sources in this tree - please see the specific source directories for more information).

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7) and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html for more information, including setting make(1) variables.

The buildkernel and installkernel targets build and install the kernel and the modules (see below). Please see the top of the Makefile in this directory for more information on the standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process. See build(7), config(8), and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information.

Note: If you want to build and install the kernel with the buildkernel and installkernel targets, you might need to build world before. More information is available in the handbook.

The kernel configuration files reside in the sys/<arch>/conf sub-directory. GENERIC is the default configuration used in release builds. NOTES contains entries and documentation for all possible devices, not just those commonly used.

Source Roadmap:

bin				System/user commands.

cddl			Various commands and libraries under the Common Development  
				and Distribution License.

contrib			Packages contributed by 3rd parties.

crypto			Cryptography stuff (see crypto/README).

etc				Template files for /etc.

gnu				Various commands and libraries under the GNU Public License.  
				Please see gnu/COPYING* for more information.

include			System include files.

kerberos5		Kerberos5 (Heimdal) package.

lib				System libraries.

libexec			System daemons.

release			Release building Makefile & associated tools.

rescue			Build system for statically linked /rescue utilities.

sbin			System commands.

secure			Cryptographic libraries and commands.

share			Shared resources.

sys				Kernel sources.

tests			Regression tests which can be run by Kyua.  See tests/README
				for additional information.

tools			Utilities for regression testing and miscellaneous tasks.

usr.bin			User commands.

usr.sbin		System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see:

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html