Overview
Comment: | Add -[OFString stringByDeletingPathExtension]. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
0222de872b96f7f888b2205c201dcf81 |
User & Date: | js on 2013-08-25 20:59:20 |
Other Links: | manifest | tags |
Context
2013-08-25
| ||
21:16 | Add -[OFString pathExtension]. check-in: 37dc5d933f user: js tags: trunk | |
20:59 | Add -[OFString stringByDeletingPathExtension]. check-in: 0222de872b user: js tags: trunk | |
20:42 | Fix backtraces when using the Apple runtime. check-in: 0e854d19bf user: js tags: trunk | |
Changes
Modified src/OFString.h from [f3d3ca44b0] to [2d8cbb5422].
︙ | |||
319 320 321 322 323 324 325 | 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 | - + | /*! * @brief Creates a path from the specified path components. * * @param components An array of components for the path * @return A new autoreleased OFString */ |
︙ | |||
878 879 880 881 882 883 884 885 886 887 888 889 890 891 | 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 | + + + + + + + | /*! * @brief Returns the directory name of the path. * * @return The directory name of the path */ - (OFString*)stringByDeletingLastPathComponent; /*! * @brief Returns a new string with the file extension of the path removed. * * @return A new string with the file extension of the path removed */ - (OFString*)stringByDeletingPathExtension; /*! * @brief Returns the path with relative sub paths resolved. * * @return The path with relative sub paths resolved */ - (OFString*)stringByStandardizingPath; |
︙ |
Modified src/OFString.m from [742f45a0e9] to [9aca46e7ea].
︙ | |||
622 623 624 625 626 627 628 | 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 | - + | + (instancetype)stringWithContentsOfURL: (OFURL*)URL encoding: (of_string_encoding_t)encoding { return [[[self alloc] initWithContentsOfURL: URL encoding: encoding] autorelease]; } |
︙ | |||
2138 2139 2140 2141 2142 2143 2144 | 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + | #endif objc_autoreleasePoolPop(pool); return [self substringWithRange: of_range(0, 1)]; } objc_autoreleasePoolPop(pool); return OF_PATH_CURRENT_DIRECTORY; } - (OFString*)stringByDeletingPathExtension { void *pool; OFMutableArray *components; OFString *fileName, *ret; size_t pos; if ([self length] == 0) return [[self copy] autorelease]; pool = objc_autoreleasePoolPush(); components = [[[self pathComponents] mutableCopy] autorelease]; fileName = [components lastObject]; pos = [fileName rangeOfString: @"." options: OF_STRING_SEARCH_BACKWARDS].location; if (pos == OF_NOT_FOUND || pos == 0) { objc_autoreleasePoolPop(pool); return [[self copy] autorelease]; } fileName = [fileName substringWithRange: of_range(0, pos)]; [components replaceObjectAtIndex: [components count] - 1 withObject: fileName]; ret = [OFString pathWithComponents: components]; [ret retain]; objc_autoreleasePoolPop(pool); |
︙ |
Modified tests/OFStringTests.m from [a5ba78df50] to [c46f51d6d5].
︙ | |||
334 335 336 337 338 339 340 341 342 343 344 345 346 347 | 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 | + + + + + + + + + + + | [[@"/tmp/" stringByDeletingLastPathComponent] isEqual: @"/"] && [[@"/tmp/foo/" stringByDeletingLastPathComponent] isEqual: @"/tmp"] && [[@"foo/bar" stringByDeletingLastPathComponent] isEqual: @"foo"] && [[@"/" stringByDeletingLastPathComponent] isEqual: @"/"] && [[@"foo" stringByDeletingLastPathComponent] isEqual: @"."]) TEST(@"-[stringByDeletingPathExtension]", [[@"foo.bar" stringByDeletingPathExtension] isEqual: @"foo"] && [[@"foo..bar" stringByDeletingPathExtension] isEqual: @"foo."] && [[@"/foo./bar" stringByDeletingPathExtension] isEqual: @"/foo./bar"] && [[@"/foo./bar.baz" stringByDeletingPathExtension] isEqual: @"/foo./bar"] && [[@"foo.bar/" stringByDeletingPathExtension] isEqual: @"foo"] && [[@".foo" stringByDeletingPathExtension] isEqual: @".foo"] && [[@".foo.bar" stringByDeletingPathExtension] isEqual: @".foo"]) TEST(@"-[decimalValue]", [@"1234" decimalValue] == 1234 && [@"\r\n+123 " decimalValue] == 123 && [@"-500\t" decimalValue] == -500 && [@"\t\t\r\n" decimalValue] == 0) TEST(@"-[hexadecimalValue]", |
︙ |