1. Список говнокодов пользователя nil

    Всего: 20

  2. Си / Говнокод #5990

    +127

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    [code=Си]
    switch(n)
    case 1:
    {
      /* code1 */
      /* fallthrough */
      case 2:
      /* code 2 */
    }
    [/code]

    Все имена и явки изменены!
    Сцуко, работает. Щас в стандарт полезу, интересно же! Обвиняют меня, я киваю на издержки мержа. Но смешно.

    nil, 15 Марта 2011

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

    +145

    1. 1
    #define ISODD( i ) ( (((i) % 2) == 0) ? 0 : 1 )

    Особо выдающимся китайцам платят не построчно, а посимвольно.

    nil, 17 Ноября 2010

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

    +144

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    }
                               }
                            }
                         }
                      }
                   }
                }
             }
          }
       }

    Да, у нас есть и такое.

    nil, 01 Сентября 2010

    Комментарии (14)
  5. SQL / Говнокод #3782

    −861

    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
    /* Ask Dian for changing this enormous DECODE */
          sprintf( ranges_sort_condition,
                   "DECODE(CONTRACT_ID, '%s', 1, 0) + "
                   "DECODE(ISS_INST, '%s', 2, 0) + "
                   "DECODE(ACQ_INST, '%s', 4, 0) + "
                   "DECODE(ISS_BIN, '%s', 8, 0) + "
                   "DECODE(TERM_TYPE, %d, 16, 0) + "
                   "DECODE(IS_PRIMARY_CARD, %d, 32, 0), "
                   "  0,  1,  64,  2,  32,  3,  16,  4,   4,  5,   8,  6,  96,  7,  80,  8,"
                   " 68,  9,  72, 10,  40, 11,  24, 12,  12, 13,   2, 14,  10, 15,  48, 16,"
                   " 36, 17, 104, 18,  88, 19,  76, 20,  66, 21,  74, 22, 112, 23, 100, 24,"
                   " 56, 25,  44, 26,  34, 27,  42, 28,  20, 29,  28, 30,  18, 31,   6, 32,"
                   " 26, 33,  14, 34,  52, 35,  60, 36, 124, 37,  50, 38,  38, 39,  22, 40,"
                   "118, 41, 122, 42, 110, 43,  94, 44, 126, 45,   1, 46,  65, 47,  97, 48,"
                   " 81, 49,   5, 50,  73, 51, 105, 52,  89, 53,  77, 54,  67, 55,  75, 56,"
                   "113, 57, 121, 58, 101, 59, 109, 60,  99, 61, 107, 62,  85, 63,  93, 64,"
                   " 83, 65,  71, 66,  91, 67,  79, 68, 117, 69, 125, 70, 115, 71, 103, 72,"
                   " 87, 73, 119, 74,  59, 75,  47, 76,  95, 77,  63, 78, 127, 79, 999",
                   "-1", DEFAULT_INST_ID, DEFAULT_INST_ID, "-1", TERM_TYPE_DEF, IS_PRIMARY_DEF );
    
          ora_sql_stmt_buff.len = sprintf( (char*)ora_sql_stmt_buff.arr, 
                                           "SELECT ACQ_INST, "
                                           "       ISS_INST, "
                                           "       ISS_BIN,  "
                                           "       TERM_TYPE, "
                                           "       MSGTYPE,  "
                                           "       TASK,     "
                                           "       REVERSAL, "
                                           "       CONTRACT_ID, "
                                           "       IS_PRIMARY_CARD, "
                                           "       TMPL_ID   "
                                           "  FROM T_TRANS_AUTH_ALG "
                                           " WHERE TRANS_TYPE = :ora_trans_type "
                                           " ORDER BY DECODE(%s)", ranges_sort_condition );

    Это хоть и на Си, но формирование запроса SQL, так что попадает сюда.
    Хоть бы комментарий какой написали, демоны!

    nil, 26 Июля 2010

    Комментарии (3)
  6. Куча / Говнокод #3693

    +129

    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
    for i in 14 15 27 29 38; do # make a sed string to replace special characters
        hexval=$(printf \\\\x%02x $i)
        sedstr=$sedstr"s/'$hexval/chr($i)||'/g;s/$hexval'/'||chr($i)/g;s/$hexval/'||chr($i)||'/g;"
    done
    
    cat <<EOF | sqlplus -S $DB_LOGIN | sed $sedstr | awk -v dbdir=db/data '{print > dbdir"/"$3".sql"}'
    $SPINIT
    BEGIN
      FOR i IN (SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE='TABLE' ORDER BY OBJECT_NAME) LOOP
        DECLARE
          all_cols VARCHAR2(32767) := '';
          TYPE data_cur_type IS REF CURSOR;
          data_cur data_cur_type;
          ins_str VARCHAR2(32767);
        BEGIN
          FOR j IN (SELECT DISTINCT(COLUMN_NAME) FROM USER_TAB_COLUMNS
                    WHERE TABLE_NAME=i.OBJECT_NAME AND
                    DATA_TYPE IN ('VARCHAR2', 'CHAR', 'NUMBER', 'DATE')
                    ORDER BY COLUMN_NAME) LOOP
            all_cols := all_cols || j.column_name || ',';
          END LOOP;
          IF all_cols is null THEN GOTO end_of_loop; END IF;
          all_cols := RTRIM(all_cols,',');
        
          OPEN data_cur FOR 'select ' ||
           '''INSERT INTO ' || i.object_name || ' (' || all_cols || ') VALUES (' || '''''''||' || replace(all_cols, ',', '||'''''',''''''||') || '||'''''');''' ||
           ' from ' || i.object_name || ' order by ' || all_cols;
          LOOP
            FETCH data_cur INTO ins_str;
            EXIT WHEN data_cur%NOTFOUND;
            dbms_output.put_line(ins_str);
          END LOOP;
          CLOSE data_cur;
        END;
    <<end_of_loop>> NULL;
      END LOOP;
    END;
    /
    EOF

    Проблеме экранирования посвящается.
    На стыке технологий: экспорт данных из БД в виде insert-ов. Там еще есть awk-шный код по разбору всего, что получилось, но он не такой ужасный.
    Автор я, если чо:)

    nil, 13 Июля 2010

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

    +138

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    /usr/include/sys/seg.h:
    #define shm_ptr u_ptrs.shmptr
    
    myfile.c:
    static SHRMEM_INFO_PTR shm_ptr = NULL;

    Сегодня для разнообразия системный хедер от AIX.

    Повбывав бы производителей, которые ограничивают полет моей фантазии (и так весьма приземленный) в именованиях моих личных переменных!

    nil, 09 Июля 2010

    Комментарии (21)
  8. bash / Говнокод #3577

    −371

    1. 1
    2. 2
    3. 3
    :> file
    
    (: ;) > file

    — Как вы инициализируете файл?
    — Улыбаясь!

    Потому что код должен улыбать(ся)!

    nil, 27 Июня 2010

    Комментарии (15)
  9. Куча / Говнокод #3563

    +130

    1. 1
    awk -F "" 'BEGIN{OFS=""}$890$891$892$893=="0003"{sub("5","2",$917)}{print}' < posting.dat

    Свеженькое:) Только что написал.
    Оказывается, и -F "" на что-то сгодился, зря я на него гнал.

    nil, 24 Июня 2010

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

    +192

    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
    <शैली श्रेणी>
    #समावेश <मानकपन.स>
    
    श्रेणी जानवर
    {
    खुला:
    	भव व्योम लिखो()
    	{
    		म_लिखो("यह एक जानवर है।\n");
    	}
    };
    
    श्रेणी शेर : खुला जानवर
    {
    खुला:
    	व्योम लिखो()
    	{
    		म_लिखो("शेर एक जानवर है।\n");
    	}
    };
    
    श्रेणी चीता : खुला जानवर
    {
    खुला:
    	व्योम लिखो()
    	{
    		म_लिखो("चीता एक जानवर है।\n");
    	}
    };
    
    पूर्णांक मुख्य()
    {
    	जानवर ज, *ज१;
    	शेर श;
    	चीता च;
    
    	ज.लिखो();
    	श.लिखो();
    	च.लिखो();
    
    	ज१=&ज;
    	ज१->लिखो();
    	ज१=&श;
    	ज१->लिखो();
    	ज१=&च;
    	ज१->लिखो();
    
    	वापस 0;
    }

    Вот вы все говорите про индусский код, а он на самом деле вот такой! Мне кажется, простой и логичный!

    (Дистрибутив на http://hindawi.in/en_US/download.php)

    nil, 06 Июня 2010

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

    +136

    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
    #define alias long
    #define int b
    #define cat 2
    alias int=cat;
    #undef int
    
    int a$(int b)
    {
      return 1;
    }
    
    main()
    {
      return a$(b)+1;
    }

    Здесь нет С++, зато есть... bash!
    На что спорим, что код возврата программы будет 1?

    nil, 05 Февраля 2010

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