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

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

    +30

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $files = file_scan_directory(dirname(__FILE__) .'/modes/', '^([^\.].*)\.inc$', array('.', '..', 'CVS'), 0, FALSE);
        foreach ($files as $file) {
          require_once($file->filename);
          $mode = $file->name;
          if (function_exists('advpoll_info_'. $mode)) {
            $advpoll_modes[$mode] = call_user_func('advpoll_info_'. $mode);
          }
        }

    brainstorm, 30 Сентября 2011

    Комментарии (2)
  3. Pascal / Говнокод #319

    +30

    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
    for i := 0 to high(vParagsChanges) do
        begin
          if vParNumIn < vParagsChanges[i].ParNo1 then
          begin
            inc(vParNumOut, vParagsChanges[i].ParNo1 - vParNumIn);
            vParNumIn := vParagsChanges[i].ParNo1;
          end;
    
          if i < high(vParagsChanges) then
            if (vParagsChanges[i].ParNo1+vParagsChanges[i].Range=vParagsChanges[i+1].ParNo1) and
            ((vParagsChanges[i].Kind=ckDelete) and (vParagsChanges[i+1].Kind=ckAdd)) then
              {if vParagsChanges[i].Range = vParagsChanges[i+1].Range then} 
              begin
                vUnitedPars := min(vParagsChanges[i].Range, vParagsChanges[i+1].Range);
                if vParagsChanges[i+1].Range >= vUnitedPars then
                  vParagsChanges[i+1].Range := vParagsChanges[i+1].Range - vUnitedPars;
                if vParagsChanges[i].Range >= vUnitedPars then
                  vParagsChanges[i].Range := vParagsChanges[i].Range - vUnitedPars;
                for j := 0 to vUnitedPars-1 do 
                begin
                  FParsHL[vParNumIn+vInsertedCount1+j].Kind := pkReplaced;
                  vTagsInfoEx := GetTagsInfo(Editor1.Parag(vParNumIn+vInsertedCount1+j).Str); 
                  FParsHL[vParNumIn+vInsertedCount1+j].ViewGroups := GetViewGroupsByChangeItems(vTagsInfoEx.TagKinds);
                  vTagsInfoEx := GetTagsInfo(Editor2.Parag(vParNumIn+vInsertedCount1+j).Str);
                  FParsHL[vParNumIn+vInsertedCount1+j].ViewGroups := FParsHL[vParNumIn+vInsertedCount1+j].ViewGroups + GetViewGroupsByChangeItems(vTagsInfoEx.TagKinds);
                  if vParagsChanges[i].InCard then 
                    FParsHL[vParNumIn+vInsertedCount1+j].ViewGroups := FParsHL[vParNumIn+vInsertedCount1+j].ViewGroups + [vgCard]
                  else
                    FParsHL[vParNumIn+vInsertedCount1+j].ViewGroups := FParsHL[vParNumIn+vInsertedCount1+j].ViewGroups + [vgText];
                end;
                inc(vParNumIn, vUnitedPars);
                inc(vParNumOut, vUnitedPars);
              end;
    
          case vParagsChanges[i].Kind of
            ckAdd: begin
              for j := 0 to vParagsChanges[i].Range-1 do
              begin
                vTmpParag := TRTFParag.Create(nil, False, False, raLeft{raRight});
                FEditor1.InsPar(vParNumIn+vInsertedCount1+j, vTmpParag, false);
                FParsHL[vParNumIn+vInsertedCount1+j].Kind := pkAdded;
                vTagsInfoEx := GetTagsInfo(Editor2.Parag(vParNumOut+vInsertedCount2+j).Str); 
                if vParagsChanges[i].InCard then 
                  FParsHL[vParNumIn+vInsertedCount1+j].ViewGroups := GetViewGroupsByChangeItems(vTagsInfoEx.TagKinds) + [vgCard]
                else 
                  FParsHL[vParNumIn+vInsertedCount1+j].ViewGroups := GetViewGroupsByChangeItems(vTagsInfoEx.TagKinds) + [vgText];
              end;
              inc(vInsertedCount1, vParagsChanges[i].Range);
              inc(vParNumOut, vParagsChanges[i].Range);
            end;
            ckDelete: begin
              for j := 0 to vParagsChanges[i].Range-1 do
              begin
                vTmpParag := TRTFParag.Create(nil, False, False, raLeft);
                FEditor2.InsPar(vParNumOut+vInsertedCount2+j, vTmpParag, false);
                FParsHL[vParNumOut+vInsertedCount2+j].Kind := pkDeleted;
                vTagsInfoEx := GetTagsInfo(Editor1.Parag(vParNumIn+vInsertedCount1+j).Str); 
                if vParagsChanges[i].InCard then 
                  FParsHL[vParNumOut+vInsertedCount2+j].ViewGroups := GetViewGroupsByChangeItems(vTagsInfoEx.TagKinds) + [vgCard]
                else 
                  FParsHL[vParNumOut+vInsertedCount2+j].ViewGroups := GetViewGroupsByChangeItems(vTagsInfoEx.TagKinds) + [vgText];
              end;
              inc(vInsertedCount2, vParagsChanges[i].Range);
              inc(vParNumIn, vParagsChanges[i].Range);
            end;
            ckModify: begin 
              if (ciAlignment in vParagsChanges[i].ChangedItems) and (vParagsChanges[i].StrChanges = nil) then
                FParsHL[vParNumIn+vInsertedCount1].Kind := pkAlignment
              else
                FParsHL[vParNumIn+vInsertedCount1].Kind := pkModified;
    
              FParsHL[vParNumIn+vInsertedCount1].Changes := GetViewChanges(vParagsChanges[i].StrChanges);
              FParsHL[vParNumIn+vInsertedCount1].ViewGroups := GetViewGroupsByChangeItems(vParagsChanges[i].ChangedItems);
              if vParagsChanges[i].InCard then 
                if (ciText in vParagsChanges[i].ChangedItems) or (ciAlignment in vParagsChanges[i].ChangedItems) then 
                begin 
                  FParsHL[vParNumIn+vInsertedCount1].ViewGroups := FParsHL[vParNumIn+vInsertedCount1].ViewGroups + [vgCard];
                  FParsHL[vParNumIn+vInsertedCount1].ViewGroups := FParsHL[vParNumIn+vInsertedCount1].ViewGroups - [vgText, vgAlignment];
    
                  for j := 0 to high(FParsHL[vParNumIn+vInsertedCount1].Changes) do 
                    if FParsHL[vParNumIn+vInsertedCount1].Changes[j].ViewGroup = vgText then
                      FParsHL[vParNumIn+vInsertedCount1].Changes[j].ViewGroup := vgCard;
                end;
    
              inc(vParNumIn, 1);
              inc(vParNumOut, 1);
            end;
          end;
        end;

    Такой г****код возник не за 1 день. Голову пришлось поломать основательно :))
    Комментарии убраны, дабы не портить удовольствие от прочтения.

    guest, 31 Декабря 2008

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

    +30

    1. 1
    2. 2
    clsLine L = Lines[4][i];
    int Ind = Lines[4].IndexOf(L);

    guest, 12 Декабря 2008

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

    +30

    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
    private static string identifier(string wmiClass, string wmiProperty)
                {
                    string result = "";
                    System.Management.ManagementClass mc =
                new System.Management.ManagementClass(wmiClass);
                    System.Management.ManagementObjectCollection moc = mc.GetInstances();
                    foreach (System.Management.ManagementObject mo in moc)
                    {
                        //Only get the first one
                        if (result == "")
                        {
                            try
                            {
                                result = mo[wmiProperty].ToString();
                                break;
                            }
                            catch
                            {
                            }
                        }
                    }
                    return result;
                }

    guest, 08 Декабря 2008

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

    +30

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    void ListViewCtrl::SetEditableColumn(int col, bool editable)
    {
    	while(col >= static_cast<int>(editableCols_.size()))
    	{
    		editableCols_.push_back(true);
    	}
        editableCols_[col] = editable;
    }

    std::vector<bool> editableCols_;
    вектор булов используется в ListView для того чтобы указать является ли столбец редактируемым...

    p.s. польские паттерны)

    guest, 02 Декабря 2008

    Комментарии (7)
  7. Си / Говнокод #46

    +30

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void
    timerfunc(int sig)
    {
      signal(SIGALRM, timerfunc);
      TimerCount++;
      TimerCallFunc();
    }

    найдено в "примере"

    guest, 01 Декабря 2008

    Комментарии (12)
  8. PHP / Говнокод #13

    +30

    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
    /**
    * Замена auto_increment
    * @param string $name - наименование таблицы
    * @param string $id - наименование индексной записи таблицы
    * @param ADODB-object $db - объект ADOConnection
    *
    * @return int - если удалось выделить следующий ID, false в противном случае
    */
    function CountId($name, $id, & $db)
    {
        $selection = $db->Execute('SELECT MAX('.$id.') as id
                                   FROM '.$name);
        if ($selection) {
            return ($selection->fields['id'] + 1);
        } else {
            return false;
        }
    }

    В каком-то древненьком проекте решили отказаться от автоинкремента. :-) Накалякали функцию для его замены.

    guest, 25 Ноября 2008

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

    +29.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    ....
    // -------------------------------------------
    // Возвращает переменную $value, если она не пуста, иначе $default или false
    
    function def_inю.s($value,$default="") {
      if ($value) return("$value");
      else if ($default) return("$default");
      else return(false);
    }
    ....

    Спрашивается:
    1. для кого существует php-функция empty()?
    2. кто научил ТАК возвращать строки?

    Вот такие у нас фрилансеры...

    guest, 12 Января 2009

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

    +29.4

    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
    var req_date = document.getElementById('requested_date').value.split('-');
    if (req_date.length!=3 || new Number(req_date[0])<1990 || new Number(req_date[0])>2100
    || new Number(req_date[1])<1 || new Number(req_date[1])>12 || new Number(req_date[2])<1) {
    alert('Requested date is not valid, please re-enter.');
    return false;
    }
    
    var ef_date = document.getElementById('effective_date').value.split('-');
    if (ef_date.length!=3 || new Number(ef_date[0])<1990 || new Number(ef_date[0])>2100
    || new Number(ef_date[1])<1 || new Number(ef_date[1])>12 || new Number(ef_date[2])<1) {
    alert('Effective date is not valid, please re-enter.');
    return false;
    }
    
    var ex_date = document.getElementById('expiration_date').value.split('-');
    if (ex_date.length!=3 || new Number(ex_date[0])<1990 || new Number(ex_date[0])>2100
    || new Number(ex_date[1])<1 || new Number(ex_date[1])>12 || new Number(ex_date[2])<1) {
    alert('Expiration date is not valid, please re-enter.');
    return false;
    }
    
    
            var month_days = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
    
    if (new Number(req_date[0])%4) {
    month_days[1] = 28;
    }
    
    if ((new Number(req_date[2])>month_days[new Number(req_date[1])-1]) ) {
    alert('Requested date is not valid, please re-enter.');
    return false;
    }
    
    if (new Number(ef_date[0])%4) {
    month_days[1] = 28;
    }
    if ((new Number(ef_date[2])>month_days[new Number(ef_date[1])-1]) ) {
    alert('Effective date is not valid, please re-enter.');
    return false;
    }
    
    if (new Number(ex_date[0])%4) {
    month_days[1] = 28;
    }
    if ((new Number(ex_date[2])>month_days[new Number(ex_date[1])-1]) ) {
    alert('Expiration date is not valid, please re-enter.');
    return false;
    }

    и такого там много.. еще на PHP скину

    guest, 12 Декабря 2008

    Комментарии (29)
  11. PHP / Говнокод #204

    +29.3

    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
    for ($i=0; $i < $this->acl_count; $i++)
    		{
    			$acl =& $this->acl[$i];
    			if (strcasecmp( $aco_section_value, $acl[0] ) == 0) {
    				if (strcasecmp( $aco_value, $acl[1] ) == 0) {
    					if (strcasecmp( $aro_section_value, $acl[2] ) == 0) {
    						if (strcasecmp( $aro_value, $acl[3] ) == 0) {
    							if ($axo_section_value && $acl[4]) {
    								if (strcasecmp( $axo_section_value, $acl[4] ) == 0) {
    									if (strcasecmp( $axo_value, $acl[5] ) == 0) {
    										$acl_result = @$acl[6] ? $acl[6] : 1;
    										break;
    									}
    								}
    							} else {
    								$acl_result = @$acl[6] ? $acl[6] : 1;
    								break;
    							}
    						}
    					}
    				}
    			}
    		}

    из ядра Joomla

    guest, 16 Декабря 2008

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