Advertisement
MeowKt

Untitled

May 16th, 2021
970
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #import <Foundation/Foundation.h>
  2. #define let __auto_type const
  3. #define var __auto_type
  4.  
  5. @interface NSString (util)
  6.  
  7. - (int) indexOf:(NSString *)text;
  8.  
  9. @end
  10.  
  11. @implementation NSString (util)
  12.  
  13. - (int) indexOf:(NSString *)text {
  14.     NSRange range = [self rangeOfString:text];
  15.     if ( range.length > 0 ) {
  16.         return range.location;
  17.     } else {
  18.         return -1;
  19.     }
  20. }
  21.  
  22. @end
  23.  
  24. NSString *escape(NSString *str) {
  25.   NSMutableString *s = [NSMutableString stringWithString:str];
  26.   [s replaceOccurrencesOfString:@"\\" withString:@"\\\\" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];
  27.   [s replaceOccurrencesOfString:@"\"" withString:@"\\\"" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];
  28.   [s replaceOccurrencesOfString:@"\n" withString:@"\\n" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];
  29.   [s replaceOccurrencesOfString:@"\b" withString:@"\\b" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];
  30.   [s replaceOccurrencesOfString:@"\f" withString:@"\\f" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];
  31.   [s replaceOccurrencesOfString:@"\r" withString:@"\\r" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];
  32.   [s replaceOccurrencesOfString:@"\t" withString:@"\\t" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];
  33.   return [NSString stringWithString:s];
  34. }
  35.  
  36. int main (int argc, const char * argv[]) {
  37.   NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
  38.   NSString *src = @"#import <Foundation/Foundation.h>\r\n#define let __auto_type const\r\n#define var __auto_type\r\n \r\n@interface NSString (util)\r\n \r\n- (int) indexOf:(NSString *)text;\r\n \r\n@end\r\n \r\n@implementation NSString (util)\r\n \r\n- (int) indexOf:(NSString *)text {\r\n    NSRange range = [self rangeOfString:text];\r\n    if ( range.length > 0 ) {\r\n        return range.location;\r\n    } else {\r\n        return -1;\r\n    }\r\n}\r\n \r\n@end\r\n \r\nNSString *escape(NSString *str) {\r\n  NSMutableString *s = [NSMutableString stringWithString:str];\r\n  [s replaceOccurrencesOfString:@\"\\\\\" withString:@\"\\\\\\\\\" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];\r\n  [s replaceOccurrencesOfString:@\"\\\"\" withString:@\"\\\\\\\"\" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];\r\n  [s replaceOccurrencesOfString:@\"\\n\" withString:@\"\\\\n\" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];\r\n  [s replaceOccurrencesOfString:@\"\\b\" withString:@\"\\\\b\" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];\r\n  [s replaceOccurrencesOfString:@\"\\f\" withString:@\"\\\\f\" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];\r\n  [s replaceOccurrencesOfString:@\"\\r\" withString:@\"\\\\r\" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];\r\n  [s replaceOccurrencesOfString:@\"\\t\" withString:@\"\\\\t\" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [s length])];\r\n  return [NSString stringWithString:s];\r\n}\r\n \r\nint main (int argc, const char * argv[]) {\r\n  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];\r\n  NSString *src = @\"?\";\r\n  printf(\"%s%s%s\",[[src substringToIndex: [src indexOf:@\"?\"]] UTF8String], [escape(src) UTF8String], [[src substringFromIndex: [src indexOf:@\"?\"] + 1] UTF8String]);\r\n  [pool drain];\r\n  return 0;\r\n}";
  39.   printf("%s%s%s",[[src substringToIndex: [src indexOf:@"?"]] UTF8String], [escape(src) UTF8String], [[src substringFromIndex: [src indexOf:@"?"] + 1] UTF8String]);
  40.   [pool drain];
  41.   return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement