1. C++ / Говнокод #15644

    +22

    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
    /* macro is a way faster than inline */
    #define Compare(offsetx, offsety)                                              \
    do {                                                                           \
        int add;                                                                   \
        Point other = Get(g, x + offsetx, y + offsety);                            \
        if(offsety == 0) {                                                         \
            add = 2 * other.dx + 1;                                                \
        }                                                                          \
        else if(offsetx == 0) {                                                    \
            add = 2 * other.dy + 1;                                                \
        }                                                                          \
        else {                                                                     \
            add = 2 * (other.dy + other.dx + 1);                                   \
        }                                                                          \
        other.f += add;                                                            \
        if (other.f < p.f)                                                         \
        {                                                                          \
            p.f = other.f;                                                         \
            if(offsety == 0) {                                                     \
                p.dx = other.dx + 1;                                               \
                p.dy = other.dy;                                                   \
            }                                                                      \
            else if(offsetx == 0) {                                                \
                p.dy = other.dy + 1;                                               \
                p.dx = other.dx;                                                   \
            }                                                                      \
            else {                                                                 \
                p.dy = other.dy + 1;                                               \
                p.dx = other.dx + 1;                                               \
            }                                                                      \
        }                                                                          \
    } while(0)

    Нужно делать макросы ЕЩЕ больше!
    http://habrahabr.ru/post/215905/

    gost, 02 Апреля 2014

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if ($static['filter.date.start'] == 'NULL') {
        $static['filter.date.start'] = null;
    }
    if ($static['filter.date.end'] == 'NULL') {
        $static['filter.date.end'] = null;
    }

    В коде столкнулся таким оригинальным хранением пустого значения :D
    пришлось немного подкостылять чтобы empty() хотя бы работала :)

    smpl, 02 Апреля 2014

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

    −128

    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
    # Now convert the arguments - kludge to limit ourselves to /bin/sh
    i=0
    for arg in "$@" ; do
        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
    
        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
        else
            eval `echo args$i`="\"$arg\""
        fi
        i=$((i+1))
    done
    case $i in
        (0) set -- ;;
        (1) set -- "$args0" ;;
        (2) set -- "$args0" "$args1" ;;
        (3) set -- "$args0" "$args1" "$args2" ;;
        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
    esac

    gradle wrapper

    Elvenfighter, 02 Апреля 2014

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

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    ...     
    unset($_SESSION['some_payment']);
    $_SESSION['message'] = "Your booking details have been sent to your email.";
    ?>
    <script language="javascript" type="text/javascript">
        window.location.href = "bookingdetail.php?booking_id=<?= $this->book_id ?>&booking=yes";
    </script>
    <?php
          return true;
          } else {
    ...

    Вот это поворот! Найдено постерди одной из фунций класса.

    synzrk, 02 Апреля 2014

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

    +127

    1. 1
    http://ic.pics.livejournal.com/sharpc/9812774/55307/55307_original.png

    Я вот думал, а не запостить ли в раздел PHP...

    laMer007, 02 Апреля 2014

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

    +134

    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
    
    /* A C statement or statements which output an assembler instruction
       opcode to the stdio stream STREAM.  The macro-operand PTR is a
       variable of type `char *' which points to the opcode name in its
       "internal" form--the form that is written in the machine description.
    
       GAS version 1.38.1 doesn't understand the `repz' opcode mnemonic.
       So use `repe' instead.  */
    
    #undef ASM_OUTPUT_OPCODE
    #define ASM_OUTPUT_OPCODE(STREAM, PTR)	\
    {									\
      if ((PTR)[0] == 'r'							\
          && (PTR)[1] == 'e'						\
          && (PTR)[2] == 'p')						\
        {									\
          if ((PTR)[3] == 'z')						\
    	{								\
    	  fputs ("repe", (STREAM));					\
    	  (PTR) += 4;							\
    	}								\
          else if ((PTR)[3] == 'n' && (PTR)[4] == 'z')			\
    	{								\
    	  fputs ("repne", (STREAM));					\
    	  (PTR) += 5;							\
    	}								\
        }									\
      else									\
        ASM_OUTPUT_AVX_PREFIX ((STREAM), (PTR));				\
    }

    Костыль из GCC. Ассемблер GAS версии 1.38.1 не переваривает мнемоники repz и repnz. Эта макрохрень перекодирует их в repe и repne соответственно
    https://github.com/mirrors/gcc/blob/master/gcc/config/i386/gas.h#L81

    j123123, 02 Апреля 2014

    Комментарии (1)
  7. JavaScript / Говнокод #15637

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    var cont_els = section.el.getElementsByClassName('cont');
    for (var i = 0; i < cont_els.length; i++)
    {
        var node_els = cont.el.getElementsByClassName('node');
        for (var i = 0; i < node_els.length; i++)

    Вложенный цикл переписывает i внешнего, и так бесконечно.

    Itareo, 01 Апреля 2014

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

    +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
    private Action<Action, Action<Exception>> ToCallbackAction(Action a)
            {
                return (sc, ec) =>
                {
                    try
                    {
                        a();
                        sc();
                    }
                    catch (Exception e)
                    {
                        ec(e);
                    }
                };
            }

    толково или говно? Мнения разделились

    taburetka, 01 Апреля 2014

    Комментарии (49)
  9. SQL / Говнокод #15634

    −116

    1. 1
    2. 2
    DATEADD(day,DATEPART(day, DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,DATEADD(d,
    (day(EndDate)-1)*-1,EndDate))+1,0)))-1,DATEADD(d,(day(EndDate)-1)*-1,EndDate))

    Вот так в M$ SQL вычисляют последний день месяца.

    http://govnokod.ru/15606#comment223642

    bormand, 01 Апреля 2014

    Комментарии (10)
  10. PHP / Говнокод #15633

    +153

    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
    public function getPagination($page, $rows, $limit){
            $pageArray = array();
    
            if ($rows > $limit){
                $allPage = ceil($rows/$limit);
    
                if ($allPage <= 7){
                    for ($i=1;$i<=$allPage;$i++){$pageArray[]=$i;}
                }else{
                    if ($page < 5){
                        for ($i=1;$i<=($page+3);$i++){$pageArray[]=$i;}
                        $pageArray[]=$allPage;
                    }else{
                        if ($allPage <= ($page+3)){
                            $pageArray[]=1;
                            for ($i=($page-3);$i<=$allPage;$i++){$pageArray[]=$i;}
                        }else{
                            $pageArray[]=1;
                            for ($i=($page-3);$i<=($page+3);$i++){$pageArray[]=$i;}
                            $pageArray[]=$allPage;
                        }
                    }
                }
    
                return array(
                    'pages' => $pageArray,
                    'page' => $page
                );
            }else{
                return array(
                    'pages' => 1,
                    'page' => $page
                );
            }
        }

    My friend wrote pagination function. takes current page, number of rows (from query), and limit on each page. function works really good but :D govno kod :D

    tatocaster, 01 Апреля 2014

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