mirror of
https://github.com/microsoft/terminal.git
synced 2026-04-06 06:09:50 +00:00
Compare commits
561 Commits
1708.14008
...
dev/migrie
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
37af3f00fe | ||
|
|
00bf9f6757 | ||
|
|
3a89c6e5fa | ||
|
|
537258a60f | ||
|
|
b5fe4ffd54 | ||
|
|
12d2e170dd | ||
|
|
2da3b49c9e | ||
|
|
2063197605 | ||
|
|
2ac24979da | ||
|
|
429af0e6fa | ||
|
|
18bacfe973 | ||
|
|
bac69f7cab | ||
|
|
ce34c7320c | ||
|
|
badbbc43a4 | ||
|
|
fecddafad5 | ||
|
|
d8ff47a0d3 | ||
|
|
125e1771ae | ||
|
|
c58033cda2 | ||
|
|
fc81adf32f | ||
|
|
689c21e802 | ||
|
|
96cc7727bc | ||
|
|
886d018bb4 | ||
|
|
d0c207bc9c | ||
|
|
ce3028e12f | ||
|
|
b7c1e05060 | ||
|
|
3bff2a3eb0 | ||
|
|
7c66e66ca1 | ||
|
|
e0762f6bb3 | ||
|
|
51f53535d1 | ||
|
|
21067a7629 | ||
|
|
7d9534bfa8 | ||
|
|
6735311fc9 | ||
|
|
4204733c34 | ||
|
|
23b4a466f5 | ||
|
|
01bd77003c | ||
|
|
ae25a32913 | ||
|
|
93aa9455e2 | ||
|
|
41f209f6d3 | ||
|
|
244fb72fee | ||
|
|
3a0da64276 | ||
|
|
b2c093fa2f | ||
|
|
87f5852a72 | ||
|
|
e14a59a1b6 | ||
|
|
cd144e98c6 | ||
|
|
c7f0a3439d | ||
|
|
5d60d69e86 | ||
|
|
072bbfd09d | ||
|
|
b87f8f9070 | ||
|
|
b78d9176ae | ||
|
|
3bbd8f4c97 | ||
|
|
2d3f285894 | ||
|
|
49ff36bfc3 | ||
|
|
d8bc94f13c | ||
|
|
dd49c3ed51 | ||
|
|
9678dd894c | ||
|
|
45e599368f | ||
|
|
594dca993b | ||
|
|
c956913a28 | ||
|
|
b180406b07 | ||
|
|
bbdfdf91eb | ||
|
|
d5d7cf420d | ||
|
|
81ab5803aa | ||
|
|
7d4096bbbf | ||
|
|
230e7f43e0 | ||
|
|
cdfbf8f106 | ||
|
|
30e8e7f3a3 | ||
|
|
feb5b18296 | ||
|
|
7ec6bfc01c | ||
|
|
4f1157c044 | ||
|
|
8c3a629b52 | ||
|
|
8579d8905a | ||
|
|
50e2d0c433 | ||
|
|
8ea7401dc9 | ||
|
|
a381f6a042 | ||
|
|
c63289b114 | ||
|
|
b33a59816e | ||
|
|
bd2d5ddb4b | ||
|
|
23897b1bd4 | ||
|
|
65dec36cb1 | ||
|
|
1989eb9d00 | ||
|
|
cb02ca7534 | ||
|
|
5de63096ac | ||
|
|
f93adb9540 | ||
|
|
0d12a25b2d | ||
|
|
5e38bcd754 | ||
|
|
f4294b17d7 | ||
|
|
974e95ebf7 | ||
|
|
cffa033116 | ||
|
|
ebcf8126dc | ||
|
|
02d8df8431 | ||
|
|
949839fdd8 | ||
|
|
e7c78c8d28 | ||
|
|
1006e98780 | ||
|
|
9ff90ba174 | ||
|
|
5694606aea | ||
|
|
84d19f5348 | ||
|
|
6d50fb4d31 | ||
|
|
d1a3e6d2b8 | ||
|
|
be52880620 | ||
|
|
e92efa5bc0 | ||
|
|
667c0286c1 | ||
|
|
28b767d00b | ||
|
|
8096d7cf2f | ||
|
|
f9752148d0 | ||
|
|
09d79cb422 | ||
|
|
0c454f53e9 | ||
|
|
ff87190823 | ||
|
|
98f77818ff | ||
|
|
71eaf621bc | ||
|
|
38156311e8 | ||
|
|
bd47dcc898 | ||
|
|
734fc1dcc6 | ||
|
|
c70fb49ab5 | ||
|
|
d55ecae199 | ||
|
|
d7d96f723a | ||
|
|
24ea0866d3 | ||
|
|
fca0cd9879 | ||
|
|
16e1e29a12 | ||
|
|
becdd16008 | ||
|
|
1f41fd35cf | ||
|
|
82de43bce9 | ||
|
|
8999c661b2 | ||
|
|
13d66c9948 | ||
|
|
ac97e5d082 | ||
|
|
138d3b81c8 | ||
|
|
0843f3cced | ||
|
|
646d8f91b9 | ||
|
|
eac29d2c67 | ||
|
|
1e4e12507d | ||
|
|
6c747c565b | ||
|
|
89925ebe44 | ||
|
|
8fa42e09df | ||
|
|
94e5d545aa | ||
|
|
dfb853644a | ||
|
|
ff7fdbeab4 | ||
|
|
a7877558f2 | ||
|
|
aae938fc33 | ||
|
|
b495ad255f | ||
|
|
4529e46d3e | ||
|
|
3086671bc7 | ||
|
|
1b33d186f3 | ||
|
|
0d8f2998d6 | ||
|
|
42c1e58966 | ||
|
|
0da13cdf2d | ||
|
|
f8f0798826 | ||
|
|
6749ab03b8 | ||
|
|
66044ca605 | ||
|
|
a08666b58e | ||
|
|
1afab788ab | ||
|
|
63df881f31 | ||
|
|
2d3e271a4f | ||
|
|
7abcc35fdf | ||
|
|
c6c51fbb0e | ||
|
|
56589c0aac | ||
|
|
3f62c8b470 | ||
|
|
96496d8154 | ||
|
|
ed18c1e8c1 | ||
|
|
10c599eb17 | ||
|
|
bd5cae1328 | ||
|
|
dd1f8a8245 | ||
|
|
644ac56fdb | ||
|
|
83a4c22919 | ||
|
|
09e828fa49 | ||
|
|
c97cccb55c | ||
|
|
63347f47fb | ||
|
|
a5746850f9 | ||
|
|
a2744529e6 | ||
|
|
577da7441e | ||
|
|
66d46ed8ed | ||
|
|
8ae4f2fc1b | ||
|
|
2febe1fa2b | ||
|
|
89190c6e6c | ||
|
|
2c3e175f62 | ||
|
|
9d36b08b82 | ||
|
|
5da2ab1a86 | ||
|
|
e662277cb0 | ||
|
|
2407828d03 | ||
|
|
69c67f8a8e | ||
|
|
260d095f94 | ||
|
|
a6ab075a62 | ||
|
|
3b96a84261 | ||
|
|
dca0ffe6dd | ||
|
|
5074335392 | ||
|
|
8ffff8ea37 | ||
|
|
57ad2d57fd | ||
|
|
f1441a589c | ||
|
|
988fe0ba60 | ||
|
|
de1de4425e | ||
|
|
8d52ba0990 | ||
|
|
a0782bfd6c | ||
|
|
fa5b9b06bd | ||
|
|
7067910862 | ||
|
|
0905140955 | ||
|
|
fad7638bb3 | ||
|
|
3377f06e52 | ||
|
|
120e6157c3 | ||
|
|
c1599248d7 | ||
|
|
b706b60843 | ||
|
|
f4e02d889c | ||
|
|
02e8389518 | ||
|
|
6d3001f3b8 | ||
|
|
5b3a554da9 | ||
|
|
0219781753 | ||
|
|
b9cc819afe | ||
|
|
29522c472e | ||
|
|
7b8cf10fe0 | ||
|
|
60a444c630 | ||
|
|
594a7e4501 | ||
|
|
3ce53adf56 | ||
|
|
3e5bb99478 | ||
|
|
b970356600 | ||
|
|
0e6f290806 | ||
|
|
46d794b946 | ||
|
|
af1a4dd068 | ||
|
|
2de2f445c7 | ||
|
|
122f0de382 | ||
|
|
cfbc9e8f9f | ||
|
|
bce8a79163 | ||
|
|
c9d8e3ee2b | ||
|
|
7eae91ea3c | ||
|
|
eda6547ba3 | ||
|
|
c6ca298fdb | ||
|
|
eae920e5f9 | ||
|
|
d8485079cd | ||
|
|
078e6420fe | ||
|
|
874324fad2 | ||
|
|
fe7fd332b0 | ||
|
|
5dbcd4c4f8 | ||
|
|
2e0e9628fc | ||
|
|
c791b7870d | ||
|
|
47b1fe61fc | ||
|
|
171c37009e | ||
|
|
f63cada9ed | ||
|
|
14d2484acf | ||
|
|
e1ce8a5ed7 | ||
|
|
10ed3991fc | ||
|
|
b353ad8c16 | ||
|
|
688c96cba9 | ||
|
|
6775325839 | ||
|
|
c0720525c5 | ||
|
|
54457e550a | ||
|
|
45ad2d71bf | ||
|
|
5dd1f8d38a | ||
|
|
04e808fd0a | ||
|
|
ab08320dde | ||
|
|
b115799810 | ||
|
|
b9e66fee6d | ||
|
|
bc236c7c59 | ||
|
|
0fba910d75 | ||
|
|
198acadc05 | ||
|
|
a5f31f77bc | ||
|
|
ce4c6d6124 | ||
|
|
08464648f2 | ||
|
|
66cb7c4b58 | ||
|
|
20157886e0 | ||
|
|
1ac7e65937 | ||
|
|
440bee0e4a | ||
|
|
871718952c | ||
|
|
50dc8d48d9 | ||
|
|
900d0c3cce | ||
|
|
5f07f58fda | ||
|
|
8d21a75a9e | ||
|
|
8dd2e795ab | ||
|
|
38c91fcaf6 | ||
|
|
03e3d8a685 | ||
|
|
4449ab2578 | ||
|
|
f30d1485cc | ||
|
|
2266313f35 | ||
|
|
37126d015a | ||
|
|
315abf6fa6 | ||
|
|
94bcbb9204 | ||
|
|
dba918beab | ||
|
|
8cd582e69f | ||
|
|
79257b7f41 | ||
|
|
d82eab44d0 | ||
|
|
e20dfb8633 | ||
|
|
e60af3ba76 | ||
|
|
1580c1e093 | ||
|
|
2a37433504 | ||
|
|
ecfaa76a89 | ||
|
|
fa36d43b37 | ||
|
|
9b92986b49 | ||
|
|
6fc0978ddb | ||
|
|
b9d83baaeb | ||
|
|
19dbec8c33 | ||
|
|
b8be07f107 | ||
|
|
2da5b0b146 | ||
|
|
31b614d5b2 | ||
|
|
6b51d783c2 | ||
|
|
c73761db96 | ||
|
|
b9d8bf55c4 | ||
|
|
16c32a622e | ||
|
|
7ede3785ee | ||
|
|
30a579e18b | ||
|
|
6aac2c06e3 | ||
|
|
107ea3c2e4 | ||
|
|
8a69be0cc7 | ||
|
|
69e88cd921 | ||
|
|
5d96ebc225 | ||
|
|
e6e316977d | ||
|
|
d51ce7021c | ||
|
|
880272c748 | ||
|
|
71e19cd825 | ||
|
|
dadd74c3c6 | ||
|
|
1c16b2c06b | ||
|
|
c3e32eb1ca | ||
|
|
e52170e2cf | ||
|
|
3d7160d731 | ||
|
|
d24d647c0d | ||
|
|
e2b5fecd48 | ||
|
|
097f7d32a6 | ||
|
|
2f88c46350 | ||
|
|
8baba4b46c | ||
|
|
cfc72cee5d | ||
|
|
9ad2544033 | ||
|
|
5f938a0465 | ||
|
|
4c47631bf4 | ||
|
|
cc30475955 | ||
|
|
80f107965d | ||
|
|
42e87ed3e3 | ||
|
|
40b557a4b6 | ||
|
|
0f62ec81d8 | ||
|
|
ce0eaab9ac | ||
|
|
1c50968333 | ||
|
|
efd69990c6 | ||
|
|
2fdcb679ab | ||
|
|
1191a59681 | ||
|
|
8dab297bd1 | ||
|
|
3f95d58805 | ||
|
|
2d4eca7f4f | ||
|
|
547cba968c | ||
|
|
798912c2f4 | ||
|
|
06a5583c86 | ||
|
|
82e75ce3e2 | ||
|
|
5ec7c0325e | ||
|
|
bbbd3e0323 | ||
|
|
1d9cdb3d31 | ||
|
|
8c3af2d066 | ||
|
|
e9a3d16286 | ||
|
|
83b139596f | ||
|
|
6a79025027 | ||
|
|
20359d40e4 | ||
|
|
6c7dfd2ce4 | ||
|
|
080843f826 | ||
|
|
db637021fd | ||
|
|
8da6737d64 | ||
|
|
fd2fb07bcf | ||
|
|
68d0c23246 | ||
|
|
29e380824f | ||
|
|
acabbe0459 | ||
|
|
461c8b53fa | ||
|
|
dd9bc6ee45 | ||
|
|
0060614173 | ||
|
|
37ea2dce48 | ||
|
|
9f4ad6d1ce | ||
|
|
a0ebd2ed1b | ||
|
|
67f68ebf62 | ||
|
|
41a6d8ed3a | ||
|
|
7533b31cbd | ||
|
|
73ad742c12 | ||
|
|
fd98145af2 | ||
|
|
2b41fad198 | ||
|
|
251505b96b | ||
|
|
723ff47789 | ||
|
|
7291121112 | ||
|
|
22103ff9c6 | ||
|
|
e0f131121b | ||
|
|
bc925d8909 | ||
|
|
e3764b2081 | ||
|
|
a12521ffd3 | ||
|
|
f867a2d4a4 | ||
|
|
3a27b29afc | ||
|
|
781d779b37 | ||
|
|
bc69d1a99a | ||
|
|
de24334898 | ||
|
|
507d787fe8 | ||
|
|
ad27906db7 | ||
|
|
fb72dca939 | ||
|
|
ea5270e563 | ||
|
|
b5eeddfb0f | ||
|
|
7c6278de44 | ||
|
|
303e227f44 | ||
|
|
a8cf3d6f4a | ||
|
|
71229239d4 | ||
|
|
639d5f3f93 | ||
|
|
df789a4e75 | ||
|
|
ef8e20af51 | ||
|
|
8c177fab4f | ||
|
|
2c1ab620bf | ||
|
|
af3a421938 | ||
|
|
04c7b944bd | ||
|
|
c2ee6277f8 | ||
|
|
5b1183a4b3 | ||
|
|
6c80ab8017 | ||
|
|
fc49caca8a | ||
|
|
aeef340bdc | ||
|
|
9ba3a53b4b | ||
|
|
1e478ae99d | ||
|
|
dc7fff7ab0 | ||
|
|
6088134832 | ||
|
|
bf460ab7fe | ||
|
|
5c707032a7 | ||
|
|
660d31ac52 | ||
|
|
644cd3ec6c | ||
|
|
99555ef9e9 | ||
|
|
cafe59d73c | ||
|
|
f74a9d3e0b | ||
|
|
6c98fc19f5 | ||
|
|
37fd00c822 | ||
|
|
5dc7d0e843 | ||
|
|
32f4f7133c | ||
|
|
af7316c130 | ||
|
|
5a8e746d82 | ||
|
|
b3b98373c6 | ||
|
|
ec44bf0068 | ||
|
|
cb17115c72 | ||
|
|
2aed13ac37 | ||
|
|
e37ba7a923 | ||
|
|
a7404a2df9 | ||
|
|
d5b8e7c32f | ||
|
|
ec38580042 | ||
|
|
599a8dff0f | ||
|
|
e6767acf46 | ||
|
|
5948b95cd8 | ||
|
|
79c74aadff | ||
|
|
58ec47236d | ||
|
|
501a4a5e59 | ||
|
|
dda4ef23c8 | ||
|
|
1c345515b8 | ||
|
|
590eb1fc91 | ||
|
|
b35c801093 | ||
|
|
688483c3af | ||
|
|
fc83699c1d | ||
|
|
f9f2525c72 | ||
|
|
47cebce11c | ||
|
|
f1309ee211 | ||
|
|
35229a775d | ||
|
|
82b9efc1c6 | ||
|
|
b726a3d05d | ||
|
|
23f85d01f0 | ||
|
|
4ab4051f63 | ||
|
|
87e85603b9 | ||
|
|
d4d59fa339 | ||
|
|
00bb050826 | ||
|
|
864f45fa11 | ||
|
|
723efc70e2 | ||
|
|
2d1055d153 | ||
|
|
987805ebaf | ||
|
|
f8f4f263a5 | ||
|
|
2e0fd58bc5 | ||
|
|
cfe3eb9624 | ||
|
|
370cea5cab | ||
|
|
5bd3f887b1 | ||
|
|
2dc178b852 | ||
|
|
12fff3126b | ||
|
|
b61cb830c3 | ||
|
|
05f518db5b | ||
|
|
7daea0a25c | ||
|
|
7eea98d4ea | ||
|
|
cade139e0c | ||
|
|
619a80ea14 | ||
|
|
2661fbe0b9 | ||
|
|
a247624e90 | ||
|
|
3484e07089 | ||
|
|
9bf9a6f62c | ||
|
|
c1e1f5124c | ||
|
|
3990a68770 | ||
|
|
ecea0c9f40 | ||
|
|
b38f6ffbd1 | ||
|
|
e6500864bc | ||
|
|
ee8589110a | ||
|
|
99f71a0cc5 | ||
|
|
16b1b059a4 | ||
|
|
cafe71c50b | ||
|
|
1145336538 | ||
|
|
a30f56645a | ||
|
|
14f9cfc389 | ||
|
|
52ef47533b | ||
|
|
f3e53f1dac | ||
|
|
ae5be18556 | ||
|
|
4a30b1868b | ||
|
|
7e5c034b7f | ||
|
|
058b3f5d19 | ||
|
|
df1843c87d | ||
|
|
10b05fbe23 | ||
|
|
66bc1f547e | ||
|
|
34ff272cfa | ||
|
|
9971abf4e4 | ||
|
|
5456666d35 | ||
|
|
bb795f5258 | ||
|
|
2791753780 | ||
|
|
e5aa14ea7b | ||
|
|
e25ca32022 | ||
|
|
bb5088ae6c | ||
|
|
4272e9c8e9 | ||
|
|
15c2e57b96 | ||
|
|
0c3872d577 | ||
|
|
7371ed764d | ||
|
|
f1627dd571 | ||
|
|
046475f7ab | ||
|
|
2c33edcba9 | ||
|
|
08b436f1a5 | ||
|
|
3a1ee61476 | ||
|
|
bf32b8d48f | ||
|
|
637c57473e | ||
|
|
e09359138e | ||
|
|
0884a1bb1d | ||
|
|
d8ab20d970 | ||
|
|
ac843745fa | ||
|
|
1e6232b751 | ||
|
|
8dacee626a | ||
|
|
da53ff957f | ||
|
|
11a65ef0c7 | ||
|
|
aa20e89a84 | ||
|
|
f334ba68c9 | ||
|
|
8afb12e747 | ||
|
|
b3b9f719fa | ||
|
|
ae5b5fb5b1 | ||
|
|
3d0f15d433 | ||
|
|
d3678caea7 | ||
|
|
f735286a7d | ||
|
|
aed5f9eae9 | ||
|
|
b2ed728bf1 | ||
|
|
8d75ff1bec | ||
|
|
a9973139e4 | ||
|
|
78e50fcf26 | ||
|
|
5885732a2d | ||
|
|
ae4e0086a9 | ||
|
|
3f76c471d0 | ||
|
|
d6e77edc27 | ||
|
|
1465871e98 | ||
|
|
198c75cf26 | ||
|
|
550e197684 | ||
|
|
4c3065fec7 | ||
|
|
cad9d55e41 | ||
|
|
21b618648b | ||
|
|
d66df17bcb | ||
|
|
ddb74ef5db | ||
|
|
49b3df3d71 | ||
|
|
22dd8a8e01 | ||
|
|
e0248749eb | ||
|
|
eba68a04b6 | ||
|
|
85e347fc4a | ||
|
|
9a5393d49d | ||
|
|
48021e1d75 | ||
|
|
5b47a58a3a | ||
|
|
889e19a05a | ||
|
|
dc9cab01cd | ||
|
|
f052ca5dc4 | ||
|
|
e9d52f7f0f | ||
|
|
a8c1100bfa | ||
|
|
fe7a2d00fa | ||
|
|
7ae6ee6e00 | ||
|
|
9bd6053664 | ||
|
|
cf4780a4a2 | ||
|
|
c12f5a9157 | ||
|
|
ce43f9af2a | ||
|
|
fed6302eeb | ||
|
|
f757ecaa29 | ||
|
|
4964aad780 | ||
|
|
067cf3a29b |
93
.clang-format
Normal file
93
.clang-format
Normal file
@@ -0,0 +1,93 @@
|
||||
|
||||
AccessModifierOffset: -4
|
||||
AlignAfterOpenBracket: Align
|
||||
#AllowAllArgumentsOnNextLine: false
|
||||
AlignConsecutiveAssignments: false
|
||||
AlignConsecutiveDeclarations: false
|
||||
#AllowAllConstructorInitializersOnNextLine: false
|
||||
AlignEscapedNewlines: Left
|
||||
AlignOperands: true
|
||||
AlignTrailingComments: false
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
AllowShortFunctionsOnASingleLine: Inline
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
#AllowShortLambdasOnASingleLine: Inline
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakBeforeMultilineStrings: false
|
||||
AlwaysBreakTemplateDeclarations: Yes
|
||||
BinPackArguments: false
|
||||
BinPackParameters: false
|
||||
BraceWrapping:
|
||||
AfterClass: true
|
||||
AfterControlStatement: true
|
||||
AfterEnum: true
|
||||
AfterFunction: true
|
||||
AfterNamespace: true
|
||||
AfterObjCDeclaration: true
|
||||
AfterStruct: true
|
||||
AfterUnion: true
|
||||
AfterExternBlock: false
|
||||
BeforeCatch: true
|
||||
BeforeElse: true
|
||||
IndentBraces: false
|
||||
SplitEmptyFunction: true
|
||||
SplitEmptyRecord: true
|
||||
SplitEmptyNamespace: true
|
||||
BreakBeforeBinaryOperators: None
|
||||
BreakBeforeBraces: Custom
|
||||
BreakBeforeTernaryOperators: false
|
||||
BreakConstructorInitializers: AfterColon
|
||||
BreakInheritanceList: AfterColon
|
||||
ColumnLimit: 0
|
||||
CommentPragmas: "suppress"
|
||||
CompactNamespaces: false
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: true
|
||||
ConstructorInitializerIndentWidth: 4
|
||||
ContinuationIndentWidth: 4
|
||||
Cpp11BracedListStyle: false
|
||||
DerivePointerAlignment: false
|
||||
FixNamespaceComments: false
|
||||
IncludeBlocks: Regroup
|
||||
IncludeCategories:
|
||||
- Regex: '^.*(precomp|pch|stdafx)'
|
||||
Priority: -1
|
||||
- Regex: '^".*"'
|
||||
Priority: 1
|
||||
- Regex: '^<.*>'
|
||||
Priority: 2
|
||||
- Regex: '.*'
|
||||
Priority: 3
|
||||
IndentCaseLabels: false
|
||||
IndentPPDirectives: None
|
||||
IndentWidth: 4
|
||||
IndentWrappedFunctionNames: false
|
||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
MacroBlockBegin: "BEGIN_TEST_METHOD_PROPERTIES|BEGIN_MODULE|BEGIN_TEST_CLASS|BEGIN_TEST_METHOD"
|
||||
MacroBlockEnd: "END_TEST_METHOD_PROPERTIES|END_MODULE|END_TEST_CLASS|END_TEST_METHOD"
|
||||
MaxEmptyLinesToKeep: 1
|
||||
NamespaceIndentation: All
|
||||
PointerAlignment: Left
|
||||
ReflowComments: false
|
||||
SortIncludes: false
|
||||
SortUsingDeclarations: true
|
||||
SpaceAfterCStyleCast: false
|
||||
#SpaceAfterLogicalNot: false
|
||||
SpaceAfterTemplateKeyword: false
|
||||
SpaceBeforeAssignmentOperators: true
|
||||
SpaceBeforeCpp11BracedList: false
|
||||
SpaceBeforeCtorInitializerColon: true
|
||||
SpaceBeforeInheritanceColon: true
|
||||
SpaceBeforeParens: ControlStatements
|
||||
SpaceBeforeRangeBasedForLoopColon: true
|
||||
SpaceInEmptyParentheses: false
|
||||
SpacesBeforeTrailingComments: 1
|
||||
SpacesInAngles: false
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInContainerLiterals: false
|
||||
SpacesInParentheses: false
|
||||
SpacesInSquareBrackets: false
|
||||
Standard: Cpp11
|
||||
TabWidth: 4
|
||||
UseTab: Never
|
||||
13
.editorconfig
Normal file
13
.editorconfig
Normal file
@@ -0,0 +1,13 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[{*.cpp,*.c,*.hpp,*.h,*.cs}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[*.json]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
63
.gitattributes
vendored
Normal file
63
.gitattributes
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
###############################################################################
|
||||
# Set default behavior to automatically normalize line endings.
|
||||
###############################################################################
|
||||
* -text
|
||||
|
||||
###############################################################################
|
||||
# Set default behavior for command prompt diff.
|
||||
#
|
||||
# This is need for earlier builds of msysgit that does not have it on by
|
||||
# default for csharp files.
|
||||
# Note: This is only used by command line
|
||||
###############################################################################
|
||||
#*.cs diff=csharp
|
||||
|
||||
###############################################################################
|
||||
# Set the merge driver for project and solution files
|
||||
#
|
||||
# Merging from the command prompt will add diff markers to the files if there
|
||||
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
||||
# the diff markers are never inserted). Diff markers may cause the following
|
||||
# file extensions to fail to load in VS. An alternative would be to treat
|
||||
# these files as binary and thus will always conflict and require user
|
||||
# intervention with every merge. To do so, just uncomment the entries below
|
||||
###############################################################################
|
||||
#*.sln merge=binary
|
||||
#*.csproj merge=binary
|
||||
#*.vbproj merge=binary
|
||||
#*.vcxproj merge=binary
|
||||
#*.vcproj merge=binary
|
||||
#*.dbproj merge=binary
|
||||
#*.fsproj merge=binary
|
||||
#*.lsproj merge=binary
|
||||
#*.wixproj merge=binary
|
||||
#*.modelproj merge=binary
|
||||
#*.sqlproj merge=binary
|
||||
#*.wwaproj merge=binary
|
||||
|
||||
###############################################################################
|
||||
# behavior for image files
|
||||
#
|
||||
# image files are treated as binary by default.
|
||||
###############################################################################
|
||||
#*.jpg binary
|
||||
#*.png binary
|
||||
#*.gif binary
|
||||
|
||||
###############################################################################
|
||||
# diff behavior for common document formats
|
||||
#
|
||||
# Convert binary document formats to text before diffing them. This feature
|
||||
# is only available from the command line. Turn it on by uncommenting the
|
||||
# entries below.
|
||||
###############################################################################
|
||||
#*.doc diff=astextplain
|
||||
#*.DOC diff=astextplain
|
||||
#*.docx diff=astextplain
|
||||
#*.DOCX diff=astextplain
|
||||
#*.dot diff=astextplain
|
||||
#*.DOT diff=astextplain
|
||||
#*.pdf diff=astextplain
|
||||
#*.PDF diff=astextplain
|
||||
#*.rtf diff=astextplain
|
||||
#*.RTF diff=astextplain
|
||||
54
.github/ISSUE_TEMPLATE/Bug_Report.md
vendored
Normal file
54
.github/ISSUE_TEMPLATE/Bug_Report.md
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
name: Bug report 🐛
|
||||
about: Report errors or unexpected behavior
|
||||
title: "Bug Report (IF I DO NOT CHANGE THIS THE ISSUE WILL BE AUTO-CLOSED)"
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨
|
||||
|
||||
I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING:
|
||||
1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement.
|
||||
2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement.
|
||||
3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number).
|
||||
4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement.
|
||||
5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement.
|
||||
|
||||
All good? Then proceed!
|
||||
-->
|
||||
|
||||
<!--
|
||||
This bug tracker is monitored by Windows Terminal development team and other technical folks.
|
||||
|
||||
**Important: When reporting BSODs or security issues, DO NOT attach memory dumps, logs, or traces to Github issues**.
|
||||
Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue.
|
||||
|
||||
If this is an application crash, please also provide a Feedback Hub submission link so we can find your diagnostic data on the backend. Use the category "Apps > Windows Terminal (Preview)" and choose "Share My Feedback" after submission to get the link.
|
||||
|
||||
Please use this form and describe your issue, concisely but precisely, with as much detail as possible.
|
||||
|
||||
-->
|
||||
|
||||
# Environment
|
||||
|
||||
```none
|
||||
Windows build number: [run `[Environment]::OSVersion` for powershell, or `ver` for cmd]
|
||||
Windows Terminal version (if applicable):
|
||||
|
||||
Any other software?
|
||||
```
|
||||
|
||||
# Steps to reproduce
|
||||
|
||||
<!-- A description of how to trigger this bug. -->
|
||||
|
||||
# Expected behavior
|
||||
|
||||
<!-- A description of what you're expecting, possibly containing screenshots or reference material. -->
|
||||
|
||||
# Actual behavior
|
||||
|
||||
<!-- What's actually happening? -->
|
||||
10
.github/ISSUE_TEMPLATE/Documentation_Issue.md
vendored
Normal file
10
.github/ISSUE_TEMPLATE/Documentation_Issue.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: Documentation Issue 📚
|
||||
about: Report issues in our documentation
|
||||
title: "Documentation Issue"
|
||||
labels: Issue-Docs
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!-- Briefly describe which document needs to be corrected and why. -->
|
||||
34
.github/ISSUE_TEMPLATE/Feature_Request.md
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Feature_Request.md
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
name: Feature Request/Idea 🚀
|
||||
about: Suggest a new feature or improvement (this does not mean you have to implement it)
|
||||
title: "Feature Request"
|
||||
labels: Issue-Feature
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨
|
||||
|
||||
I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING:
|
||||
1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement.
|
||||
2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement.
|
||||
3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number).
|
||||
4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement.
|
||||
5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement.
|
||||
|
||||
All good? Then proceed!
|
||||
-->
|
||||
|
||||
# Description of the new feature/enhancement
|
||||
|
||||
<!--
|
||||
A clear and concise description of what the problem is that the new feature would solve.
|
||||
Describe why and how a user would use this new functionality (if applicable).
|
||||
-->
|
||||
|
||||
# Proposed technical implementation details (optional)
|
||||
|
||||
<!--
|
||||
A clear and concise description of what you want to happen.
|
||||
-->
|
||||
10
.github/ISSUE_TEMPLATE/Guidance_Issue.md
vendored
Normal file
10
.github/ISSUE_TEMPLATE/Guidance_Issue.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: Community Guidance Request ✨
|
||||
about: Suggest somewhere the Windows Terminal Team needs to provide community guidance through new documentation or process.
|
||||
title: "Guidance"
|
||||
labels: Issue-Docs
|
||||
assignees: 'bitcrazed'
|
||||
|
||||
---
|
||||
|
||||
<!-- What needs to change? Who is responsible for it? Why is it an open question? -->
|
||||
19
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
19
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? -->
|
||||
## Summary of the Pull Request
|
||||
|
||||
<!-- Other than the issue solved, is this relevant to any other issues/existing PRs? -->
|
||||
## References
|
||||
|
||||
<!-- Please review the items on the PR checklist before submitting-->
|
||||
## PR Checklist
|
||||
* [ ] Closes #xxx
|
||||
* [ ] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
|
||||
* [ ] Tests added/passed
|
||||
* [ ] Requires documentation to be updated
|
||||
* [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx
|
||||
|
||||
<!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here -->
|
||||
## Detailed Description of the Pull Request / Additional comments
|
||||
|
||||
<!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well -->
|
||||
## Validation Steps Performed
|
||||
534
.gitignore
vendored
534
.gitignore
vendored
@@ -1,253 +1,281 @@
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
|
||||
# Visual Studio 2015 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUNIT
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# DNX
|
||||
project.lock.json
|
||||
artifacts/
|
||||
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_i.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# JustCode is a .NET coding add-in
|
||||
.JustCode
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# TODO: Comment the next line if you want to checkin your web deploy settings
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||
# in these scripts will be unencrypted
|
||||
PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/packages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/packages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/packages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignoreable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Windows Store app package directories and files
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
node_modules/
|
||||
orleans.codegen.cs
|
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||
#bower_components/
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# GhostDoc plugin setting file
|
||||
*.GhostDoc.xml
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# JetBrains Rider
|
||||
.idea/
|
||||
*.sln.iml
|
||||
*.exe
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
ARM64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
objfre/
|
||||
objchk/
|
||||
|
||||
# Visual Studio 2015 cache/options directory
|
||||
.vs/
|
||||
|
||||
# Visual Studio Code cache/options directory
|
||||
.vscode/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUNIT
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# DNX
|
||||
project.lock.json
|
||||
artifacts/
|
||||
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_i.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# JustCode is a .NET coding add-in
|
||||
.JustCode
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# TODO: Comment the next line if you want to checkin your web deploy settings
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||
# in these scripts will be unencrypted
|
||||
PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/packages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/packages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/packages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignoreable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Windows Store app package directories and files
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
[Ss]tyle[Cc]op.*
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
node_modules/
|
||||
orleans.codegen.cs
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# JetBrains Rider
|
||||
.idea/
|
||||
*.sln.iml
|
||||
*.exe
|
||||
|
||||
# Windows Build System files
|
||||
build*.dbb
|
||||
build*.err
|
||||
build*.evt
|
||||
build*.log
|
||||
build*.prf
|
||||
build*.trc
|
||||
build*.rec
|
||||
build*.wrn
|
||||
build*.metadata
|
||||
|
||||
# .razzlerc.cmd file - used by dev environment
|
||||
tools/.razzlerc.*
|
||||
# .PowershellModules - if one needs a powershell module dependency, one
|
||||
# can save it here. used by tools/OpenConsole.psm1
|
||||
.PowershellModules
|
||||
# message compiler output
|
||||
MSG*.bin
|
||||
/*.exe
|
||||
|
||||
# python
|
||||
*.pyc
|
||||
|
||||
**/Generated Files/
|
||||
**/Merged/*
|
||||
**/Unmerged/*
|
||||
profiles.json
|
||||
*.metaproj
|
||||
*.swp
|
||||
|
||||
6
.gitmodules
vendored
Normal file
6
.gitmodules
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
[submodule "dep/gsl"]
|
||||
path = dep/gsl
|
||||
url = https://github.com/microsoft/gsl
|
||||
[submodule "dep/wil"]
|
||||
path = dep/wil
|
||||
url = https://github.com/microsoft/wil
|
||||
4
.nuget/packages.config
Normal file
4
.nuget/packages.config
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="vswhere" version="2.6.7" />
|
||||
</packages>
|
||||
34
.vsconfig
Normal file
34
.vsconfig
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"components": [
|
||||
"Microsoft.VisualStudio.Component.CoreEditor",
|
||||
"Microsoft.VisualStudio.Workload.CoreEditor",
|
||||
"Microsoft.VisualStudio.Workload.Universal",
|
||||
"Microsoft.VisualStudio.Workload.NativeDesktop",
|
||||
"Microsoft.VisualStudio.Workload.ManagedDesktop",
|
||||
"Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites",
|
||||
"Microsoft.VisualStudio.Component.NuGet",
|
||||
"Microsoft.VisualStudio.Component.Roslyn.Compiler",
|
||||
"Microsoft.VisualStudio.Component.Roslyn.LanguageServices",
|
||||
"Microsoft.Net.ComponentGroup.DevelopmentPrerequisites",
|
||||
"Microsoft.Component.MSBuild",
|
||||
"Microsoft.VisualStudio.Component.ManagedDesktop.Core",
|
||||
"Microsoft.Net.Component.4.TargetingPack",
|
||||
"Microsoft.Net.Component.4.5.TargetingPack",
|
||||
"Microsoft.VisualStudio.Component.DiagnosticTools",
|
||||
"Microsoft.VisualStudio.Component.Debugger.JustInTime",
|
||||
"Microsoft.VisualStudio.Component.Windows10SDK.18362",
|
||||
"Microsoft.VisualStudio.ComponentGroup.UWP.Support",
|
||||
"Microsoft.VisualStudio.Component.VC.CoreIde",
|
||||
"Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core",
|
||||
"Microsoft.VisualStudio.Component.Graphics",
|
||||
"Microsoft.VisualStudio.Component.VC.Redist.14.Latest",
|
||||
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
|
||||
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
|
||||
"Microsoft.VisualStudio.Component.VC.v142.x86.x64",
|
||||
"Microsoft.VisualStudio.Component.VC.v142.ARM64",
|
||||
"Microsoft.VisualStudio.ComponentGroup.UWP.VC",
|
||||
"Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142",
|
||||
"Microsoft.VisualStudio.Component.UWP.VC.ARM64"
|
||||
]
|
||||
}
|
||||
8
CODE_OF_CONDUCT.md
Normal file
8
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# Code of Conduct
|
||||
|
||||
This project has adopted the [Microsoft Open Source Code of Conduct][conduct-code].
|
||||
For more information see the [Code of Conduct FAQ][conduct-FAQ] or contact [opencode@microsoft.com][conduct-email] with any additional questions or comments.
|
||||
|
||||
[conduct-code]: https://opensource.microsoft.com/codeofconduct/
|
||||
[conduct-FAQ]: https://opensource.microsoft.com/codeofconduct/faq/
|
||||
[conduct-email]: mailto:opencode@microsoft.com
|
||||
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
49
NOTICE.md
Normal file
49
NOTICE.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# NOTICES AND INFORMATION
|
||||
Do Not Translate or Localize
|
||||
|
||||
This software incorporates material from third parties. Microsoft makes certain
|
||||
open source code available at http://3rdpartysource.microsoft.com, or you may
|
||||
send a check or money order for US $5.00, including the product name, the open
|
||||
source component name, and version number, to:
|
||||
|
||||
```
|
||||
Source Code Compliance Team
|
||||
Microsoft Corporation
|
||||
One Microsoft Way
|
||||
Redmond, WA 98052
|
||||
USA
|
||||
```
|
||||
|
||||
Notwithstanding any other terms, you may reverse engineer this software to the
|
||||
extent required to debug changes to any libraries licensed under the GNU Lesser
|
||||
General Public License.
|
||||
|
||||
## jsoncpp
|
||||
|
||||
**Source**: https://github.com/open-source-parsers/jsoncpp
|
||||
|
||||
### License
|
||||
|
||||
```
|
||||
Copyright (c) 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use, copy,
|
||||
modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
```
|
||||
20
NuGet.Config
Normal file
20
NuGet.Config
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="NuGet.org" value="https://api.nuget.org/v3/index.json" />
|
||||
<!-- Add repositories here to the list of available repositories -->
|
||||
|
||||
<!-- Dependencies that we must carry because they're not on public nuget feeds right now. -->
|
||||
<!--<add key="Static Package Dependencies" value="dep\packages" />-->
|
||||
|
||||
<!-- Use our own NuGet Feed -->
|
||||
<add key="Windows Terminal NuGet Feed" value="https://terminalnuget.blob.core.windows.net/feed/index.json" />
|
||||
|
||||
<!-- Internal NuGet feeds that may not be accessible outside Microsoft corporate network -->
|
||||
<!--<add key="TAEF - internal" value="https://microsoft.pkgs.visualstudio.com/DefaultCollection/_packaging/Taef/nuget/v3/index.json" />
|
||||
<add key="OpenConsole - Internal" value="https://microsoft.pkgs.visualstudio.com/_packaging/OpenConsole/nuget/v3/index.json" />-->
|
||||
</packageSources>
|
||||
<config>
|
||||
<add key="repositorypath" value=".\packages" />
|
||||
</config>
|
||||
</configuration>
|
||||
1115
OpenConsole.sln
Normal file
1115
OpenConsole.sln
Normal file
File diff suppressed because it is too large
Load Diff
205
README.md
205
README.md
@@ -1,16 +1,203 @@
|
||||
# Console
|
||||
# Welcome\!
|
||||
#### This repository contains the source code for:
|
||||
|
||||
This is the Official Windows Console Github Repo.
|
||||
Here you'll find assorted console tools in the `tools/` directory, such as the
|
||||
[ColorTool](https://github.com/Microsoft/Console/tree/master/tools/ColorTool).
|
||||
* [Windows Terminal](https://www.microsoft.com/en-us/p/windows-terminal-preview/9n0dx20hk701)
|
||||
* The Windows console host (`conhost.exe`)
|
||||
* Components shared between the two projects
|
||||
* [ColorTool](https://github.com/Microsoft/Terminal/tree/master/src/tools/ColorTool)
|
||||
* [Sample projects](https://github.com/Microsoft/Terminal/tree/master/samples) that show how to consume the Windows Console APIs
|
||||
|
||||
#### Other related repositories include:
|
||||
* [Console API Documentation](https://github.com/MicrosoftDocs/Console-Docs)
|
||||
|
||||
## Issues
|
||||
## Installation
|
||||
|
||||
We will be monitoring and responding to issues as best we can.
|
||||
Please attempt to avoid filing duplicates of open or closed items when possible.
|
||||
_(Note: in order to run the Windows Terminal, you'll need to be running at least Windows build 18362 or higher.)_
|
||||
|
||||
## Build Status
|
||||
### Microsoft Store
|
||||
|
||||
Download the Microsoft Terminal free from the Microsoft Store and it'll be continuously updated. Or, feel free to side-load [releases](https://github.com/microsoft/terminal/releases) from GitHub, but note they won't auto-update.
|
||||
|
||||
<a href='//www.microsoft.com/store/apps/9n0dx20hk701?cid=storebadge&ocid=badge'><img src='https://assets.windowsphone.com/85864462-9c82-451e-9355-a3d5f874397a/English_get-it-from-MS_InvariantCulture_Default.png' alt='English badge' width="284" height="104" style='width: 284px; height: 104px;'/></a>
|
||||
|
||||
### Chocolatey (Unofficial)
|
||||
|
||||
Download and upgrade the Windows Terminal from [Chocolatey](https://chocolatey.org).
|
||||
|
||||
To install Windows Terminal, run the following command from the command line or from PowerShell:
|
||||
```powershell
|
||||
choco install microsoft-windows-terminal
|
||||
```
|
||||
|
||||
To upgrade Windows Terminal, run the following command from the command line or from PowerShell:
|
||||
```powershell
|
||||
choco upgrade microsoft-windows-terminal
|
||||
```
|
||||
|
||||
If you have any issues when installing/upgrading the package please go to the [package page](https://chocolatey.org/packages/microsoft-windows-terminal) and follow the [Chocolatey triage process](https://chocolatey.org/docs/package-triage-process)
|
||||
|
||||
### Build Status
|
||||
|
||||
Project|Build Status
|
||||
---|---
|
||||
tools/ColorTool|
|
||||
Terminal|[](https://dev.azure.com/ms/Terminal/_build?definitionId=136)
|
||||
ColorTool|
|
||||
|
||||
# Terminal & Console Overview
|
||||
|
||||
Please take a few minutes to review the overview below before diving into the code:
|
||||
|
||||
## Windows Terminal
|
||||
|
||||
Windows Terminal is a new, modern, feature-rich, productive terminal application for command-line users. It includes many of the features most frequently requested by the Windows command-line community including support for tabs, rich text, globalization, configurability, theming & styling, and more.
|
||||
|
||||
The Terminal will also need to meet our goals and measures to ensure it remains fast, and efficient, and doesn't consume vast amounts of memory or power.
|
||||
|
||||
## The Windows console host
|
||||
|
||||
The Windows console host, `conhost.exe`, is Windows' original command-line user experience. It implements Windows' command-line infrastructure, and is responsible for hosting the Windows Console API, input engine, rendering engine, and user preferences. The console host code in this repository is the actual source from which the `conhost.exe` in Windows itself is built.
|
||||
|
||||
Console's primary goal is to remain backwards-compatible with existing console subsystem applications.
|
||||
|
||||
Since assuming ownership of the Windows command-line in 2014, the team has added several new features to the Console, including window transparency, line-based selection, support for [ANSI / Virtual Terminal sequences](https://en.wikipedia.org/wiki/ANSI_escape_code), [24-bit color](https://devblogs.microsoft.com/commandline/24-bit-color-in-the-windows-console/), a [Pseudoconsole ("ConPTY")](https://devblogs.microsoft.com/commandline/windows-command-line-introducing-the-windows-pseudo-console-conpty/), and more.
|
||||
|
||||
However, because the Console's primary goal is to maintain backward compatibility, we've been unable to add many of the features the community has been asking for, and which we've been wanting to add for the last several years--like tabs!
|
||||
|
||||
These limitations led us to create the new Windows Terminal.
|
||||
|
||||
## Shared Components
|
||||
|
||||
While overhauling the Console, we've modernized its codebase considerably. We've cleanly separated logical entities into modules and classes, introduced some key extensibility points, replaced several old, home-grown collections and containers with safer, more efficient [STL containers](https://docs.microsoft.com/en-us/cpp/standard-library/stl-containers?view=vs-2019), and made the code simpler and safer by using Microsoft's [WIL](https://github.com/Microsoft/wil) header library.
|
||||
|
||||
This overhaul work resulted in the creation of several key components that would be useful for any terminal implementation on Windows, including a new DirectWrite-based text layout and rendering engine, a text buffer capable of storing both UTF-16 and UTF-8, and a VT parser/emitter.
|
||||
|
||||
## Building a new terminal
|
||||
|
||||
When we started building the new terminal application, we explored and evaluated several approaches and technology stacks. We ultimately decided that our goals would be best met by sticking with C++ and sharing the aforementioned modernized components, placing them atop the modern Windows application platform and UI framework.
|
||||
|
||||
Further, we realized that this would allow us to build the terminal's renderer and input stack as a reusable Windows UI control that others can incorporate into their applications.
|
||||
|
||||
# FAQ
|
||||
|
||||
## Where can I download Windows Terminal?
|
||||
|
||||
### The Windows Terminal preview can be downloaded from the Microsoft Store.
|
||||
|
||||
[https://www.microsoft.com/en-us/p/windows-terminal-preview/9n0dx20hk701](https://www.microsoft.com/en-us/p/windows-terminal-preview/9n0dx20hk701)
|
||||
|
||||
## I built and ran the new Terminal, but I just get a blank window app!
|
||||
|
||||
Make sure you are building for your computer's architecture. If your box has a 64-bit Windows, change your Solution Platform to x64.
|
||||
To check your OS architecture go to Settings -> System -> About (or Win+X -> System) and under `Device specifications` check for the `System type`.
|
||||
|
||||
## I built and ran the new Terminal, but it looks just like the old console! What gives?
|
||||
|
||||
Firstly, make sure you're building & deploying `CascadiaPackage` in Visual Studio, _NOT_ `Host.EXE`. `OpenConsole.exe` is just `conhost.exe`, the same old console you know and love. `opencon.cmd` will launch `openconsole.exe`, and unfortunately, `openterm.cmd` is currently broken.
|
||||
|
||||
Secondly, try pressing <kbd>Ctrl</kbd> + <kbd>T</kbd>. The tabs are hidden when you only have one tab by default. In the future, the UI will be dramatically different, but for now, the defaults are _supposed_ to look like the console defaults.
|
||||
|
||||
## I tried running WindowsTerminal.exe and it crashes!
|
||||
|
||||
* Don't try to run it unpackaged. Make sure to build & deploy `CascadiaPackage` from Visual Studio, and run the Windows Terminal (Dev Build) app.
|
||||
* Make sure you're on the right version of Windows. You'll need to be on Insider's builds, or wait for the 1903 release, as the Windows Terminal **REQUIRES** features from the latest Windows release.
|
||||
|
||||
# Getting Started
|
||||
|
||||
## Debugging
|
||||
|
||||
* To debug in VS, right click on CascadiaPackage (from VS Solution Explorer) and go to properties, in the Debug menu, change "Application process" and "Background task process" to "Native Only".
|
||||
|
||||
## Contributing
|
||||
|
||||
We are excited to work alongside you, our amazing community, to build and enhance Windows Terminal\!
|
||||
|
||||
We ask that **before you start work on a feature that you would like to contribute**, please read our [Contributor's Guide](https://github.com/microsoft/terminal/blob/master/doc/contributing.md). We will be happy to work with you to figure out the best approach, provide guidance and mentorship throughout feature development, and help avoid any wasted or duplicate effort.
|
||||
|
||||
> 👉 **Remember\!** Your contributions may be incorporated into future versions of Windows\! Because of this, all pull requests will be subject to the same level of scrutiny for quality, coding standards, performance, globalization, accessibility, and compatibility as those of our internal contributors.
|
||||
|
||||
> ⚠ **Note**: The Command-Line Team is actively working out of this repository and will be periodically re-structuring the code to make it easier to comprehend, navigate, build, test, and contribute to, so **DO expect significant changes to code layout on a regular basis**.
|
||||
|
||||
## Documentation
|
||||
|
||||
All documentation is located in the `./doc` folder. If you would like to contribute to the documentation, please submit a pull request.
|
||||
|
||||
## Communicating with the Team
|
||||
|
||||
The easiest way to communicate with the team is via GitHub issues. Please file new issues, feature requests and suggestions, but **DO search for similar open/closed pre-existing issues before you do**.
|
||||
|
||||
Please help us keep this repository clean, inclusive, and fun\! We will not tolerate any abusive, rude, disrespectful or inappropriate behavior. Read our [Code of Conduct](https://opensource.microsoft.com/codeofconduct/) for more details.
|
||||
|
||||
If you would like to ask a question that you feel doesn't warrant an issue (yet), please reach out to us via Twitter:
|
||||
|
||||
* Rich Turner, Program Manager: [@richturn\_ms](https://twitter.com/richturn_ms)
|
||||
|
||||
* Dustin Howett, Engineering Lead: [@dhowett](https://twitter.com/DHowett)
|
||||
|
||||
* Michael Niksa, Senior Developer: [@michaelniksa](https://twitter.com/MichaelNiksa)
|
||||
|
||||
* Kayla Cinnamon, Program Manager (especially for UX issues): [@cinnamon\_msft](https://twitter.com/cinnamon_msft)
|
||||
|
||||
# Developer Guidance
|
||||
|
||||
## Build Prerequisites
|
||||
|
||||
* You must be running Windows 1903 (build >= 10.0.18362.0) or above in order to run Windows Terminal.
|
||||
* You must have the [1903 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk) (build 10.0.18362.0) installed.
|
||||
* You must have at least [VS 2019](https://visualstudio.microsoft.com/downloads/) installed.
|
||||
* You must install the following Workloads via the VS Installer. Opening the solution will [prompt you to install missing components automatically](https://devblogs.microsoft.com/setup/configure-visual-studio-across-your-organization-with-vsconfig/).
|
||||
- Desktop Development with C++
|
||||
- Universal Windows Platform Development
|
||||
- **The following Individual Components**
|
||||
- C++ (v142) Universal Windows Platform Tools
|
||||
|
||||
* You must also [enable Developer Mode in the Windows Settings app](https://docs.microsoft.com/en-us/windows/uwp/get-started/enable-your-device-for-development) to locally install and run the Terminal app.
|
||||
|
||||
|
||||
## Building the Code
|
||||
|
||||
This repository uses [git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) for some of its dependencies. To make sure submodules are restored or updated, be sure to run the following prior to building:
|
||||
|
||||
```shell
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
OpenConsole.sln may be built from within Visual Studio or from the command-line using MSBuild. To build from the command line, find your shell below.
|
||||
|
||||
### PowerShell
|
||||
|
||||
```powershell
|
||||
Import-Module .\tools\OpenConsole.psm1
|
||||
Set-MsBuildDevEnvironment
|
||||
Invoke-OpenConsoleBuild
|
||||
```
|
||||
|
||||
### CMD
|
||||
|
||||
```shell
|
||||
.\tools\razzle.cmd
|
||||
bcz
|
||||
```
|
||||
|
||||
We've provided a set of convenience scripts as well as [README](./tools/README.md) in the **/tools** directory to help automate the process of building and running tests.
|
||||
|
||||
## Coding Guidance
|
||||
|
||||
Please review these brief docs below relating to our coding standards etc.
|
||||
|
||||
> 👉 If you find something missing from these docs, feel free to contribute to any of our documentation files anywhere in the repository (or make some new ones\!)
|
||||
|
||||
This is a work in progress as we learn what we'll need to provide people in order to be effective contributors to our project.
|
||||
|
||||
- [Coding Style](https://github.com/Microsoft/Terminal/blob/master/doc/STYLE.md)
|
||||
- [Code Organization](https://github.com/Microsoft/Terminal/blob/master/doc/ORGANIZATION.md)
|
||||
- [Exceptions in our legacy codebase](https://github.com/Microsoft/Terminal/blob/master/doc/EXCEPTIONS.md)
|
||||
- [Helpful smart pointers and macros for interfacing with Windows in WIL](https://github.com/Microsoft/Terminal/blob/master/doc/WIL.md)
|
||||
|
||||
# Code of Conduct
|
||||
|
||||
This project has adopted the [Microsoft Open Source Code of Conduct][conduct-code].
|
||||
For more information see the [Code of Conduct FAQ][conduct-FAQ] or contact [opencode@microsoft.com][conduct-email] with any additional questions or comments.
|
||||
|
||||
[conduct-code]: https://opensource.microsoft.com/codeofconduct/
|
||||
[conduct-FAQ]: https://opensource.microsoft.com/codeofconduct/faq/
|
||||
[conduct-email]: mailto:opencode@microsoft.com
|
||||
|
||||
41
SECURITY.md
Normal file
41
SECURITY.md
Normal file
@@ -0,0 +1,41 @@
|
||||
<!-- BEGIN MICROSOFT SECURITY.MD V0.0.2 BLOCK -->
|
||||
|
||||
## Security
|
||||
|
||||
Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [many more](https://opensource.microsoft.com/).
|
||||
|
||||
If you believe you have found a security vulnerability in any Microsoft-owned repository that meets Microsoft's [definition](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)) of a security vulnerability, please report it to us as described below.
|
||||
|
||||
## Reporting Security Issues
|
||||
|
||||
**Please do not report security vulnerabilities through public GitHub issues.**
|
||||
|
||||
Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).
|
||||
|
||||
If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc).
|
||||
|
||||
You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc).
|
||||
|
||||
Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
|
||||
|
||||
* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
|
||||
* Full paths of source file(s) related to the manifestation of the issue
|
||||
* The location of the affected source code (tag/branch/commit or direct URL)
|
||||
* Any special configuration required to reproduce the issue
|
||||
* Step-by-step instructions to reproduce the issue
|
||||
* Proof-of-concept or exploit code (if possible)
|
||||
* Impact of the issue, including how an attacker might exploit the issue
|
||||
|
||||
This information will help us triage your report more quickly.
|
||||
|
||||
If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs.
|
||||
|
||||
## Preferred Languages
|
||||
|
||||
We prefer all communications to be in English.
|
||||
|
||||
## Policy
|
||||
|
||||
Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd).
|
||||
|
||||
<!-- END MICROSOFT SECURITY.MD BLOCK -->
|
||||
4
build/.nuget/packages.config
Normal file
4
build/.nuget/packages.config
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Taef.TestAdapter" version="10.30.180808002" />
|
||||
</packages>
|
||||
9
build/config/NuGet.config
Normal file
9
build/config/NuGet.config
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="TAEF Internal" value="https://microsoft.pkgs.visualstudio.com/_packaging/Taef/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
<config>
|
||||
<add key="repositorypath" value="..\..\packages" />
|
||||
</config>
|
||||
</configuration>
|
||||
5
build/config/SignConfig.WindowsTerminal.xml
Normal file
5
build/config/SignConfig.WindowsTerminal.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<SignConfigXML>
|
||||
<job platform="" configuration="" certSubject="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" jobname="EngFunSimpleSign" approvers="">
|
||||
<file src="__INPATHROOT__\Microsoft.WindowsTerminal_8wekyb3d8bbwe.msixbundle" signType="136020001" dest="__OUTPATHROOT__\Microsoft.WindowsTerminal_8wekyb3d8bbwe.msixbundle" />
|
||||
</job>
|
||||
</SignConfigXML>
|
||||
43
build/pipelines/ci.yml
Normal file
43
build/pipelines/ci.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
trigger:
|
||||
batch: true
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
paths:
|
||||
exclude:
|
||||
- doc/*
|
||||
- samples/*
|
||||
- tools/*
|
||||
|
||||
pr:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
paths:
|
||||
exclude:
|
||||
- doc/*
|
||||
- samples/*
|
||||
- tools/*
|
||||
|
||||
# 0.0.yyMM.dd##
|
||||
# 0.0.1904.0900
|
||||
name: 0.0.$(Date:yyMM).$(Date:dd)$(Rev:rr)
|
||||
|
||||
jobs:
|
||||
- template: ./templates/build-console-audit-job.yml
|
||||
parameters:
|
||||
platform: x64
|
||||
|
||||
- template: ./templates/build-console-ci.yml
|
||||
parameters:
|
||||
platform: x64
|
||||
|
||||
- template: ./templates/build-console-ci.yml
|
||||
parameters:
|
||||
platform: x86
|
||||
|
||||
- template: ./templates/build-console-ci.yml
|
||||
parameters:
|
||||
platform: ARM64
|
||||
|
||||
- template: ./templates/check-formatting.yml
|
||||
40
build/pipelines/release.yml
Normal file
40
build/pipelines/release.yml
Normal file
@@ -0,0 +1,40 @@
|
||||
trigger: none
|
||||
pr: none
|
||||
|
||||
variables:
|
||||
baseYearForVersioning: 2019 # Used by build-console-int
|
||||
versionMajor: 0
|
||||
versionMinor: 1
|
||||
|
||||
# When we move off PackageES for Versioning, we'll need to switch
|
||||
# name to this format. For now, though, we need to use DayOfYear.Rev
|
||||
# to unique our builds, as mandated by PackageES's Setup task.
|
||||
# name: '$(versionMajor).$(versionMinor).$(DayOfYear)$(Rev:r).0'
|
||||
#
|
||||
# Build name/version number above must end with .0 to make the
|
||||
# store publication machinery happy.
|
||||
name: 'Terminal_$(date:yyMM).$(date:dd)$(rev:rrr)'
|
||||
|
||||
jobs:
|
||||
- template: ./templates/build-console-audit-job.yml
|
||||
parameters:
|
||||
platform: x64
|
||||
|
||||
- template: ./templates/build-console-int.yml
|
||||
parameters:
|
||||
platform: x64
|
||||
additionalBuildArguments: /p:WindowsTerminalReleaseBuild=true
|
||||
|
||||
- template: ./templates/build-console-int.yml
|
||||
parameters:
|
||||
platform: x86
|
||||
additionalBuildArguments: /p:WindowsTerminalReleaseBuild=true
|
||||
|
||||
- template: ./templates/build-console-int.yml
|
||||
parameters:
|
||||
platform: arm64
|
||||
additionalBuildArguments: /p:WindowsTerminalReleaseBuild=true
|
||||
|
||||
- template: ./templates/check-formatting.yml
|
||||
|
||||
- template: ./templates/release-sign-and-bundle.yml
|
||||
53
build/pipelines/templates/build-console-audit-job.yml
Normal file
53
build/pipelines/templates/build-console-audit-job.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
parameters:
|
||||
platform: ''
|
||||
additionalBuildArguments: ''
|
||||
|
||||
jobs:
|
||||
- job: Build${{ parameters.platform }}AuditMode
|
||||
displayName: Static Analysis Build ${{ parameters.platform }}
|
||||
variables:
|
||||
BuildConfiguration: AuditMode
|
||||
BuildPlatform: ${{ parameters.platform }}
|
||||
pool: { vmImage: windows-2019 }
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
submodules: true
|
||||
clean: true
|
||||
|
||||
- task: NuGetToolInstaller@0
|
||||
displayName: Ensure NuGet 4.8.1
|
||||
inputs:
|
||||
versionSpec: 4.8.1
|
||||
|
||||
# In the Microsoft Azure DevOps tenant, NuGetCommand is ambiguous.
|
||||
# This should be `task: NuGetCommand@2`
|
||||
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
|
||||
displayName: Restore NuGet packages
|
||||
inputs:
|
||||
command: restore
|
||||
feedsToUse: config
|
||||
configPath: NuGet.config
|
||||
restoreSolution: OpenConsole.sln
|
||||
restoreDirectory: '$(Build.SourcesDirectory)\packages'
|
||||
|
||||
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
|
||||
displayName: 'NuGet restore packages for CI'
|
||||
inputs:
|
||||
command: restore
|
||||
restoreSolution: build/.nuget/packages.config
|
||||
feedsToUse: config
|
||||
externalFeedCredentials: 'TAEF NuGet Feed'
|
||||
nugetConfigPath: build/config/NuGet.config
|
||||
restoreDirectory: '$(Build.SourcesDirectory)/packages'
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build solution **\OpenConsole.sln'
|
||||
inputs:
|
||||
solution: '**\OpenConsole.sln'
|
||||
vsVersion: 16.0
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
msbuildArgs: ${{ parameters.additionalBuildArguments }}
|
||||
clean: true
|
||||
maximumCpuCount: true
|
||||
17
build/pipelines/templates/build-console-ci.yml
Normal file
17
build/pipelines/templates/build-console-ci.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
parameters:
|
||||
configuration: 'Release'
|
||||
platform: ''
|
||||
additionalBuildArguments: ''
|
||||
|
||||
jobs:
|
||||
- job: Build${{ parameters.platform }}${{ parameters.configuration }}
|
||||
displayName: Build ${{ parameters.platform }} ${{ parameters.configuration }}
|
||||
variables:
|
||||
BuildConfiguration: ${{ parameters.configuration }}
|
||||
BuildPlatform: ${{ parameters.platform }}
|
||||
pool: { vmImage: windows-2019 }
|
||||
|
||||
steps:
|
||||
- template: build-console-steps.yml
|
||||
parameters:
|
||||
additionalBuildArguments: ${{ parameters.additionalBuildArguments }}
|
||||
30
build/pipelines/templates/build-console-int.yml
Normal file
30
build/pipelines/templates/build-console-int.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
parameters:
|
||||
configuration: 'Release'
|
||||
platform: ''
|
||||
additionalBuildArguments: ''
|
||||
|
||||
jobs:
|
||||
- job: Build${{ parameters.platform }}${{ parameters.configuration }}
|
||||
displayName: Build ${{ parameters.platform }} ${{ parameters.configuration }}
|
||||
variables:
|
||||
BuildConfiguration: ${{ parameters.configuration }}
|
||||
BuildPlatform: ${{ parameters.platform }}
|
||||
|
||||
pool:
|
||||
name: Package ES Lab E
|
||||
demands:
|
||||
- msbuild
|
||||
- visualstudio
|
||||
- vstest
|
||||
|
||||
steps:
|
||||
- task: PkgESSetupBuild@10
|
||||
displayName: 'Package ES - Setup Build'
|
||||
inputs:
|
||||
useDfs: false
|
||||
productName: WindowsTerminal
|
||||
disableOutputRedirect: true
|
||||
|
||||
- template: build-console-steps.yml
|
||||
parameters:
|
||||
additionalBuildArguments: "/p:XesUseOneStoreVersioning=true;XesBaseYearForStoreVersion=$(baseYearForVersioning) ${{ parameters.additionalBuildArguments }}"
|
||||
103
build/pipelines/templates/build-console-steps.yml
Normal file
103
build/pipelines/templates/build-console-steps.yml
Normal file
@@ -0,0 +1,103 @@
|
||||
parameters:
|
||||
additionalBuildArguments: ''
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
submodules: true
|
||||
clean: true
|
||||
|
||||
- task: NuGetToolInstaller@0
|
||||
displayName: Ensure NuGet 4.8.1
|
||||
inputs:
|
||||
versionSpec: 4.8.1
|
||||
|
||||
- task: VisualStudioTestPlatformInstaller@1
|
||||
displayName: Ensure VSTest Platform
|
||||
|
||||
# In the Microsoft Azure DevOps tenant, NuGetCommand is ambiguous.
|
||||
# This should be `task: NuGetCommand@2`
|
||||
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
|
||||
displayName: Restore NuGet packages
|
||||
inputs:
|
||||
command: restore
|
||||
feedsToUse: config
|
||||
configPath: NuGet.config
|
||||
restoreSolution: OpenConsole.sln
|
||||
restoreDirectory: '$(Build.SourcesDirectory)\packages'
|
||||
|
||||
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
|
||||
displayName: 'NuGet restore packages for CI'
|
||||
inputs:
|
||||
command: restore
|
||||
restoreSolution: build/.nuget/packages.config
|
||||
feedsToUse: config
|
||||
externalFeedCredentials: 'TAEF NuGet Feed'
|
||||
nugetConfigPath: build/config/NuGet.config
|
||||
restoreDirectory: '$(Build.SourcesDirectory)/packages'
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build solution **\OpenConsole.sln'
|
||||
inputs:
|
||||
solution: '**\OpenConsole.sln'
|
||||
vsVersion: 16.0
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
msbuildArgs: ${{ parameters.additionalBuildArguments }}
|
||||
clean: true
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Check MSIX for common regressions'
|
||||
inputs:
|
||||
targetType: inline
|
||||
script: |
|
||||
$Package = Get-ChildItem -Recurse -Filter "CascadiaPackage_*.msix"
|
||||
.\build\scripts\Test-WindowsTerminalPackage.ps1 -Verbose -Path $Package.FullName
|
||||
|
||||
- task: VSTest@2
|
||||
displayName: 'Run Unit Tests'
|
||||
inputs:
|
||||
testAssemblyVer2: |
|
||||
$(BUILD.SOURCESDIRECTORY)\**\*unit.test*.dll
|
||||
!**\obj\**
|
||||
runSettingsFile: '$(BUILD.SOURCESDIRECTORY)\src\unit.tests.$(BuildPlatform).runsettings'
|
||||
codeCoverageEnabled: true
|
||||
runInParallel: False
|
||||
testRunTitle: 'Console Unit Tests'
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
condition: and(succeeded(), or(eq(variables['BuildPlatform'], 'x64'), eq(variables['BuildPlatform'], 'x86')))
|
||||
|
||||
- task: VSTest@2
|
||||
displayName: 'Run Feature Tests (x64 only)'
|
||||
inputs:
|
||||
testAssemblyVer2: |
|
||||
$(BUILD.SOURCESDIRECTORY)\**\*feature.test*.dll
|
||||
!**\obj\**
|
||||
runSettingsFile: '$(BUILD.SOURCESDIRECTORY)\src\unit.tests.$(BuildPlatform).runsettings'
|
||||
codeCoverageEnabled: true
|
||||
runInParallel: False
|
||||
testRunTitle: 'Console Feature Tests'
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
condition: and(succeeded(), eq(variables['BuildPlatform'], 'x64'))
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy *.appx/*.msix to Artifacts (Non-PR builds only)'
|
||||
inputs:
|
||||
Contents: |
|
||||
**/*.appx
|
||||
**/*.msix
|
||||
**/*.appxsym
|
||||
!**/Microsoft.VCLibs*.appx
|
||||
TargetFolder: '$(Build.ArtifactStagingDirectory)/appx'
|
||||
OverWrite: true
|
||||
flattenFolders: true
|
||||
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish Artifact (appx) (Non-PR builds only)'
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.ArtifactStagingDirectory)/appx'
|
||||
ArtifactName: 'appx-$(BuildConfiguration)'
|
||||
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
|
||||
16
build/pipelines/templates/check-formatting.yml
Normal file
16
build/pipelines/templates/check-formatting.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
jobs:
|
||||
- job: CodeFormatCheck
|
||||
displayName: Proper Code Formatting Check
|
||||
pool: { vmImage: windows-2019 }
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
submodules: false
|
||||
clean: true
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Code Formattting Check'
|
||||
inputs:
|
||||
targetType: filePath
|
||||
filePath: '.\build\scripts\Invoke-FormattingCheck.ps1'
|
||||
74
build/pipelines/templates/release-sign-and-bundle.yml
Normal file
74
build/pipelines/templates/release-sign-and-bundle.yml
Normal file
@@ -0,0 +1,74 @@
|
||||
parameters:
|
||||
configuration: 'Release'
|
||||
|
||||
jobs:
|
||||
- job: SignDeploy${{ parameters.configuration }}
|
||||
displayName: Sign and Deploy for ${{ parameters.configuration }}
|
||||
|
||||
dependsOn:
|
||||
- Buildx64AuditMode
|
||||
- Buildx64Release
|
||||
- Buildx86Release
|
||||
- Buildarm64Release
|
||||
- CodeFormatCheck
|
||||
condition: |
|
||||
and
|
||||
(
|
||||
in(dependencies.Buildx64AuditMode.result, 'Succeeded', 'SucceededWithIssues', 'Skipped'),
|
||||
in(dependencies.Buildx64Release.result, 'Succeeded', 'SucceededWithIssues', 'Skipped'),
|
||||
in(dependencies.Buildx86Release.result, 'Succeeded', 'SucceededWithIssues', 'Skipped'),
|
||||
in(dependencies.Buildarm64Release.result, 'Succeeded', 'SucceededWithIssues', 'Skipped'),
|
||||
in(dependencies.CodeFormatCheck.result, 'Succeeded', 'SucceededWithIssues', 'Skipped')
|
||||
)
|
||||
|
||||
variables:
|
||||
BuildConfiguration: ${{ parameters.configuration }}
|
||||
AppxProjectName: CascadiaPackage
|
||||
AppxBundleName: Microsoft.WindowsTerminal_8wekyb3d8bbwe.msixbundle
|
||||
|
||||
pool:
|
||||
name: Package ES Lab E
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
|
||||
- task: PkgESSetupBuild@10
|
||||
displayName: 'Package ES - Setup Build'
|
||||
inputs:
|
||||
useDfs: false
|
||||
productName: WindowsTerminal
|
||||
disableOutputRedirect: true
|
||||
|
||||
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||||
displayName: 'Component Detection'
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download AppX artifacts
|
||||
inputs:
|
||||
artifactName: 'appx-$(BuildConfiguration)'
|
||||
itemPattern: |
|
||||
**/*.appx
|
||||
**/*.msix
|
||||
downloadPath: '$(Build.ArtifactStagingDirectory)\appx'
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Create $(AppxBundleName)'
|
||||
inputs:
|
||||
targetType: filePath
|
||||
filePath: '.\build\scripts\Create-AppxBundle.ps1'
|
||||
arguments: |
|
||||
-InputPath "$(Build.ArtifactStagingDirectory)\appx" -ProjectName $(AppxProjectName) -BundleVersion 0.0.0.0 -OutputPath "$(Build.ArtifactStagingDirectory)\$(AppxBundleName)"
|
||||
|
||||
- task: PkgESCodeSign@10
|
||||
displayName: 'Package ES - SignConfig.WindowsTerminal.xml'
|
||||
inputs:
|
||||
signConfigXml: 'build\config\SignConfig.WindowsTerminal.xml'
|
||||
inPathRoot: '$(Build.ArtifactStagingDirectory)'
|
||||
outPathRoot: '$(Build.ArtifactStagingDirectory)\signed'
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish Signed AppX'
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.ArtifactStagingDirectory)\signed'
|
||||
ArtifactName: 'appxbundle-signed-$(BuildConfiguration)'
|
||||
41
build/rules/GenerateSxsManifestsFromWinmds.targets
Normal file
41
build/rules/GenerateSxsManifestsFromWinmds.targets
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<BeforeLinkTargets Condition="'$(WindowsTargetPlatformVersion)' >= '10.0.18362.0'">
|
||||
$(BeforeLinkTargets);
|
||||
_ConsoleGenerateAdditionalWinmdManifests;
|
||||
</BeforeLinkTargets>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="_ConsoleMapWinmdsToManifestFiles" DependsOnTargets="ResolveAssemblyReferences">
|
||||
<ItemGroup>
|
||||
<!-- For each non-system .winmd file in References, generate a .manifest in IntDir for it. -->
|
||||
<_ConsoleWinmdManifest Include="@(ReferencePath->'$(IntDir)\%(FileName).manifest')" Condition="'%(ReferencePath.IsSystemReference)' != 'true' and '%(ReferencePath.WinMDFile)' == 'true' and '%(ReferencePath.ReferenceSourceTarget)' == 'ResolveAssemblyReference'">
|
||||
<WinMDPath>%(ReferencePath.FullPath)</WinMDPath>
|
||||
<Implementation>%(ReferencePath.Implementation)</Implementation>
|
||||
</_ConsoleWinmdManifest>
|
||||
<!-- For each referenced project that _produces_ a winmd, generate a temporary item that maps to
|
||||
the winmd, and use that temporary item to generate a .manifest in IntDir for it.
|
||||
We don't set Implementation here because it's inherited from the _ResolvedNativeProjectReferencePaths. -->
|
||||
<_ConsoleWinmdProjectReference Condition="'%(_ResolvedNativeProjectReferencePaths.ProjectType)' != 'StaticLibrary'" Include="@(_ResolvedNativeProjectReferencePaths->WithMetadataValue('FileType','winmd')->'%(RootDir)%(Directory)%(TargetPath)')" />
|
||||
<_ConsoleWinmdManifest Include="@(_ConsoleWinmdProjectReference->'$(IntDir)\%(FileName).manifest')">
|
||||
<WinMDPath>%(Identity)</WinMDPath>
|
||||
</_ConsoleWinmdManifest>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="_ConsoleGenerateAdditionalWinmdManifests"
|
||||
Inputs="@(_ConsoleWinmdManifest.WinMDPath)"
|
||||
Outputs="@(_ConsoleWinmdManifest)"
|
||||
DependsOnTargets="_ConsoleMapWinmdsToManifestFiles">
|
||||
|
||||
<!-- This target is batched and a new Exec is spawned for each entry in _ConsoleWinmdManifest. -->
|
||||
<Exec Command="mt.exe -winmd:%(_ConsoleWinmdManifest.WinMDPath) -dll:%(_ConsoleWinmdManifest.Implementation) -out:%(_ConsoleWinmdManifest.Identity)" />
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Emit the generated manifest into the Link inputs. -->
|
||||
<Manifest Include="@(_ConsoleWinmdManifest)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Target>
|
||||
</Project>
|
||||
57
build/scripts/Create-AppxBundle.ps1
Normal file
57
build/scripts/Create-AppxBundle.ps1
Normal file
@@ -0,0 +1,57 @@
|
||||
Param(
|
||||
[Parameter(Mandatory,
|
||||
HelpMessage="Base name for input .appx files")]
|
||||
[string]
|
||||
$ProjectName,
|
||||
|
||||
[Parameter(Mandatory,
|
||||
HelpMessage="Appx Bundle Version")]
|
||||
[version]
|
||||
$BundleVersion,
|
||||
|
||||
[Parameter(Mandatory,
|
||||
HelpMessage="Path under which to locate appx/msix files")]
|
||||
[string]
|
||||
$InputPath,
|
||||
|
||||
[Parameter(Mandatory,
|
||||
HelpMessage="Output Path")]
|
||||
[string]
|
||||
$OutputPath,
|
||||
|
||||
[Parameter(HelpMessage="Path to makeappx.exe")]
|
||||
[ValidateScript({Test-Path $_ -Type Leaf})]
|
||||
[string]
|
||||
$MakeAppxPath = "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\MakeAppx.exe"
|
||||
)
|
||||
|
||||
If ($null -Eq (Get-Item $MakeAppxPath -EA:SilentlyContinue)) {
|
||||
Write-Error "Could not find MakeAppx.exe at `"$MakeAppxPath`".`nMake sure that -MakeAppxPath points to a valid SDK."
|
||||
Exit 1
|
||||
}
|
||||
|
||||
# Enumerates a set of appx files beginning with a project name
|
||||
# and generates a temporary file containing a bundle content map.
|
||||
Function Create-AppxBundleMapping {
|
||||
Param(
|
||||
[Parameter(Mandatory)]
|
||||
[string]
|
||||
$InputPath,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[string]
|
||||
$ProjectName
|
||||
)
|
||||
|
||||
$lines = @("[Files]")
|
||||
Get-ChildItem -Path:$InputPath -Recurse -Filter:*$ProjectName* -Include *.appx, *.msix | % {
|
||||
$lines += ("`"{0}`" `"{1}`"" -f ($_.FullName, $_.Name))
|
||||
}
|
||||
$outputFile = New-TemporaryFile
|
||||
$lines | Out-File -Encoding:ASCII $outputFile
|
||||
$outputFile
|
||||
}
|
||||
|
||||
$NewMapping = Create-AppxBundleMapping -InputPath:$InputPath -ProjectName:$ProjectName
|
||||
|
||||
& $MakeAppxPath bundle /v /bv $BundleVersion.ToString() /f $NewMapping.FullName /p $OutputPath
|
||||
14
build/scripts/Invoke-FormattingCheck.ps1
Normal file
14
build/scripts/Invoke-FormattingCheck.ps1
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
#.SYNOPSIS
|
||||
# Checks for code formatting errors. Will throw exception if any are found.
|
||||
function Invoke-CheckBadCodeFormatting() {
|
||||
Import-Module ./tools/OpenConsole.psm1
|
||||
Invoke-CodeFormat
|
||||
# returns a non-zero exit code if there are any diffs in the tracked files in the repo
|
||||
git diff-index --quiet HEAD --
|
||||
if ($lastExitCode -eq 1) {
|
||||
throw "code formatting bad, run Invoke-CodeFormat on branch"
|
||||
}
|
||||
}
|
||||
|
||||
Invoke-CheckBadCodeFormatting
|
||||
79
build/scripts/Test-WindowsTerminalPackage.ps1
Normal file
79
build/scripts/Test-WindowsTerminalPackage.ps1
Normal file
@@ -0,0 +1,79 @@
|
||||
[CmdletBinding()]
|
||||
Param(
|
||||
[Parameter(Mandatory=$true, ValueFromPipeline=$true,
|
||||
HelpMessage="Path to the .appx/.msix to validate")]
|
||||
[string]
|
||||
$Path,
|
||||
|
||||
[Parameter(HelpMessage="Path to Windows Kit")]
|
||||
[ValidateScript({Test-Path $_ -Type Leaf})]
|
||||
[string]
|
||||
$WindowsKitPath = "C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0"
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
If ($null -Eq (Get-Item $WindowsKitPath -EA:SilentlyContinue)) {
|
||||
Write-Error "Could not find a windows SDK at at `"$WindowsKitPath`".`nMake sure that WindowsKitPath points to a valid SDK."
|
||||
Exit 1
|
||||
}
|
||||
|
||||
$makeAppx = "$WindowsKitPath\x86\MakeAppx.exe"
|
||||
$makePri = "$WindowsKitPath\x86\MakePri.exe"
|
||||
|
||||
Function Expand-ApplicationPackage {
|
||||
Param(
|
||||
[Parameter(Mandatory, ValueFromPipeline)]
|
||||
[string]
|
||||
$Path
|
||||
)
|
||||
|
||||
$sentinelFile = New-TemporaryFile
|
||||
$directory = New-Item -Type Directory "$($sentinelFile.FullName)_Package"
|
||||
Remove-Item $sentinelFile -Force -EA:Ignore
|
||||
|
||||
& $makeAppx unpack /p $Path /d $directory /nv /o
|
||||
|
||||
If ($LastExitCode -Ne 0) {
|
||||
Throw "Failed to expand AppX"
|
||||
}
|
||||
|
||||
$directory
|
||||
}
|
||||
|
||||
Write-Verbose "Expanding $Path"
|
||||
$AppxPackageRoot = Expand-ApplicationPackage $Path
|
||||
$AppxPackageRootPath = $AppxPackageRoot.FullName
|
||||
|
||||
Write-Verbose "Expanded to $AppxPackageRootPath"
|
||||
|
||||
Try {
|
||||
& $makePri dump /if "$AppxPackageRootPath\resources.pri" /of "$AppxPackageRootPath\resources.pri.xml" /o
|
||||
If ($LastExitCode -Ne 0) {
|
||||
Throw "Failed to dump PRI"
|
||||
}
|
||||
|
||||
$Manifest = [xml](Get-Content "$AppxPackageRootPath\AppxManifest.xml")
|
||||
$PRIFile = [xml](Get-Content "$AppxPackageRootPath\resources.pri.xml")
|
||||
|
||||
### Check the activatable class entries for a few DLLs we need.
|
||||
$inProcServers = $Manifest.Package.Extensions.Extension.InProcessServer.Path
|
||||
$RequiredInProcServers = ("TerminalApp.dll", "TerminalControl.dll", "TerminalConnection.dll")
|
||||
|
||||
Write-Verbose "InProc Servers: $inProcServers"
|
||||
|
||||
ForEach ($req in $RequiredInProcServers) {
|
||||
If ($req -NotIn $inProcServers) {
|
||||
Throw "Failed to find $req in InProcServer list $inProcServers"
|
||||
}
|
||||
}
|
||||
|
||||
### Check that we have an App.xbf (which is a proxy for our resources having been merged)
|
||||
$resourceXpath = '/PriInfo/ResourceMap/ResourceMapSubtree[@name="Files"]/NamedResource[@name="App.xbf"]'
|
||||
$AppXbf = $PRIFile.SelectSingleNode($resourceXpath)
|
||||
If ($null -eq $AppXbf) {
|
||||
Throw "Failed to find App.xbf (TerminalApp project) in resources.pri"
|
||||
}
|
||||
} Finally {
|
||||
Remove-Item -Recurse -Force $AppxPackageRootPath
|
||||
}
|
||||
13
common.openconsole.props
Normal file
13
common.openconsole.props
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<!--
|
||||
This props file is a workaround for the fact that for wapproj projects,
|
||||
the $(SolutionDir) is never evaluated correctly. So, instead we're using this
|
||||
file to define $(OpenConsoleDir), which should be used in place of $(SolutionDir)
|
||||
-->
|
||||
<PropertyGroup Condition="'$(OpenConsoleDir)'==''">
|
||||
<OpenConsoleDir>$(MSBuildThisFileDirectory)</OpenConsoleDir>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
37
consolegit2gitfilters.json
Normal file
37
consolegit2gitfilters.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"PrefixFilters": [
|
||||
"."
|
||||
],
|
||||
"ContainsFilters": [
|
||||
"/.",
|
||||
"/.git/",
|
||||
"/obj/",
|
||||
"/bin/",
|
||||
"/TestResults/",
|
||||
"/packages/",
|
||||
"/ipch/",
|
||||
"/dep/",
|
||||
"/.vs/",
|
||||
"/build/",
|
||||
"/src/cascadia/",
|
||||
"/src/winconpty/",
|
||||
"/.nuget/",
|
||||
"/.github/",
|
||||
"/samples/"
|
||||
],
|
||||
"SuffixFilters": [
|
||||
".dbb",
|
||||
".evt",
|
||||
".log",
|
||||
".metadata",
|
||||
".prf",
|
||||
".trc",
|
||||
".user",
|
||||
".tmp",
|
||||
".TMP",
|
||||
".db",
|
||||
".wrn",
|
||||
".rec",
|
||||
".err"
|
||||
]
|
||||
}
|
||||
24
dep/Console/conapi.h
Normal file
24
dep/Console/conapi.h
Normal file
@@ -0,0 +1,24 @@
|
||||
/*++
|
||||
Copyright (c) Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
- conapi.h
|
||||
|
||||
Abstract:
|
||||
- This module contains the internal structures and definitions used by the console server.
|
||||
|
||||
Author:
|
||||
- Therese Stowell (ThereseS) 12-Nov-1990
|
||||
|
||||
Revision History:
|
||||
--*/
|
||||
|
||||
#pragma once
|
||||
// these should be in precomp but aren't being picked up...
|
||||
#include <unordered_map>
|
||||
#define STATUS_SHARING_VIOLATION ((NTSTATUS)0xC0000043L)
|
||||
|
||||
#include "conmsgl1.h"
|
||||
#include "conmsgl2.h"
|
||||
#include "conmsgl3.h"
|
||||
|
||||
214
dep/Console/condrv.h
Normal file
214
dep/Console/condrv.h
Normal file
@@ -0,0 +1,214 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
Module Name:
|
||||
|
||||
condrv.h
|
||||
|
||||
Abstract:
|
||||
|
||||
This module contains the declarations shared by the console driver and the
|
||||
user-mode components that use it.
|
||||
|
||||
Author:
|
||||
|
||||
Wedson Almeida Filho (wedsonaf) 24-Sep-2009
|
||||
|
||||
Environment:
|
||||
|
||||
Kernel and user modes.
|
||||
|
||||
--*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "..\NT\ntioapi_x.h"
|
||||
|
||||
//
|
||||
// Messages that can be received by servers, used in CD_IO_DESCRIPTOR::Function.
|
||||
//
|
||||
|
||||
#define CONSOLE_IO_CONNECT 0x01
|
||||
#define CONSOLE_IO_DISCONNECT 0x02
|
||||
#define CONSOLE_IO_CREATE_OBJECT 0x03
|
||||
#define CONSOLE_IO_CLOSE_OBJECT 0x04
|
||||
#define CONSOLE_IO_RAW_WRITE 0x05
|
||||
#define CONSOLE_IO_RAW_READ 0x06
|
||||
#define CONSOLE_IO_USER_DEFINED 0x07
|
||||
#define CONSOLE_IO_RAW_FLUSH 0x08
|
||||
|
||||
//
|
||||
// Header of all IOs submitted to a server.
|
||||
//
|
||||
|
||||
typedef struct _CD_IO_DESCRIPTOR {
|
||||
LUID Identifier;
|
||||
ULONG_PTR Process;
|
||||
ULONG_PTR Object;
|
||||
ULONG Function;
|
||||
ULONG InputSize;
|
||||
ULONG OutputSize;
|
||||
ULONG Reserved;
|
||||
} CD_IO_DESCRIPTOR, *PCD_IO_DESCRIPTOR;
|
||||
|
||||
//
|
||||
// Types of objects, used in CREATE_OBJECT_INFORMATION::ObjectType.
|
||||
//
|
||||
|
||||
#define CD_IO_OBJECT_TYPE_CURRENT_INPUT 0x01
|
||||
#define CD_IO_OBJECT_TYPE_CURRENT_OUTPUT 0x02
|
||||
#define CD_IO_OBJECT_TYPE_NEW_OUTPUT 0x03
|
||||
#define CD_IO_OBJECT_TYPE_GENERIC 0x04
|
||||
|
||||
//
|
||||
// Payload of the CONSOLE_IO_CREATE_OBJECT io.
|
||||
//
|
||||
|
||||
typedef struct _CD_CREATE_OBJECT_INFORMATION {
|
||||
ULONG ObjectType;
|
||||
ULONG ShareMode;
|
||||
ACCESS_MASK DesiredAccess;
|
||||
} CD_CREATE_OBJECT_INFORMATION, *PCD_CREATE_OBJECT_INFORMATION;
|
||||
|
||||
//
|
||||
// Create EA buffers.
|
||||
//
|
||||
|
||||
#define CD_BROKER_EA_NAME "broker"
|
||||
#define CD_SERVER_EA_NAME "server"
|
||||
#define CD_ATTACH_EA_NAME "attach"
|
||||
|
||||
typedef struct _CD_CREATE_SERVER {
|
||||
HANDLE BrokerHandle;
|
||||
LUID BrokerRequest;
|
||||
} CD_CREATE_SERVER, *PCD_CREATE_SERVER;
|
||||
|
||||
typedef struct _CD_ATTACH_INFORMATION {
|
||||
HANDLE ProcessId;
|
||||
} CD_ATTACH_INFORMATION, *PCD_ATTACH_INFORMATION;
|
||||
|
||||
typedef struct _CD_ATTACH_INFORMATION64 {
|
||||
PVOID64 ProcessId;
|
||||
} CD_ATTACH_INFORMATION64, *PCD_ATTACH_INFORMATION64;
|
||||
|
||||
//
|
||||
// Information passed to the driver by a server when a connection is accepted.
|
||||
//
|
||||
|
||||
typedef struct _CD_CONNECTION_INFORMATION {
|
||||
ULONG_PTR Process;
|
||||
ULONG_PTR Input;
|
||||
ULONG_PTR Output;
|
||||
} CD_CONNECTION_INFORMATION, *PCD_CONNECTION_INFORMATION;
|
||||
|
||||
//
|
||||
// Ioctls.
|
||||
//
|
||||
|
||||
typedef struct _CD_IO_BUFFER {
|
||||
ULONG Size;
|
||||
PVOID Buffer;
|
||||
} CD_IO_BUFFER, *PCD_IO_BUFFER;
|
||||
|
||||
typedef struct _CD_IO_BUFFER64 {
|
||||
ULONG Size;
|
||||
PVOID64 Buffer;
|
||||
} CD_IO_BUFFER64, *PCD_IO_BUFFER64;
|
||||
|
||||
typedef struct _CD_USER_DEFINED_IO {
|
||||
HANDLE Client;
|
||||
ULONG InputCount;
|
||||
ULONG OutputCount;
|
||||
CD_IO_BUFFER Buffers[ANYSIZE_ARRAY];
|
||||
} CD_USER_DEFINED_IO, *PCD_USER_DEFINED_IO;
|
||||
|
||||
typedef struct _CD_USER_DEFINED_IO64 {
|
||||
PVOID64 Client;
|
||||
ULONG InputCount;
|
||||
ULONG OutputCount;
|
||||
CD_IO_BUFFER64 Buffers[ANYSIZE_ARRAY];
|
||||
} CD_USER_DEFINED_IO64, *PCD_USER_DEFINED_IO64;
|
||||
|
||||
typedef struct _CD_IO_BUFFER_DESCRIPTOR {
|
||||
PVOID Data;
|
||||
ULONG Size;
|
||||
ULONG Offset;
|
||||
} CD_IO_BUFFER_DESCRIPTOR, *PCD_IO_BUFFER_DESCRIPTOR;
|
||||
|
||||
typedef struct _CD_IO_COMPLETE {
|
||||
LUID Identifier;
|
||||
IO_STATUS_BLOCK IoStatus;
|
||||
CD_IO_BUFFER_DESCRIPTOR Write;
|
||||
} CD_IO_COMPLETE, *PCD_IO_COMPLETE;
|
||||
|
||||
typedef struct _CD_IO_OPERATION {
|
||||
LUID Identifier;
|
||||
CD_IO_BUFFER_DESCRIPTOR Buffer;
|
||||
} CD_IO_OPERATION, *PCD_IO_OPERATION;
|
||||
|
||||
typedef struct _CD_IO_SERVER_INFORMATION {
|
||||
HANDLE InputAvailableEvent;
|
||||
} CD_IO_SERVER_INFORMATION, *PCD_IO_SERVER_INFORMATION;
|
||||
|
||||
typedef struct _CD_IO_DISPLAY_SIZE {
|
||||
ULONG Width;
|
||||
ULONG Height;
|
||||
} CD_IO_DISPLAY_SIZE, *PCD_IO_DISPLAY_SIZE;
|
||||
|
||||
typedef struct _CD_IO_CHARACTER {
|
||||
WCHAR Character;
|
||||
USHORT Atribute;
|
||||
} CD_IO_CHARACTER, *PCD_IO_CHARACTER;
|
||||
|
||||
typedef struct _CD_IO_ROW_INFORMATION {
|
||||
SHORT Index;
|
||||
PCD_IO_CHARACTER Old;
|
||||
PCD_IO_CHARACTER New;
|
||||
} CD_IO_ROW_INFORMATION, *PCD_IO_ROW_INFORMATION;
|
||||
|
||||
typedef struct _CD_IO_CURSOR_INFORMATION {
|
||||
USHORT Column;
|
||||
USHORT Row;
|
||||
ULONG Height;
|
||||
BOOLEAN IsVisible;
|
||||
} CD_IO_CURSOR_INFORMATION, *PCD_IO_CURSOR_INFORMATION;
|
||||
|
||||
#define IOCTL_CONDRV_READ_IO \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 1, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
|
||||
|
||||
#define IOCTL_CONDRV_COMPLETE_IO \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 2, METHOD_NEITHER, FILE_ANY_ACCESS)
|
||||
|
||||
#define IOCTL_CONDRV_READ_INPUT \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 3, METHOD_NEITHER, FILE_ANY_ACCESS)
|
||||
|
||||
#define IOCTL_CONDRV_WRITE_OUTPUT \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 4, METHOD_NEITHER, FILE_ANY_ACCESS)
|
||||
|
||||
#define IOCTL_CONDRV_ISSUE_USER_IO \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 5, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
|
||||
|
||||
#define IOCTL_CONDRV_DISCONNECT_PIPE \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 6, METHOD_NEITHER, FILE_ANY_ACCESS)
|
||||
|
||||
#define IOCTL_CONDRV_SET_SERVER_INFORMATION \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 7, METHOD_NEITHER, FILE_ANY_ACCESS)
|
||||
|
||||
#define IOCTL_CONDRV_GET_SERVER_PID \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 8, METHOD_NEITHER, FILE_ANY_ACCESS)
|
||||
|
||||
#define IOCTL_CONDRV_GET_DISPLAY_SIZE \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 9, METHOD_NEITHER, FILE_ANY_ACCESS)
|
||||
|
||||
#define IOCTL_CONDRV_UPDATE_DISPLAY \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 10, METHOD_NEITHER, FILE_ANY_ACCESS)
|
||||
|
||||
#define IOCTL_CONDRV_SET_CURSOR \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 11, METHOD_NEITHER, FILE_ANY_ACCESS)
|
||||
|
||||
#define IOCTL_CONDRV_ALLOW_VIA_UIACCESS \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 12, METHOD_NEITHER, FILE_ANY_ACCESS)
|
||||
|
||||
#define IOCTL_CONDRV_LAUNCH_SERVER \
|
||||
CTL_CODE(FILE_DEVICE_CONSOLE, 13, METHOD_NEITHER, FILE_ANY_ACCESS)
|
||||
156
dep/Console/conmsgl1.h
Normal file
156
dep/Console/conmsgl1.h
Normal file
@@ -0,0 +1,156 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
Module Name:
|
||||
|
||||
conmsgl1.h
|
||||
|
||||
Abstract:
|
||||
|
||||
This include file defines the layer 1 message formats used to communicate
|
||||
between the client and server portions of the CONSOLE portion of the
|
||||
Windows subsystem.
|
||||
|
||||
Author:
|
||||
|
||||
Therese Stowell (thereses) 10-Nov-1990
|
||||
|
||||
Revision History:
|
||||
|
||||
Wedson Almeida Filho (wedsonaf) 23-May-2010
|
||||
Modified the messages for use with the console driver.
|
||||
|
||||
--*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define CONSOLE_FIRST_API_NUMBER(Layer) \
|
||||
(Layer << 24) \
|
||||
|
||||
typedef struct _CONSOLE_SERVER_MSG {
|
||||
ULONG IconId;
|
||||
ULONG HotKey;
|
||||
ULONG StartupFlags;
|
||||
USHORT FillAttribute;
|
||||
USHORT ShowWindow;
|
||||
COORD ScreenBufferSize;
|
||||
COORD WindowSize;
|
||||
COORD WindowOrigin;
|
||||
ULONG ProcessGroupId;
|
||||
BOOLEAN ConsoleApp;
|
||||
BOOLEAN WindowVisible;
|
||||
USHORT TitleLength;
|
||||
WCHAR Title[MAX_PATH + 1];
|
||||
USHORT ApplicationNameLength;
|
||||
WCHAR ApplicationName[128];
|
||||
USHORT CurrentDirectoryLength;
|
||||
WCHAR CurrentDirectory[MAX_PATH + 1];
|
||||
} CONSOLE_SERVER_MSG, *PCONSOLE_SERVER_MSG;
|
||||
|
||||
typedef struct _CONSOLE_BROKER_DATA {
|
||||
WCHAR DesktopName[MAX_PATH];
|
||||
} CONSOLE_BROKER_MSG, *PCONSOLE_BROKER_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETCP_MSG {
|
||||
OUT ULONG CodePage;
|
||||
IN BOOLEAN Output;
|
||||
} CONSOLE_GETCP_MSG, *PCONSOLE_GETCP_MSG;
|
||||
|
||||
typedef struct _CONSOLE_MODE_MSG {
|
||||
IN OUT ULONG Mode;
|
||||
} CONSOLE_MODE_MSG, *PCONSOLE_MODE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETNUMBEROFINPUTEVENTS_MSG {
|
||||
OUT ULONG ReadyEvents;
|
||||
} CONSOLE_GETNUMBEROFINPUTEVENTS_MSG, *PCONSOLE_GETNUMBEROFINPUTEVENTS_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETCONSOLEINPUT_MSG {
|
||||
OUT ULONG NumRecords;
|
||||
IN USHORT Flags;
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_GETCONSOLEINPUT_MSG, *PCONSOLE_GETCONSOLEINPUT_MSG;
|
||||
|
||||
typedef struct _CONSOLE_READCONSOLE_MSG {
|
||||
IN BOOLEAN Unicode;
|
||||
IN BOOLEAN ProcessControlZ;
|
||||
IN USHORT ExeNameLength;
|
||||
IN ULONG InitialNumBytes;
|
||||
IN ULONG CtrlWakeupMask;
|
||||
OUT ULONG ControlKeyState;
|
||||
OUT ULONG NumBytes;
|
||||
} CONSOLE_READCONSOLE_MSG, *PCONSOLE_READCONSOLE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_WRITECONSOLE_MSG {
|
||||
OUT ULONG NumBytes;
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_WRITECONSOLE_MSG, *PCONSOLE_WRITECONSOLE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_LANGID_MSG {
|
||||
OUT LANGID LangId;
|
||||
} CONSOLE_LANGID_MSG, *PCONSOLE_LANGID_MSG;
|
||||
|
||||
typedef struct _CONSOLE_MAPBITMAP_MSG {
|
||||
OUT HANDLE Mutex;
|
||||
OUT PVOID Bitmap;
|
||||
} CONSOLE_MAPBITMAP_MSG, *PCONSOLE_MAPBITMAP_MSG;
|
||||
|
||||
typedef struct _CONSOLE_MAPBITMAP_MSG64 {
|
||||
OUT PVOID64 Mutex;
|
||||
OUT PVOID64 Bitmap;
|
||||
} CONSOLE_MAPBITMAP_MSG64, *PCONSOLE_MAPBITMAP_MSG64;
|
||||
|
||||
typedef enum _CONSOLE_API_NUMBER_L1 {
|
||||
ConsolepGetCP = CONSOLE_FIRST_API_NUMBER(1),
|
||||
ConsolepGetMode,
|
||||
ConsolepSetMode,
|
||||
ConsolepGetNumberOfInputEvents,
|
||||
ConsolepGetConsoleInput,
|
||||
ConsolepReadConsole,
|
||||
ConsolepWriteConsole,
|
||||
ConsolepNotifyLastClose,
|
||||
ConsolepGetLangId,
|
||||
ConsolepMapBitmap,
|
||||
} CONSOLE_API_NUMBER_L1, *PCONSOLE_API_NUMBER_L1;
|
||||
|
||||
typedef struct _CONSOLE_MSG_HEADER {
|
||||
ULONG ApiNumber;
|
||||
ULONG ApiDescriptorSize;
|
||||
} CONSOLE_MSG_HEADER, *PCONSOLE_MSG_HEADER;
|
||||
|
||||
typedef union _CONSOLE_MSG_BODY_L1 {
|
||||
CONSOLE_GETCP_MSG GetConsoleCP;
|
||||
CONSOLE_MODE_MSG GetConsoleMode;
|
||||
CONSOLE_MODE_MSG SetConsoleMode;
|
||||
CONSOLE_GETNUMBEROFINPUTEVENTS_MSG GetNumberOfConsoleInputEvents;
|
||||
CONSOLE_GETCONSOLEINPUT_MSG GetConsoleInput;
|
||||
CONSOLE_READCONSOLE_MSG ReadConsole;
|
||||
CONSOLE_WRITECONSOLE_MSG WriteConsole;
|
||||
CONSOLE_LANGID_MSG GetConsoleLangId;
|
||||
|
||||
#if defined(BUILD_WOW6432) && !defined(BUILD_WOW3232)
|
||||
|
||||
CONSOLE_MAPBITMAP_MSG64 MapBitmap;
|
||||
|
||||
#else
|
||||
|
||||
CONSOLE_MAPBITMAP_MSG MapBitmap;
|
||||
|
||||
#endif
|
||||
|
||||
} CONSOLE_MSG_BODY_L1, *PCONSOLE_MSG_BODY_L1;
|
||||
|
||||
#ifndef __cplusplus
|
||||
typedef struct _CONSOLE_MSG_L1 {
|
||||
CONSOLE_MSG_HEADER Header;
|
||||
union {
|
||||
CONSOLE_MSG_BODY_L1;
|
||||
} u;
|
||||
} CONSOLE_MSG_L1, *PCONSOLE_MSG_L1;
|
||||
#else
|
||||
typedef struct _CONSOLE_MSG_L1 :
|
||||
public CONSOLE_MSG_HEADER
|
||||
{
|
||||
CONSOLE_MSG_BODY_L1 u;
|
||||
} CONSOLE_MSG_L1, *PCONSOLE_MSG_L1;
|
||||
#endif // __cplusplus
|
||||
207
dep/Console/conmsgl2.h
Normal file
207
dep/Console/conmsgl2.h
Normal file
@@ -0,0 +1,207 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
Module Name:
|
||||
|
||||
conmsgl2.h
|
||||
|
||||
Abstract:
|
||||
|
||||
This include file defines the layer 2 message formats used to communicate
|
||||
between the client and server portions of the CONSOLE portion of the
|
||||
Windows subsystem.
|
||||
|
||||
Author:
|
||||
|
||||
Therese Stowell (thereses) 10-Nov-1990
|
||||
|
||||
Revision History:
|
||||
|
||||
Wedson Almeida Filho (wedsonaf) 23-May-2010
|
||||
Modified the messages for use with the console driver.
|
||||
|
||||
--*/
|
||||
|
||||
#pragma once
|
||||
|
||||
typedef struct _CONSOLE_CREATESCREENBUFFER_MSG {
|
||||
IN ULONG Flags;
|
||||
IN ULONG BitmapInfoLength;
|
||||
IN ULONG Usage;
|
||||
} CONSOLE_CREATESCREENBUFFER_MSG, *PCONSOLE_CREATESCREENBUFFER_MSG;
|
||||
|
||||
#define CONSOLE_ASCII 0x1
|
||||
#define CONSOLE_REAL_UNICODE 0x2
|
||||
#define CONSOLE_ATTRIBUTE 0x3
|
||||
#define CONSOLE_FALSE_UNICODE 0x4
|
||||
|
||||
typedef struct _CONSOLE_FILLCONSOLEOUTPUT_MSG {
|
||||
IN COORD WriteCoord;
|
||||
IN ULONG ElementType;
|
||||
IN USHORT Element;
|
||||
IN OUT ULONG Length;
|
||||
} CONSOLE_FILLCONSOLEOUTPUT_MSG, *PCONSOLE_FILLCONSOLEOUTPUT_MSG;
|
||||
|
||||
typedef struct _CONSOLE_CTRLEVENT_MSG {
|
||||
IN ULONG CtrlEvent;
|
||||
IN ULONG ProcessGroupId;
|
||||
} CONSOLE_CTRLEVENT_MSG, *PCONSOLE_CTRLEVENT_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETCP_MSG {
|
||||
IN ULONG CodePage;
|
||||
IN BOOLEAN Output;
|
||||
} CONSOLE_SETCP_MSG, *PCONSOLE_SETCP_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETCURSORINFO_MSG {
|
||||
OUT ULONG CursorSize;
|
||||
OUT BOOLEAN Visible;
|
||||
} CONSOLE_GETCURSORINFO_MSG, *PCONSOLE_GETCURSORINFO_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETCURSORINFO_MSG {
|
||||
IN ULONG CursorSize;
|
||||
IN BOOLEAN Visible;
|
||||
} CONSOLE_SETCURSORINFO_MSG, *PCONSOLE_SETCURSORINFO_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SCREENBUFFERINFO_MSG {
|
||||
IN OUT COORD Size;
|
||||
IN OUT COORD CursorPosition;
|
||||
IN OUT COORD ScrollPosition;
|
||||
IN OUT USHORT Attributes;
|
||||
IN OUT COORD CurrentWindowSize;
|
||||
IN OUT COORD MaximumWindowSize;
|
||||
IN OUT USHORT PopupAttributes;
|
||||
IN OUT BOOLEAN FullscreenSupported;
|
||||
IN OUT COLORREF ColorTable[16];
|
||||
} CONSOLE_SCREENBUFFERINFO_MSG, *PCONSOLE_SCREENBUFFERINFO_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETSCREENBUFFERSIZE_MSG {
|
||||
IN COORD Size;
|
||||
} CONSOLE_SETSCREENBUFFERSIZE_MSG, *PCONSOLE_SETSCREENBUFFERSIZE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETCURSORPOSITION_MSG {
|
||||
IN COORD CursorPosition;
|
||||
} CONSOLE_SETCURSORPOSITION_MSG, *PCONSOLE_SETCURSORPOSITION_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETLARGESTWINDOWSIZE_MSG {
|
||||
OUT COORD Size;
|
||||
} CONSOLE_GETLARGESTWINDOWSIZE_MSG, *PCONSOLE_GETLARGESTWINDOWSIZE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SCROLLSCREENBUFFER_MSG {
|
||||
IN SMALL_RECT ScrollRectangle;
|
||||
IN SMALL_RECT ClipRectangle;
|
||||
IN BOOLEAN Clip;
|
||||
IN BOOLEAN Unicode;
|
||||
IN COORD DestinationOrigin;
|
||||
IN CHAR_INFO Fill;
|
||||
} CONSOLE_SCROLLSCREENBUFFER_MSG, *PCONSOLE_SCROLLSCREENBUFFER_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETTEXTATTRIBUTE_MSG {
|
||||
IN USHORT Attributes;
|
||||
} CONSOLE_SETTEXTATTRIBUTE_MSG, *PCONSOLE_SETTEXTATTRIBUTE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETWINDOWINFO_MSG {
|
||||
IN BOOLEAN Absolute;
|
||||
IN SMALL_RECT Window;
|
||||
} CONSOLE_SETWINDOWINFO_MSG, *PCONSOLE_SETWINDOWINFO_MSG;
|
||||
|
||||
typedef struct _CONSOLE_READCONSOLEOUTPUTSTRING_MSG {
|
||||
IN COORD ReadCoord;
|
||||
IN ULONG StringType;
|
||||
OUT ULONG NumRecords;
|
||||
} CONSOLE_READCONSOLEOUTPUTSTRING_MSG, *PCONSOLE_READCONSOLEOUTPUTSTRING_MSG;
|
||||
|
||||
typedef struct _CONSOLE_WRITECONSOLEINPUT_MSG {
|
||||
OUT ULONG NumRecords;
|
||||
IN BOOLEAN Unicode;
|
||||
IN BOOLEAN Append;
|
||||
} CONSOLE_WRITECONSOLEINPUT_MSG, *PCONSOLE_WRITECONSOLEINPUT_MSG;
|
||||
|
||||
typedef struct _CONSOLE_WRITECONSOLEOUTPUTSTRING_MSG {
|
||||
IN COORD WriteCoord;
|
||||
IN ULONG StringType;
|
||||
OUT ULONG NumRecords;
|
||||
} CONSOLE_WRITECONSOLEOUTPUTSTRING_MSG, *PCONSOLE_WRITECONSOLEOUTPUTSTRING_MSG;
|
||||
|
||||
typedef struct _CONSOLE_WRITECONSOLEOUTPUT_MSG {
|
||||
IN OUT SMALL_RECT CharRegion;
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_WRITECONSOLEOUTPUT_MSG, *PCONSOLE_WRITECONSOLEOUTPUT_MSG;
|
||||
|
||||
typedef struct _CONSOLE_READCONSOLEOUTPUT_MSG {
|
||||
IN OUT SMALL_RECT CharRegion;
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_READCONSOLEOUTPUT_MSG, *PCONSOLE_READCONSOLEOUTPUT_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETTITLE_MSG {
|
||||
OUT ULONG TitleLength;
|
||||
IN BOOLEAN Unicode;
|
||||
IN BOOLEAN Original;
|
||||
} CONSOLE_GETTITLE_MSG, *PCONSOLE_GETTITLE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETTITLE_MSG {
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_SETTITLE_MSG, *PCONSOLE_SETTITLE_MSG;
|
||||
|
||||
typedef enum _CONSOLE_API_NUMBER_L2 {
|
||||
ConsolepFillConsoleOutput = CONSOLE_FIRST_API_NUMBER(2),
|
||||
ConsolepGenerateCtrlEvent,
|
||||
ConsolepSetActiveScreenBuffer,
|
||||
ConsolepFlushInputBuffer,
|
||||
ConsolepSetCP,
|
||||
ConsolepGetCursorInfo,
|
||||
ConsolepSetCursorInfo,
|
||||
ConsolepGetScreenBufferInfo,
|
||||
ConsolepSetScreenBufferInfo,
|
||||
ConsolepSetScreenBufferSize,
|
||||
ConsolepSetCursorPosition,
|
||||
ConsolepGetLargestWindowSize,
|
||||
ConsolepScrollScreenBuffer,
|
||||
ConsolepSetTextAttribute,
|
||||
ConsolepSetWindowInfo,
|
||||
ConsolepReadConsoleOutputString,
|
||||
ConsolepWriteConsoleInput,
|
||||
ConsolepWriteConsoleOutput,
|
||||
ConsolepWriteConsoleOutputString,
|
||||
ConsolepReadConsoleOutput,
|
||||
ConsolepGetTitle,
|
||||
ConsolepSetTitle,
|
||||
} CONSOLE_API_NUMBER_L2, *PCONSOLE_API_NUMBER_L2;
|
||||
|
||||
typedef union _CONSOLE_MSG_BODY_L2 {
|
||||
CONSOLE_CTRLEVENT_MSG GenerateConsoleCtrlEvent;
|
||||
CONSOLE_FILLCONSOLEOUTPUT_MSG FillConsoleOutput;
|
||||
CONSOLE_SETCP_MSG SetConsoleCP;
|
||||
CONSOLE_GETCURSORINFO_MSG GetConsoleCursorInfo;
|
||||
CONSOLE_SETCURSORINFO_MSG SetConsoleCursorInfo;
|
||||
CONSOLE_SCREENBUFFERINFO_MSG GetConsoleScreenBufferInfo;
|
||||
CONSOLE_SCREENBUFFERINFO_MSG SetConsoleScreenBufferInfo;
|
||||
CONSOLE_SETSCREENBUFFERSIZE_MSG SetConsoleScreenBufferSize;
|
||||
CONSOLE_SETCURSORPOSITION_MSG SetConsoleCursorPosition;
|
||||
CONSOLE_GETLARGESTWINDOWSIZE_MSG GetLargestConsoleWindowSize;
|
||||
CONSOLE_SCROLLSCREENBUFFER_MSG ScrollConsoleScreenBuffer;
|
||||
CONSOLE_SETTEXTATTRIBUTE_MSG SetConsoleTextAttribute;
|
||||
CONSOLE_SETWINDOWINFO_MSG SetConsoleWindowInfo;
|
||||
CONSOLE_READCONSOLEOUTPUTSTRING_MSG ReadConsoleOutputString;
|
||||
CONSOLE_WRITECONSOLEINPUT_MSG WriteConsoleInput;
|
||||
CONSOLE_WRITECONSOLEOUTPUTSTRING_MSG WriteConsoleOutputString;
|
||||
CONSOLE_WRITECONSOLEOUTPUT_MSG WriteConsoleOutput;
|
||||
CONSOLE_READCONSOLEOUTPUT_MSG ReadConsoleOutput;
|
||||
CONSOLE_SETTITLE_MSG SetConsoleTitle;
|
||||
CONSOLE_GETTITLE_MSG GetConsoleTitle;
|
||||
} CONSOLE_MSG_BODY_L2, *PCONSOLE_MSG_BODY_L2;
|
||||
|
||||
#ifndef __cplusplus
|
||||
typedef struct _CONSOLE_MSG_L2 {
|
||||
CONSOLE_MSG_HEADER Header;
|
||||
union {
|
||||
CONSOLE_MSG_BODY_L2;
|
||||
} u;
|
||||
} CONSOLE_MSG_L2, *PCONSOLE_MSG_L2;
|
||||
#else
|
||||
typedef struct _CONSOLE_MSG_L2 :
|
||||
public CONSOLE_MSG_HEADER
|
||||
{
|
||||
CONSOLE_MSG_BODY_L2 u;
|
||||
} CONSOLE_MSG_L2, *PCONSOLE_MSG_L2;
|
||||
#endif // __cplusplus
|
||||
392
dep/Console/conmsgl3.h
Normal file
392
dep/Console/conmsgl3.h
Normal file
@@ -0,0 +1,392 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 1985 - 1999, Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
conmsgl3.h
|
||||
|
||||
Abstract:
|
||||
|
||||
This include file defines the message formats used to communicate
|
||||
between the client and server portions of the CONSOLE portion of the
|
||||
Windows subsystem.
|
||||
|
||||
Author:
|
||||
|
||||
Therese Stowell (thereses) 10-Nov-1990
|
||||
|
||||
Revision History:
|
||||
|
||||
Wedson Almeida Filho (wedsonaf) 23-May-2010
|
||||
Modified the messages for use with the console driver.
|
||||
|
||||
--*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <winconp.h> // need FONT_SELECT
|
||||
|
||||
typedef struct _CONSOLE_GETNUMBEROFFONTS_MSG {
|
||||
OUT ULONG NumberOfFonts;
|
||||
} CONSOLE_GETNUMBEROFFONTS_MSG, *PCONSOLE_GETNUMBEROFFONTS_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETSELECTIONINFO_MSG {
|
||||
OUT CONSOLE_SELECTION_INFO SelectionInfo;
|
||||
} CONSOLE_GETSELECTIONINFO_MSG, *PCONSOLE_GETSELECTIONINFO_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETMOUSEINFO_MSG {
|
||||
OUT ULONG NumButtons;
|
||||
} CONSOLE_GETMOUSEINFO_MSG, *PCONSOLE_GETMOUSEINFO_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETFONTINFO_MSG {
|
||||
IN BOOLEAN MaximumWindow;
|
||||
OUT ULONG NumFonts; // this value is valid even for error cases
|
||||
} CONSOLE_GETFONTINFO_MSG, *PCONSOLE_GETFONTINFO_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETFONTSIZE_MSG {
|
||||
IN ULONG FontIndex;
|
||||
OUT COORD FontSize;
|
||||
} CONSOLE_GETFONTSIZE_MSG, *PCONSOLE_GETFONTSIZE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_CURRENTFONT_MSG {
|
||||
IN BOOLEAN MaximumWindow;
|
||||
IN OUT ULONG FontIndex;
|
||||
IN OUT COORD FontSize;
|
||||
IN OUT ULONG FontFamily;
|
||||
IN OUT ULONG FontWeight;
|
||||
IN OUT WCHAR FaceName[LF_FACESIZE];
|
||||
} CONSOLE_CURRENTFONT_MSG, *PCONSOLE_CURRENTFONT_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETFONT_MSG {
|
||||
IN ULONG FontIndex;
|
||||
} CONSOLE_SETFONT_MSG, *PCONSOLE_SETFONT_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETICON_MSG {
|
||||
IN HICON hIcon;
|
||||
} CONSOLE_SETICON_MSG, *PCONSOLE_SETICON_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETICON_MSG64 {
|
||||
IN PVOID64 hIcon;
|
||||
} CONSOLE_SETICON_MSG64, *PCONSOLE_SETICON_MSG64;
|
||||
|
||||
typedef struct _CONSOLE_ADDALIAS_MSG {
|
||||
IN USHORT SourceLength;
|
||||
IN USHORT TargetLength;
|
||||
IN USHORT ExeLength;
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_ADDALIAS_MSG, *PCONSOLE_ADDALIAS_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETALIAS_MSG {
|
||||
IN USHORT SourceLength;
|
||||
OUT USHORT TargetLength;
|
||||
IN USHORT ExeLength;
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_GETALIAS_MSG, *PCONSOLE_GETALIAS_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETALIASESLENGTH_MSG {
|
||||
OUT ULONG AliasesLength;
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_GETALIASESLENGTH_MSG, *PCONSOLE_GETALIASESLENGTH_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETALIASEXESLENGTH_MSG {
|
||||
OUT ULONG AliasExesLength;
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_GETALIASEXESLENGTH_MSG, *PCONSOLE_GETALIASEXESLENGTH_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETALIASES_MSG {
|
||||
IN BOOLEAN Unicode;
|
||||
OUT ULONG AliasesBufferLength;
|
||||
} CONSOLE_GETALIASES_MSG, *PCONSOLE_GETALIASES_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETALIASEXES_MSG {
|
||||
OUT ULONG AliasExesBufferLength;
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_GETALIASEXES_MSG, *PCONSOLE_GETALIASEXES_MSG;
|
||||
|
||||
typedef struct _CONSOLE_EXPUNGECOMMANDHISTORY_MSG {
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_EXPUNGECOMMANDHISTORY_MSG, *PCONSOLE_EXPUNGECOMMANDHISTORY_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETNUMBEROFCOMMANDS_MSG {
|
||||
IN ULONG NumCommands;
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_SETNUMBEROFCOMMANDS_MSG, *PCONSOLE_SETNUMBEROFCOMMANDS_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETCOMMANDHISTORYLENGTH_MSG {
|
||||
OUT ULONG CommandHistoryLength;
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_GETCOMMANDHISTORYLENGTH_MSG, *PCONSOLE_GETCOMMANDHISTORYLENGTH_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETCOMMANDHISTORY_MSG {
|
||||
OUT ULONG CommandBufferLength;
|
||||
IN BOOLEAN Unicode;
|
||||
} CONSOLE_GETCOMMANDHISTORY_MSG, *PCONSOLE_GETCOMMANDHISTORY_MSG;
|
||||
|
||||
typedef struct _CONSOLE_INVALIDATERECT_MSG {
|
||||
IN SMALL_RECT Rect;
|
||||
} CONSOLE_INVALIDATERECT_MSG, *PCONSOLE_INVALIDATERECT_MSG;
|
||||
|
||||
typedef struct _CONSOLE_VDM_MSG {
|
||||
IN ULONG iFunction;
|
||||
OUT BOOLEAN Bool;
|
||||
IN OUT POINT Point;
|
||||
OUT RECT Rect;
|
||||
} CONSOLE_VDM_MSG, *PCONSOLE_VDM_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETCURSOR_MSG {
|
||||
IN HCURSOR CursorHandle;
|
||||
} CONSOLE_SETCURSOR_MSG, *PCONSOLE_SETCURSOR_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETCURSOR_MSG64 {
|
||||
IN PVOID64 CursorHandle;
|
||||
} CONSOLE_SETCURSOR_MSG64, *PCONSOLE_SETCURSOR_MSG64;
|
||||
|
||||
typedef struct _CONSOLE_SHOWCURSOR_MSG {
|
||||
IN BOOLEAN bShow;
|
||||
OUT ULONG DisplayCount;
|
||||
} CONSOLE_SHOWCURSOR_MSG, *PCONSOLE_SHOWCURSOR_MSG;
|
||||
|
||||
typedef struct _CONSOLE_MENUCONTROL_MSG {
|
||||
IN ULONG CommandIdLow;
|
||||
IN ULONG CommandIdHigh;
|
||||
OUT HMENU hMenu;
|
||||
} CONSOLE_MENUCONTROL_MSG, *PCONSOLE_MENUCONTROL_MSG;
|
||||
|
||||
typedef struct _CONSOLE_MENUCONTROL_MSG64 {
|
||||
IN ULONG CommandIdLow;
|
||||
IN ULONG CommandIdHigh;
|
||||
OUT PVOID64 hMenu;
|
||||
} CONSOLE_MENUCONTROL_MSG64, *PCONSOLE_MENUCONTROL_MSG64;
|
||||
|
||||
typedef struct _CONSOLE_SETPALETTE_MSG {
|
||||
IN HPALETTE hPalette;
|
||||
IN ULONG dwUsage;
|
||||
} CONSOLE_SETPALETTE_MSG, *PCONSOLE_SETPALETTE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETPALETTE_MSG64 {
|
||||
IN PVOID64 hPalette;
|
||||
IN ULONG dwUsage;
|
||||
} CONSOLE_SETPALETTE_MSG64, *PCONSOLE_SETPALETTE_MSG64;
|
||||
|
||||
typedef struct _CONSOLE_SETDISPLAYMODE_MSG {
|
||||
IN ULONG dwFlags;
|
||||
OUT COORD ScreenBufferDimensions;
|
||||
} CONSOLE_SETDISPLAYMODE_MSG, *PCONSOLE_SETDISPLAYMODE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_REGISTERVDM_MSG {
|
||||
IN ULONG RegisterFlags;
|
||||
IN HANDLE StartEvent;
|
||||
IN HANDLE EndEvent;
|
||||
IN HANDLE ErrorEvent;
|
||||
OUT ULONG StateLength;
|
||||
OUT PVOID StateBuffer;
|
||||
OUT PVOID VDMBuffer;
|
||||
} CONSOLE_REGISTERVDM_MSG, *PCONSOLE_REGISTERVDM_MSG;
|
||||
|
||||
typedef struct _CONSOLE_REGISTERVDM_MSG64 {
|
||||
IN ULONG RegisterFlags;
|
||||
IN PVOID64 StartEvent;
|
||||
IN PVOID64 EndEvent;
|
||||
IN PVOID64 ErrorEvent;
|
||||
OUT ULONG StateLength;
|
||||
OUT PVOID64 StateBuffer;
|
||||
OUT PVOID64 VDMBuffer;
|
||||
} CONSOLE_REGISTERVDM_MSG64, *PCONSOLE_REGISTERVDM_MSG64;
|
||||
|
||||
typedef struct _CONSOLE_GETHARDWARESTATE_MSG {
|
||||
OUT COORD Resolution;
|
||||
OUT COORD FontSize;
|
||||
} CONSOLE_GETHARDWARESTATE_MSG, *PCONSOLE_GETHARDWARESTATE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETHARDWARESTATE_MSG {
|
||||
IN COORD Resolution;
|
||||
IN COORD FontSize;
|
||||
} CONSOLE_SETHARDWARESTATE_MSG, *PCONSOLE_SETHARDWARESTATE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETDISPLAYMODE_MSG {
|
||||
OUT ULONG ModeFlags;
|
||||
} CONSOLE_GETDISPLAYMODE_MSG, *PCONSOLE_GETDISPLAYMODE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETKEYBOARDLAYOUTNAME_MSG {
|
||||
union {
|
||||
WCHAR awchLayout[9];
|
||||
char achLayout[9];
|
||||
};
|
||||
BOOLEAN bAnsi;
|
||||
} CONSOLE_GETKEYBOARDLAYOUTNAME_MSG, *PCONSOLE_GETKEYBOARDLAYOUTNAME_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETKEYSHORTCUTS_MSG {
|
||||
IN BOOLEAN Set;
|
||||
IN BYTE ReserveKeys;
|
||||
} CONSOLE_SETKEYSHORTCUTS_MSG, *PCONSOLE_SETKEYSHORTCUTS_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETMENUCLOSE_MSG {
|
||||
IN BOOLEAN Enable;
|
||||
} CONSOLE_SETMENUCLOSE_MSG, *PCONSOLE_SETMENUCLOSE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_CHAR_TYPE_MSG {
|
||||
IN COORD coordCheck;
|
||||
OUT ULONG dwType;
|
||||
} CONSOLE_CHAR_TYPE_MSG, *PCONSOLE_CHAR_TYPE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_LOCAL_EUDC_MSG {
|
||||
IN USHORT CodePoint;
|
||||
IN COORD FontSize;
|
||||
} CONSOLE_LOCAL_EUDC_MSG, *PCONSOLE_LOCAL_EUDC_MSG;
|
||||
|
||||
typedef struct _CONSOLE_CURSOR_MODE_MSG {
|
||||
IN OUT BOOLEAN Blink;
|
||||
IN OUT BOOLEAN DBEnable;
|
||||
} CONSOLE_CURSOR_MODE_MSG, *PCONSOLE_CURSOR_MODE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_REGISTEROS2_MSG {
|
||||
IN BOOLEAN fOs2Register;
|
||||
} CONSOLE_REGISTEROS2_MSG, *PCONSOLE_REGISTEROS2_MSG;
|
||||
|
||||
typedef struct _CONSOLE_SETOS2OEMFORMAT_MSG {
|
||||
IN BOOLEAN fOs2OemFormat;
|
||||
} CONSOLE_SETOS2OEMFORMAT_MSG, *PCONSOLE_SETOS2OEMFORMAT_MSG;
|
||||
|
||||
typedef struct _CONSOLE_NLS_MODE_MSG {
|
||||
IN OUT BOOLEAN Ready;
|
||||
IN ULONG NlsMode;
|
||||
} CONSOLE_NLS_MODE_MSG, *PCONSOLE_NLS_MODE_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETCONSOLEWINDOW_MSG {
|
||||
OUT HWND hwnd;
|
||||
} CONSOLE_GETCONSOLEWINDOW_MSG, *PCONSOLE_GETCONSOLEWINDOW_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETCONSOLEWINDOW_MSG64 {
|
||||
OUT PVOID64 hwnd;
|
||||
} CONSOLE_GETCONSOLEWINDOW_MSG64, *PCONSOLE_GETCONSOLEWINDOW_MSG64;
|
||||
|
||||
typedef struct _CONSOLE_GETPROCESSLIST_MSG {
|
||||
OUT ULONG dwProcessCount;
|
||||
} CONSOLE_GETCONSOLEPROCESSLIST_MSG, *PCONSOLE_GETCONSOLEPROCESSLIST_MSG;
|
||||
|
||||
typedef struct _CONSOLE_GETHISTORY_MSG {
|
||||
OUT ULONG HistoryBufferSize;
|
||||
OUT ULONG NumberOfHistoryBuffers;
|
||||
OUT ULONG dwFlags;
|
||||
} CONSOLE_HISTORY_MSG, *PCONSOLE_HISTORY_MSG;
|
||||
|
||||
typedef enum _CONSOLE_API_NUMBER_L3 {
|
||||
ConsolepGetNumberOfFonts = CONSOLE_FIRST_API_NUMBER(3),
|
||||
ConsolepGetMouseInfo,
|
||||
ConsolepGetFontInfo,
|
||||
ConsolepGetFontSize,
|
||||
ConsolepGetCurrentFont,
|
||||
ConsolepSetFont,
|
||||
ConsolepSetIcon,
|
||||
ConsolepInvalidateBitmapRect,
|
||||
ConsolepVDMOperation,
|
||||
ConsolepSetCursor,
|
||||
ConsolepShowCursor,
|
||||
ConsolepMenuControl,
|
||||
ConsolepSetPalette,
|
||||
ConsolepSetDisplayMode,
|
||||
ConsolepRegisterVDM,
|
||||
ConsolepGetHardwareState,
|
||||
ConsolepSetHardwareState,
|
||||
ConsolepGetDisplayMode,
|
||||
ConsolepAddAlias,
|
||||
ConsolepGetAlias,
|
||||
ConsolepGetAliasesLength,
|
||||
ConsolepGetAliasExesLength,
|
||||
ConsolepGetAliases,
|
||||
ConsolepGetAliasExes,
|
||||
ConsolepExpungeCommandHistory,
|
||||
ConsolepSetNumberOfCommands,
|
||||
ConsolepGetCommandHistoryLength,
|
||||
ConsolepGetCommandHistory,
|
||||
ConsolepSetKeyShortcuts,
|
||||
ConsolepSetMenuClose,
|
||||
ConsolepGetKeyboardLayoutName,
|
||||
ConsolepGetConsoleWindow,
|
||||
ConsolepCharType,
|
||||
ConsolepSetLocalEUDC,
|
||||
ConsolepSetCursorMode,
|
||||
ConsolepGetCursorMode,
|
||||
ConsolepRegisterOS2,
|
||||
ConsolepSetOS2OemFormat,
|
||||
ConsolepGetNlsMode,
|
||||
ConsolepSetNlsMode,
|
||||
ConsolepGetSelectionInfo,
|
||||
ConsolepGetConsoleProcessList,
|
||||
ConsolepGetHistory,
|
||||
ConsolepSetHistory,
|
||||
ConsolepSetCurrentFont,
|
||||
} CONSOLE_API_NUMBER_L3, *PCONSOLE_API_NUMBER_L3;
|
||||
|
||||
typedef union _CONSOLE_MSG_BODY_L3 {
|
||||
CONSOLE_GETNUMBEROFFONTS_MSG GetNumberOfConsoleFonts;
|
||||
CONSOLE_GETMOUSEINFO_MSG GetConsoleMouseInfo;
|
||||
CONSOLE_GETFONTINFO_MSG GetConsoleFontInfo;
|
||||
CONSOLE_GETFONTSIZE_MSG GetConsoleFontSize;
|
||||
CONSOLE_CURRENTFONT_MSG GetCurrentConsoleFont;
|
||||
CONSOLE_SETFONT_MSG SetConsoleFont;
|
||||
CONSOLE_INVALIDATERECT_MSG InvalidateConsoleBitmapRect;
|
||||
CONSOLE_VDM_MSG VDMConsoleOperation;
|
||||
CONSOLE_SHOWCURSOR_MSG ShowConsoleCursor;
|
||||
CONSOLE_SETDISPLAYMODE_MSG SetConsoleDisplayMode;
|
||||
#ifdef BUILD_WOW6432
|
||||
CONSOLE_REGISTERVDM_MSG64 RegisterConsoleVDM;
|
||||
CONSOLE_SETCURSOR_MSG64 SetConsoleCursor;
|
||||
CONSOLE_SETICON_MSG64 SetConsoleIcon;
|
||||
CONSOLE_MENUCONTROL_MSG64 ConsoleMenuControl;
|
||||
CONSOLE_SETPALETTE_MSG64 SetConsolePalette;
|
||||
CONSOLE_GETCONSOLEWINDOW_MSG64 GetConsoleWindow;
|
||||
#else
|
||||
CONSOLE_REGISTERVDM_MSG RegisterConsoleVDM;
|
||||
CONSOLE_SETCURSOR_MSG SetConsoleCursor;
|
||||
CONSOLE_SETICON_MSG SetConsoleIcon;
|
||||
CONSOLE_MENUCONTROL_MSG ConsoleMenuControl;
|
||||
CONSOLE_SETPALETTE_MSG SetConsolePalette;
|
||||
CONSOLE_GETCONSOLEWINDOW_MSG GetConsoleWindow;
|
||||
#endif
|
||||
CONSOLE_GETHARDWARESTATE_MSG GetConsoleHardwareState;
|
||||
CONSOLE_SETHARDWARESTATE_MSG SetConsoleHardwareState;
|
||||
CONSOLE_GETDISPLAYMODE_MSG GetConsoleDisplayMode;
|
||||
CONSOLE_ADDALIAS_MSG AddConsoleAliasW;
|
||||
CONSOLE_GETALIAS_MSG GetConsoleAliasW;
|
||||
CONSOLE_GETALIASESLENGTH_MSG GetConsoleAliasesLengthW;
|
||||
CONSOLE_GETALIASEXESLENGTH_MSG GetConsoleAliasExesLengthW;
|
||||
CONSOLE_GETALIASES_MSG GetConsoleAliasesW;
|
||||
CONSOLE_GETALIASEXES_MSG GetConsoleAliasExesW;
|
||||
CONSOLE_EXPUNGECOMMANDHISTORY_MSG ExpungeConsoleCommandHistoryW;
|
||||
CONSOLE_SETNUMBEROFCOMMANDS_MSG SetConsoleNumberOfCommandsW;
|
||||
CONSOLE_GETCOMMANDHISTORYLENGTH_MSG GetConsoleCommandHistoryLengthW;
|
||||
CONSOLE_GETCOMMANDHISTORY_MSG GetConsoleCommandHistoryW;
|
||||
CONSOLE_SETKEYSHORTCUTS_MSG SetConsoleKeyShortcuts;
|
||||
CONSOLE_SETMENUCLOSE_MSG SetConsoleMenuClose;
|
||||
CONSOLE_GETKEYBOARDLAYOUTNAME_MSG GetKeyboardLayoutName;
|
||||
CONSOLE_CHAR_TYPE_MSG GetConsoleCharType;
|
||||
CONSOLE_LOCAL_EUDC_MSG SetConsoleLocalEUDC;
|
||||
CONSOLE_CURSOR_MODE_MSG SetConsoleCursorMode;
|
||||
CONSOLE_CURSOR_MODE_MSG GetConsoleCursorMode;
|
||||
CONSOLE_REGISTEROS2_MSG RegisterConsoleOS2;
|
||||
CONSOLE_SETOS2OEMFORMAT_MSG SetConsoleOS2OemFormat;
|
||||
CONSOLE_NLS_MODE_MSG GetConsoleNlsMode;
|
||||
CONSOLE_NLS_MODE_MSG SetConsoleNlsMode;
|
||||
CONSOLE_GETSELECTIONINFO_MSG GetConsoleSelectionInfo;
|
||||
CONSOLE_GETCONSOLEPROCESSLIST_MSG GetConsoleProcessList;
|
||||
CONSOLE_CURRENTFONT_MSG SetCurrentConsoleFont;
|
||||
CONSOLE_HISTORY_MSG SetConsoleHistory;
|
||||
CONSOLE_HISTORY_MSG GetConsoleHistory;
|
||||
} CONSOLE_MSG_BODY_L3, *PCONSOLE_MSG_BODY_L3;
|
||||
|
||||
#ifndef __cplusplus
|
||||
typedef struct _CONSOLE_MSG_L3 {
|
||||
CONSOLE_MSG_HEADER Header;
|
||||
union {
|
||||
CONSOLE_MSG_BODY_L3;
|
||||
} u;
|
||||
} CONSOLE_MSG_L3, *PCONSOLE_MSG_L3;
|
||||
#else
|
||||
typedef struct _CONSOLE_MSG_L3 :
|
||||
public CONSOLE_MSG_HEADER
|
||||
{
|
||||
CONSOLE_MSG_BODY_L3 u;
|
||||
} CONSOLE_MSG_L3, *PCONSOLE_MSG_L3;
|
||||
#endif // __cplusplus
|
||||
29
dep/Console/ntcon.h
Normal file
29
dep/Console/ntcon.h
Normal file
@@ -0,0 +1,29 @@
|
||||
//
|
||||
// Copyright (C) Microsoft. All rights reserved.
|
||||
//
|
||||
#ifndef _NTCON_
|
||||
#define _NTCON_
|
||||
|
||||
//
|
||||
// originally in winconp.h
|
||||
//
|
||||
#define CONSOLE_DETACHED_PROCESS ((HANDLE)-1)
|
||||
#define CONSOLE_NEW_CONSOLE ((HANDLE)-2)
|
||||
#define CONSOLE_CREATE_NO_WINDOW ((HANDLE)-3)
|
||||
|
||||
#define SYSTEM_ROOT_CONSOLE_EVENT 3
|
||||
|
||||
#define CONSOLE_READ_NOREMOVE 0x0001
|
||||
#define CONSOLE_READ_NOWAIT 0x0002
|
||||
|
||||
#define CONSOLE_READ_VALID (CONSOLE_READ_NOREMOVE | CONSOLE_READ_NOWAIT)
|
||||
|
||||
#define CONSOLE_GRAPHICS_BUFFER 2
|
||||
|
||||
//
|
||||
// These are flags stored in PEB::ProcessParameters::ConsoleFlags.
|
||||
//
|
||||
#define CONSOLE_IGNORE_CTRL_C 0x1
|
||||
|
||||
|
||||
#endif //_NTCON_
|
||||
669
dep/Console/winconp.h
Normal file
669
dep/Console/winconp.h
Normal file
@@ -0,0 +1,669 @@
|
||||
|
||||
#ifndef _WINCONP_
|
||||
#define _WINCONP_
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if _MSC_VER >= 1200
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable:4820) // padding added after data member
|
||||
#endif
|
||||
|
||||
#include <wincontypes.h>
|
||||
|
||||
//
|
||||
// History flags (internal)
|
||||
//
|
||||
|
||||
#define CHI_VALID_FLAGS (HISTORY_NO_DUP_FLAG)
|
||||
|
||||
//
|
||||
// Selection flags (internal)
|
||||
//
|
||||
|
||||
#define CONSOLE_SELECTION_INVERTED 0x0010 // selection is inverted (turned off)
|
||||
#define CONSOLE_SELECTION_VALID (CONSOLE_SELECTION_IN_PROGRESS | \
|
||||
CONSOLE_SELECTION_NOT_EMPTY | \
|
||||
CONSOLE_MOUSE_SELECTION | \
|
||||
CONSOLE_MOUSE_DOWN)
|
||||
|
||||
|
||||
WINBASEAPI
|
||||
BOOL
|
||||
WINAPI
|
||||
GetConsoleKeyboardLayoutNameA(
|
||||
_Out_writes_(KL_NAMELENGTH) LPSTR pszLayout);
|
||||
WINBASEAPI
|
||||
BOOL
|
||||
WINAPI
|
||||
GetConsoleKeyboardLayoutNameW(
|
||||
_Out_writes_(KL_NAMELENGTH) LPWSTR pszLayout);
|
||||
#ifdef UNICODE
|
||||
#define GetConsoleKeyboardLayoutName GetConsoleKeyboardLayoutNameW
|
||||
#else
|
||||
#define GetConsoleKeyboardLayoutName GetConsoleKeyboardLayoutNameA
|
||||
#endif // !UNICODE
|
||||
|
||||
//
|
||||
// Registry strings
|
||||
//
|
||||
|
||||
#define CONSOLE_REGISTRY_STRING L"Console"
|
||||
#define CONSOLE_REGISTRY_FONTSIZE L"FontSize"
|
||||
#define CONSOLE_REGISTRY_FONTFAMILY L"FontFamily"
|
||||
#define CONSOLE_REGISTRY_BUFFERSIZE L"ScreenBufferSize"
|
||||
#define CONSOLE_REGISTRY_CURSORSIZE L"CursorSize"
|
||||
#define CONSOLE_REGISTRY_WINDOWMAXIMIZED L"WindowMaximized"
|
||||
#define CONSOLE_REGISTRY_WINDOWSIZE L"WindowSize"
|
||||
#define CONSOLE_REGISTRY_WINDOWPOS L"WindowPosition"
|
||||
#define CONSOLE_REGISTRY_WINDOWALPHA L"WindowAlpha"
|
||||
#define CONSOLE_REGISTRY_FILLATTR L"ScreenColors"
|
||||
#define CONSOLE_REGISTRY_POPUPATTR L"PopupColors"
|
||||
#define CONSOLE_REGISTRY_FULLSCR L"FullScreen"
|
||||
#define CONSOLE_REGISTRY_QUICKEDIT L"QuickEdit"
|
||||
#define CONSOLE_REGISTRY_FACENAME L"FaceName"
|
||||
#define CONSOLE_REGISTRY_FONTWEIGHT L"FontWeight"
|
||||
#define CONSOLE_REGISTRY_INSERTMODE L"InsertMode"
|
||||
#define CONSOLE_REGISTRY_HISTORYSIZE L"HistoryBufferSize"
|
||||
#define CONSOLE_REGISTRY_HISTORYBUFS L"NumberOfHistoryBuffers"
|
||||
#define CONSOLE_REGISTRY_HISTORYNODUP L"HistoryNoDup"
|
||||
#define CONSOLE_REGISTRY_COLORTABLE L"ColorTable%02u"
|
||||
#define CONSOLE_REGISTRY_EXTENDEDEDITKEY L"ExtendedEditKey"
|
||||
#define CONSOLE_REGISTRY_EXTENDEDEDITKEY_CUSTOM L"ExtendedEditkeyCustom"
|
||||
#define CONSOLE_REGISTRY_WORD_DELIM L"WordDelimiters"
|
||||
#define CONSOLE_REGISTRY_TRIMZEROHEADINGS L"TrimLeadingZeros"
|
||||
#define CONSOLE_REGISTRY_LOAD_CONIME L"LoadConIme"
|
||||
#define CONSOLE_REGISTRY_ENABLE_COLOR_SELECTION L"EnableColorSelection"
|
||||
#define CONSOLE_REGISTRY_SCROLLSCALE L"ScrollScale"
|
||||
|
||||
// V2 console settings
|
||||
#define CONSOLE_REGISTRY_FORCEV2 L"ForceV2"
|
||||
#define CONSOLE_REGISTRY_LINESELECTION L"LineSelection"
|
||||
#define CONSOLE_REGISTRY_FILTERONPASTE L"FilterOnPaste"
|
||||
#define CONSOLE_REGISTRY_LINEWRAP L"LineWrap"
|
||||
#define CONSOLE_REGISTRY_CTRLKEYSHORTCUTS_DISABLED L"CtrlKeyShortcutsDisabled"
|
||||
#define CONSOLE_REGISTRY_ALLOW_ALTF4_CLOSE L"AllowAltF4Close"
|
||||
#define CONSOLE_REGISTRY_VIRTTERM_LEVEL L"VirtualTerminalLevel"
|
||||
|
||||
#define CONSOLE_REGISTRY_CURSORTYPE L"CursorType"
|
||||
#define CONSOLE_REGISTRY_CURSORCOLOR L"CursorColor"
|
||||
|
||||
#define CONSOLE_REGISTRY_INTERCEPTCOPYPASTE L"InterceptCopyPaste"
|
||||
|
||||
#define CONSOLE_REGISTRY_COPYCOLOR L"CopyColor"
|
||||
#define CONSOLE_REGISTRY_USEDX L"UseDx"
|
||||
|
||||
#define CONSOLE_REGISTRY_DEFAULTFOREGROUND L"DefaultForeground"
|
||||
#define CONSOLE_REGISTRY_DEFAULTBACKGROUND L"DefaultBackground"
|
||||
#define CONSOLE_REGISTRY_TERMINALSCROLLING L"TerminalScrolling"
|
||||
// end V2 console settings
|
||||
|
||||
/*
|
||||
* Starting code page
|
||||
*/
|
||||
#define CONSOLE_REGISTRY_CODEPAGE (L"CodePage")
|
||||
|
||||
//
|
||||
// registry strings on HKEY_LOCAL_MACHINE
|
||||
//
|
||||
#define MACHINE_REGISTRY_CONSOLE (L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Console")
|
||||
#define MACHINE_REGISTRY_CONSOLEIME (L"ConsoleIME")
|
||||
#define MACHINE_REGISTRY_ENABLE_CONIME_ON_SYSTEM_PROCESS (L"EnableConImeOnSystemProcess")
|
||||
|
||||
|
||||
#define MACHINE_REGISTRY_CONSOLE_TTFONT (L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Console\\TrueTypeFont")
|
||||
#define MACHINE_REGISTRY_CONSOLE_TTFONT_WIN32_PATH (L"Software\\Microsoft\\Windows NT\\CurrentVersion\\Console\\TrueTypeFont")
|
||||
|
||||
|
||||
#define MACHINE_REGISTRY_CONSOLE_NLS (L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Console\\Nls")
|
||||
|
||||
|
||||
#define MACHINE_REGISTRY_CONSOLE_FULLSCREEN (L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Console\\FullScreen")
|
||||
#define MACHINE_REGISTRY_INITIAL_PALETTE (L"InitialPalette")
|
||||
#define MACHINE_REGISTRY_COLOR_BUFFER (L"ColorBuffer")
|
||||
#define MACHINE_REGISTRY_COLOR_BUFFER_NO_TRANSLATE (L"ColorBufferNoTranslate")
|
||||
#define MACHINE_REGISTRY_MODE_FONT_PAIRS (L"ModeFontPairs")
|
||||
#define MACHINE_REGISTRY_FS_CODEPAGE (L"CodePage")
|
||||
|
||||
|
||||
#define MACHINE_REGISTRY_EUDC (L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Nls\\CodePage\\EUDCCodeRange")
|
||||
|
||||
|
||||
//
|
||||
// TrueType font list
|
||||
//
|
||||
|
||||
// doesn't available bold when add BOLD_MARK on first of face name.
|
||||
#define BOLD_MARK (L'*')
|
||||
|
||||
typedef struct _TT_FONT_LIST {
|
||||
SINGLE_LIST_ENTRY List;
|
||||
UINT CodePage;
|
||||
BOOL fDisableBold;
|
||||
TCHAR FaceName1[LF_FACESIZE];
|
||||
TCHAR FaceName2[LF_FACESIZE];
|
||||
} TTFONTLIST, *LPTTFONTLIST;
|
||||
|
||||
//
|
||||
// registry strings on HKEY_CURRENT_USER
|
||||
//
|
||||
#define PRELOAD_REGISTRY_STRING (L"Keyboard Layout\\Preload")
|
||||
|
||||
|
||||
//
|
||||
// Special key for previous word erase
|
||||
//
|
||||
#define EXTKEY_ERASE_PREV_WORD (0x7f)
|
||||
|
||||
#ifndef NOGDI
|
||||
|
||||
typedef struct _CONSOLE_GRAPHICS_BUFFER_INFO {
|
||||
DWORD dwBitMapInfoLength;
|
||||
LPBITMAPINFO lpBitMapInfo;
|
||||
DWORD dwUsage;
|
||||
HANDLE hMutex;
|
||||
PVOID lpBitMap;
|
||||
} CONSOLE_GRAPHICS_BUFFER_INFO, *PCONSOLE_GRAPHICS_BUFFER_INFO;
|
||||
|
||||
#endif
|
||||
|
||||
BOOL
|
||||
WINAPI
|
||||
InvalidateConsoleDIBits(
|
||||
_In_ HANDLE hConsoleOutput,
|
||||
_In_ PSMALL_RECT lpRect);
|
||||
|
||||
VOID
|
||||
WINAPI
|
||||
SetLastConsoleEventActive(
|
||||
VOID);
|
||||
|
||||
#define VDM_HIDE_WINDOW 1
|
||||
#define VDM_IS_ICONIC 2
|
||||
#define VDM_CLIENT_RECT 3
|
||||
#define VDM_CLIENT_TO_SCREEN 4
|
||||
#define VDM_SCREEN_TO_CLIENT 5
|
||||
#define VDM_IS_HIDDEN 6
|
||||
#define VDM_FULLSCREEN_NOPAINT 7
|
||||
#define VDM_SET_VIDEO_MODE 8
|
||||
|
||||
BOOL
|
||||
WINAPI
|
||||
VDMConsoleOperation(
|
||||
_In_ DWORD iFunction,
|
||||
_Inout_opt_ LPVOID lpData);
|
||||
|
||||
|
||||
BOOL
|
||||
WINAPI
|
||||
SetConsoleIcon(
|
||||
_In_ HICON hIcon);
|
||||
|
||||
//
|
||||
// These console font APIs don't appear to be used anywhere. Maybe they
|
||||
// should be removed.
|
||||
//
|
||||
|
||||
BOOL
|
||||
WINAPI
|
||||
SetConsoleFont(
|
||||
_In_ HANDLE hConsoleOutput,
|
||||
_In_ DWORD nFont);
|
||||
|
||||
DWORD
|
||||
WINAPI
|
||||
GetConsoleFontInfo(
|
||||
_In_ HANDLE hConsoleOutput,
|
||||
_In_ BOOL bMaximumWindow,
|
||||
_In_ DWORD nLength,
|
||||
_Out_ PCONSOLE_FONT_INFO lpConsoleFontInfo);
|
||||
|
||||
DWORD
|
||||
WINAPI
|
||||
GetNumberOfConsoleFonts(
|
||||
VOID);
|
||||
|
||||
BOOL
|
||||
WINAPI
|
||||
SetConsoleCursor(
|
||||
_In_ HANDLE hConsoleOutput,
|
||||
_In_ HCURSOR hCursor);
|
||||
|
||||
int
|
||||
WINAPI
|
||||
ShowConsoleCursor(
|
||||
_In_ HANDLE hConsoleOutput,
|
||||
_In_ BOOL bShow);
|
||||
|
||||
HMENU
|
||||
APIENTRY
|
||||
ConsoleMenuControl(
|
||||
_In_ HANDLE hConsoleOutput,
|
||||
_In_ UINT dwCommandIdLow,
|
||||
_In_ UINT dwCommandIdHigh);
|
||||
|
||||
BOOL
|
||||
SetConsolePalette(
|
||||
_In_ HANDLE hConsoleOutput,
|
||||
_In_ HPALETTE hPalette,
|
||||
_In_ UINT dwUsage);
|
||||
|
||||
#define CONSOLE_UNREGISTER_VDM 0
|
||||
#define CONSOLE_REGISTER_VDM 1
|
||||
#define CONSOLE_REGISTER_WOW 2
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
RegisterConsoleVDM(
|
||||
_In_ DWORD dwRegisterFlags,
|
||||
_In_ HANDLE hStartHardwareEvent,
|
||||
_In_ HANDLE hEndHardwareEvent,
|
||||
_In_ HANDLE hErrorhardwareEvent,
|
||||
_Reserved_ DWORD Reserved,
|
||||
_Out_ LPDWORD lpStateLength,
|
||||
_Outptr_ PVOID *lpState,
|
||||
_In_opt_ COORD VDMBufferSize,
|
||||
_Outptr_ PVOID *lpVDMBuffer);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
GetConsoleHardwareState(
|
||||
_In_ HANDLE hConsoleOutput,
|
||||
_Out_ PCOORD lpResolution,
|
||||
_Out_ PCOORD lpFontSize);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
SetConsoleHardwareState(
|
||||
_In_ HANDLE hConsoleOutput,
|
||||
_In_ COORD dwResolution,
|
||||
_In_ COORD dwFontSize);
|
||||
|
||||
#define CONSOLE_NOSHORTCUTKEY 0x00000000 /* no shortcut key */
|
||||
#define CONSOLE_ALTTAB 0x00000001 /* Alt + Tab */
|
||||
#define CONSOLE_ALTESC 0x00000002 /* Alt + Escape */
|
||||
#define CONSOLE_ALTSPACE 0x00000004 /* Alt + Space */
|
||||
#define CONSOLE_ALTENTER 0x00000008 /* Alt + Enter */
|
||||
#define CONSOLE_ALTPRTSC 0x00000010 /* Alt Print screen */
|
||||
#define CONSOLE_PRTSC 0x00000020 /* Print screen */
|
||||
#define CONSOLE_CTRLESC 0x00000040 /* Ctrl + Escape */
|
||||
|
||||
typedef struct _APPKEY {
|
||||
WORD Modifier;
|
||||
WORD ScanCode;
|
||||
} APPKEY, *LPAPPKEY;
|
||||
|
||||
#define CONSOLE_MODIFIER_SHIFT 0x0003 // Left shift key
|
||||
#define CONSOLE_MODIFIER_CONTROL 0x0004 // Either Control shift key
|
||||
#define CONSOLE_MODIFIER_ALT 0x0008 // Either Alt shift key
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
SetConsoleKeyShortcuts(
|
||||
_In_ BOOL bSet,
|
||||
_In_ BYTE bReserveKeys,
|
||||
_In_reads_(dwNumAppKeys) LPAPPKEY lpAppKeys,
|
||||
_In_ DWORD dwNumAppKeys);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
SetConsoleMenuClose(
|
||||
_In_ BOOL bEnable);
|
||||
|
||||
DWORD
|
||||
GetConsoleInputExeNameA(
|
||||
_In_ DWORD nBufferLength,
|
||||
_Out_writes_(nBufferLength) LPSTR lpBuffer);
|
||||
DWORD
|
||||
GetConsoleInputExeNameW(
|
||||
_In_ DWORD nBufferLength,
|
||||
_Out_writes_(nBufferLength) LPWSTR lpBuffer);
|
||||
#ifdef UNICODE
|
||||
#define GetConsoleInputExeName GetConsoleInputExeNameW
|
||||
#else
|
||||
#define GetConsoleInputExeName GetConsoleInputExeNameA
|
||||
#endif // !UNICODE
|
||||
|
||||
BOOL
|
||||
SetConsoleInputExeNameA(
|
||||
_In_ LPSTR lpExeName);
|
||||
BOOL
|
||||
SetConsoleInputExeNameW(
|
||||
_In_ LPWSTR lpExeName);
|
||||
#ifdef UNICODE
|
||||
#define SetConsoleInputExeName SetConsoleInputExeNameW
|
||||
#else
|
||||
#define SetConsoleInputExeName SetConsoleInputExeNameA
|
||||
#endif // !UNICODE
|
||||
|
||||
BOOL
|
||||
WINAPI
|
||||
ReadConsoleInputExA(
|
||||
_In_ HANDLE hConsoleInput,
|
||||
_Out_writes_(nLength) PINPUT_RECORD lpBuffer,
|
||||
_In_ DWORD nLength,
|
||||
_Out_ LPDWORD lpNumberOfEventsRead,
|
||||
_In_ USHORT wFlags);
|
||||
BOOL
|
||||
WINAPI
|
||||
ReadConsoleInputExW(
|
||||
_In_ HANDLE hConsoleInput,
|
||||
_Out_writes_(nLength) PINPUT_RECORD lpBuffer,
|
||||
_In_ DWORD nLength,
|
||||
_Out_ LPDWORD lpNumberOfEventsRead,
|
||||
_In_ USHORT wFlags);
|
||||
#ifdef UNICODE
|
||||
#define ReadConsoleInputEx ReadConsoleInputExW
|
||||
#else
|
||||
#define ReadConsoleInputEx ReadConsoleInputExA
|
||||
#endif // !UNICODE
|
||||
|
||||
BOOL
|
||||
WINAPI
|
||||
WriteConsoleInputVDMA(
|
||||
_In_ HANDLE hConsoleInput,
|
||||
_In_reads_(nLength) PINPUT_RECORD lpBuffer,
|
||||
_In_ DWORD nLength,
|
||||
_Out_ LPDWORD lpNumberOfEventsWritten);
|
||||
BOOL
|
||||
WINAPI
|
||||
WriteConsoleInputVDMW(
|
||||
_In_ HANDLE hConsoleInput,
|
||||
_In_reads_(nLength) PINPUT_RECORD lpBuffer,
|
||||
_In_ DWORD nLength,
|
||||
_Out_ LPDWORD lpNumberOfEventsWritten);
|
||||
#ifdef UNICODE
|
||||
#define WriteConsoleInputVDM WriteConsoleInputVDMW
|
||||
#else
|
||||
#define WriteConsoleInputVDM WriteConsoleInputVDMA
|
||||
#endif // !UNICODE
|
||||
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
GetConsoleNlsMode(
|
||||
_In_ HANDLE hConsole,
|
||||
_Out_ PDWORD lpdwNlsMode);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
SetConsoleNlsMode(
|
||||
_In_ HANDLE hConsole,
|
||||
_In_ DWORD fdwNlsMode);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
GetConsoleCharType(
|
||||
_In_ HANDLE hConsole,
|
||||
_In_ COORD coordCheck,
|
||||
_Out_ PDWORD pdwType);
|
||||
|
||||
#define CHAR_TYPE_SBCS 0 // Displayed SBCS character
|
||||
#define CHAR_TYPE_LEADING 2 // Displayed leading byte of DBCS
|
||||
#define CHAR_TYPE_TRAILING 3 // Displayed trailing byte of DBCS
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
SetConsoleLocalEUDC(
|
||||
_In_ HANDLE hConsoleHandle,
|
||||
_In_ WORD wCodePoint,
|
||||
_In_ COORD cFontSize,
|
||||
_In_ PCHAR lpSB);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
SetConsoleCursorMode(
|
||||
_In_ HANDLE hConsoleHandle,
|
||||
_In_ BOOL Blink,
|
||||
_In_ BOOL DBEnable);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
GetConsoleCursorMode(
|
||||
_In_ HANDLE hConsoleHandle,
|
||||
_Out_ PBOOL pbBlink,
|
||||
_Out_ PBOOL pbDBEnable);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
RegisterConsoleOS2(
|
||||
_In_ BOOL fOs2Register);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
SetConsoleOS2OemFormat(
|
||||
_In_ BOOL fOs2OemFormat);
|
||||
|
||||
BOOL
|
||||
IsConsoleFullWidth(
|
||||
_In_ HDC hDC,
|
||||
_In_ DWORD CodePage,
|
||||
_In_ WCHAR wch);
|
||||
|
||||
#if defined(FE_IME)
|
||||
BOOL
|
||||
APIENTRY
|
||||
RegisterConsoleIME(
|
||||
_In_ HWND hWndConsoleIME,
|
||||
_Out_opt_ DWORD *lpdwConsoleThreadId);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
UnregisterConsoleIME(
|
||||
VOID);
|
||||
#endif // FE_IME
|
||||
|
||||
//
|
||||
// These bits are always on for console handles and are used for routing
|
||||
// by windows.
|
||||
//
|
||||
|
||||
#define CONSOLE_HANDLE_SIGNATURE 0x00000003
|
||||
#define CONSOLE_HANDLE_NEVERSET 0x10000000
|
||||
#define CONSOLE_HANDLE_MASK (CONSOLE_HANDLE_SIGNATURE | CONSOLE_HANDLE_NEVERSET)
|
||||
|
||||
#define CONSOLE_HANDLE(HANDLE) (((ULONG_PTR)(HANDLE) & CONSOLE_HANDLE_MASK) == CONSOLE_HANDLE_SIGNATURE)
|
||||
|
||||
//
|
||||
// These strings are used to open console input or output.
|
||||
//
|
||||
|
||||
#define CONSOLE_INPUT_STRING L"CONIN$"
|
||||
#define CONSOLE_OUTPUT_STRING L"CONOUT$"
|
||||
#define CONSOLE_GENERIC L"CON"
|
||||
|
||||
//
|
||||
// this string is used to call RegisterWindowMessage to get
|
||||
// progman's handle.
|
||||
//
|
||||
|
||||
#define CONSOLE_PROGMAN_HANDLE_MESSAGE "ConsoleProgmanHandle"
|
||||
|
||||
|
||||
//
|
||||
// stream API definitions. these API are only supposed to be used by
|
||||
// subsystems (i.e. OpenFile routes to OpenConsoleW).
|
||||
//
|
||||
|
||||
HANDLE
|
||||
APIENTRY
|
||||
OpenConsoleW(
|
||||
_In_ LPWSTR lpConsoleDevice,
|
||||
_In_ DWORD dwDesiredAccess,
|
||||
_In_ BOOL bInheritHandle,
|
||||
_In_ DWORD dwShareMode);
|
||||
|
||||
HANDLE
|
||||
APIENTRY
|
||||
DuplicateConsoleHandle(
|
||||
_In_ HANDLE hSourceHandle,
|
||||
_In_ DWORD dwDesiredAccess,
|
||||
_In_ BOOL bInheritHandle,
|
||||
_In_ DWORD dwOptions);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
GetConsoleHandleInformation(
|
||||
_In_ HANDLE hObject,
|
||||
_Out_ LPDWORD lpdwFlags);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
SetConsoleHandleInformation(
|
||||
_In_ HANDLE hObject,
|
||||
_In_ DWORD dwMask,
|
||||
_In_ DWORD dwFlags);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
CloseConsoleHandle(
|
||||
_In_ HANDLE hConsole);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
VerifyConsoleIoHandle(
|
||||
_In_ HANDLE hIoHandle);
|
||||
|
||||
HANDLE
|
||||
APIENTRY
|
||||
GetConsoleInputWaitHandle(
|
||||
VOID);
|
||||
|
||||
typedef struct _CONSOLE_STATE_INFO {
|
||||
/* BEGIN V1 CONSOLE_STATE_INFO */
|
||||
COORD ScreenBufferSize;
|
||||
COORD WindowSize;
|
||||
INT WindowPosX;
|
||||
INT WindowPosY;
|
||||
COORD FontSize;
|
||||
UINT FontFamily;
|
||||
UINT FontWeight;
|
||||
WCHAR FaceName[LF_FACESIZE];
|
||||
UINT CursorSize;
|
||||
UINT FullScreen : 1;
|
||||
UINT QuickEdit : 1;
|
||||
UINT AutoPosition : 1;
|
||||
UINT InsertMode : 1;
|
||||
UINT HistoryNoDup : 1;
|
||||
UINT FullScreenSupported : 1;
|
||||
UINT UpdateValues : 1;
|
||||
UINT Defaults : 1;
|
||||
WORD ScreenAttributes;
|
||||
WORD PopupAttributes;
|
||||
UINT HistoryBufferSize;
|
||||
UINT NumberOfHistoryBuffers;
|
||||
COLORREF ColorTable[16];
|
||||
HWND hWnd;
|
||||
HICON hIcon;
|
||||
LPWSTR OriginalTitle;
|
||||
LPWSTR LinkTitle;
|
||||
|
||||
/*
|
||||
* Starting code page
|
||||
*/
|
||||
UINT CodePage;
|
||||
|
||||
/* END V1 CONSOLE_STATE_INFO */
|
||||
|
||||
/* BEGIN V2 CONSOLE_STATE_INFO */
|
||||
BOOL fIsV2Console;
|
||||
BOOL fWrapText;
|
||||
BOOL fFilterOnPaste;
|
||||
BOOL fCtrlKeyShortcutsDisabled;
|
||||
BOOL fLineSelection;
|
||||
BYTE bWindowTransparency;
|
||||
BOOL fWindowMaximized;
|
||||
|
||||
unsigned int CursorType;
|
||||
COLORREF CursorColor;
|
||||
|
||||
BOOL InterceptCopyPaste;
|
||||
|
||||
COLORREF DefaultForeground;
|
||||
COLORREF DefaultBackground;
|
||||
BOOL TerminalScrolling;
|
||||
/* END V2 CONSOLE_STATE_INFO */
|
||||
|
||||
} CONSOLE_STATE_INFO, *PCONSOLE_STATE_INFO;
|
||||
|
||||
|
||||
#ifdef DEFINE_CONSOLEV2_PROPERTIES
|
||||
#define PID_CONSOLE_FORCEV2 1
|
||||
#define PID_CONSOLE_WRAPTEXT 2
|
||||
#define PID_CONSOLE_FILTERONPASTE 3
|
||||
#define PID_CONSOLE_CTRLKEYSDISABLED 4
|
||||
#define PID_CONSOLE_LINESELECTION 5
|
||||
#define PID_CONSOLE_WINDOWTRANSPARENCY 6
|
||||
#define PID_CONSOLE_WINDOWMAXIMIZED 7
|
||||
#define PID_CONSOLE_CURSOR_TYPE 8
|
||||
#define PID_CONSOLE_CURSOR_COLOR 9
|
||||
#define PID_CONSOLE_INTERCEPT_COPY_PASTE 10
|
||||
#define PID_CONSOLE_DEFAULTFOREGROUND 11
|
||||
#define PID_CONSOLE_DEFAULTBACKGROUND 12
|
||||
#define PID_CONSOLE_TERMINALSCROLLING 13
|
||||
|
||||
#define CONSOLE_PROPKEY(name, id) \
|
||||
DEFINE_PROPERTYKEY(name, 0x0C570607, 0x0396, 0x43DE, 0x9D, 0x61, 0xE3, 0x21, 0xD7, 0xDF, 0x50, 0x26, id);
|
||||
|
||||
CONSOLE_PROPKEY(PKEY_Console_ForceV2, PID_CONSOLE_FORCEV2);
|
||||
CONSOLE_PROPKEY(PKEY_Console_WrapText, PID_CONSOLE_WRAPTEXT);
|
||||
CONSOLE_PROPKEY(PKEY_Console_FilterOnPaste, PID_CONSOLE_FILTERONPASTE);
|
||||
CONSOLE_PROPKEY(PKEY_Console_CtrlKeyShortcutsDisabled, PID_CONSOLE_CTRLKEYSDISABLED);
|
||||
CONSOLE_PROPKEY(PKEY_Console_LineSelection, PID_CONSOLE_LINESELECTION);
|
||||
CONSOLE_PROPKEY(PKEY_Console_WindowTransparency, PID_CONSOLE_WINDOWTRANSPARENCY);
|
||||
CONSOLE_PROPKEY(PKEY_Console_WindowMaximized, PID_CONSOLE_WINDOWMAXIMIZED);
|
||||
CONSOLE_PROPKEY(PKEY_Console_CursorType, PID_CONSOLE_CURSOR_TYPE);
|
||||
CONSOLE_PROPKEY(PKEY_Console_CursorColor, PID_CONSOLE_CURSOR_COLOR);
|
||||
CONSOLE_PROPKEY(PKEY_Console_InterceptCopyPaste, PID_CONSOLE_INTERCEPT_COPY_PASTE);
|
||||
CONSOLE_PROPKEY(PKEY_Console_DefaultForeground, PID_CONSOLE_DEFAULTFOREGROUND);
|
||||
CONSOLE_PROPKEY(PKEY_Console_DefaultBackground, PID_CONSOLE_DEFAULTBACKGROUND);
|
||||
CONSOLE_PROPKEY(PKEY_Console_TerminalScrolling, PID_CONSOLE_TERMINALSCROLLING);
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// Ensure the alignment is WORD boundary
|
||||
//
|
||||
|
||||
#include <pshpack2.h>
|
||||
|
||||
typedef struct {
|
||||
WORD wMod;
|
||||
WORD wVirKey;
|
||||
WCHAR wUnicodeChar;
|
||||
} ExtKeySubst;
|
||||
|
||||
typedef struct {
|
||||
ExtKeySubst keys[3]; // 0: Ctrl
|
||||
// 1: Alt
|
||||
// 2: Ctrl+Alt
|
||||
} ExtKeyDef;
|
||||
|
||||
typedef ExtKeyDef ExtKeyDefTable['Z' - 'A' + 1];
|
||||
|
||||
typedef struct {
|
||||
DWORD dwVersion;
|
||||
DWORD dwCheckSum;
|
||||
ExtKeyDefTable table;
|
||||
} ExtKeyDefBuf;
|
||||
|
||||
//
|
||||
// Restore the previous alignment
|
||||
//
|
||||
|
||||
#include <poppack.h>
|
||||
|
||||
|
||||
#if _MSC_VER >= 1200
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // _WINCONP_
|
||||
3
dep/NT/ntioapi_x.h
Normal file
3
dep/NT/ntioapi_x.h
Normal file
@@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
|
||||
12
dep/Win32K/winuserp.h
Normal file
12
dep/Win32K/winuserp.h
Normal file
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* Reserved console space.
|
||||
*
|
||||
* This was moved from the console code so that we can localize it
|
||||
* in one place. This was necessary for dealing with the background
|
||||
* color, which we need to have for the hungapp drawing. These are
|
||||
* stored in the extra-window-bytes of each console.
|
||||
*/
|
||||
#define GWL_CONSOLE_WNDALLOC (3 * sizeof(DWORD))
|
||||
#define GWL_CONSOLE_PID 0
|
||||
#define GWL_CONSOLE_TID 4
|
||||
#define GWL_CONSOLE_BKCOLOR 8
|
||||
96
dep/WinAppDriver/EULA.rtf
Normal file
96
dep/WinAppDriver/EULA.rtf
Normal file
@@ -0,0 +1,96 @@
|
||||
{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Tahoma;}{\f1\fswiss\fprq2\fcharset0 Arial;}{\f2\fnil\fcharset0 Calibri;}}
|
||||
{\colortbl ;\red0\green0\blue255;}
|
||||
{\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}}
|
||||
{\*\generator Riched20 10.0.10586}\viewkind4\uc1
|
||||
\pard\widctlpar\sb120\sa120\b\f0\fs28 MICROSOFT SOFTWARE LICENSE TERMS\par
|
||||
|
||||
\pard\brdrb\brdrs\brdrw10\brsp20 \widctlpar\sb120\sa120 Pre-Release and Evaluation EULA \endash Windows Application Driver\par
|
||||
|
||||
\pard\widctlpar\sb120\sa120\b0\fs20 IF YOU LIVE IN (OR ARE A BUSINESS WITH YOUR PRINCIPAL PLACE OF BUSINESS IN) THE UNITED STATES, PLEASE READ THE \ldblquote BINDING ARBITRATION AND CLASS ACTION WAIVER\rdblquote SECTION BELOW. IT AFFECTS HOW DISPUTES ARE RESOLVED.\lang9\par
|
||||
|
||||
\pard\brdrt\brdrs\brdrw10\brsp20 \widctlpar\sb120\sa120 These license terms are an agreement between you and Microsoft Corporation (or one of its affiliates). They apply to the software named above and any Microsoft services or software updates (except to the extent such services or updates are accompanied by new or \lang1033 additional terms, in which case those different terms apply prospectively and do not alter your or Microsoft\rquote s rights relating to pre-updated software or services\lang9 ). IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW.\par
|
||||
|
||||
\pard
|
||||
{\pntext\f0 1.\tab}{\*\pn\pnlvlbody\pnf0\pnindent360\pnstart1\pndec{\pntxta.}}
|
||||
\widctlpar\s1\fi-357\li357\sb120\sa120\b\lang1033 INSTALLATION AND USE RIGHTS.\par
|
||||
|
||||
\pard
|
||||
{\pntext\f0 a)\tab}{\*\pn\pnlvlbody\pnf0\pnindent0\pnstart1\pnlcltr{\pntxta)}}
|
||||
\widctlpar\s2\fi-360\li717\sb120\sa120 General. \b0 You may install and use any number of copies of the software on your devices, solely to i) evaluate for internal business purposes; and ii) design, develop and test your applications. \par
|
||||
{\pntext\f0 b)\tab}\b Included Microsoft Applications. \b0 The software may include other Microsoft applications. These license terms apply to those included applications, if any, unless other license terms are provided with the other Microsoft applications.\par
|
||||
{\pntext\f0 c)\tab}\b Third Party Applications. \b0 The software may include third party applications that Microsoft, not the third party, licenses to you under this agreement. Any included notices for third party applications are for your information only and are listed in Exhibit A to these license terms.\par
|
||||
{\pntext\f0 d)\tab}\b No Distribution Rights. \b0 This agreement does not grant you a license to distribute nor sublicense all or part of the software to any third party.\par
|
||||
{\pntext\f0 e)\tab}\b\lang9 Package Managers. \b0\lang1033 The software may include package managers, like NuGet, that give you the option to download other Microsoft and third party software packages to use with your application. Those packages are under their own licenses, and not this agreement. Microsoft does not distribute, license or provide any warranties for any of the third party packages\lang9 .\lang1033\par
|
||||
|
||||
\pard\widctlpar\s1\fi-357\li357\sb120\sa120\b 2.\tab TIME-SENSITIVE SOFTWARE.\par
|
||||
|
||||
\pard
|
||||
{\pntext\f0 a)\tab}{\*\pn\pnlvlbody\pnf0\pnindent0\pnstart1\pnlcltr{\pntxta)}}
|
||||
\widctlpar\s2\fi-360\li717\sb120\sa120 Period. \b0 The software is time-sensitive and may stop running on a date that is defined in the software.\par
|
||||
{\pntext\f0 b)\tab}\b Notice. \b0 You may receive periodic reminder notices of this date through the software.\par
|
||||
{\pntext\f0 c)\tab}\b Access to data. \b0 You may not be able to access data used in the software when it stops running.\par
|
||||
|
||||
\pard\widctlpar\s1\fi-357\li357\sb120\sa120\b 3.\tab PRE-RELEASE SOFTWARE.\b0 The software is a pre-release version. It may not operate correctly. It may be different from the commercially released version.\par
|
||||
\b 4.\tab FEEDBACK.\b0 If you give feedback about the software to Microsoft, you give to Microsoft, without charge, the right to use, share and commercialize your feedback in any way and for any purpose. You will not give feedback that is subject to a license that requires Microsoft to license its software or documentation to third parties because Microsoft includes your feedback in them. These rights survive this agreement.\par
|
||||
\b 5.\tab DATA.\b0 The software may collect information about you and your use of the software and send that to Microsoft. Microsoft may use this information to provide services and improve Microsoft\rquote s products and services. Your opt-out rights, if any, are described in\b \b0 the product documentation. Some features in the software may enable collection of data from users of your applications that access or use the software. If you use these features to enable data collection in your applications, you must comply with applicable law, including getting any required user consent, and maintain a prominent privacy policy that accurately informs users about how you use, collect, and share their data. You can learn more about Microsoft\rquote s data collection and use in the product documentation and the Microsoft Privacy Statement at {{\field{\*\fldinst{HYPERLINK http://go.microsoft.com/fwlink/?LinkID=521839 }}{\fldrslt{http://go.microsoft.com/fwlink/?LinkID=521839\ul0\cf0}}}}\f0\fs20 . You agree to comply with all applicable provisions of the Microsoft Privacy Statement.\par
|
||||
\b 6.\tab SCOPE OF LICENSE.\b0 The software is licensed, not sold. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you will not (and have no right to):\par
|
||||
|
||||
\pard
|
||||
{\pntext\f0 a)\tab}{\*\pn\pnlvlbody\pnf0\pnindent0\pnstart1\pnlcltr{\pntxta)}}
|
||||
\widctlpar\s2\fi-360\li717\sb120\sa120 work around any technical limitations in the software that only allow you to use it in certain ways;\par
|
||||
{\pntext\f0 b)\tab}reverse engineer, decompile or disassemble the software;\par
|
||||
{\pntext\f0 c)\tab}remove, minimize, block, or modify any notices of Microsoft or its suppliers in the software;\par
|
||||
{\pntext\f0 d)\tab}use the software in any way that is against the law or to create or propagate malware; or\par
|
||||
{\pntext\f0 e)\tab}share, publish, or lend the software (except for any distributable code, and then subject to the applicable terms above), provide the software as a stand-alone hosted solution for others to use, or transfer the software or this agreement to any third party.\par
|
||||
|
||||
\pard\widctlpar\s1\fi-357\li357\sb120\sa120\b 7.\tab EXPORT RESTRICTIONS.\b0 You must comply with all domestic and international export laws and regulations that apply to the software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit (aka.ms/exporting).\par
|
||||
\b 8.\tab SUPPORT SERVICES.\b0 Microsoft is not obligated under this agreement to provide any support services for the software. Any support provided is \ldblquote as is\rdblquote , \ldblquote with all faults\rdblquote , and without warranty of any kind.\par
|
||||
\b 9.\tab UPDATES.\b0 The software may periodically check for updates, and download and install them for you. You may obtain updates only from Microsoft or authorized sources. Microsoft may need to update your system to provide you with updates. You agree to receive these automatic updates without any additional notice. Updates may not include or support all existing software features, services, or peripheral devices.\par
|
||||
\b 10.\tab BINDING ARBITRATION AND CLASS ACTION WAIVER.\b0 This Section applies if you live in (or, if a business, your principal place of business is in) the United States. If you and Microsoft have a dispute, you and Microsoft agree to try for 60 days to resolve it informally. If you and Microsoft can\rquote t, you and Microsoft agree to binding individual arbitration before the American Arbitration Association under the Federal Arbitration Act (\ldblquote FAA\rdblquote ), and not to sue in court in front of a judge or jury. Instead, a neutral arbitrator will decide. Class action lawsuits, class-wide arbitrations, private attorney-general actions, and any other proceeding where someone acts in a representative capacity are not allowed; nor is combining individual proceedings without the consent of all parties. The complete Arbitration Agreement contains more terms and is at aka.ms/arb-agreement-1. You and Microsoft agree to these terms.\par
|
||||
\b 11.\tab ENTIRE AGREEMENT.\b0 This agreement, and any other terms Microsoft may provide for supplements, updates, or third-party applications, is the entire agreement for the software.\par
|
||||
\b 12.\tab APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES.\b0 If you acquired the software in the United States or Canada, the laws of the state or province where you live (or, if a business, where your principal place of business is located) govern the interpretation of this agreement, claims for its breach, and all other claims (including consumer protection, unfair competition, and tort claims), regardless of conflict of laws principles, except that the FAA governs everything related to arbitration. If you acquired the software in any other country, its laws apply, except that the FAA governs everything related to arbitration. If U.S. federal jurisdiction exists, you and Microsoft consent to exclusive jurisdiction and venue in the federal court in King County, Washington for all disputes heard in court (excluding arbitration). If not, you and Microsoft consent to exclusive jurisdiction and venue in the Superior Court of King County, Washington for all disputes heard in court (excluding arbitration).\par
|
||||
\b 13.\tab CONSUMER RIGHTS; REGIONAL VARIATIONS\b0 . This agreement describes certain legal rights. You may have other rights, including consumer rights, under the laws of your state, province, or country. Separate and apart from your relationship with Microsoft, you may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state, province, or country do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country law applies, then the following provisions apply to you:\par
|
||||
|
||||
\pard
|
||||
{\pntext\f0 a)\tab}{\*\pn\pnlvlbody\pnf0\pnindent0\pnstart1\pnlcltr{\pntxta)}}
|
||||
\widctlpar\s2\fi-360\li717\sb120\sa120\b Australia.\b0 You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to affect those rights.\par
|
||||
{\pntext\f0 b)\tab}\b Canada.\b0 If you acquired this software in Canada, you may stop receiving updates by turning off the automatic update feature, disconnecting your device from the Internet (if and when you re-connect to the Internet, however, the software will resume checking for and installing updates), or uninstalling the software. The product documentation, if any, may also specify how to turn off updates for your specific device or software.\par
|
||||
{\pntext\f0 c)\tab}\b Germany and Austria\b0 .\par
|
||||
|
||||
\pard\widctlpar\li717\sb120\sa120\b (i)\b0\tab\b Warranty.\b0 The properly licensed software will perform substantially as described in any Microsoft materials that accompany the software. However, Microsoft gives no contractual guarantee in relation to the licensed software.\par
|
||||
\b (ii)\b0\tab\b Limitation of Liability\b0 . In case of intentional conduct, gross negligence, claims based on the Product Liability Act, as well as, in case of death or personal or physical injury, Microsoft is liable according to the statutory law.\par
|
||||
|
||||
\pard\widctlpar\s1\li717\sb120\sa120 Subject to the foregoing clause (ii), Microsoft will only be liable for slight negligence if Microsoft is in breach of such material contractual obligations, the fulfillment of which facilitate the due performance of this agreement, the breach of which would endanger the purpose of this agreement and the compliance with which a party may constantly trust in (so-called "cardinal obligations"). In other cases of slight negligence, Microsoft will not be liable for slight negligence.\par
|
||||
|
||||
\pard\widctlpar\s1\fi-357\li357\sb120\sa120\b 14.\tab DISCLAIMER OF WARRANTY.\b0 \b THE SOFTWARE IS LICENSED \ldblquote AS IS.\rdblquote YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.\b0\par
|
||||
\b 15.\tab LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.\par
|
||||
|
||||
\pard\widctlpar\li357\sb120\sa120\b0 This limitation applies to (a) anything related to the software, services, content (including code) on third party Internet sites, or third party applications; and (b) claims for breach of contract, warranty, guarantee, or condition; strict liability, negligence, or other tort; or any other claim; in each case to the extent permitted by applicable law.\par
|
||||
It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country may not allow the exclusion or limitation of incidental, consequential, or other damages.\par
|
||||
|
||||
\pard\widctlpar\sb120\sa120\page\par
|
||||
|
||||
\pard\widctlpar\sb120\sa120\qc EXHIBIT A\par
|
||||
THIRD PARTY NOTICES AND INFORMATION\par
|
||||
FOR\par
|
||||
MICROSOFT WINDOWS APPLICATION DRIVER\par
|
||||
|
||||
\pard\widctlpar\sb120\sa120\par
|
||||
THIRD-PARTY SOFTWARE NOTICES AND INFORMATION\line\line Note: While Microsoft is not the author of the files below, Microsoft is offering you a license subject to the terms of the Microsoft Software License Terms for Microsoft Windows Application Driver (the \ldblquote Microsoft Program\rdblquote ). Microsoft reserves all other rights. The notices below are provided for informational purposes only and are not the license terms under which Microsoft distributes these files.\par
|
||||
The Microsoft Program includes the following third-party software:\par
|
||||
1.\tab Newtonsoft.json version 7.0. ({\b{\field{\*\fldinst{HYPERLINK http://www.newtonsoft.com/json }}{\fldrslt{http://www.newtonsoft.com/json\ul0\cf0}}}}\f0\fs20 )\par
|
||||
2.\tab Casablanca ({{\field{\*\fldinst{HYPERLINK http://casablanca.codeplex.com/ }}{\fldrslt{http://casablanca.codeplex.com/\ul0\cf0}}}}\f0\fs20 )\par
|
||||
As the recipient of the above third-party software, Microsoft sets forth a copy of the notices and other information below.\par
|
||||
1. Newtonsoft.json version 7.0.1 ({{\field{\*\fldinst{HYPERLINK http://www.newtonsoft.com/json }}{\fldrslt{http://www.newtonsoft.com/json\ul0\cf0}}}}\f0\fs20 )\par
|
||||
NEWTONSOFT.JSON NOTICES AND INFORMATION BEGIN HERE\line =========================================\par
|
||||
The MIT License (MIT)\line\line Copyright (c) 2007 James Newton-King\line\line Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\line\line The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\line\line THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par
|
||||
NEWTONSOFT.JSON NOTICES AND INFORMATION END HERE\line =========================================\par
|
||||
2. Casablanca ({{\field{\*\fldinst{HYPERLINK http://casablanca.codeplex.com/ }}{\fldrslt{http://casablanca.codeplex.com/\ul0\cf0}}}}\f0\fs20 )\par
|
||||
CASABLANCA NOTICES AND INFORMATION BEGIN HERE\line =========================================\par
|
||||
Copyright (c) Microsoft Corporation. All rights reserved. \line Licensed under the Apache License, Version 2.0 (the "License");\line you may not use this file except in compliance with the License.\line You may obtain a copy of the License at\line {{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f0\fs20\line\line Unless required by applicable law or agreed to in writing, software\line\f1\fs19 distributed under the License is distributed on an "AS IS" BASIS,\line WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\line See the License for the specific language governing permissions and\line limitations under the License.\fs20\par
|
||||
\f0 CASABLANCA NOTICES AND INFORMATION END HERE\line =========================================\par
|
||||
\par
|
||||
|
||||
\pard\sa200\sl276\slmult1\f2\fs22\lang9\par
|
||||
}
|
||||
| ||||