1. JavaScript / Говнокод #2428

    +166.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
    var val = value.match(/^(-?\d*)n((\+|\-)(\d+))?$/);
    var v1 = (val[1] == "-") ? -1 : parseInt(val[1]);	// A/-
    var v3 = val[3];			// +/-
    var v4 = parseInt(val[4]);	// B
    var k = 0;
    for (var k = 0; k < children2.length; k++) {
    	if (!val[1] && !val[3] && !val[4] && (children2[k] == elements[j])) { // n
    		buf.push(children2[k]);
    	} else if (!!val[1] && !val[3] && !val[4] && (children2[v1 * k + v1 - 1] == elements[j])) { // An
    		if (v1 >= 0 && v1 * k + v1 - 1 < children2.length) buf.push(children2[v1 * k + v1 - 1]);
    	} else if (!val[1] && !!val[3] && !!val[4] && (children2[v3 == "+" ? (k + v4 - (v4 == 0 ? 0 : 1)) : (v3 == "-" ? k : "")] == elements[j])) { // n+B
    		if (v3 == "+" && (k + v4 - (v4 == 0 ? 0 : 1)) < children2.length) {
    			buf.push(children2[k + v4 - (v4 == 0 ? 0 : 1)]);
    		} else if (v3 == "-") {
    			buf.push(children2[k]);
    		}
    	} else if (!!val[1] && !!val[3] && !!val[4] && (children2[v3 == "+" ? (v1 * k + (v4 == 0 ? (v1 - 1) : 0) + v4 - (v4 == 0 ? 0 : 1)) : (v3 == "-" ? (v1 * k + (v4 == 0 ? (v1 - 1) : 0) - v4 - (v4 == 0 ? 0 : 1)) : "")] == elements[j])) { // An+B
    		if (v3 == "+" && (v1 * k + (v4 == 0 ? (v1 - 1) : 0) + v4 - (v4 == 0 ? 0 : 1)) >= 0 && (v1 * k + (v4 == 0 ? (v1 - 1) : 0) + v4 - (v4 == 0 ? 0 : 1)) < children2.length) {
    			buf.push(children2[v1 * k + (v4 == 0 ? (v1 - 1) : 0) + v4 - (v4 == 0 ? 0 : 1)]);
    		} else if (v3 == "-" && (v1 * k + (v4 == 0 ? (v1 - 1) : 0) - v4 - (v4 == 0 ? 0 : 1)) >= 0 && (v1 * k + (v4 == 0 ? (v1 - 1) : 0) - v4 - (v4 == 0 ? 0 : 1)) < children2.length) {
    			buf.push(children2[v1 * k + (v4 == 0 ? (v1 - 1) : 0) - v4 - (v4 == 0 ? 0 : 1)]);
    		}
    	}
    }

    ГК собственного сочинения. Пытался самостоятельно реализовать обработку псевдоселектора :nth-child(An+B) на JavaScript...

    Cr@ZyBoY, 17 Января 2010

    Комментарии (8)
  2. Куча / Говнокод #2427

    +80

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Очередное обновление на сайте Говнокод.ру!
    
    Что нового:
    1) отсылка комментариев по Ctrl+Enter
    2) Новый раздел "Сток", в котором будут собраны последнии комментарии
    3) Мы наконец-то починили отсылку почты с сайта!
    4) Из мелочей следует отметить сервис восстановления забытых паролей и автоматическое скрытые заминусованных комментариев
    5) Говнокод.ру еще быстрее и еще стабильнее!

    По всем вопросам, предложениям и баг-репортам обращаться по контактам, указанным на странице "Обратная связь" (ссылка внизу страницы)

    striker, 17 Января 2010

    Комментарии (72)
  3. Си / Говнокод #2426

    +144.8

    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
    __inline BOOL
    SearchOneDirectory(
                      IN  LPSTR Directory,
                      IN  LPSTR FileToFind,
                      IN  LPSTR SourceFullName,
                      IN  LPSTR SourceFilePart,
                      OUT PBOOL FoundInTree
                      )
    {
        //
        // This was way too slow. Just say we didn't find the file.
        //
        *FoundInTree = FALSE;
        return(TRUE);
    }

    Оптимизация by Microsoft. Шедевр из утёкших в 2004 году исходников Windows, заставило посмеятся, веселые у Микрософта заглушки

    Sauron, 16 Января 2010

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

    +144.9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /*
      Func get_top($msg_number,$lines)
      Access: Public
    */
    function get_top( $msg_number , $lines = "0" )
    {
     // ....
    }

    Очень ценный комментарий к функции, о одном классе.. Более того, там все каменты в этом стиле. Кэп снова с нами!

    mE, 16 Января 2010

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

    +65

    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
    for(;;)
        {
            try
            {
                game();
            }
            catch(game_end e)
            {
                if(e.reason == GAME_WIN)
                {
                    printf("** Would you like to play again? (y-n) ");
                    if(get_y_n()) continue;
                    break;
                }
                else if(e.reason == GAME_LOSE)
                {
                    printf("** Try again? (y-n) ");
                    if(get_y_n()) continue;
                    printf("** Are you coward? (y-n) ");
                    if(get_y_n()) break;
                    printf("** Try again? (y-n) ");
                    if(get_y_n()) continue;
                    break;
                }
                else if(e.reason == GAME_RESTART)
                {
                    continue;
                }
                else
                {
                    break;
                }
            }
        }

    Писал игру в школе

    GovnocoderJr, 16 Января 2010

    Комментарии (10)
  6. Pascal / Говнокод #2423

    +102.5

    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
    procedure TFrmCashBook.ButtonGroupDeleteClick(Sender: TObject);
    var
      CmpField : String;
      CmpOperator : String;
      StringToCmp : String;
      DeletedCount : Integer;
    begin
      if MessageDLG('Âû óâåðåíû?', mtConfirmation,
        [mbYes,mbNo],0) <> mrYes then Exit;
    
      CmpField := GroupDeleteSelectFieldComboBox.Text;
      CmpOperator := GroupDeleteSelectComparisonOperatorComboBox.Text;
      // âîçìîæíûå îïåðàòîðû '=', '>', '>=', '<', '<='
    
      StringToCmp := GroupDeleteEdit.Text;
    
      DeletedCount := 0;
      with DM.TblCashBook do begin
        First();
        while not EOF do begin
          if ( (CmpOperator = '=' ) and
               (FieldByName(CmpField).AsString = StringToCmp ) ) or
             ( (CmpOperator = '>' ) and
               (FieldByName(CmpField).AsString > StringToCmp) ) or
             ( (CmpOperator = '>=') and
               (FieldByName(CmpField).AsString >= StringToCmp) ) or
             ( (CmpOperator = '<' ) and
               (FieldByName(CmpField).AsString < StringToCmp) ) or
             ( (CmpOperator = '<=') and
               (FieldByName(CmpField).AsString <= StringToCmp) ) then
          begin
            Delete();
            DeletedCount := DeletedCount + 1;
          end
          else //åñëè çàïèñü óäàëåíà, next() íå íóæåí
            Next();
        end;
      end; //with
      ShowMessage('Óäàëåíî çàïèñåé: ' + inttostr(DeletedCount));
    end;

    GovnocoderJr, 16 Января 2010

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

    −130.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
    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
    class FinancialEventObserver < ActiveRecord::Observer
      observe Payment, Invoice
      def before_save(model)
        event = nil        
        if model.class == Payment
          if model.new_record?        
            event = FinancialEvent.new(:event => FinancialEvent::Event::PAYMENT_INVOICE,
            :arguments => {:client_name => model.invoice.client.short_name, :invoice_number => model.invoice.invoice_number},
              :company_id=>model.invoice.client.company.id)
          end
        elsif model.class == Invoice
          i = Invoice.find_by_id model.id      
          if model.new_record? or i.status != model.status        
            if model.status == Invoice::Status::ESTIMATE
              event = FinancialEvent.new(:event => FinancialEvent::Event::ESTIMATE_SEND,
            :arguments => {:client_name => model.client.short_name, :invoice_number => model.invoice_number},
                :company_id=>model.client.company.id)
            elsif model.status == Invoice::Status::APPROVED
              event = FinancialEvent.new(:event => FinancialEvent::Event::ESTIMATE_APPROVED,
            :arguments => {:client_name => model.client.short_name, :invoice_number => model.invoice_number},
                :company_id=>model.client.company.id)
            elsif model.status == Invoice::Status::REJECTED
              event = FinancialEvent.new(:event => FinancialEvent::Event::ESTIMATE_REJECTED,
            :arguments => {:client_name => model.client.short_name, :invoice_number => model.invoice_number},
                :company_id=>model.client.company.id)
            elsif model.status == Invoice::Status::SEND
              event = FinancialEvent.new(:event => FinancialEvent::Event::INVOICE_SEND,
            :arguments => {:client_name => model.client.short_name, :invoice_number => model.invoice_number},
                :company_id=>model.client.company.id)            
            end
          elsif !model.new_record? and i.state != model.state
            if model.state == Invoice::State::DELETED
              event = FinancialEvent.new(:event => FinancialEvent::Event::INVOICE_DELETED,
            :arguments => {:invoice_number => model.invoice_number},
                :company_id=>model.client.company.id)
            end
          end    
        end
        event.eventable = model.requester unless event.blank? 
        event.save unless event.blank?
        
      end
      def before_destroy(model)
        if model.class == Payment
          event = FinancialEvent.new(:event => FinancialEvent::Event::PAYMENT_DELETED,
            :arguments => {:invoice_number => model.invoice.invoice_number},
          :company_id=>model.invoice.client.company.id)
          event.eventable = model.requester
          event.save
        end    
      end
    end

    о боже, зачем я открыл этот файл?

    rakoth3d, 16 Января 2010

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

    +144.9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    char str[n]="Programmirivanie eto horoshiy predmet";
         for(i=0; i<n; i++)
         {
              printf("%c", str[i]);
         }
         printf("\n");

    Без комментариев ))

    Grockles, 15 Января 2010

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    <?
    $str = ""; 
    $amp="";
    foreach ($p as $i=>$v)
    {
             $str .= $amp."$i=$v";
             $amp = "&";
    }
    ?>

    xXx_totalwar, 15 Января 2010

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

    +66.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    //Дефайн в некотором хэдере
    #define _TAPI(b) do {BOOL _b = (BOOL)(b); if (!b) throw(system_exception(GetLastError())); } while (false);
    //...
    // И далее такое:
    //...
    _TAPI (::CreateProcess(0, (LPWSTR)m_process.c_str(), 0, 
    				0, FALSE, CREATE_SUSPENDED, 0, 0, &si, &pi));

    Мой говнокод, хотя скорее опечатка =), я с такими явлениями уже не раз сталкивался, но все равно в течение получаса не мог понять, почему у меня по два процесса запускается =)))

    ISith, 15 Января 2010

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