Skip to content

Commit f94ab0f

Browse files
committed
Use NSISOLatin1 encoding instead of ASCII
We used to fall back on the ASCII encoding if UTF-8 did not work out. However, this causes its own problems; ASCII is only valid for the lower 7 bytes. We solve this by using Latin-1, which should have a valid character for every byte sequence
1 parent ed08bf6 commit f94ab0f

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

NSFileHandleExt.m

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ -(NSString*)readLine {
4949
buffer[bytesReceived-1] = '\0';
5050
NSString* s = [NSString stringWithCString: buffer encoding: NSUTF8StringEncoding];
5151
if ([s length] == 0)
52-
s = [NSString stringWithCString: buffer encoding: NSASCIIStringEncoding];
52+
s = [NSString stringWithCString: buffer encoding: NSISOLatin1StringEncoding];
5353
return s;
5454
case '\r':
5555
bytesReceived--;
@@ -59,7 +59,7 @@ -(NSString*)readLine {
5959
buffer[bytesReceived-1] = '\0';
6060
NSString *retVal = [NSString stringWithCString: buffer encoding: NSUTF8StringEncoding];
6161
if ([retVal length] == 0)
62-
retVal = [NSString stringWithCString: buffer encoding: NSASCIIStringEncoding];
62+
retVal = [NSString stringWithCString: buffer encoding: NSISOLatin1StringEncoding];
6363

6464
free(buffer);
6565
return retVal;

PBEasyPipe.m

+2-2
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ + (NSString*) outputForCommand:(NSString *) cmd
7676
NSData* data = [handle readDataToEndOfFile];
7777
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
7878
if (!string)
79-
string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
79+
string = [[NSString alloc] initWithData:data encoding:NSISOLatin1StringEncoding];
8080

8181
// Strip trailing newline
8282
if ([string hasSuffix:@"\n"])
@@ -101,7 +101,7 @@ + (NSString*) outputForCommand: (NSString*) cmd withArgs: (NSArray*) args inDir
101101
NSData* data = [handle readDataToEndOfFile];
102102
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
103103
if (!string)
104-
string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
104+
string = [[NSString alloc] initWithData:data encoding:NSISOLatin1StringEncoding];
105105

106106
// Strip trailing newline
107107
if ([string hasSuffix:@"\n"])

PBGitTree.m

+5-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,11 @@ - (NSString*) contents
7777
data = [handle readDataToEndOfFile];
7878
}
7979

80-
return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
80+
NSString* string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
81+
if (!string) {
82+
string = [[NSString alloc] initWithData:data encoding:NSISOLatin1StringEncoding];
83+
}
84+
return string;
8185
}
8286

8387
- (void) saveToFolder: (NSString *) dir

0 commit comments

Comments
 (0)