1824{
1826
1827 NSMutableString *result =
nil;
1828 NSUInteger i, length;
1829 unichar c;
1830 NSAutoreleasePool *pool =
nil;
1831
1832 length = [self length];
1833 result = [NSMutableString stringWithCapacity:length];
1834
1835
1836 pool = [[NSAutoreleasePool alloc] init];
1837 for (i = 0; i != length; ++i)
1838 {
1839 c = [self characterAtIndex:i];
1840 switch (c)
1841 {
1842 case '\\':
1843 [result appendString:@"\\\\"];
1844 break;
1845
1846 case '\b':
1847 [result appendString:@"\\b"];
1848 break;
1849
1850 case '\f':
1851 [result appendString:@"\\f"];
1852 break;
1853
1854 case '\n':
1855 [result appendString:@"\\n"];
1856 break;
1857
1858 case '\r':
1859 [result appendString:@"\\r"];
1860 break;
1861
1862 case '\t':
1863 [result appendString:@"\\t"];
1864 break;
1865
1866 case '\v':
1867 [result appendString:@"\\v"];
1868 break;
1869
1870 case '\'':
1871 [result appendString:@"\\\'"];
1872 break;
1873
1874 case '\"':
1875 [result appendString:@"\\\""];
1876 break;
1877
1878 default:
1879 [result appendString:[NSString stringWithCharacters:&c length:1]];
1880 }
1881 }
1882 [pool release];
1883 return result;
1884
1886}