1. Список говнокодов пользователя krypt

    Всего: 30

  2. Objective C / Говнокод #10335

    −111

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    int sortingFunctionForVersion(NSMutableDictionary *item1, NSMutableDictionary *item2, void *context)
    {
        NSString *str1 = nil;
        NSString *str2 = nil;
    	
        int selfWeight = 0;
        str1 = [item1 objectForKey:@"type2"];
    	
        if ([str1 isEqualToString:@""])
        {
            selfWeight = 4;
        }
        else if ([str1 isEqualToString:@"solo"])
        {
            selfWeight = 3;
        }
        else if ([str1 isEqualToString:@"intro"])
        {
            selfWeight = 2;
        }
        else if ([str1 isEqualToString:@"album"])
        {
            selfWeight = 1;
        }
    	
        int pWeight = 0;
        str2 = [item2 objectForKey:@"type2"];
    	
        if ([str2 isEqualToString:@""])
        {
            pWeight = 4;
        }
        else if ([str2 isEqualToString:@"solo"])
        {
            pWeight = 3;
        }
        else if ([str2 isEqualToString:@"intro"])
        {
            pWeight = 2;
        }
        else if ([str2 isEqualToString:@"album"])
        {
            pWeight = 1;
        }
    	
        int diff = (pWeight - selfWeight);
    	
        if (diff != 0)
        {
            str1 = [NSString stringWithFormat:@"%d", selfWeight];
            str2 = [NSString stringWithFormat:@"%d", pWeight];
            return [str1 compare:str2];
        }
        else
        {
            if ([[item1 objectForKey:@"versionid"] intValue] >= 10)
            {
                str1 = [NSString stringWithFormat:@"9%@", [item1 objectForKey:@"versionid"]];
            }
            else
            {
                str1 = [NSString stringWithFormat:@"%@", [item1 objectForKey:@"versionid"]];
            }
    		
            if ([[item2 objectForKey:@"versionid"] intValue] >= 10)
            {
                str2 = [NSString stringWithFormat:@"9%@", [item2 objectForKey:@"versionid"]];
            }
            else
            {
                str2 = [NSString stringWithFormat:@"%@", [item2 objectForKey:@"versionid"]];
            }
    		
            return [str1 compare:str2];
        }
    }

    Слов уже просто нет. Даже междометий.

    krypt, 21 Мая 2012

    Комментарии (14)
  3. Objective C / Говнокод #10315

    −111

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    +(NSMutableURLRequest *) formatRequest:(NSString *) urlString withRequestType:(NSString *) type withData:(NSString *) dataStr withParam:(NSMutableArray *) param withContentType:(NSString *) content
    {
    	NSString *deviceId = [[UIDevice currentDevice] uniqueIdentifier];
    	NSString *urlWithParametr = nil;
    	
        #if defined(XXX_PROJECT)
    	if ([urlString rangeOfString:@"?"].location == NSNotFound)
        urlWithParametr = [[[NSString alloc] initWithFormat:@"%@?device_id=%@&app_platform=iphone&app_version=%@&file_type=guitar_pro&app_name=XXX", urlString, deviceId, [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]] autorelease];
    	else
        urlWithParametr = [[[NSString alloc] initWithFormat:@"%@&device_id=%@&app_platform=iphone&app_version=%@&file_type=guitar_pro&app_name=XXX", urlString, deviceId, [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]] autorelease];
        #else
        
    	if ([urlString rangeOfString:@"?"].location == NSNotFound)
        {
            //urlWithParametr = [[[NSString alloc] initWithFormat:@"%@?device_id=%@&app_platform=iphone&app_version=%@&file_type=guitar_pro", urlString, deviceId, [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]] autorelease];
            
            if ([dataStr isEqual:@"NeedGuitarPro"])
            {
                dataStr = nil;
                urlWithParametr = [[[NSString alloc] initWithFormat:@"%@?device_id=%@&app_platform=iphone&app_version=%@&file_type=guitar_pro", urlString, deviceId, [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]] autorelease];
            }
            else
            if ([dataStr isEqual:@"NeedAllWithGutarPro"])
            {
                dataStr = nil;
                urlWithParametr = [[[NSString alloc] initWithFormat:@"%@?device_id=%@&app_platform=iphone&app_version=%@&file_type_group=all", urlString, deviceId, [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]] autorelease];
            }
            else 
            {
                urlWithParametr = [[[NSString alloc] initWithFormat:@"%@?device_id=%@&app_platform=iphone&app_version=%@", urlString, deviceId, [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]] autorelease];
            }
        }
        else
        urlWithParametr = [[[NSString alloc] initWithFormat:@"%@&device_id=%@&app_platform=iphone&app_version=%@&file_type=guitar_pro&app_name=XXX", urlString, deviceId, [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]] autorelease];
        #endif
    	
        if (content != nil && [content length] > 0)
        {
            urlWithParametr = [urlWithParametr stringByAppendingString:[NSString stringWithFormat:@"&%@", content]];
        }
    	
    	//NSLog(@"PARAMETERS:");
        //	NSLog(@"%@", [param description]);
        
        if ([param count])
        {
            for (NSMutableDictionary *dict in param)
            {
                urlWithParametr = [urlWithParametr stringByAppendingString:[NSString stringWithFormat:@"&%@=%@", [dict objectForKey:@"name"], [dict objectForKey:@"value"]]];
            }
        }
    	
        NSLog(@"THE urlWithParametr = %@", urlWithParametr);
        NSURL *urlServer = [NSURL URLWithString:urlWithParametr];
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:urlServer];
        [request setHTTPMethod:type];
        [request setCachePolicy:NSURLRequestUseProtocolCachePolicy];
        [request setTimeoutInterval:30.0];
        
        if (dataStr != nil)
        {
            NSString *contentType = @"application/x-www-form-urlencoded";
            [request addValue:contentType forHTTPHeaderField: @"Content-Type"];
            NSMutableData *postBody = [NSMutableData data];
            [postBody appendData:[dataStr dataUsingEncoding:NSUTF8StringEncoding]];
            [request setHTTPBody:postBody];
        }
        
        return request;
    }

    Творение моего "любимого" автора. Мне иногда кажется, что нас спасут только массовые расстрелы. Хотя кое-кто настаивает на введении телесных наказаний.

    krypt, 18 Мая 2012

    Комментарии (13)
  4. Objective C / Говнокод #10273

    −82

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    @try 
    	{
    		if ([[NSThread currentThread] isCancelled]) // Поток мог быть остановлен, пока мы где-то стояли на lock'е
    			return nil;
    
    		
    		// парсим html-строку в DOM
            viewData.body = [[viewData.body componentsSeparatedByString: @"<tab"] componentsJoinedByString: @"<b"];
            viewData.body = [[viewData.body componentsSeparatedByString: @"</tab"] componentsJoinedByString: @"</b"];
    		
    		htmlDocPtr hdoc = htmlParseDoc((xmlChar*)[[NSString stringWithFormat:@"<div>%@</div>",viewData.body] UTF8String], "utf-8");
    		xdoc = [[NSXmlDoc alloc] initWithNode:hdoc];
    		
    		if ([[NSThread currentThread] isCancelled])
    			return nil;
    
    		
    		// Собираем форматированную строку
    		blockRanges = [[NSMutableArray alloc] init];
    		xmlNodePtr node = [xdoc selectNode:@"/html/body/div"].libxmlNode; // Работа напрямую с нодами во враппере не реализованна :(
    		parsedString = [[NSMutableAttributedString alloc] init];
    		[self parseTag:node string:parsedString blockRanges:blockRanges];
    		[xdoc release];
    		xdoc = nil;
    		
            viewData.body = [[viewData.body componentsSeparatedByString: @"<b"] componentsJoinedByString: @"<tab"];
            viewData.body = [[viewData.body componentsSeparatedByString: @"</b"] componentsJoinedByString: @"</tab"];
    		
            
    		if ([[NSThread currentThread] isCancelled])
    			return nil;

    Вот такой костыль по обходу бага в html-парсере libXml.

    krypt, 15 Мая 2012

    Комментарии (0)
  5. Objective C / Говнокод #9780

    −86

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    - (void)refreshCursorRow
     {
         int row = [dataSource numberOfLines] - [dataSource height] + [dataSource cursorY];
    -    [self setNeedsDisplayInRect:CGRectMake(0, row *lineHeight, self.frame.size.width, lineHeight)];
    +    if (SaurikIsSad)
    +        [self setNeedsDisplay];
    +    else
    +        [self setNeedsDisplayInRect:CGRectMake(0, row *lineHeight, self.frame.size.width, lineHeight)];
     }

    В ходе гугления случайно наткнулся на этот diff-патч
    Остаётся узнать, кто такой Саурик, и почему он расстроен

    krypt, 27 Марта 2012

    Комментарии (2)
  6. Objective C / Говнокод #9708

    −82

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 19 Марта 2012

    Комментарии (7)
  7. Objective C / Говнокод #9618

    −85

    1. 1
    http://pastebin.com/UaTdN6K2

    А выложу ка я это тут.
    Гуано трёхлетней выдержки. Фрагментации не поддаётся. Ныне отправлено на удобрения.

    krypt, 06 Марта 2012

    Комментарии (10)
  8. Objective C / Говнокод #9614

    −111

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    -(void)handleNotification:(id<INotification>)notification
    {
    	NSLog(@"NOTIFICATION:%@", [notification description]);
    	if ([[notification name] isEqualToString:ShowMetronomeInTab]) 
    	{
    		[self.viewComponent showMetronomeInTab];
    	}
    	else if ([[notification name] isEqualToString:AlertOnScreen]) 
    	{
    		isShowRateAlert = YES;
    	}
    	else if ([[notification name] isEqualToString:NoAlertOnScreen]) 
    	{
    		isShowRateAlert = NO;
    	}
    	else if ([[notification name] isEqualToString: ShowHowToEnter]) 
    	{
    		id body = [notification body];
    		[self.viewComponent showHowToEnter:body];
    	}
    	else if ([[notification name] isEqualToString:ShowResultView]) 
    	{
    		[self.viewComponent showResultView:[notification body] Animated:YES];
    	}
    	else if ([[notification name] isEqualToString:ShowIndicatorView]) 
    	{
            if ([[notification body] isKindOfClass:[NSString class]]) 
            {
                [self.viewComponent showLoadingIndicator:[notification body]];
            }
            else 
            {
                if ([[notification body] isKindOfClass:[NSArray class]]) 
                {
                    [self.viewComponent showLoadingIndicator:[[notification body] objectAtIndex:0] WithSecondString:[[notification body]objectAtIndex:1]];
                }
            }		
    	}
        else if ([[notification name] isEqualToString:ShowBlackIndicatorView]) 
    	{
            [self.viewComponent showBlackLoadingIndicator:[notification body]];	
    	}
    	else if ([[notification name] isEqualToString:RemoveIndicatorView]) 
    	{
    		[self.viewComponent removeLoadingIndicator];
    	}
    	else if ([[notification name] isEqualToString:ShowTimeOutAlert]) 
    	{
    		[self.viewComponent displayAlertOnConnectionTimeOut];
    	}
    	else if ([[notification name] isEqualToString:ShowNetworkUnavailableAlert]) 
    	{
    		[self.viewComponent displayAlertOnNetworkError];
    	}
    	else if ([[notification name] isEqualToString:ShowServiceUnavailableAlert]) 
    	{
    		[self.viewComponent displayAlertOnConnectionError];
    	}
    	else if ([[notification name] isEqualToString:ShowHomeView]) 
    	{
    		[self.viewComponent showHomeView];
    	}
    	else if ([[notification name] isEqualToString:ShowProcessingView]) 
    	{
    		[self.viewComponent showProcessingView:[notification body]];
    	} else if ([[notification name] isEqualToString:ShowResultViewNotAnimated]) 
    	{
    		[self.viewComponent showResultView:[notification body] Animated:NO];
    	} else if ([[notification name] isEqualToString:ShowTimeOutAlertWithParent]) 
    	{
    		[self.viewComponent displayAlertOnConnectionTimeOutWithParent:notification.body];
    	}
    	else if ([[notification name] isEqualToString:ShowNetworkUnavailableAlertWithParent]) 
    	{
    		[self.viewComponent displayAlertOnNetworkErrorWithParent:notification.body];
    	}
    	else if ([[notification name] isEqualToString:ShowServiceUnavailableAlertWithParent]) 
    	{
    		[self.viewComponent displayAlertOnConnectionErrorWithParent:notification.body];
    	} 
        else if ([[notification name] isEqualToString:RotationIndicator]) 
    	{
            [self.viewComponent rotationIndicator];
    	}
    	else if ([[notification name] isEqualToString:StartMusic])
        {
            if (applicationProxy.mediaPlayerWasPlaying)
    		{	
    			applicationProxy.mediaPlayerIsPlaying = YES;
    			[self sendNotification:MediaPlayerChangeState];
    			MPMusicPlayerController *mpPlayer = [MPMusicPlayerController iPodMusicPlayer];
    			[mpPlayer play];
    		}
        }
    	else if ([[notification name] isEqualToString:StopMusic])
        {
            applicationProxy.mediaPlayerIsPlaying  = NO;
    		[self sendNotification:MediaPlayerChangeState];

    И так 50 elseif'ов. И, сцуко, все разные. И в последней трети отформатированы лесенкой.
    Местное видение PureMVC

    krypt, 05 Марта 2012

    Комментарии (21)
  9. Куча / Говнокод #9529

    +120

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    Пришёл крешлог нашего приложения от пользователя
    
    Error Message:
    Segmentation fault
    
    Backtrace:
    
    <someapp>:0:in `0x00076d9f ht_handle_signal + 94'
    libsystem_c.dylib:1:in `0x37cb9539 _sigtramp + 48'
    JavaScriptCore:2:in `0x362d7aef WTFReportBacktrace + 146'
    JavaScriptCore:3:in `0x3621d173 _ZN3WTF12_GLOBAL__N_125ARC4RandomNumberGenerator12stirIfNeededEv + 26'
    JavaScriptCore:4:in `0x3621d0b3 _ZN3WTF29cryptographicallyRandomNumberEv + 102'
    JavaScriptCore:5:in `0x36227991 _ZN3WTF12randomNumberEv + 8'
    WebCore:6:in `0x32c3104b _ZN7WebCore17JSDOMGlobalObjectC2ERN3JSC12JSGlobalDataEPNS1_9StructureEN3WTF10PassRefPtrINS_15DOMWrapperWorldEEEPNS1_8JSObjectE + 138'
    <...>
    
    Внимательно смотрим лог, идём по ссылке
    http://trac.webkit.org/browser/releases/Apple/Safari%205.1/JavaScriptCore/wtf/Assertions.h
    и впечатляемся названиями переменных
    Краш, кстати, в генераторе случайных чисел, судя по логу...

    krypt, 24 Февраля 2012

    Комментарии (1)
  10. Objective C / Говнокод #8785

    −120

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    -(NSString*) getPackName:(int)index
    {	
    	NSString *res=nil;
    	switch (index) 
    	{
    		case 1:
    			res = @"Classic";
    			break;
    		case 2:
    			res = @"Wood";
    			break;
    		case 3:
    			res = @"Cowbell";
    			break;
    		case 4:
    			res = @"Metal";
    			break;
    		case 5:
    			res = @"Electro";
    			break;
    		default:
    			res = @"unknow";
    			break;
    	}	
    	return res;
    }

    Если не ошибаюсь, за тем же авторством, что и предыдущий.

    krypt, 09 Декабря 2011

    Комментарии (7)
  11. Objective C / Говнокод #8109

    −105

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    for (NSString *str in ar)
    {
    	if ([startChord isEqualToString:str])
    	{
    		if (offset > 0) 
    		{
    			if (i+offset > 11) // 11 - последний индекс в массиве
    				finalChord = [ar objectAtIndex:(i+offset) - 12];// (12 = 11+1) это чтобы понятно было, например, 11 элемент сместить на 2 выше, это будет 11+2 - 12 равно 1 индекс в массиве (т.е. второй элемент)
    			else
    				finalChord = [ar objectAtIndex:(i+offset)];
    		}
    		else if (offset < 0)
    		{
    			if (i-abs(offset) < 0) // 0 - первый индекс в массиве
    				finalChord =[ar objectAtIndex:12 - abs(i-abs(offset))];
    			else
    				finalChord = [ar objectAtIndex:(i-abs(offset))];
    		}
    		else
    		{
    			finalChord = [ar objectAtIndex:i];
    		}
    		break;
    	}
    	i++;
    }

    Но человек старался, да...

    krypt, 07 Октября 2011

    Комментарии (5)