a8e4bedae3
## Summary of the Pull Request Introduces `til::rle`, a vector-like container which stores elements of type T in a run length encoded format. This allows efficient compaction of repeated elements within the vector. ## References * #8000 - Supports buffer rewrite work. A re-use of `til::rle` will be useful as a column counter as we pursue NxM storage and presentation. * #3075 - The new iterators allow skipping forward by multiple units, which wasn't possible under `TextBuffer-/OutputCellIterator`. Additionally it also allows a bulk insertions. * #8787 and #410 - High probability this should be `pmr`-ified like `bitmap` for things like `chafa` and `cacafire` which are changing the run length frequently. ## PR Checklist * [x] Closes #8741 * [x] I work here. * [x] Tests added. * [x] Tests passed. ## Validation Steps Performed * [x] Ran `cacafire` in `OpenConsole.exe` and it looked beautiful * [x] Ran new suite of `RunLengthEncodingTests.cpp` Co-authored-by: Michael Niksa <miniksa@microsoft.com>
34 lines
1,005 B
Plaintext
34 lines
1,005 B
Plaintext
!include ..\..\..\project.unittest.inc
|
|
|
|
# -------------------------------------
|
|
# Program Information
|
|
# -------------------------------------
|
|
|
|
TARGETNAME = Microsoft.Console.TextBuffer.UnitTests
|
|
TARGETTYPE = DYNLINK
|
|
DLLDEF =
|
|
|
|
# -------------------------------------
|
|
# Sources, Headers, and Libraries
|
|
# -------------------------------------
|
|
|
|
SOURCES = \
|
|
$(SOURCES) \
|
|
ReflowTests.cpp \
|
|
TextColorTests.cpp \
|
|
TextAttributeTests.cpp \
|
|
DefaultResource.rc \
|
|
|
|
TARGETLIBS = \
|
|
$(CONSOLE_OBJ_PATH)\buffer\out\lib\$(O)\ConBufferOut.lib \
|
|
$(CONSOLE_OBJ_PATH)\types\lib\$(O)\ConTypes.lib \
|
|
$(TARGETLIBS) \
|
|
|
|
# -------------------------------------
|
|
# Localization
|
|
# -------------------------------------
|
|
|
|
# Autogenerated. Sets file name for Device Guard whitelisting effort, used in RC.exe.
|
|
C_DEFINES = $(C_DEFINES) -D___TARGETNAME="""$(TARGETNAME).$(TARGETTYPE)"""
|
|
MUI_VERIFY_NO_LOC_RESOURCE = 1
|