Skip to content

Commit 4381c7a

Browse files
committed
Rework how we handle XTGETTCAP so that it works for all terminfo keys. In the process abstract out terminfo stuff into iTermTerminfo so that it can be used from any thread. Add Ms to my hacked xterm-256color. Issue 11723
1 parent 322e266 commit 4381c7a

16 files changed

+2131
-648
lines changed

ThirdParty/Licenses.txt

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -846,3 +846,38 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
846846
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
847847
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
848848
SOFTWARE.
849+
850+
---
851+
WezTerm
852+
From https://github.com/wez/wezterm
853+
854+
MIT License
855+
856+
Copyright (c) 2018-Present Wez Furlong
857+
858+
Permission is hereby granted, free of charge, to any person obtaining a copy
859+
of this software and associated documentation files (the "Software"), to deal
860+
in the Software without restriction, including without limitation the rights
861+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
862+
copies of the Software, and to permit persons to whom the Software is
863+
furnished to do so, subject to the following conditions:
864+
865+
The above copyright notice and this permission notice shall be included in all
866+
copies or substantial portions of the Software.
867+
868+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
869+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
870+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
871+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
872+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
873+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
874+
SOFTWARE.
875+
876+
WezTerm bundles `JetBrains Mono`, `Noto Color Emoji` and `Roboto` fonts.
877+
Those are distributed under the terms of the OFL 1.1, the text of which
878+
can be found in the assets/fonts directory.
879+
880+
WezTerm bundles `Symbols Nerd Font Mono`, built from only those icon sets
881+
available from https://github.com/ryanoasis/nerd-fonts which are clearly
882+
distributed under the terms of the OFL 1.1.
883+
Note that WezTerm excludes the Pomicons icon set from this collection.

iTerm2.xcodeproj/project.pbxproj

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1535,6 +1535,8 @@
15351535
A63935962103FD8B00A16D1C /* iTermMemoryUtilization.m in Sources */ = {isa = PBXBuildFile; fileRef = A63935942103FD8B00A16D1C /* iTermMemoryUtilization.m */; };
15361536
A6393599210401C700A16D1C /* iTermStatusBarMemoryUtilizationComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = A6393597210401C700A16D1C /* iTermStatusBarMemoryUtilizationComponent.h */; };
15371537
A639359A210401C700A16D1C /* iTermStatusBarMemoryUtilizationComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = A6393598210401C700A16D1C /* iTermStatusBarMemoryUtilizationComponent.m */; };
1538+
A6396B032C4722210064BCFD /* iTermTerminfo.h in Headers */ = {isa = PBXBuildFile; fileRef = A6396B012C4722210064BCFD /* iTermTerminfo.h */; };
1539+
A6396B042C4722210064BCFD /* iTermTerminfo.m in Sources */ = {isa = PBXBuildFile; fileRef = A6396B022C4722210064BCFD /* iTermTerminfo.m */; };
15381540
A639E1A02112CA33001696DE /* iTermEchoProbe.h in Headers */ = {isa = PBXBuildFile; fileRef = A639E19E2112CA32001696DE /* iTermEchoProbe.h */; };
15391541
A639E1A12112CA33001696DE /* iTermEchoProbe.m in Sources */ = {isa = PBXBuildFile; fileRef = A639E19F2112CA33001696DE /* iTermEchoProbe.m */; };
15401542
A63B9D5B234EE4ED002EEF30 /* ToolProfiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DE8DC8C1415546000F83147 /* ToolProfiles.m */; };
@@ -2797,6 +2799,8 @@
27972799
A6A802EA226ED20800BC70DC /* iTermPrintGuard.m in Sources */ = {isa = PBXBuildFile; fileRef = A6A802E8226ED20800BC70DC /* iTermPrintGuard.m */; };
27982800
A6A802ED226EEAE900BC70DC /* PTYTask+MRR.h in Headers */ = {isa = PBXBuildFile; fileRef = A6A802EB226EEAE900BC70DC /* PTYTask+MRR.h */; };
27992801
A6A802EE226EEAE900BC70DC /* PTYTask+MRR.m in Sources */ = {isa = PBXBuildFile; fileRef = A6A802EC226EEAE900BC70DC /* PTYTask+MRR.m */; };
2802+
A6A93F582C49BD2F00F07BAB /* iTermTerminfoHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = A6A93F562C49BD2F00F07BAB /* iTermTerminfoHelper.h */; };
2803+
A6A93F592C49BD2F00F07BAB /* iTermTerminfoHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A6A93F572C49BD2F00F07BAB /* iTermTerminfoHelper.m */; };
28002804
A6A9838C27E5A83C003319D1 /* PasswordManagerDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6A9838B27E5A83C003319D1 /* PasswordManagerDataSource.swift */; };
28012805
A6A9838D27E5B3E5003319D1 /* iTermApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = DDF0FD64062916F70080EF74 /* iTermApplication.m */; };
28022806
A6A9838F27E5C3DA003319D1 /* KeychainPasswordDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6A9838E27E5C3DA003319D1 /* KeychainPasswordDataSource.swift */; };
@@ -5820,6 +5824,8 @@
58205824
A63935942103FD8B00A16D1C /* iTermMemoryUtilization.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iTermMemoryUtilization.m; sourceTree = "<group>"; };
58215825
A6393597210401C700A16D1C /* iTermStatusBarMemoryUtilizationComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = iTermStatusBarMemoryUtilizationComponent.h; sourceTree = "<group>"; };
58225826
A6393598210401C700A16D1C /* iTermStatusBarMemoryUtilizationComponent.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iTermStatusBarMemoryUtilizationComponent.m; sourceTree = "<group>"; };
5827+
A6396B012C4722210064BCFD /* iTermTerminfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = iTermTerminfo.h; sourceTree = "<group>"; };
5828+
A6396B022C4722210064BCFD /* iTermTerminfo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iTermTerminfo.m; sourceTree = "<group>"; };
58235829
A639E19E2112CA32001696DE /* iTermEchoProbe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = iTermEchoProbe.h; sourceTree = "<group>"; };
58245830
A639E19F2112CA33001696DE /* iTermEchoProbe.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iTermEchoProbe.m; sourceTree = "<group>"; };
58255831
A63BA39318A9CB43002BE075 /* iTermSelection.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = iTermSelection.h; sourceTree = "<group>"; tabWidth = 4; };
@@ -6779,6 +6785,8 @@
67796785
A6A802E8226ED20800BC70DC /* iTermPrintGuard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iTermPrintGuard.m; sourceTree = "<group>"; };
67806786
A6A802EB226EEAE900BC70DC /* PTYTask+MRR.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PTYTask+MRR.h"; sourceTree = "<group>"; };
67816787
A6A802EC226EEAE900BC70DC /* PTYTask+MRR.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "PTYTask+MRR.m"; sourceTree = "<group>"; };
6788+
A6A93F562C49BD2F00F07BAB /* iTermTerminfoHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = iTermTerminfoHelper.h; sourceTree = "<group>"; };
6789+
A6A93F572C49BD2F00F07BAB /* iTermTerminfoHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iTermTerminfoHelper.m; sourceTree = "<group>"; };
67826790
A6A9838B27E5A83C003319D1 /* PasswordManagerDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasswordManagerDataSource.swift; sourceTree = "<group>"; };
67836791
A6A9838E27E5C3DA003319D1 /* KeychainPasswordDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainPasswordDataSource.swift; sourceTree = "<group>"; };
67846792
A6A9839027E5C427003319D1 /* PasswordManagerDataSourceProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasswordManagerDataSourceProvider.swift; sourceTree = "<group>"; };
@@ -10847,6 +10855,10 @@
1084710855
A6F66B9F2C2E2BBB00DC3569 /* iTermMutableOrderedSet.swift */,
1084810856
A6F66BA12C2E2C0700DC3569 /* iTermMutableOrderedSet.h */,
1084910857
A6F66BA22C2E2C0700DC3569 /* iTermMutableOrderedSet.m */,
10858+
A6396B012C4722210064BCFD /* iTermTerminfo.h */,
10859+
A6396B022C4722210064BCFD /* iTermTerminfo.m */,
10860+
A6A93F562C49BD2F00F07BAB /* iTermTerminfoHelper.h */,
10861+
A6A93F572C49BD2F00F07BAB /* iTermTerminfoHelper.m */,
1085010862
);
1085110863
name = Helpers;
1085210864
sourceTree = "<group>";
@@ -12481,6 +12493,7 @@
1248112493
53FF984B20967806008688D7 /* iTermMetalDeviceProvider.h in Headers */,
1248212494
A60C0393208F8B5000FE2F1F /* iTermScriptsMenuController.h in Headers */,
1248312495
A618FFC92245F89900B8FD88 /* iTermStatusBarKnobActionViewController.h in Headers */,
12496+
A6A93F582C49BD2F00F07BAB /* iTermTerminfoHelper.h in Headers */,
1248412497
A6E34BD02118097A00F147DD /* iTermBackgroundDrawingHelper.h in Headers */,
1248512498
A667190F1DCE36C3000CE608 /* SSKeychain.h in Headers */,
1248612499
A630117A20E69C23008114B7 /* iTermStatusBarSwiftyStringComponent.h in Headers */,
@@ -12896,6 +12909,7 @@
1289612909
A62EED9A20E0104000943DE3 /* iTermScriptArchive.h in Headers */,
1289712910
53FF9813209247E2008688D7 /* iTermScriptTemplatePickerWindowController.h in Headers */,
1289812911
A66719501DCE36C3000CE608 /* iTermWebViewWrapperViewController.h in Headers */,
12912+
A6396B032C4722210064BCFD /* iTermTerminfo.h in Headers */,
1289912913
A66719511DCE36C3000CE608 /* iTermPreferences.h in Headers */,
1290012914
53AFFC8F1DD2A04600E6CEC6 /* iTermLSOF.h in Headers */,
1290112915
A675856024595D6C00827C25 /* iTermSquash.h in Headers */,
@@ -15641,6 +15655,7 @@
1564115655
A618FFBE22409DF900B8FD88 /* iTermTheme.m in Sources */,
1564215656
A6DF91B62477B38700FB9F42 /* iTermMissionControlHacks.m in Sources */,
1564315657
A6A64E5A2508AF650040490B /* iTermActionsMenuController.m in Sources */,
15658+
A6A93F592C49BD2F00F07BAB /* iTermTerminfoHelper.m in Sources */,
1564415659
A66719651DCE3772000CE608 /* iTermHTTPConnection.m in Sources */,
1564515660
A678C50B279B32C600C59927 /* ComplexCharRegistry.swift in Sources */,
1564615661
A65105A229F24A4200657EB0 /* PromptStateMachine.swift in Sources */,
@@ -15694,6 +15709,7 @@
1569415709
A666D5E9221A191600D6184A /* iTermVariableScope+Session.m in Sources */,
1569515710
A6A73D3927C7F96C002E4CCA /* NSArray+CommonAdditions.m in Sources */,
1569615711
A666D5ED221A1D9D00D6184A /* iTermVariableScope+Tab.m in Sources */,
15712+
A6396B042C4722210064BCFD /* iTermTerminfo.m in Sources */,
1569715713
A667C26F277B8F1F006B4DEF /* VT100ScreenMutableState.m in Sources */,
1569815714
A668E8A31E7EFEA5005F8758 /* iTermURLStore.m in Sources */,
1569915715
A6A802E1226AD0D200BC70DC /* iTermSearchHistory.m in Sources */,

0 commit comments

Comments
 (0)