1. Лучший говнокод

    В номинации:
    За время:
  2. C++ / Говнокод #1609

    +14.1

    1. 1
    2. 2
    3. 3
    4. 4
    bool IsTranslucent() const
    {
    	return !!Translucent;
    }

    Зачем двойное отрицание?
    Наверное потому, что Translucent имеет тип BOOL из windows.h и приведение ее к bool даст нежелательный warning.

    schizoid2, 17 Августа 2009

    Комментарии (5)
  3. PHP / Говнокод #1608

    +162.2

    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
    $r_fam = str_replace(',',"",$r_fam);
    $r_fam = str_replace('$',"",$r_fam);
    $r_fam = str_replace('\"',"",$r_fam);
    $r_fam = str_replace('<',"",$r_fam);
    $r_fam = str_replace('>',"",$r_fam);
    $r_fam = str_replace('*',"",$r_fam);
    $r_fam = str_replace('=',"",$r_fam);
    
    
    $r_name = str_replace(',',"",$r_name);
    $r_name = str_replace('$',"",$r_name);
    $r_name = str_replace('\"',"",$r_name);
    $r_name = str_replace('<',"",$r_name);
    $r_name = str_replace('>',"",$r_name);
    $r_name = str_replace('*',"",$r_name);
    $r_name = str_replace('=',"",$r_name);
    
    $sqlr="INSERT INTO users VALUES(NULL,'$r_login','$r_pass','0.00','0.00','0.00','$r_email','$r_name','$r_fam','$date','0.00')";
    mysql_query($sqlr);

    Защита в лоб.
    register_globals = on

    Alexion, 17 Августа 2009

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

    +135.2

    1. 1
    Continue = (Continue) ? true : false;

    CADakaRK, 17 Августа 2009

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

    +12.1

    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
    DateTime get_date(const char * _sz_date, bool _b_trunc_year)
    {
    	DateTime _obj_dt;
    
    	// "01/02/2003" - format of the data
    
    	string _str_date = _sz_date;
    
     	//--------------
    
    	string _str_month;
    	string _str_year;
    
    	int _n_day;
    	int _n_month;
    	int _n_year;
    
     	///--------------
    
    	bool _b_1 = false;
    	bool _b_2 = false;
    
    	size_t _n_pos_1 = 0;
    	size_t _n_pos_2 = 0;
    
    	///--------------
    
    	for (size_t _un_num = 0; _un_num < _str_date.size(); _un_num++)
    	{
    		if(_str_date[_un_num] == '/')
    		{
    			///-----------------
    			if(!_b_1)
    			{
    				_b_1 		= true;
    				_n_pos_1 	= _un_num;
    
            			continue;
    			}
    			///-----------------
    			if(_b_1 && !_b_2)
    			{
    				_b_2 		= true;
    				_n_pos_2 	= _un_num;
    			}
    			///-----------------
    		}
    	}
    
     	///--------------
    
    	if(!_b_1 || !_b_2)
    	{
    		return _obj_dt;
    	}
    
     	///--------------
    
    	_str_month = _str_date.substr( _n_pos_1 + 1, ( _n_pos_2 - _n_pos_1 ) - 1 );
    
     	_str_year  = _str_date.substr( _n_pos_2 + 1, ( _str_date.size() - 1 ) -  _n_pos_2 );
    
     	if(_b_trunc_year)
    	{
        		if(_str_year.size() >=4)
       			{
          			_str_year = _str_year.substr(2,2);
        		}
     	}
    
    	sscanf(_str_month.c_str(), "%d", &_n_month);
    	sscanf(_str_year .c_str(), "%d", &_n_year);
    
    	_n_day = 1;
    
    	_obj_dt = DateTime(_n_year,_n_month,_n_day);
    
    	return _obj_dt;
    }

    Парсим дату формата mm/dd/yyyy. Не все так просто в этой жизни.

    lamer, 14 Августа 2009

    Комментарии (5)
  6. PHP / Говнокод #1579

    +157

    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
    <?php
    // AI для jabber-бота http://coolbot.vndv.com
    // Автор AI: Black.ZerO
    $db = mysql_connect($dbhost, $dbuser, $dbpasswd) or die("MySQL error");
    	mysql_select_db($dbname, $db);
     
    	$result = mysql_query("select * from mozg", $db);
    	$myrow = mysql_fetch_array($result);
     
     
    	$messages['body'] = "Hello";
    	do 
    	{
    	if ($messages['body'] == $myrow[question])
    	{
    		echo "OK";
    		break;
    		}
    			else {
    				echo "false";
    		}
     
    	}
    	while ($myrow = mysql_fetch_array($result));

    AI для jabber-бота http://coolbot.vndv.com

    sviver88, 13 Августа 2009

    Комментарии (5)
  7. ActionScript / Говнокод #1560

    −129.7

    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
    // method that break down the application
    public function hide():void
    {
    	try
    	{
    		removeMenu();
    		TextField(txtTitle).text = '';
    		// WTF place - this setter raise error
    		TextArea(txt).htmlText = '';
    	} catch (e:Error) {
    		// russians are not surrender!
    		// catch error and call them recursively
    		trace(e);
    		hide();
    	}
    }

    Затыкание метода, выбрасывающего трудноуловимый эсксепшн

    remoteobject, 12 Августа 2009

    Комментарии (5)
  8. C++ / Говнокод #1547

    +13

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    __inline BOOL IsNumeric(LPTSTR lpsBuf)
    {
     int i, nSize = _tcslen(lpsBuf);
     for (i = 0; i < nSize; i++)
      if ((lpsBuf[i] < _T('0')) || (lpsBuf[i] > _T('9')))
       return (FALSE);
     return (TRUE);
    }

    Серъёзный алгоритм.

    Exhumer, 12 Августа 2009

    Комментарии (5)
  9. Си / Говнокод #1546

    +135.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #define DBGLEVEL2 2
    #define ER2 if (o.dbglvl>=DBGLEVEL2) fprintf(stderr,
    
    some_fun(int errorcode) 
    {
      ER2 " Error %d", errocode);
    }

    Использование незакрытых скобок внутри #define

    lolikandr, 12 Августа 2009

    Комментарии (5)
  10. PHP / Говнокод #1541

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    $max_b = 0;
        for($i=1;$i<=40;$i++){
          $max_b +=(41-$i);
        }

    Нашел у товарища в коде, данный кусочек вызывался в цикле порядка десятка тысяч раз

    vasly, 12 Августа 2009

    Комментарии (5)
  11. Java / Говнокод #1538

    +68.9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public char getChar() throws ErrorLexAn {
    	delSpace();
    	int simb = p.bufStr[p.posStr] & 0xFF;
    	return charl = simb < 128 ? (char) simb :
    		(new String(new byte[]{
    			convert == false ? (byte) simb : arrayConv[simb]})).charAt(0);
    }

    Читает следующий символ из буфера (хранятся в байтах) и конвертит по таблице.
    Я сам джаву плохо знаю, но уверен, что byte -> char можно сконвертить как-то проще.

    Dimarius, 12 Августа 2009

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