terminal/src/types/sources.inc
Chester Liu 02b120236c
Add support for more OSC color formats (#7578)
* Correct the behaviour of parsing `rgb:R/G/B`. It should be interpreted
  as `RR/GG/BB` instead of `0R/0G/0B`
* Add support for `rgb:RRR/GGG/BBB` and `rgb:RRRR/GGGG/BBBB`. The
  behaviour of 12 bit variants is to repeat the first digit at the end,
  e.g. `rgb:123/456/789` becomes `rgb:1231/4564/7897`.
* Add support for `#` formats. We are following the rules of
  [XParseColor] by interpreting `#RGB` as `R000G000B000`.
* Add support for XOrg app color names, which are supported by xterm, VTE
  and many other terminal emulators.
* Multi-parameter OSC 4 is now supported.
* The chaining of OSC 10-12 is not yet supported. But the parameter
  validation is relaxed by parsing the parameters as multi-params but
  only use the first one, which means `\e]10;rgb:R/G/B;` and
  `\e]10:rgb:R/G/B;invalid` will execute `OSC 10` with the first color
  correctly. This fixes some of the issues mentioned in #942 but not
  all of them.

[XParseColor]: https://linux.die.net/man/3/xparsecolor

Closes #3715
2020-10-14 17:29:10 -07:00

55 lines
1.4 KiB
PHP

!include ..\..\project.inc
# -------------------------------------
# Windows Console
# - Console Types Library
# -------------------------------------
# This module encapsulates types and helpers that are common
# across the entire console project
# -------------------------------------
# Preprocessor Settings
# -------------------------------------
C_DEFINES = $(C_DEFINES) -DBUILD_ONECORE_INTERACTIVITY
# -------------------------------------
# Build System Settings
# -------------------------------------
# Code in the OneCore depot automatically excludes default Win32 libraries.
# -------------------------------------
# Sources, Headers, and Libraries
# -------------------------------------
PRECOMPILED_CXX = 1
PRECOMPILED_INCLUDE = ..\precomp.h
SOURCES= \
..\CodepointWidthDetector.cpp \
..\IInputEvent.cpp \
..\FocusEvent.cpp \
..\GlyphWidth.cpp \
..\KeyEvent.cpp \
..\MenuEvent.cpp \
..\ModifierKeyState.cpp \
..\MouseEvent.cpp \
..\Viewport.cpp \
..\WindowBufferSizeEvent.cpp \
..\convert.cpp \
..\colorTable.cpp \
..\Utf16Parser.cpp \
..\utils.cpp \
..\ThemeUtils.cpp \
..\ScreenInfoUiaProviderBase.cpp \
..\UiaTextRangeBase.cpp \
..\UiaTracing.cpp \
..\TermControlUiaProvider.cpp \
..\TermControlUiaTextRange.cpp \
INCLUDES= \
$(INCLUDES); \
..; \