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

    +154

    1. 1
    2. 2
    3. 3
    function deleteCookie(name, path, domain) {
    	if (getCookie(name)) document.cookie = name + '=' + ((path) ? '; path=' + path : '') + ((domain) ? '; domain=' + domain : '') + '; expires=Thu, 01-Jan-1970 00:00:00 GMT';
    }

    ...

    gost, 21 Мая 2014

    Комментарии (69)
  2. JavaScript / Говнокод #16031

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    var turn = 0;
    		function turn_over() {
    			var text = document.getElementById('turn-over-in').value;
    			var first_letter = text.charAt(0).toLowerCase();
    			var last_letter = text.charAt(text.length-1).toUpperCase();
    			var new_text = first_letter + text.substr(1,text.length-2) + last_letter;
    			var text_array = new_text.split('');
    			var inside_out = text_array.reverse();
    			var turn_over_text = inside_out.join('');
    			document.getElementById('turn-over-out').value = turn_over_text;
    <...>

    Задача: развернуть строку текста (Абв->Вба).

    gost, 21 Мая 2014

    Комментарии (30)
  3. JavaScript / Говнокод #16030

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function chksremail(t) {
    	if (t.value!='' && (t.value.indexOf('@')<1 || t.value.indexOf('.')<1 || t.value.length<4 || t.value.indexOf(' ')!=-1)) {
    		if (t.value.indexOf('@')<1) alert('Вы ввели неправильный адрес электронной почты! Адрес электронной почты должен обязательно содержать символ "@".');
    		else if (t.value.indexOf('.')<1) alert('Вы ввели неправильный адрес электронной почты! Адрес электронной почты должен обязательно содержать точку (".").');
    		else if (t.value.length<4) alert('Вы ввели неправильный адрес электронной почты! Адрес электронной почты должен обязательно содержать минимум 4 символа.');
    		else if (t.value.indexOf(' ')!=-1) alert('Вы ввели неправильный адрес электронной почты! Адрес электронной почты не может содержать пробелы.');
    		t.focus();
    		return false;
    	}
    	return true;
    }

    $%&$@^@#$^@rlu.ru/rlu.js

    gost, 21 Мая 2014

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

    +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
    function b_copy(p) {
    	var f=0;
    	if (window.clipboardData&&window.clipboardData.setData) {
    		var ind=p.innerHTML;
    		ind=ind.replace(/&gt;/g,'>');
    		ind=ind.replace(/&lt;/g,'<');
    		ind=ind.replace(/&quot;/g,'"');
    		ind=ind.replace(/&amp;/g,'&');
    		window.clipboardData.setData('Text',ind);
    		if (window.clipboardData.getData('Text')==ind) {
    			alert('Код успешно скопирован в буфер обмена.');
    			f=1;
    		}
    	}
    	if (f==0) {
    		if (typeof (window.getSelection)=='function') {
    			window.getSelection().selectAllChildren(p);
    		}
    		else {
    			var r=document.body.createTextRange();
    			r.moveToElementText(p);
    			r.select();
    		}
    		alert('Нажмите кнопку "Ok", а затем клавиши CTRL+C, чтобы скопировать код в буфер обмена.');
    	}
    }

    Продолжаем искать говнокод на страницах левых сайтов.

    http://ping-admin.ru/pa.js

    gost, 21 Мая 2014

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

    +127

    1. 1
    2. 2
    3. 3
    4. 4
    <local name="jhgjkgdfghd" />
    <loadfile property="jhgjkgdfgh" srcfile="@{filepath}" failonerror="false">
    	...
    </loadfile>

    Я очень долго втыкал, почему один из овер 9000 Ant-скриптов валится....

    kostoprav, 21 Мая 2014

    Комментарии (148)
  6. PHP / Говнокод #16027

    +162

    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
    $sql_color =
    "IF(PsaleCharge.payed = " . TSALE_CONTRACTOR_INIT . ", 'red', IF(PsaleCharge.payed = " . TSALE_CONTRACTOR_PARTIAL . ", 'silver', 'green'))";
    
    $sql_title =
    "IF(PsaleCharge.payed = " . TSALE_CONTRACTOR_INIT . ", 'Не оплачено', IF(PsaleCharge.payed = " . TSALE_CONTRACTOR_PARTIAL . ", 'Оплачено частично', 'Оплачено'))";
    
    if($allow_pay) {
    	$sql_allow_pay = "";
    } else {
    	$sql_allow_pay = "OR TRUE";
    }
    
    $sql_contractor_name =
    "GROUP_CONCAT(" .
    "'<tr>\r\n<td>', " .
    "IF(PsaleCharge.tcontractor_id IS NULL, " .
    "IF(PsaleCharge.recipient IS NULL OR PsaleCharge.recipient = '', '', CONCAT(PsaleCharge.recipient, '&nbsp;')), " .
    "CONCAT('<a href=\"../tcontractors/view?id=', Tcontractor.id, '\" target=\"_blank\">', HTMLSPECIALCHARS(Tcontractor.company), '</a>&nbsp;')" .
    "), " .
    "'</td>\r\n<td style=\'text-align:right;\'>', " .
    
    "IF(Psale.status = " . PSALE_STATUS_CLOSE . " $sql_allow_pay, CONCAT('<span style=\'color:', $sql_color, ';\' title=\'', $sql_title, '\'>', PsaleCharge.amount, '</span>'), " .
    
    "CONCAT(" .
    "'<a style=\'color:', $sql_color, ';\' title=\'', $sql_title, '\' href=\'#\' onclick=\'onPsaleChargeEdit(', PsaleCharge.id, ', ', PsaleCharge.psale_id,  ', false); return false;\'>', " .
    "PsaleCharge.amount, " .
    "'</a>'" .
    ")), " .
    
    "'</td>\r\n</tr>\r\n'" .
    "SEPARATOR ' ')";
    
    $sql_contractors =
    "SELECT $sql_contractor_name " .
    "FROM psale_charges PsaleCharge " .
    "LEFT JOIN tcontractors Tcontractor ON PsaleCharge.tcontractor_id = Tcontractor.id " .
    "WHERE PsaleCharge.psale_id = Psale.id ";

    Формируем разметку в SQL-запросе...

    DirtyG, 21 Мая 2014

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

    +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
    // Hammer the CFG with large numbers of overlapping variable scopes, which
    // implicit destructors triggered at each edge.
    
    #define EXPAND_BASIC_STRUCT(i) struct X##i { X##i(int); ~X##i(); };
    #define EXPAND_NORET_STRUCT(i) struct X##i { X##i(int); ~X##i() __attribute__((noreturn)); };
    EXPAND_BASIC_STRUCT(0000); EXPAND_NORET_STRUCT(0001);
    EXPAND_BASIC_STRUCT(0010); EXPAND_BASIC_STRUCT(0011);
    EXPAND_BASIC_STRUCT(0100); EXPAND_NORET_STRUCT(0101);
    EXPAND_NORET_STRUCT(0110); EXPAND_BASIC_STRUCT(0111);
    EXPAND_BASIC_STRUCT(1000); EXPAND_NORET_STRUCT(1001);
    EXPAND_BASIC_STRUCT(1010); EXPAND_BASIC_STRUCT(1011);
    EXPAND_NORET_STRUCT(1100); EXPAND_NORET_STRUCT(1101);
    EXPAND_BASIC_STRUCT(1110); EXPAND_BASIC_STRUCT(1111);
    
    #define EXPAND_2_VARS(c, i, x)  const X##i var_##c##_##i##0(x), &var_##c##_##i##1 = X##i(x)
    #define EXPAND_4_VARS(c, i, x)  EXPAND_2_VARS(c, i##0, x);  EXPAND_2_VARS(c, i##1, x)
    #define EXPAND_8_VARS(c, i, x)  EXPAND_4_VARS(c, i##0, x);  EXPAND_4_VARS(c, i##1, x)
    #define EXPAND_16_VARS(c, i, x) EXPAND_8_VARS(c, i##0, x);  EXPAND_8_VARS(c, i##1, x)
    #define EXPAND_32_VARS(c, x)    EXPAND_16_VARS(c, 0, x);    EXPAND_16_VARS(c, 1, x)
    
    #define EXPAND_2_INNER_CASES(i, x, y)    INNER_CASE(i, x, y);             INNER_CASE(i + 1, x, y);
    #define EXPAND_4_INNER_CASES(i, x, y)    EXPAND_2_INNER_CASES(i, x, y)    EXPAND_2_INNER_CASES(i + 2, x, y)
    #define EXPAND_8_INNER_CASES(i, x, y)    EXPAND_4_INNER_CASES(i, x, y)    EXPAND_4_INNER_CASES(i + 4, x, y)
    #define EXPAND_16_INNER_CASES(i, x, y)   EXPAND_8_INNER_CASES(i, x, y)    EXPAND_8_INNER_CASES(i + 8, x, y)
    #define EXPAND_32_INNER_CASES(i, x, y)   EXPAND_16_INNER_CASES(i, x, y)   EXPAND_16_INNER_CASES(i + 16, x, y)
    
    #define EXPAND_2_OUTER_CASES(i, x, y)    OUTER_CASE(i, x, y);             OUTER_CASE(i + 1, x, y);
    #define EXPAND_4_OUTER_CASES(i, x, y)    EXPAND_2_OUTER_CASES(i, x, y)    EXPAND_2_OUTER_CASES(i + 2, x, y)
    #define EXPAND_8_OUTER_CASES(i, x, y)    EXPAND_4_OUTER_CASES(i, x, y)    EXPAND_4_OUTER_CASES(i + 4, x, y)
    #define EXPAND_16_OUTER_CASES(i, x, y)   EXPAND_8_OUTER_CASES(i, x, y)    EXPAND_8_OUTER_CASES(i + 8, x, y)
    #define EXPAND_32_OUTER_CASES(i, x, y)   EXPAND_16_OUTER_CASES(i, x, y)   EXPAND_16_OUTER_CASES(i + 16, x, y)

    Рекурсивное (EXPAND_... ) макроговно из clang и генератор (EXPAND_..._STRUCT) структур через какую-то непонятную жопу
    https://github.com/llvm-mirror/clang/blob/master/INPUTS/cfg-nested-var-scopes.cpp

    j123123, 21 Мая 2014

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

    +17

    1. 1
    MagicClass::getInstance().getFooFactory().createFoo().killMePlease();

    http://habrahabr.ru/post/222007/
    А вообще "Внедрение зависимостей в C++ через контейнеры" - та ещё традиционная специальная олимпиада крестовиков.

    LispGovno, 20 Мая 2014

    Комментарии (11)
  9. Objective C / Говнокод #16024

    −401

    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
    #import "NSNumber+Validate.h"
    
    @implementation NSNumber (Validate)
    + (NSNumber*)validate:(NSNumber *)number
    {
        NSNumber* num = @0;
        if(number != nil)
        {
            num = number;
        }
        return num;
    }
    @end

    Мой помощник очень любит городить категории ради одной строчки. Просто маниакальная потребность у человека. В проекте их уже штук 50, вот одна из.

    Xtasy, 20 Мая 2014

    Комментарии (4)
  10. Куча / Говнокод #16023

    +126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    2.2.14   Empty text box                                                Why there is an option to add an empty text box
    3.2.14   Presentation on the left side                                 The paper that the narrow on him (that playing right now), should be enlarge (like magnifying glass).
    3.2.14   Player- time scale                                            Should be an option to move the narrow on the scale and "jump" forward\backwards
    3.2.14   Slide- changing pages                                         Should be an option to move between pages while the presentation is playing\the caption appearing
    3.2.14   Slide's tooltips invisible                                    Slide's tooltips invisible because the arror is hide them
    3.2.14   Delete a slide - Are you sure message                         When a user deleting a slide, should be a message: "Are you sure?"
    5.2.14   Slide- "Play presentation" button, should call "Full screen"  It's not clear enough that this button is Full screen
    5.2.14   Slide- Minimize button- should have tooltip                   It's not clear enough that this button is Minimize button
    5.2.14   Picture Editing                                               Its not clear enough that the small button in corner is the "Edit button", when clicking on the picture to
                                                                           edit, its go back to the library

    English as she is spoke.

    Сегодня получил списог багов обнаруженый нашим КуЭй. Это только малая толика (всего их там около сотни).

    wvxvw, 20 Мая 2014

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