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

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

    +135

    1. 1
    <SCRIPT LANGUAGE=JavaScript src="../../../../../vstavka.txt"></script>

    http://www.helloworld.ru/texts/comp/lang/php/spravscript/stranica13.html что статьи говно что сайт.

    Vasiliy, 02 Марта 2011

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

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //...
    	iInitCommDevicePeriod = GetPrivateProfileInt(extraTunungLine, _T("InitCommDevicePeriod"), INIT_COMM_DEVICE_TIMER_PERIOD / 1000, extraFilePath) * 1000;
    	iReconnectSocketPeriod = GetPrivateProfileInt(extraTunungLine, _T("ReconnectSocketPeriod"), CONN_WITH_SOCK_LOST_TIMER_PERIOD / 1000, extraFilePath) * 1000;
    	m_uiCheckLoopPeriod = GetPrivateProfileInt(extraTunungLine, _T("CheckLoopPeriod"), CCC_LINE_CHECK_LOOP_TIMER_PERIOD / 1000, extraFilePath) * 1000;	
    //....

    Автор тот же...
    мистическая инициализация таймеров.
    зачем делить default value на 1000 перед посылкой в функцию, чтобы потом результат умножить на 1000. Может, чтобы время было в целых секундах?

    ShuraKotov, 13 Февраля 2011

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

    +135

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if (",0,1,2,5,6,9,10,11,14,17,18,".IndexOf("," + cc + ",") != -1)
    {
        gridwells[rid, cc].Editor = null;
        gridwells[rid, cc].View.BackColor = Mark_FormFunctions.DefColor;
    }
    else if (",3,4,7,8,15,12,13,".IndexOf("," + cc + ",") != -1)
    {
        gridwells[rid, cc].Editor = DoubleEditor;
        gridwells[rid, cc].View = Mark_FormFunctions.EditView;
    }

    Вот так можно обойтись без switch

    Buzurud, 29 Декабря 2010

    Комментарии (107)
  5. Куча / Говнокод #4645

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <p id="entrance">
                Нашли или ...
    </p>
    
    <p id="entrance" style="background: #fff; padding: 8px; -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; -webkit-box-shadow: 0 0 5px #aaa">
    	Дорогие пользователи
    </p>

    Решил я написать скрипт для GreaseMonkey, который убирает сообщение "Дорогие пользователи, "
    И вот что обнаружил: в коде есть два одинаковых айдишника id="entrance".

    Используется стиль p#entrance.

    Если надо использовать стили в нескольких элементах, используй классы.

    А разные айдишники оставь для джаваскрипта,
    а то не выбрать определенный элемент с помощью document.getElementById.

    В крайнем случае используй атрибут name. Для него есть метод document.getElementsByName

    Oleg_quadro, 16 Ноября 2010

    Комментарии (42)
  6. Си / Говнокод #4423

    +135

    1. 1
    2. 2
    3. 3
    do {
                     data = get_stat();
            } while ((data & (1 << stat_smth_ok_bit_n)) != (1 << stat_smth_ok_bit_n));

    Суровый педантичный немецкий код.

    minixoid, 22 Октября 2010

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

    +135

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
       static int val = 1;
       while(val /* vanish */ --> 0)
       {
          (++ /* do black magic ! */  val) /* very black magic !!! */ ++;
          (val == 2 ? printf("WTF ??!") : val =- 1);
       }
     
       if(val<-15)
               return ((1<0?/* magic */100500:500?233?33?321?2223?0:0:0:0:0:0));
     
       return ((!!val==!!false)?val ==- 100500?5:1:main());
    }

    Из разряда синтаксиса языка

    ForEveR, 17 Августа 2010

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

    +135

    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
    0 DIM P(4): DIM R(4)
    10 DATA 173, 48, 192, 136, 208, 5, 206, 1, 3, 240, 9, 202, 208, 245, 174, 0, 3, 76, 2, 3, 96,,0
    20 FOR X=770 TO 792
    30 READ Y
    40 POKE X, Y
    50 NEXT X
    60 DATA 192, 152, 144, 128, 114
    70 FOR I=0 TO 4
    80 READ P(I)
    90 NEXT I
    100 DATA 255, 128, 64, 64, 128
    FOR I=0 TO 4
    READ R(I)
    NEXT I
    FOR I=0 TO 4
    POKE 768, P(I)
    POKE 769, R(I)
    CALL 770
    NEXT I
    END

    Не совсем ГК, зато выглядит страшно. Шарманка для ПЭВМ «Агат-7». Вторая строка — машинные коды. Выглядит как обфуска. Вот листинг:

    .ORG 768
    L_768: .BYTE 0 ; НОТА
    L_769: .BYTE 0 ; ДЛИТЕЛЬНОСТЬ
    L_770: LDA $C030
    L_773: DEY
    BNE L_781
    DEC L_769
    BEQ L_790
    L_781: DEX
    BNE L_773
    LDX L_768
    JMP L_770
    L_790: RTS
    .BYTE $FF
    .BYTE 0

    Кстати, таблица команд процессора совместима с 6502, поэтому листинг похож на демонстрировавшийся в фильме «Терминатор».
    Строчки 7 и 11 — это массивы нот и длительностей соответственно.
    Самое страшное, что этот код мы набирали на уроке информатики в восьмом классе. Представляете, что может произойти, если ошибиться во второй строке? Хорошо, что у «Агатов» винчестеров не было...

    inkanus-gray, 13 Июля 2010

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

    +135

    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
    int Xor4Bit_2 (unsigned char data)
    {
         unsigned char result = data;
          while (data != 0)
         {
             result ^= data & 1;
             data >>= 1;
         }
          result &= 1;
         return result;
    }
    
    вот как студенты получают xor битов числа
    это же нужно так извратить простой рабочий алгоритм
         
    int Xor4Bit_2 (unsigned char data)
    {
         int result = 0       
         while (data != 0)
         {
             result ^= data & 1;
             data >>= 1;
         }
         return result;
    }

    получил данный код после измышлизмов знакомого студента, перед этим дав ему рабочий вариант, мдя...

    ageron, 04 Июля 2010

    Комментарии (36)
  10. Си / Говнокод #3392

    +135

    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
    void init(void)
    {
    	int i,j;
    
    	setup();
    	if (!fork())
    		_exit(execve("/bin/update",NULL,NULL));
    	(void) open("/dev/tty0",O_RDWR,0);
    	(void) dup(0);
    	(void) dup(0);
    	printf("%d buffers = %d bytes buffer space\n\r",NR_BUFFERS,
    		NR_BUFFERS*BLOCK_SIZE);
    	printf(" Ok.\n\r");
    	if ((i=fork())<0)
    		printf("Fork failed in init\r\n");
    	else if (!i) {
    		close(0);close(1);close(2);
    		setsid();
    		(void) open("/dev/tty0",O_RDWR,0);
    		(void) dup(0);
    		(void) dup(0);
    		_exit(execve("/bin/sh",argv,envp));
    	}
    	j=wait(&i);
    	printf("child %d died with code %04x\n",j,i);
    	sync();
    	_exit(0);	/* NOTE! _exit, not exit() */
    }

    Говно, вошедшее в историю.

    avaaron, 03 Июня 2010

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

    +135

    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
    int param_check(char *func, ...) {
      int fail;
      va_list al;
    
      if (!func) {
        return(1);
      }
      
      va_start(al, func);
      fail=0;
      if (!strcmp(func, "vnetGenerateDHCP") || !strcmp(func, "vnetKickDHCP")) {
        vnetConfig *a = va_arg(al, vnetConfig *);
        if (!a) {
          fail=1;
        }
      } else if (!strcmp(func, "vnetAddPublicIP") || !strcmp(func, "vnetAddDev")) {
        vnetConfig *a = va_arg(al, vnetConfig *);
        char *b = va_arg(al, char *);
        if (!a || !b) {
          fail=1;
        }
      } else if (!strcmp(func, "vnetAddHost")) {
        vnetConfig *a = va_arg(al, vnetConfig *);
        char *b = va_arg(al, char *);
        char *c = va_arg(al, char *);
        int d = va_arg(al, int);
        if (!a || !b || (d < 0) || (d > NUMBER_OF_VLANS-1)) {
          fail=1;
        }
      } else if (!strcmp(func, "vnetGetNextHost")) {
        vnetConfig *a = va_arg(al, vnetConfig *);
        char *b = va_arg(al, char *);
        char *c = va_arg(al, char *);
        int d = va_arg(al, int);
        if (!a || !b || !c || d < 0 || d > NUMBER_OF_VLANS-1) {
          fail=1;
        }
      } else if (!strcmp(func, "vnetDelHost") || !strcmp(func, "vnetEnableHost") || !strcmp(func, "vnetDisableHost")) {
        vnetConfig *a = va_arg(al, vnetConfig *);
        char *b = va_arg(al, char *);
        char *c = va_arg(al, char *);
        int d = va_arg(al, int);
        if (!a || (!b && !c) || d < 0 || d > NUMBER_OF_VLANS-1) {
          fail=1;
        }
      } else if (!strcmp(func, "vnetDeleteChain") || !strcmp(func, "vnetCreateChain")) { 
        vnetConfig *a = va_arg(al, vnetConfig *);
        char *b = va_arg(al, char *);
        char *c = va_arg(al, char *);
        if (!a || !b || !c) {
          fail=1;
        }
      } else if (!strcmp(func, "vnetTableRule")) {
        vnetConfig *a = va_arg(al, vnetConfig *);
        char *b = va_arg(al, char *);
        char *c = va_arg(al, char *);
        char *d = va_arg(al, char *);
        char *e = va_arg(al, char *);
        char *f = va_arg(al, char *);
        char *g = va_arg(al, char *);
        if (!a || !b || !c || !d || (!e && !f && !g)) {
          fail=1;
        }
      } else if (!strcmp(func, "vnetSetVlan")) {
        vnetConfig *a = va_arg(al, vnetConfig *);
        int b = va_arg(al, int);
        char *c = va_arg(al, char *);
        char *d = va_arg(al, char *);
        if (!a || b < 0 || b >= NUMBER_OF_VLANS || !c || !d) {
          fail=1;
        }
      } else if (!strcmp(func, "vnetDelVlan")) {
        vnetConfig *a = va_arg(al, vnetConfig *);
        int b = va_arg(al, int);
        if (!a || b < 0 || b >= NUMBER_OF_VLANS) {
          fail=1;
        }
      } else if (!strcmp(func, "vnetInit")) {
        vnetConfig *a = va_arg(al, vnetConfig *);
        char *b = va_arg(al, char *);
        char *c = va_arg(al, char *);
        char *d = va_arg(al, char *);
        int e = va_arg(al, int);
        if (!a || !b || !c || d<0) {
          fail=1;
        }
      }
    
      va_end(al);
    
      if (fail) {
        logprintfl (EUCAERROR, "INTERNAL ERROR: incorrect input parameters to function %s\n", func);
        return(1);
      }
      return(0);
    }

    raorn, 21 Мая 2010

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