Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • karan_m/iterm2
  • zhaochangqing/iterm2
  • joykeeper/iterm2
  • nleroux/iterm2
  • kenji21/iterm2
  • gagasegsegsegeg/iterm2
  • stanhu/iterm2
  • ivyfan/iterm2
  • DAddYE/iterm2
  • trave801/iterm2
  • lordrings/iterm2
  • tweekmonster/iterm2
  • imardaras/iterm2
  • DabeDotCom/iterm2
  • sherifamin83/iterm2
  • aquarecif/iterm2
  • visualrobots/iterm2
  • xmarianox/iterm2
  • doomsayer13/iterm2
  • vikdutt/iterm2
  • me36/iterm2
  • DevGrohl/iterm2
  • manigandan-rajasekar/iterm2
  • DWoodiwiss/iterm2
  • vti/iterm2
  • DamonQin/iterm2
26 results
Show changes
Commits on Source (28)
Showing
with 121 additions and 118 deletions
Loading
Loading
@@ -3370,7 +3370,6 @@ DQ
<button misplaced="YES" id="Wi4-0H-Bb4">
<rect key="frame" x="21" y="18" width="162" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<string key="toolTip">If Shell Integration is enabled, this prevents command prompts from starting in the middle of a line when the previous command did not end with a newline.</string>
<buttonCell key="cell" type="check" title="Show mark indicators" bezelStyle="regularSquare" imagePosition="left" alignment="left" state="on" inset="2" id="uCi-Qa-X8t">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
Loading
Loading
Loading
Loading
@@ -34,7 +34,7 @@ Dep:
Beta:
cp plists/release-iTerm2.plist plists/iTerm2.plist
xcodebuild -parallelizeTargets -target iTerm2 -configuration Beta && \
chmod -R go+rX build/Deployment
chmod -R go+rX build/Beta
 
Deployment:
xcodebuild -parallelizeTargets -target iTerm2 -configuration Deployment && \
Loading
Loading
Loading
Loading
@@ -1267,8 +1267,6 @@
A61D16FC1AAFD5530013FCCA /* iTermBackgroundColorRun.h in Headers */ = {isa = PBXBuildFile; fileRef = A61D16FA1AAFD5530013FCCA /* iTermBackgroundColorRun.h */; };
A61D16FD1AAFD5530013FCCA /* iTermBackgroundColorRun.h in Headers */ = {isa = PBXBuildFile; fileRef = A61D16FA1AAFD5530013FCCA /* iTermBackgroundColorRun.h */; };
A61F8E301E62591800D315D0 /* iTermFakeUserDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = A61F8E2F1E62591800D315D0 /* iTermFakeUserDefaults.m */; };
A623D9471F8972750011F8C3 /* iTermCallWithTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = A623D9451F8972750011F8C3 /* iTermCallWithTimeout.h */; };
A623D9481F8972750011F8C3 /* iTermCallWithTimeout.m in Sources */ = {isa = PBXBuildFile; fileRef = A623D9461F8972750011F8C3 /* iTermCallWithTimeout.m */; };
A623D94B1F8984690011F8C3 /* key.png in Resources */ = {isa = PBXBuildFile; fileRef = A623D9491F8983D70011F8C3 /* key.png */; };
A623D94C1F8984690011F8C3 /* key.png in Resources */ = {isa = PBXBuildFile; fileRef = A623D9491F8983D70011F8C3 /* key.png */; };
A623D94D1F89846A0011F8C3 /* key.png in Resources */ = {isa = PBXBuildFile; fileRef = A623D9491F8983D70011F8C3 /* key.png */; };
Loading
Loading
@@ -3251,8 +3249,6 @@
A61D16FB1AAFD5530013FCCA /* iTermBackgroundColorRun.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iTermBackgroundColorRun.m; sourceTree = "<group>"; };
A61F8E2E1E62591800D315D0 /* iTermFakeUserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iTermFakeUserDefaults.h; sourceTree = "<group>"; };
A61F8E2F1E62591800D315D0 /* iTermFakeUserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iTermFakeUserDefaults.m; sourceTree = "<group>"; };
A623D9451F8972750011F8C3 /* iTermCallWithTimeout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = iTermCallWithTimeout.h; sourceTree = "<group>"; };
A623D9461F8972750011F8C3 /* iTermCallWithTimeout.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iTermCallWithTimeout.m; sourceTree = "<group>"; };
A623D9491F8983D70011F8C3 /* key.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = key.png; path = images/key.png; sourceTree = "<group>"; };
A623D94A1F8983D80011F8C3 /* key@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "key@2x.png"; path = "images/key@2x.png"; sourceTree = "<group>"; };
A624230F19CF6B0C00182C08 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ThirdParty/Sparkle.framework; sourceTree = "<group>"; };
Loading
Loading
@@ -5738,8 +5734,6 @@
A65EC02E1F31800300AC0A6B /* iTermUpdateCadenceController.m */,
A65EC0311F3181E700AC0A6B /* NSTimer+iTerm.h */,
A65EC0321F3181E700AC0A6B /* NSTimer+iTerm.m */,
A623D9451F8972750011F8C3 /* iTermCallWithTimeout.h */,
A623D9461F8972750011F8C3 /* iTermCallWithTimeout.m */,
);
name = Helpers;
sourceTree = "<group>";
Loading
Loading
@@ -6885,7 +6879,6 @@
A667193D1DCE36C3000CE608 /* iTermHotkeyPreferencesModel.h in Headers */,
A667193E1DCE36C3000CE608 /* NSLocale+iTerm.h in Headers */,
A667193F1DCE36C3000CE608 /* iTermDirectoryTree.h in Headers */,
A623D9471F8972750011F8C3 /* iTermCallWithTimeout.h in Headers */,
A66719401DCE36C3000CE608 /* iTermOpenQuicklyCommands.h in Headers */,
A62A1F761E711BC000363EE9 /* iTermHelpMessageViewController.h in Headers */,
A66719411DCE36C3000CE608 /* iTermSystemVersion.h in Headers */,
Loading
Loading
@@ -7221,8 +7214,7 @@
DevelopmentTeam = H7V7XYVQ7D;
};
874206460564169600CFC3F1 = {
DevelopmentTeam = H7V7XYVQ7D;
ProvisioningStyle = Automatic;
ProvisioningStyle = Manual;
};
A66717851DCE36C3000CE608 = {
DevelopmentTeam = H7V7XYVQ7D;
Loading
Loading
@@ -8428,7 +8420,6 @@
A65EC0301F31800300AC0A6B /* iTermUpdateCadenceController.m in Sources */,
A66719661DCE3772000CE608 /* iTermWebSocketFrame.m in Sources */,
A65EC0341F3181E700AC0A6B /* NSTimer+iTerm.m in Sources */,
A623D9481F8972750011F8C3 /* iTermCallWithTimeout.m in Sources */,
A66EF82D1EF59CFC0005891A /* iTermRateLimitedUpdate.m in Sources */,
A66719601DCE3772000CE608 /* iTermAPIServer.m in Sources */,
A60BB38F1EB6A08A00D76C09 /* iTermProcessCollection.m in Sources */,
Loading
Loading
@@ -9013,11 +9004,11 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_WARN_INT_CONVERSION = YES;
CODE_SIGN_IDENTITY = "Mac Developer";
CODE_SIGN_STYLE = Automatic;
CODE_SIGN_IDENTITY = "Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D)";
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
DEVELOPMENT_TEAM = H7V7XYVQ7D;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)",
Loading
Loading
@@ -9646,11 +9637,11 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_WARN_INT_CONVERSION = YES;
CODE_SIGN_IDENTITY = "Mac Developer";
CODE_SIGN_STYLE = Automatic;
CODE_SIGN_IDENTITY = "Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D)";
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
DEVELOPMENT_TEAM = H7V7XYVQ7D;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)",
Loading
Loading
@@ -10673,12 +10664,12 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_WARN_INT_CONVERSION = YES;
CODE_SIGN_IDENTITY = "Mac Developer";
CODE_SIGN_STYLE = Automatic;
CODE_SIGN_IDENTITY = "Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D)";
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = H7V7XYVQ7D;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)",
Loading
Loading
@@ -10748,11 +10739,11 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_WARN_INT_CONVERSION = YES;
CODE_SIGN_IDENTITY = "Mac Developer";
CODE_SIGN_STYLE = Automatic;
CODE_SIGN_IDENTITY = "Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D)";
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
DEVELOPMENT_TEAM = H7V7XYVQ7D;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)",
Loading
Loading
@@ -63,6 +63,7 @@
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
enableAddressSanitizer = "YES"
disableMainThreadChecker = "YES"
language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
Loading
Loading
@@ -81,11 +82,6 @@
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
<AdditionalOption
key = "NSZombieEnabled"
value = "YES"
isEnabled = "YES">
</AdditionalOption>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
Loading
Loading
Loading
Loading
@@ -185,6 +185,7 @@
// ` not supported (Character Position Absolute [column] (default = [row,1]) (HPA))
// a not supported (Character Position Relative [columns] (default = [row,col+1]) (HPR))
// b not supported (Repeat the preceding graphic character P s times (REP))
{ 0, 0, 'b', VT100CSI_REP, 1, -1, -1 },
{ 0, 0, 'c', VT100CSI_DA, 0, -1, -1 },
{ '>', 0, 'c', VT100CSI_DA2, 0, -1, -1 },
{ 0, 0, 'd', ANSICSI_VPA, 1, -1, -1 },
Loading
Loading
@@ -281,7 +282,6 @@
"1;1;1;1;1T",
"`",
"a",
"1b",
"?1i",
">0p",
"1$p",
Loading
Loading
Loading
Loading
@@ -40,13 +40,6 @@
}
 
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory {
BOOL timedOut;
return [self fileExistsAtPath:path isDirectory:isDirectory timedOut:&timedOut];
}
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory timedOut:(BOOL *)timedOut {
*timedOut = NO;
if ([_files containsObject:path]) {
if (isDirectory) {
*isDirectory = NO;
Loading
Loading
@@ -65,8 +58,7 @@
}
 
- (BOOL)fileExistsAtPathLocally:(NSString *)filename
additionalNetworkPaths:(NSArray<NSString *> *)additionalNetworkPaths
timedOut:(BOOL *)timedOutPtr {
additionalNetworkPaths:(NSArray<NSString *> *)additionalNetworkPaths {
NSMutableArray *networkPaths = [[_networkMountPoints mutableCopy] autorelease];
[networkPaths addObjectsFromArray:additionalNetworkPaths];
for (NSString *networkPath in networkPaths) {
Loading
Loading
@@ -79,8 +71,7 @@
}
 
- (BOOL)fileExistsAtPath:(NSString *)path {
BOOL timedOut;
return [self fileExistsAtPath:path isDirectory:NULL timedOut:&timedOut];
return [self fileExistsAtPath:path isDirectory:NULL];
}
 
@end
Loading
Loading
@@ -178,21 +169,17 @@
#pragma mark - Get Full Path
 
- (void)testGetFullPathFailsOnNil {
BOOL timedOut;
XCTAssert([_semanticHistoryController getFullPath:nil
workingDirectory:@"/"
lineNumber:NULL
columnNumber:NULL
timedOut:&timedOut] == nil);
columnNumber:NULL] == nil);
}
 
- (void)testGetFullPathFailsOnEmpty {
BOOL timedOut;
XCTAssert([_semanticHistoryController getFullPath:@""
workingDirectory:@"/"
lineNumber:NULL
columnNumber:NULL
timedOut:&timedOut] == nil);
columnNumber:NULL] == nil);
}
 
- (void)testGetFullPathFindsExistingFileAtAbsolutePath {
Loading
Loading
@@ -201,12 +188,10 @@
static NSString *const kFilename = @"/path/to/file";
static NSString *const kWorkingDirectory = @"/working/directory";
[_semanticHistoryController.fakeFileManager.files addObject:kFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
NSString *expected = kFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -220,12 +205,10 @@
NSString *kAbsoluteFilename =
[kWorkingDirectory stringByAppendingPathComponent:kRelativeFilename];
[_semanticHistoryController.fakeFileManager.files addObject:kAbsoluteFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kRelativeFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
NSString *expected = kAbsoluteFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -239,12 +222,10 @@
NSString *kFilenameWithParens = [NSString stringWithFormat:@"%C%@%C", [delimiters characterAtIndex:0], kFilename, [delimiters characterAtIndex:1]];
static NSString *const kWorkingDirectory = @"/working/directory";
[_semanticHistoryController.fakeFileManager.files addObject:kFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilenameWithParens
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
NSString *expected = kFilename;
assert([expected isEqualToString:actual]);
assert(lineNumber.length == 0);
Loading
Loading
@@ -259,12 +240,10 @@
NSString *kFilenameWithParens = [kFilename stringByAppendingString:punctuation];
static NSString *const kWorkingDirectory = @"/working/directory";
[_semanticHistoryController.fakeFileManager.files addObject:kFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilenameWithParens
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
NSString *expected = kFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -278,12 +257,10 @@
static NSString *const kWorkingDirectory = @"/working/directory";
NSString *kFilenameWithLineNumber = [kFilename stringByAppendingString:@":123"];
[_semanticHistoryController.fakeFileManager.files addObject:kFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilenameWithLineNumber
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
NSString *expected = kFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.integerValue == 123);
Loading
Loading
@@ -296,12 +273,10 @@
static NSString *const kWorkingDirectory = @"/working/directory";
NSString *kFilenameWithLineNumber = [kFilename stringByAppendingString:@":123:456"];
[_semanticHistoryController.fakeFileManager.files addObject:kFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilenameWithLineNumber
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
NSString *expected = kFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.integerValue == 123);
Loading
Loading
@@ -314,12 +289,10 @@
static NSString *const kWorkingDirectory = @"/working/directory";
NSString *kFilenameWithLineNumber = [NSString stringWithFormat:@"(%@:123.)", kFilename];
[_semanticHistoryController.fakeFileManager.files addObject:kFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilenameWithLineNumber
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
NSString *expected = kFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.integerValue == 123);
Loading
Loading
@@ -330,12 +303,10 @@
NSString *columnNumber = nil;
static NSString *const kWorkingDirectory = @"/working/directory";
static NSString *const kFilename = @"(:123.)";
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
XCTAssert(actual == nil);
}
 
Loading
Loading
@@ -347,12 +318,10 @@
NSString *kAbsoluteFilename = @"/working/directory/path/to/file";
[_semanticHistoryController.fakeFileManager.files addObject:kAbsoluteFilename];
[_semanticHistoryController.fakeFileManager.files addObject:@"/working/directory/./path/to/file"];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kRelativeFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
NSString *expected = kAbsoluteFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -366,12 +335,10 @@
NSString *kAbsoluteFilename = @"/working/directory/path/to/file";
[_semanticHistoryController.fakeFileManager.files addObject:kAbsoluteFilename];
[_semanticHistoryController.fakeFileManager.files addObject:@"/working/directory/blah/../path/to/file"];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kRelativeFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
NSString *expected = kAbsoluteFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -385,12 +352,10 @@
NSString *kAbsoluteFilename =
[kWorkingDirectory stringByAppendingPathComponent:kRelativeFilename];
[_semanticHistoryController.fakeFileManager.files addObject:kAbsoluteFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:[@"a/" stringByAppendingString:kRelativeFilename]
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
NSString *expected = kAbsoluteFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -404,12 +369,10 @@
NSString *kAbsoluteFilename =
[kWorkingDirectory stringByAppendingPathComponent:kRelativeFilename];
[_semanticHistoryController.fakeFileManager.files addObject:kAbsoluteFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:[@"b/" stringByAppendingString:kRelativeFilename]
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
NSString *expected = kAbsoluteFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -423,12 +386,10 @@
NSString *kAbsoluteFilename =
[kWorkingDirectory stringByAppendingPathComponent:kRelativeFilename];
[_semanticHistoryController.fakeFileManager.files addObject:kAbsoluteFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kRelativeFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
NSString *expected = kAbsoluteFilename;
XCTAssert([expected isEqualToString:actual]);
 
Loading
Loading
@@ -436,8 +397,7 @@
actual = [_semanticHistoryController getFullPath:kRelativeFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber
timedOut:&timedOut];
columnNumber:&columnNumber];
XCTAssert(actual == nil);
}
 
Loading
Loading
images/Add Mark Touch Bar Icon.png

754 B | W: 64px | H: 64px

images/Add Mark Touch Bar Icon.png

959 B | W: 64px | H: 64px

images/Add Mark Touch Bar Icon.png
images/Add Mark Touch Bar Icon.png
images/Add Mark Touch Bar Icon.png
images/Add Mark Touch Bar Icon.png
  • 2-up
  • Swipe
  • Onion skin
images/Add Mark Touch Bar Icon@2x.png

1.44 KiB | W: 128px | H: 128px

images/Add Mark Touch Bar Icon@2x.png

1.68 KiB | W: 128px | H: 128px

images/Add Mark Touch Bar Icon@2x.png
images/Add Mark Touch Bar Icon@2x.png
images/Add Mark Touch Bar Icon@2x.png
images/Add Mark Touch Bar Icon@2x.png
  • 2-up
  • Swipe
  • Onion skin
Loading
Loading
@@ -818,6 +818,13 @@
</dict>
<key>Natural Text Editing</key>
<dict>
<key>0xf728-0x80000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>d</string>
</dict>
<key>0x7f-0x100000</key>
<dict>
<key>Action</key>
Loading
Loading
Loading
Loading
@@ -162,8 +162,7 @@ enum {
while (rootMenu.supermenu) {
rootMenu = rootMenu.supermenu;
}
if (rootMenu == [NSApp mainMenu] &&
[[[NSUserDefaults standardUserDefaults] stringForKey:@"AppleInterfaceStyle"] isEqualToString:@"Dark"]) {
if ([self darkTheme]) {
attributes[NSForegroundColorAttributeName] = [NSColor whiteColor];
}
 
Loading
Loading
@@ -172,6 +171,10 @@ enum {
[NSBezierPath setDefaultLineWidth:savedWidth];
}
 
- (BOOL)darkTheme {
return [self.window.appearance.name isEqual:NSAppearanceNameVibrantDark];
}
- (void)mouseUp:(NSEvent*) event {
NSPoint mousePoint = [self convertPoint:[[self window] mouseLocationOutsideOfEventStream] fromView:nil];
NSMenuItem* mitem = [self enclosingMenuItem];
Loading
Loading
Loading
Loading
@@ -645,8 +645,9 @@ int OffsetOfWrappedLine(screen_char_t* p, int n, int length, int width, BOOL may
return NULL;
}
 
- (int) getNumLinesWithWrapWidth: (int) width
{
- (int)getNumLinesWithWrapWidth:(int)width {
ITBetaAssert(width > 0, @"Bogus value of width: %d", width);
if (width == cached_numlines_width) {
return cached_numlines;
}
Loading
Loading
Loading
Loading
@@ -912,7 +912,7 @@ static int RawNumLines(LineBuffer* buffer, int width) {
// trailing empty lines. They all have the same position because they
// are empty. We need to back up by the number of empty lines and then
// use position.yOffset to disambiguate.
result.y = [self numLinesWithWidth:width] - 1 - [blocks.lastObject numberOfTrailingEmptyLines];
result.y = MAX(0, [self numLinesWithWidth:width] - 1 - [blocks.lastObject numberOfTrailingEmptyLines]);
ScreenCharArray *lastLine = [self wrappedLineAtIndex:result.y
width:width
continuation:NULL];
Loading
Loading
Loading
Loading
@@ -37,8 +37,7 @@
 
// Returns YES if the file exists on a local (non-network) filesystem.
- (BOOL)fileExistsAtPathLocally:(NSString *)filename
additionalNetworkPaths:(NSArray<NSString *> *)additionalNetworkpaths
timedOut:(BOOL *)timedOut;
additionalNetworkPaths:(NSArray<NSString *> *)additionalNetworkpaths;
 
- (BOOL)fileHasForbiddenPrefix:(NSString *)filename
additionalNetworkPaths:(NSArray<NSString *> *)additionalNetworkpaths;
Loading
Loading
Loading
Loading
@@ -25,7 +25,6 @@
#import "NSFileManager+iTerm.h"
 
#import "iTermAdvancedSettingsModel.h"
#import "iTermCallWithTimeout.h"
#import "DebugLogging.h"
#import "iTermAdvancedSettingsModel.h"
#import "iTermAutoMasterParser.h"
Loading
Loading
@@ -228,32 +227,20 @@ NSString * const DirectoryLocationDomain = @"DirectoryLocationDomain";
}
 
- (BOOL)fileExistsAtPathLocally:(NSString *)filename
additionalNetworkPaths:(NSArray<NSString *> *)additionalNetworkPaths
timedOut:(BOOL *)timedOutPtr {
additionalNetworkPaths:(NSArray<NSString *> *)additionalNetworkPaths {
if ([self fileHasForbiddenPrefix:filename additionalNetworkPaths:additionalNetworkPaths]) {
return NO;
}
 
__block BOOL ok = NO;
[filename retain];
BOOL timedOut =
[[iTermCallWithTimeout instanceForIdentifier:@"statfs"] executeWithTimeout:0.5 block:^{
struct statfs buf;
int rc = statfs([filename UTF8String], &buf);
if (rc != 0 || (buf.f_flags & MNT_LOCAL)) {
ok = [self fileExistsAtPath:filename];
} else {
ok = NO;
}
[filename release];
}];
if (timedOutPtr) {
*timedOutPtr = timedOut;
BOOL ok;
struct statfs buf;
int rc = statfs([filename UTF8String], &buf);
if (rc != 0 || (buf.f_flags & MNT_LOCAL)) {
ok = [self fileExistsAtPath:filename];
} else {
ok = NO;
}
if (timedOut) {
DLog(@"Timed out doing statfs on %@", filename);
}
return timedOut ? NO : ok;
return ok;
}
 
@end
Loading
Loading
Loading
Loading
@@ -1490,6 +1490,14 @@ ITERM_WEAKLY_REFERENCEABLE
}
 
- (void)setSize:(VT100GridSize)size {
ITBetaAssert(size.width > 0, @"Nonpositive width %d", size.width);
ITBetaAssert(size.height > 0, @"Nonpositive height %d", size.height);
if (size.width <= 0) {
size.width = 1;
}
if (size.height <= 0) {
size.height = 1;
}
self.lastResize = [NSDate timeIntervalSinceReferenceDate];
DLog(@"Set session %@ to %@", self, VT100GridSizeDescription(size));
[_screen setSize:size];
Loading
Loading
@@ -8456,6 +8464,7 @@ ITERM_WEAKLY_REFERENCEABLE
 
- (NSString *)currentLocalWorkingDirectory {
if (_lastDirectoryIsUnsuitableForOldPWD || _lastDirectory == nil) {
DLog(@"Last directory is unsuitable or nil");
// Ask the kernel what the child's process's working directory is.
return [_shell getWorkingDirectory];
} else {
Loading
Loading
@@ -8465,6 +8474,7 @@ ITERM_WEAKLY_REFERENCEABLE
// to expand symlinks on _lastDirectory and use it if it matches what the kernel reports.
// That was a bad idea because expanding symlinks is slow on network file systems (Issue 4901).
// Instead, we'll use _lastDirectory if we believe it's on localhost.
DLog(@"Using last directory from shell integration: %@", _lastDirectory);
return _lastDirectory;
}
}
Loading
Loading
Loading
Loading
@@ -5063,7 +5063,7 @@ ITERM_WEAKLY_REFERENCEABLE
iTermSubSelection *sub = [selection.allSubSelections lastObject];
if (sub) {
[self showRangeOfLines:NSMakeRange(sub.range.coordRange.start.y,
sub.range.coordRange.end.y - sub.range.coordRange.start.y)
sub.range.coordRange.end.y - sub.range.coordRange.start.y + 1)
inSession:session];
}
}
Loading
Loading
@@ -7594,6 +7594,7 @@ ITERM_WEAKLY_REFERENCEABLE
currentSession = currentSession.tmuxGatewaySession;
}
if (currentSession) {
DLog(@"Getting current local working directory");
previousDirectory = [currentSession currentLocalWorkingDirectory];
}
 
Loading
Loading
Loading
Loading
@@ -394,6 +394,11 @@ static void SetCSITypeAndDefaultParameters(CSIParam *param, VT100Token *result)
iTermParserSetCSIParameterIfDefault(param, 0, 1);
break;
 
case 'b': // Repeat
result->type = VT100CSI_REP;
iTermParserSetCSIParameterIfDefault(param, 0, 1);
break;
case 'B': // Cursor Down
result->type = VT100CSI_CUD;
iTermParserSetCSIParameterIfDefault(param, 0, 1);
Loading
Loading
Loading
Loading
@@ -17,6 +17,7 @@
#import "iTermPreferences.h"
#import "iTermSelection.h"
#import "iTermShellHistoryController.h"
#import "iTermTextExtractor.h"
#import "iTermTemporaryDoubleBufferedGridController.h"
#import "NSArray+iTerm.h"
#import "NSColor+iTerm.h"
Loading
Loading
@@ -159,6 +160,10 @@ static const double kInterBellQuietPeriod = 0.1;
// Valid while at the command prompt only. GIves the range of the current prompt. Meaningful
// only if the end is not equal to the start.
VT100GridAbsCoordRange _currentPromptRange;
// For REP
screen_char_t _lastCharacter;
BOOL _lastCharacterIsDoubleWidth;
}
 
static NSString *const kInlineFileName = @"name"; // NSString
Loading
Loading
@@ -1090,6 +1095,18 @@ static NSString *const kInilineFileInset = @"inset"; // NSValue of NSEdgeInsets
length:(int)len
shouldFree:(BOOL)shouldFree {
if (len >= 1) {
screen_char_t lastCharacter = buffer[len - 1];
if (lastCharacter.code == DWC_RIGHT && !lastCharacter.complexChar) {
// Last character is the right half of a double-width character. Use the penultimate character instead.
if (len >= 2) {
_lastCharacter = buffer[len - 2];
_lastCharacterIsDoubleWidth = YES;
}
} else {
// Record the last character.
_lastCharacter = buffer[len - 1];
_lastCharacterIsDoubleWidth = NO;
}
LineBuffer *lineBuffer = nil;
if (currentGrid_ != altGrid_ || saveToScrollbackInAlternateScreen_) {
// Not in alt screen or it's ok to scroll into line buffer while in alt screen.k
Loading
Loading
@@ -4113,6 +4130,27 @@ static NSString *const kInilineFileInset = @"inset"; // NSValue of NSEdgeInsets
payload:payload];
}
 
- (void)terminalRepeatPreviousCharacter:(int)times {
if (![iTermAdvancedSettingsModel supportREPCode]) {
return;
}
if (_lastCharacter.code) {
int length = 1;
screen_char_t chars[2];
chars[0] = _lastCharacter;
if (_lastCharacterIsDoubleWidth) {
length++;
chars[1] = _lastCharacter;
chars[1].code = DWC_RIGHT;
chars[1].complexChar = NO;
}
for (int i = 0; i < times; i++) {
[self appendScreenCharArrayAtCursor:chars length:length shouldFree:NO];
}
}
}
#pragma mark - Private
 
- (VT100GridCoordRange)commandRange {
Loading
Loading
Loading
Loading
@@ -1633,6 +1633,10 @@ static const int kMaxScreenRows = 4096;
[self executeDecSetReset:token];
break;
 
case VT100CSI_REP:
[delegate_ terminalRepeatPreviousCharacter:token.csi->p[0]];
break;
// ANSI CSI
case ANSICSI_CBT:
[delegate_ terminalBackTab:token.csi->p[0]];
Loading
Loading
Loading
Loading
@@ -404,4 +404,6 @@ typedef NS_ENUM(NSUInteger, VT100AttentionRequestType) {
- (void)terminalCustomEscapeSequenceWithParameters:(NSDictionary<NSString *, NSString *> *)parameters
payload:(NSString *)payload;
 
- (void)terminalRepeatPreviousCharacter:(int)times;
@end