Skip to content

Commit

Permalink
Fix bug where trailing whitespace wasn't stripped according to prefer…
Browse files Browse the repository at this point in the history
…ence and terminal newlines weren't copied properly either.
  • Loading branch information
gnachman committed Apr 6, 2014
1 parent 069c11c commit d422fe6
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 7 deletions.
2 changes: 1 addition & 1 deletion PTYTextView.m
Expand Up @@ -3695,7 +3695,7 @@ - (NSString *)selectedTextWithPad:(BOOL)pad
iTermTextExtractor *extractor =
[iTermTextExtractor textExtractorWithDataSource:_dataSource];
NSString *content = [extractor contentInRange:range
nullPolicy:kiTermTextExtractorNullPolicyTreatAsSpace
nullPolicy:kiTermTextExtractorNullPolicyMidlineAsSpaceIgnoreTerminal
pad:NO
includeLastNewline:copyLastNewline
trimTrailingWhitespace:trimWhitespace
Expand Down
7 changes: 4 additions & 3 deletions iTermTextExtractor.h
Expand Up @@ -26,9 +26,10 @@ typedef enum {
} iTermTextExtractorClass;

typedef enum {
kiTermTextExtractorNullPolicyFromStartToFirst,
kiTermTextExtractorNullPolicyFromLastToEnd,
kiTermTextExtractorNullPolicyTreatAsSpace
kiTermTextExtractorNullPolicyFromStartToFirst, // Ignore content prior to last null
kiTermTextExtractorNullPolicyFromLastToEnd, // Ignore content after last null
kiTermTextExtractorNullPolicyTreatAsSpace, // Treat midline nulls as spaces and a range of terminal nulls as a single space
kiTermTextExtractorNullPolicyMidlineAsSpaceIgnoreTerminal, // Treat midline nulls as space and strip terminal nulls
} iTermTextExtractorNullPolicy;

@interface iTermTextExtractor : NSObject
Expand Down
14 changes: 11 additions & 3 deletions iTermTextExtractor.m
Expand Up @@ -550,6 +550,7 @@ - (NSString *)contentInRange:(VT100GridWindowedRange)windowedRange
case kiTermTextExtractorNullPolicyFromStartToFirst:
return YES;
case kiTermTextExtractorNullPolicyTreatAsSpace:
case kiTermTextExtractorNullPolicyMidlineAsSpaceIgnoreTerminal:
[result appendString:@" "];
break;
}
Expand All @@ -576,6 +577,8 @@ - (NSString *)contentInRange:(VT100GridWindowedRange)windowedRange
case kiTermTextExtractorNullPolicyTreatAsSpace:
[result appendString:@" "];
break;
case kiTermTextExtractorNullPolicyMidlineAsSpaceIgnoreTerminal:
break;
}
}
if (code == EOL_HARD &&
Expand All @@ -589,9 +592,10 @@ - (NSString *)contentInRange:(VT100GridWindowedRange)windowedRange
}];

if (trimSelectionTrailingSpaces) {
[result stringByTrimmingTrailingWhitespace];
return [result stringByTrimmingTrailingWhitespace];
} else {
return result;
}
return result;
}


Expand Down Expand Up @@ -785,7 +789,11 @@ - (void)enumerateCharsInRange:(VT100GridWindowedRange)range
}
}

if (eolBlock && y != range.coordRange.end.y) {
BOOL haveReachedEol = YES;
if (y == range.coordRange.end.y) {
haveReachedEol = numNulls > 0;
}
if (eolBlock && haveReachedEol) {
BOOL stop;
if (fullWidth) {
stop = eolBlock(theLine[width].code, numNulls, y);
Expand Down

0 comments on commit d422fe6

Please sign in to comment.