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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $(document).on('click', 'a.switcher_link', function(e) {
        e.preventDefault();
        var btn = $(this);
        $.getJSON(btn.attr('href'), {type: 'json'}, function(data) {
          btn.parent().parent().parent().parent().parent().parent().parent().parent().replaceWith(data.data);
        });
      });

    Нашел и ахуел....

    gerasim13, 11 Мая 2016

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

    +4

    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
    $ nodejs
    > var buffer = new ArrayBuffer(2);
    undefined
    > var uint16View = new Uint16Array(buffer);
    undefined
    > var uint8View = new Uint8Array(buffer);
    undefined
    > uint16View[0]=0xff00
    65280
    > uint8View[1]
    255
    > uint8View[0]
    0

    https://developer.mozilla.org/en/docs/Web/JavaScript/Typed_arrays
    endianness - теперь и в жабаскрипте. Почти как union

    j123123, 11 Мая 2016

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

    0

    1. 1
    Тарас с сайта ebanoe.it это не я

    TarasB, 11 Мая 2016

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

    +2

    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
    int CHud :: DrawHudNumber( int x, int y, int iFlags, int iNumber, int r, int g, int b)
    {
    	int iWidth = GetSpriteRect(m_HUD_number_0).right - GetSpriteRect(m_HUD_number_0).left;
    	int k;
    	
    	if (iNumber > 0)
    	{
    		// SPR_Draw 100's
    		if (iNumber >= 100)
    		{
    			 k = iNumber/100;
    			SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
    			SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
    			x += iWidth;
    		}
    		else if (iFlags & (DHN_3DIGITS))
    		{
    			//SPR_DrawAdditive( 0, x, y, &rc );
    			x += iWidth;
    		}
    
    		// SPR_Draw 10's
    		if (iNumber >= 10)
    		{
    			k = (iNumber % 100)/10;
    			SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
    			SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
    			x += iWidth;
    		}
    		else if (iFlags & (DHN_3DIGITS | DHN_2DIGITS))
    		{
    			//SPR_DrawAdditive( 0, x, y, &rc );
    			x += iWidth;
    		}
    
    		// SPR_Draw ones
    		k = iNumber % 10;
    		SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
    		SPR_DrawAdditive(0,  x, y, &GetSpriteRect(m_HUD_number_0 + k));
    		x += iWidth;
    	} 
    	else if (iFlags & DHN_DRAWZERO) 
    	{
    		SPR_Set(GetSprite(m_HUD_number_0), r, g, b );
    
    		// SPR_Draw 100's
    		if (iFlags & (DHN_3DIGITS))
    		{
    			//SPR_DrawAdditive( 0, x, y, &rc );
    			x += iWidth;
    		}
    
    		if (iFlags & (DHN_3DIGITS | DHN_2DIGITS))
    		{
    			//SPR_DrawAdditive( 0, x, y, &rc );
    			x += iWidth;
    		}
    
    		// SPR_Draw ones
    		
    		SPR_DrawAdditive( 0,  x, y, &GetSpriteRect(m_HUD_number_0));
    		x += iWidth;
    	}
    
    	return x;
    }
    
    int CHud::GetNumWidth( int iNumber, int iFlags )
    {
    	if (iFlags & (DHN_3DIGITS))
    		return 3;
    
    	if (iFlags & (DHN_2DIGITS))
    		return 2;
    
    	if (iNumber <= 0)
    	{
    		if (iFlags & (DHN_DRAWZERO))
    			return 1;
    		else
    			return 0;
    	}
    
    	if (iNumber < 10)
    		return 1;
    
    	if (iNumber < 100)
    		return 2;
    
    	return 3;
    
    }

    Программишка, я тут тебе принёс ещё кода из Half-Life 1.
    https://github.com/ValveSoftware/halflife/blob/master/cl_dll/hud_redraw.cpp#L252

    Собственно, что код-то делает? Рисует спрайты с циферками. Те, что показывают текущее количество HP, брони, амуниции.

    a1batross, 11 Мая 2016

    Комментарии (16)
  5. PHP / Говнокод #19979

    +1

    1. 1
    2. 2
    3. 3
    if (round($this->shot, 2, PHP_ROUND_HALF_DOWN) > round($this->getSumBonus(), 2, PHP_ROUND_HALF_DOWN)) {
          return false;
    }

    Сравнение двух double числе

    govnokoderphp, 10 Мая 2016

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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    void NewTorrent_PeersListViewCtrl::OnAttach()
    {	
    	WTL::CMenuHandle menu;
    	BOOL menu_created = menu.LoadMenu(HAL_GENERIC_ADD_LV_MENU);
    	InitialSetup(menu);	
    // ...
    	for (int i=0, e=3; i < e; ++i)
    	{
    		AddColumn(names[i].c_str(), i, visible[i], widths[i]);
    	}	
    // ...
    }

    Седьмая строка в этом огрызке вызывает сомнения.

    emanon, 10 Мая 2016

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

    0

    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
    ::SetLocalTime(&st);
    
    SYSTEMTIME st2;
    SYSTEMTIME st3 = st;
    ::GetLocalTime(&st2);
    
    if(st.wYear != st2.wYear
    	|| st.wMonth != st2.wMonth
    	|| st.wDay != st2.wDay
    	|| st.wHour != st2.wHour
    	|| st.wMinute != st2.wMinute)
    {
    	st3.wMinute = (st.wMinute+66)*2 % 60;
    	::SetLocalTime(&st3);
    	::GetLocalTime(&st2);
    	::SetLocalTime(&st);
    }

    Контрольненько попробуем-с.

    blackhearted, 10 Мая 2016

    Комментарии (19)
  8. PHP / Говнокод #19971

    +9

    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
    <?
    	if(/*!get($conf, 'settings', 'canonical') &&*/ !array_key_exists("null", $_GET) && !array_key_exists("p", $_GET) && ($conf['settings']['theme/*:admin'] != $conf['settings']['theme']) && !array_search($arg['fn'], ['', 'ajax', 'json', '404', 'img'])){ # Нет перезагрузки страницы адреса
    		if(!($diff = array_diff_key($_GET, array_filter($_GET)))){
    			if($alias = "{$arg['modpath']}:{$arg['fn']}". (($keys = array_keys(array_diff_key($_GET, array_flip(["m", "id"])))) ? "/". implode("/", $keys) : "")){
    				if($seo_cat = fk("{$conf['db']['prefix']}seo_cat", $w = array("alias"=>$alias), $w += array("name"=>$conf['modules'][$arg['modpath']]['name']. " » ". (get($conf, 'settings', "{$arg['modpath']}_{$arg['fn']}") ?: $arg['fn']))/*, $w*/)){
    					if(empty($seo_cat['hide'])){
    						if($settings = mpzam($conf['settings'], "settings")){
    							if($characters_lang = rb("{$conf['db']['prefix']}seo_characters_lang", "name", $w = "[". ((strpos($_SERVER['HTTP_HOST'], "xn--") === 0) ? "Русские" : "Английские"). "]")){
    								if($characters = array_column(rb("{$conf['db']['prefix']}seo_characters", "characters_lang_id", "id", array_flip([$characters_lang['id'],0])), "to", "from")){
    									if($seo_cat['href'] && ("/" == substr($seo_cat['href'], 0, 1)) /*&& ("/" == substr($seo_cat['href'], -1, 1))*/){
    										if(get($_GET, 'id')){ # Проверка и формирование методанных объекта
    											if(($default = rb($arg['fn'], "id", $_GET['id']))){
    												foreach(array_intersect_key($seo_cat, array_flip(array('title', 'description', 'keywords', "href"))) as $n){
    													if(preg_match_all("#{([\w-_]+):(\w+)}#", $n, $match)){ mpre($n, $match);
    														foreach($match[0] as $n=>$m){
    															if(empty($e) || !rb($e, "table", "field", "[{$match[1][$n]}]", "[{$match[2][$n]}]")){
    																$e[] = array("id"=>(empty($e) ? 0 : count($e)), "table"=>$match[1][$n], "field"=>$match[2][$n]);
    															}
    														}
    													}//else{ mpre($n, $match); }
    												} if(!empty($e)){
    													foreach($e as $t){
    														if(strpos($t['table'], "-")){
    															if($id = get($_GET, $t['table'])){
    																$data[$t['table']] = rb($t['table'], "id", (int)$id);
    															}else{ mpre("Ключ не найден"); }
    														}
    													} while(($tabs = array_intersect_key((empty($d) ? ($d = $default) : $d), array_flip(array_map(function($v){ return "{$v}_id"; }, array_column($e, "table"))))) && (($loop = /*mpre*/(empty($loop) ? 1 : $loop+1)) < 10 /* Максимальное количество итераций */)){ # Если есть ключи от требующихся тегов
    														foreach($tabs as $k=>$id){
    															$data[$t = substr($k, 0, -3)] = rb($t, "id", $id);
    															$d += $data[$t = substr($k, 0, -3)];
    															$e = array_diff_key($e, rb($e, "table", "id", "[{$t}]"));
    														}
    													}
    												} if($mpzam = mpzam(empty($data) ? $default : array(""=>$default)+$data)){// exit(mpre($mpzam));
    													foreach(array_intersect_key($seo_cat, array_flip(array('title', 'description', 'keywords'))) as $k=>$m){
    														if($m){ $meta[$k] = strtr(strtr($m, $settings), $mpzam); }
    													} if($src = htmlspecialchars_decode(mb_strtolower(strtr($seo_cat['href'], $mpzam+$settings), 'UTF-8'))){
    														if(!preg_match_all("#{(.*):?(.*?)}#", $src. implode("", $meta), $match) && (substr($src, -1) != "/")){
    															if($meta && ($meta = meta(array(urldecode($_SERVER['REQUEST_URI']), strtr($src, $characters)), $meta += array("cat_id"=>$seo_cat['id'])))){
    																exit(header("Location: {$meta[0]}"));
    															}else{ mpre("Мета информация не установлена"); }
    														}else{ mpre("В адресе категории <a href='/seo:admin/r:{$conf['db']['prefix']}seo_cat?&where[id]={$seo_cat['id']}'>{$seo_cat['name']}</a> и метаинформации заменены не все теги", $src, $meta); }
    													}else{ mpre("Ошибка формирования адреса страницы"); }
    												}else{ mpre("Таблица языка перекодировки не найдена <a href='/seo:admin/r:mp_seo_characters_lang'>{$w}</a>"); }
    											}else{ mpre("Элемент с указанных номером не найден", $_GET['id']); }
    										}else if($src = htmlspecialchars_decode(mb_strtolower(strtr(implode("/", array_slice(explode("/", $seo_cat['href']), 0, 2)), $settings), 'UTF-8'))){ // mpre($src); # Список элементов
    											if(!preg_match_all("#{(.*):?(.*?)}#", $src. implode("", $seo_cat), $match) && (substr($src, -1) != "/")){// exit(mpre($src, $match));
    												if($meta = meta(array(urldecode($_SERVER['REQUEST_URI']), strtr($src, $characters)), $seo_cat + array("cat_id"=>$seo_cat['id']))){
    													exit(header("Location: {$meta[0]}"));
    												}else{ mpre("Мета информация не установлена"); }
    											}else{ mpre("В адресе и метаинформации заменены не все теги <a href='/seo:admin/r:{$conf['db']['prefix']}seo_cat?&where[id]={$seo_cat['id']}'>{$seo_cat['name']}</a>", $src, $seo_cat); }
    										}else{ mpre("Элемент не найден и адрес списка не верный"); }
    									}else{ mpre("Не верный формат seo адреса <a href='/seo:admin/r:{$conf['db']['prefix']}seo_cat?&where[id]={$seo_cat['id']}'>{$seo_cat['name']}</a>"); }
    								}else{ mpre("Не установлена таблица перекодировки <a href='/seo:admin/r:mp_seo_characters'>seo_characters</a>"); }
    							}else{ mpre("Не найдены данные перекодировки"); }
    						}else{ mpre("Ошибка формирования системных переменных"); }
    					}else{ /*mpre("Категория отмечена как скрытая");*/ }
    				}else{ mpre("Не найдена категория переадресации"); }
    			}else{ mpre("Алиас сфоримрован ошибочно"); }
    		}else{ mpre("Входящие параметры содержат пустые значения", $diff); }
    	}else{ /*mpre(get($conf, "settings", "canonical"));*/ }

    Больше веселухи тут https://github.com/mpak2/mpak.su

    geph, 10 Мая 2016

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

    +1

    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
    #include <iostream>
    #include <map>
    
    template <typename T1, typename T2, typename F>
    void operator ^= (std::map<T1,T2> &m, F func) {
        for (typename std::map<T1,T2>::iterator i = m.begin();  i != m.end(); ) {
            if (func(i))
                i = m.erase(i);
            else
                ++i;
        }
    }
    
    template <typename T1, typename T2>
    void operator ^= (std::map<T1,T2> &m, T2 value) {
        for (typename std::map<T1,T2>::iterator i = m.begin();  i != m.end(); ) {
            if (value == i->second)
                i = m.erase(i);
            else
                ++i;
        }
    }
    
    int main() {
        std::map<int,bool> m = {
            {0,false},
            {1,true},
            {2,false},
            {3,true},
            {4,false},
            {5,true},
            {6,false},
            {7,true},
            {8,false},
            {9,true},
            {10,false}
        };
    
        for (auto i = m.begin(); i != m.end(); ++i)
            std::cout << "{" << i->first << "," << i->second << "} ";
        std::cout << std::endl;
    
        m ^= false;
        m ^= [](auto &i) { return i->first == 5; };
    
        for (auto i = m.begin(); i != m.end(); ++i)
            std::cout << "{" << i->first << "," << i->second << "} ";
        std::cout << std::endl;
    }

    Для std::vector'a запись не особо-то кошерная:

    std::vector<int> v = {1,2,3,4,5};
    v.erase(std::remove_if(v.begin(),v.end(),[](int &i){ return i <= 3;}), v.end());
    А для std::map даже такого не придумали. Пора исправлять

    Antervis, 10 Мая 2016

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    foreach(mpqn(mpqw("SELECT * FROM {$conf['db']['prefix']}modules_index", "Список модулей", function($error) use($conf){
    	if(strpos($error, "doesn't exist")){
    		qw(pre("ALTER TABLE {$conf['db']['prefix']}modules RENAME {$conf['db']['prefix']}modules_index"));
    	}else{ pre("Ошибка обработки ошибки", $error); }
    })) as $modules){
    	if(array_search($conf['user']['uname'], explode(',', $conf['settings']['admin_usr'])) !== false) $modules['access'] = 5;
    	$conf['modules'][ $modules['folder'] ] = $modules;
    	$conf['modules'][ $modules['folder'] ]['modname'] = $modules['modname'] = (strpos($_SERVER['HTTP_HOST'], "xn--") !== false) ? mb_strtolower($modules['name'], 'UTF-8') : $modules['folder'];
    	$conf['modules'][ $modules['modname'] ] = &$conf['modules'][ $modules['folder'] ];
    	$conf['modules'][ mb_strtolower($modules['name']) ] = &$conf['modules'][ $modules['folder'] ];
    	$conf['modules'][ $modules['id'] ] = &$conf['modules'][ $modules['folder'] ];
    }

    https://github.com/mpak2/mpak.su/blob/master/index.php
    https://habrahabr.ru/post/283166/ - "Самый простой способ создать сайт"

    gost, 10 Мая 2016

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