Субъективный Си / Говнокод #9708 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
-(void) downloadTabWithTranspose
{
	if (coreTextSupported) // всегда NO
	{
		return;
	}
	
	self.tabData = [self prepareChordsUrls:self.tabData]; 
}

// Парой сотней строк ниже

-(NSString *) prepareChordsUrls:(NSString *) source
{
    NSString *regex = @"<font color=\"#.{6}\" class=\"chord\">(.*?)</font>";
    NSMutableString *newHtml = [NSMutableString string];
    NSRange range = NSMakeRange(0, 0);
    int start = 0;
	
    while (range.location != NSNotFound)
    {
        int location = range.location + range.length;
        int length = [source length] - range.location - range.length;
        range = NSMakeRange(location, length);
        NSError *error = NULL;
        range = [source rangeOfRegex:regex options:RKLNoOptions inRange:range capture:0 error:&error];
		
        if (range.location != NSNotFound)
        {
            NSString *found = [source substringWithRange:range];
            found = [found substringWithRange:[found rangeOfRegex:@"\\>(.*)\\<"]];
            found = [found substringWithRange:NSMakeRange(1, [found length] - 2)];
			
            [newHtml appendString:[source substringWithRange:NSMakeRange(start, range.location - start)]];
            start = range.location + range.length;
			
            [newHtml appendFormat:@"<a chord=\"%@\" href=\"chord:%@\">%@</a>", found, found, found];
        }
		
    }
	
    [newHtml appendString:[source substringWithRange:NSMakeRange(start, [source length] - start)]];
    return newHtml;
}

Майор Неясность одобряэ

Запостил: krypt krypt, (Updated )

Комментарии (7) RSS

  • А где sendNotification: ?
    Как же без Наблюдателя тут обойтись?

    :)))
    Ответить
  • А, да, дальше шлётся уведомление через pureMVC разрывая стек вызовов, его ловит предыдущий говнокод с 50-ю ифами, и посылает в мой компонент неверно обработанные данные. Ещё одним уведомлением.
    Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8