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

    +148

    1. 1
    $("#ORDER_PROP_5 option[value='7361']").attr("selected", "selected");

    Установка значения в селекте.

    torch1313, 24 Декабря 2012

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

    −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
    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
    public function validateLabelInput(&$label) {
        if ( 
          ! ( 
            (
              $this->labeling_main->is('1.1') && $this->labeling_main->is('7.1') && $this->labeling_main->is('2') && $this->labeling_main->is('3') 
                && $this->labeling_main->is('4') && $this->labeling_main->is('5') && $this->labeling_main->is('23') 
            )
            || (
              $this->labeling_main->is('1.1') 
                && ($this->labeling_main->is('7.2') || $this->labeling_main->is('7.3') || $this->labeling_main->is('7.4') ) 
                && $this->labeling_main->is('2') && $this->labeling_main->is('3') && $this->labeling_main->is('4') && $this->labeling_main->is('5')
                && $this->labeling_main->is('25') 
            )
            || (
              $this->labeling_main->is('1.1') && $this->labeling_main->is('7.5') && $this->labeling_main->is('2') && $this->labeling_main->is('3') 
                && $this->labeling_main->is('4') && $this->labeling_main->is('5')
            )
            || (
              $this->labeling_main->is('1.1') && $this->labeling_main->is('7.6') && $this->labeling_main->is('2') && $this->labeling_main->is('3')
            )
            || (
              $this->labeling_main->is('1.2') && $this->labeling_main->is('2') && $this->labeling_main->is('3') && $this->labeling_main->is('7') 
                && $this->labeling_main->is('4') && $this->labeling_main->is('5')
            )
            || (
              $this->labeling_main->is('1.3') && $this->labeling_main->is('2') && $this->labeling_main->is('3') && $this->labeling_main->is('7') 
                && $this->labeling_main->is('4') && $this->labeling_main->is('5')
            )
            || (
              $this->labeling_main->is('1.4') && ($this->labeling_main->is('8.1') || $this->labeling_main->is('8.2')) && $this->labeling_main->is('2')
                && $this->labeling_main->is('3') && $this->labeling_main->is('17') && $this->labeling_main->is('18')
            )
            || (
              $this->labeling_main->is('1.4') && $this->labeling_main->is('19') && $this->labeling_main->is('2') && $this->labeling_main->is('3') 
            )
            || (
              $this->labeling_main->is('1.4') && $this->labeling_main->is('20') && $this->labeling_main->is('2') && $this->labeling_main->is('3') 
            )
            || (
              $this->labeling_main->is('1.5') && $this->labeling_main->is('26.2') && $this->labeling_main->is('2') && $this->labeling_main->is('3') 
                && $this->labeling_main->is('17') && $this->labeling_main->is('18')
            )
            || (
              $this->labeling_main->is('1.5') && $this->labeling_main->is('26.1') && $this->labeling_main->is('2') && $this->labeling_main->is('3')
            )
            || (
              $this->labeling_main->is('1.6') && $this->labeling_main->is('22') && $this->labeling_main->is('2') && $this->labeling_main->is('3') 
                && $this->labeling_main->is('4') && $this->labeling_main->is('5')
            )
            || (
              $this->labeling_main->is('1.7') && $this->labeling_main->is('11')
            )
            || (
              $this->labeling_main->is('1.8') && $this->labeling_main->is('2') && $this->labeling_main->is('3')
            )
            || ($this->labeling_main->is('1.9'))
            || (
              $this->labeling_main->is('1.10') && $this->labeling_main->is('2') && $this->labeling_main->is('3') && $this->labeling_main->is('4') 
                && $this->labeling_main->is('5')
            )
            || (
              $this->labeling_main->is('1.11') && $this->labeling_main->is('2') && $this->labeling_main->is('3') && $this->labeling_main->is('17') 
                && $this->labeling_main->is('18')
            )
            || ($this->labeling_main->is('13'))
          )  
        ){
          $label['data']['status'] = 3;
        }
      }

    brainstorm, 24 Декабря 2012

    Комментарии (0)
  3. Perl / Говнокод #12343

    −88

    1. 1
    2. 2
    3. 3
    % if ($ARGS{standalone_bhv}) {} else {
    %# Что-то делаем
    % }

    Mason. Автор явно знает толк..

    Elvenfighter, 24 Декабря 2012

    Комментарии (27)
  4. Си / Говнокод #12342

    +132

    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
    Было:
    
    typedef struct {
        int range;      /*enabled flag*/
    
        union {
            struct {
                unsigned str_length;
            };
            struct {
                long i_min;
                long i_max;
            };
            struct {
                double d_min;
                double d_max;
            };
            /* ... */
        };
    } wlp_range_t;
    
    #define WLP_NO_RANGE()              { .range = FALSE }
    #define WLP_STRING_LENGTH(length)   { .range = TRUE, .str_length = length}
    #define WLP_INT_RANGE(min, max)     { .range = TRUE, .i_min = min, .i_max = max }
    #define WLP_FLOAT_RANGE(min, max)   { .range = TRUE, .d_min = min, .d_max = max }
    
    Стало:
    
    typedef struct {
        int range;      /*enabled flag*/
    
        struct {
            struct {
                unsigned str_length;
            };
            struct {
                long i_min;
                long i_max;
            };
            struct {
                double d_min;
                double d_max;
            };
            /* ... */
    
        };
    } wlp_range_t;
    
    #define WLP_NO_RANGE()              { B_FALSE, { {0} } }
    #define WLP_STRING_LENGTH(length)   { B_TRUE, { {length} } }
    #define WLP_INT_RANGE(min, max)     { B_TRUE, { {0}, {min, max} } }
    #define WLP_FLOAT_RANGE(min, max)   { B_TRUE, { {0}, {0, 0}, {min, max} } }
    #define WLP_SIZE_RANGE(min, max)    { B_TRUE, { {0}, {0, 0}, {0.0, 0.0}, {min, max} } }
    
    /* ... */

    Такая вот бяка получилась при портировании проекта с GCC на Visual C. А все потому, что:
    1. ISO C++03 8.5.1[dcl.init.aggr]/15:
    | When a union is initialized with a brace-enclosed initializer,
    | the braces shall only contain an initializer for the first member of the union.
    2. Visual C не поддерживает designated initializers

    myaut, 24 Декабря 2012

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

    +112

    1. 1
    2. 2
    final Transform starscream = root.getLocalTransform();
    final Transform skywarp = starscream.clone();

    someone, 24 Декабря 2012

    Комментарии (1)
  6. Java / Говнокод #12340

    +102

    1. 1
    originalTransform

    final Transform starscream = root.getLocalTransform();
    final Transform skywarp = transform.clone();

    someone, 24 Декабря 2012

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

    +16

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    #include <iostream>
    using namespace std;
    
    struct T{int a;T(){cout<<"T"<<this<<endl;}~T(){cout<<"~T"<<this<<endl;}};
    struct D:public T{int b;D(){cout<<"D"<<this<<endl;}~D(){cout<<"~D"<<this<<endl;}};
    
    int main() {
       T* a = new D[2];
       cout<<"mission failure"<<endl;
       delete[] a;   
       return 0;
    }

    Писал тест специально для Тараса:
    Виртуальный деструктор в базовых классах нужен:
    *Для вызова деструкторов всех потомков. Иногда это не нужно, тк поля структуры тривиальны. Согласен с Тарасом.
    *Для правильного выбора перегруженного оператора delete. Создал одним менеджером памяти, а удалил в другой - это плохо. Но также бывает редко и только в специфичных проектах.
    Но вот то, что демонстрируется в этом примере - думаю чего-нибудь такого создатели той библиотеки, что ковырял Тарас, и опасались.
    Не просто было вызван деструктор только для предков, забыв о деструкторах потомков, но и:
    *Деструктор предков был вызван для this не по тем адресам, где расположены объекты.
    Не удивлюсь, если:
    *В некоторых кулхацкерских реализациях менеджеров памяти будет удален буфер меньшего размера и куча попортится или оставшаяся не удаленная часть массива в куче просто утекет.
    http://liveworkspace.org/code/2X3MR0$8

    LispGovno, 22 Декабря 2012

    Комментарии (48)
  8. JavaScript / Говнокод #12336

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function postGameOrder(option) {
        // 48 cтрок кода
            if (option == 1) {
                if (!confirm("Are you sure you want to save this configuration?")) {
                    return false;
                }
            }
        // 45 строк кода
    }

    P.S. Умолчу уже о том, что среди тех 48 и 45 строк кода происходит обращение к глобальным переменным.
    На публикацию же вдохновило то, что вот это обращение к option — единственное во всей функции.

    wissenstein, 22 Декабря 2012

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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    i = 0;
      while ((p_c = strchr(&str[i], c)) != NULL) {
        k = p_c - str;           
        for (j = 0;  j < k - i;  j++)
          putchar(' ');
        putchar('*');              
        i = k + 1;               
      }
      putchar('\n');

    очень простой способ подчеркнуть определённые символы в массиве знаков

    taburetka, 22 Декабря 2012

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

    −84

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    protected override function onLoaded() : void {
          super.onLoaded();
          var sleepComplete : Function = function () : void {
            closeWindow();
          };
          onGuest ();
          sleep.run( 1000, sleepComplete )
    }

    slavara, 21 Декабря 2012

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