Index: src/OFMutableString.m ================================================================== --- src/OFMutableString.m +++ src/OFMutableString.m @@ -348,11 +348,12 @@ - removeLeadingWhitespaces { size_t i; for (i = 0; i < length; i++) - if (string[i] != ' ' && string[i] != '\t') + if (string[i] != ' ' && string[i] != '\t' && + string[i] != '\n' && string[i] != '\r') break; length -= i; memmove(string, string + i, length); string[length] = '\0'; @@ -373,11 +374,11 @@ size_t d; char *p; d = 0; for (p = string + length - 1; p >= string; p--) { - if (*p != ' ' && *p != '\t') + if (*p != ' ' && *p != '\t' && *p != '\n' && *p != '\r') break; *p = '\0'; d++; } @@ -400,21 +401,22 @@ size_t d, i; char *p; d = 0; for (p = string + length - 1; p >= string; p--) { - if (*p != ' ' && *p != '\t') + if (*p != ' ' && *p != '\t' && *p != '\n' && *p != '\r') break; *p = '\0'; d++; } length -= d; for (i = 0; i < length; i++) - if (string[i] != ' ' && string[i] != '\t') + if (string[i] != ' ' && string[i] != '\t' && + string[i] != '\n' && string[i] != '\r') break; length -= i; memmove(string, string + i, length); string[length] = '\0'; Index: tests/OFString/OFString.m ================================================================== --- tests/OFString/OFString.m +++ tests/OFString/OFString.m @@ -200,15 +200,15 @@ [s1 replaceOccurrencesOfString: @"X" withString: @"XX"]; CHECK([s1 isEqual: @"XXXX"]) /* Whitespace removing tests */ - s1 = [@" \t\t \tasd \t \t\t" mutableCopy]; + s1 = [@" \r \t\n\t \tasd \t \t\t\r\n" mutableCopy]; s2 = [s1 mutableCopy]; s3 = [s1 mutableCopy]; - CHECK([[s1 removeLeadingWhitespaces] isEqual: @"asd \t \t\t"]) - CHECK([[s2 removeTrailingWhitespaces] isEqual: @" \t\t \tasd"]) + CHECK([[s1 removeLeadingWhitespaces] isEqual: @"asd \t \t\t\r\n"]) + CHECK([[s2 removeTrailingWhitespaces] isEqual: @" \r \t\n\t \tasd"]) CHECK([[s3 removeLeadingAndTrailingWhitespaces] isEqual: @"asd"]) s1 = [@" \t\t \t\t \t \t" mutableCopy]; s2 = [s1 mutableCopy]; s3 = [s1 mutableCopy];