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

    +26

    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
    for(devIndex=0;SetupDiEnumDeviceInfo(devs,devIndex,&devInfo);devIndex++) {
    
            if(doSearch) {
                for(argIndex=skip,match=FALSE;(argIndex<argc) && !match;argIndex++) {
                    TCHAR devID[MAX_DEVICE_ID_LEN];
                    LPTSTR *hwIds = NULL;
                    LPTSTR *compatIds = NULL;
                    //
                    // determine instance ID
                    //
                    if(CM_Get_Device_ID_Ex(devInfo.DevInst,devID,MAX_DEVICE_ID_LEN,0,devInfoListDetail.RemoteMachineHandle)!=CR_SUCCESS) {
                        devID[0] = TEXT('\0');
                    }
    ...
    }

    Лучший стиль форматирования кода от индусов из MS.
    Код взят из этого файла:
    https://github.com/Microsoft/Windows-driver-samples/blob/master/setup/devcon/devcon.cpp
    В других файлах код примерно аналогичный.

    demoth, 07 Сентября 2016

    Комментарии (13)
  2. C# / Говнокод #21081

    +99

    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
    // enum WithdrawalRequestStatus {... }
    
    // WithdrawalRequestStatus withdrawalRequestStatus = [...]
    
     switch (Convert.ToInt32(withdrawalRequestStatus))
                        {
                            case 0:
                                requestStatus = "New";
                                break;
                            case 1:
                                requestStatus = "Canceled";
                                break;
                            case 2:
                                requestStatus = "Rejected";
                                break;
                            case 3:
                                requestStatus = "Additional Info Required";
                                break;
                            case 4:
                                requestStatus = "Ready For Approval";
                                break;
                            case 5:
                                requestStatus = "Approved For Payout";
                                break;
                            case 6:
                                requestStatus = "Paid Out";
                                break;
                        }

    cowpoo, 02 Сентября 2016

    Комментарии (27)
  3. PHP / Говнокод #21077

    +3

    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
    //Функция возвращает упорядоченную строку значений параметров POST-запроса
    function getReqParams(){
        $reqparams = "";
        ksort($_POST);
        foreach ($_POST as $param => $valuep) {
            $reqparams = "$reqparams|$valuep";
        }
        return substr($reqparams,1);
    }
    
    //Извлечение цифровой подписи из заголовков запроса
    function getSign(){
        $HEADERS = getallheaders();
        foreach ($HEADERS as $header => $value) {
            if ($header == 'X-Api-Signature') {
                $SIGN_REQ = $value;
            }
        }
        return $SIGN_REQ;
    }

    QIWI Official Documentation

    Псс… посоны, у нас тут есть кусок из оф. документации QIWI. Зацените ))

    maxyc, 02 Сентября 2016

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    #!/bin/apple/huyapple
    
    #
    # Почему, блять, в эппловских push-уведомлениях установлено ограничение в 256 байт на одно сообщение, 
    # при этом мета-данные пакуются (хоть как-то), а полезная, блять, нагрузка - ни хуя?
    # Для полезной нагрузки, блять, используется JSON формат.
    #
    # Блять, либо ограничение снять, либо не JSON использовать. Заебали.

    goo.gl/4c2ntb

    bot, 02 Сентября 2016

    Комментарии (66)
  5. 1C / Говнокод #21058

    −103

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    &НаСервере
     Процедура ОтсортироватьЧТ()
         ТЧсерНомера = Объект.СерийныеНомера;
     	 ТЧсерНомера.Сортировать("IDСтрокиТЧМатериалы Возр, СерийныйНомер Убыв");
     КонецПроцедуры // ()

    blMbl, 01 Сентября 2016

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

    +410

    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
    CBroadcastPropPP::CBroadcastPropPP()
    {
    m_bAdminMode = FALSE;
    
    m_aProps.Add(new CRPProp_01);
    m_aProps.Add(new CRPProp_02);
    m_aProps.Add(new CRPProp_021);
    m_aProps.Add(new CRPProp_022);
    m_aProps.Add(new CRPProp_03);
    m_aProps.Add(new CRPProp_05);
    m_aProps.Add(new CRPProp_06);
    m_aProps.Add(new CRPProp_07);
    }
    
    #define PPPos_Dir 0
    #define PPPos_Recursive 1
    #define PPPos_Masks 2
    #define PPPos_MaxSize 3
    #define PPPos_Archive 4
    #define PPPos_Subject 5
    #define PPPos_Types 6
    #define PPPos_MaxRcpt 7
    #define PPPos_BCC 8
    
    void CBroadcastPropPP::Initialize(IRegistrato​r* pRegistrator)
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState(​ ));
     m_pRegistrator=pRegistrator;
    
    ((CRPProp_01*)(m_aProps[PPPos_Dir]))->_I​nitialize(m_pRegistrator->m_sStartupPath,​ m_pRegistrator);
    ((CRPProp_02*)(m_aProps[PPPos_Recursive]​))->_Initialize(m_pRegistrator->m_sStart​upPath, m_pRegistrator);
    ((CRPProp_021*)(m_aProps[PPPos_Masks]))-​>_Initialize(m_pRegistrator->m_sStartupP​ath, m_pRegistrator);
    ((CRPProp_022*)(m_aProps[PPPos_MaxSize])​)->_Initialize(m_pRegistrator->m_sStartu​pPath, m_pRegistrator);
    ((CRPProp_03*)(m_aProps[PPPos_Archive]))​->_Initialize(m_pRegistrator->m_sStartup​Path, m_pRegistrator);
    ((CRPProp_05*)(m_aProps[PPPos_Types]))->_​Initialize(&m_pRegistrator->m_DB,m_pRegistrator->m_s​StartupPath);
    ((CRPProp_06*)(m_aProps[PPPos_MaxRcpt]))​->_Initialize(m_pRegistrator->m_sStartup​Path, m_pRegistrator );
    ((CRPProp_07*)(m_aProps[PPPos_BCC]))->_I​nitialize(m_pRegistrator->m_sStartupPath,​ m_pRegistrator );
    }
    
    CBroadcastPropPP::~CBroadcastPropPP()
    {
    delete (CRPProp_01*)m_aProps[PPPos_Dir];
    delete (CRPProp_02*)m_aProps[PPPos_Recursive];
    delete (CRPProp_021*)m_aProps[PPPos_Masks];
    delete (CRPProp_022*)m_aProps[PPPos_MaxSize];
    delete (CRPProp_03*)m_aProps[PPPos_Archive];
    delete (CRPProp_05*)m_aProps[PPPos_Types];
    delete (CRPProp_06*)m_aProps[PPPos_MaxRcpt];
    delete (CRPProp_07*)m_aProps[PPPos_BCC];
    }

    «Вот что бывает, когда пишешь на C++, не зная, зачем нужны виртуальные деструкторы...

    классы CRPProp_0n - производные от общего базового класса. Вроде задумка неплохая, можно работать с их массивом, удобно. Но видимо, что-то не заладилось, почему-то их методы не вызывались (про виртуальные функции разработчик не знал)... И тут на выручку эмо-кодеру пришло приведение типов! Правда, про работу с массивом в цикле пришлось забыть...»


    Источник: http://emo-coders.livejournal.com/59977.html

    inkanus-gray, 01 Сентября 2016

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

    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
    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
    public static function getTree($version, $lang = 'en')
        {
            $pt_root = KbTree::findOne(($version == 'pt2') ?
                KbTree::NODE_PT2 : KbTree::NODE_PT3);
    
            $list = $pt_root
                ->children()
                ->andWhere(['root' => ($version == 'pt2') ? KbTree::NODE_PT2 : KbTree::NODE_PT3])
                ->andWhere(['visible' => 1, 'pub' => 1])
                ->orderBy('lft ASC')
                ->all();
    
            $tree = [$pt_root->id => []];
            $currentLevel = 1;
            $levelsIds[$currentLevel] = $pt_root->id;
            $dic = [];
    
            foreach($list as $key => $_node)
            {
                if(isset($_node->level, $_node->id))
                {
                    $dic[$_node->id][] = $_node->getTranslateMessage($lang);
    
                    $dic[$_node->id][] = $_node->getFullAlias();
    
                    $currentLevel = $_node->level;
    
                    switch($_node->level) {
                        case 2:
                            $tree[$levelsIds[1]][$_node->id] = [];
                            break;
                        case 3:
                            $tree[$levelsIds[1]][$levelsIds[2]][$_node->id] = [];
                            break;
                        case 4:
                            $tree[$levelsIds[1]][$levelsIds[2]][$levelsIds[3]][$_node->id] = [];
                            break;
                        case 5:
                            $tree[$levelsIds[1]][$levelsIds[2]][$levelsIds[3]][$levelsIds[4]][$_node->id] = [];
                            break;
                        case 6:
                            $tree[$levelsIds[1]][$levelsIds[2]][$levelsIds[3]][$levelsIds[4]][$levelsIds[5]][$_node->id] = [];
                            break;
                    }
    
                    $levelsIds[$currentLevel] = $_node->id;
    
                }
    
            }
    
            return [$tree[$pt_root->id], $dic];
    
        }

    Получение дерева каталогов от PHP middle developer

    Kilimangaro, 29 Августа 2016

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (isset($response['initialize'])) {
    	$initialize = $response['initialize'];
    	unset($response['initialize']);
    	$response['initialize'] = $initialize;
    }

    cometchat
    (Как говорится, шаг вперед и два назад)

    slavavitrenko, 29 Августа 2016

    Комментарии (72)
  9. PHP / Говнокод #21019

    −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
    if (COption::GetOptionString("vote", "VOTE_COMPATIBLE_OLD_TEMPLATE", "Y") == "N")
    	{
    		unset($arDisplayOptions[2]);
    		unset($arDisplayOptions[3]);
    		unset($arDisplayOptions[4]);
    		unset($arDisplayOptions[5]);
    		unset($arDisplayOptions[6]);
    	}
    	elseif ($old_module_version=="Y")
    	{
    		unset($arDisplayOptions[6]);
    	}
    	else
    	{
    		unset($arDisplayOptions[2]);
    		unset($arDisplayOptions[3]);
    		unset($arDisplayOptions[4]);
    		unset($arDisplayOptions[5]);
    	}

    bitrix/modules/vote/options.php:44

    maxyc, 29 Августа 2016

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

    −3

    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
    <?php
    abstract class Upload {//Клас загрузка файлов на сервер //Класс, который не имеет реализации.
    
        private $dir;//директория для загрузки
        private $mime_type;//Некий mime_type
    
        public function __construct($dir, $mime_type) {
            $this->dir = $dir;
            $this->mime_type = $mime_type;
        }
    
        public function UploadFile($file) {
            if (!$this->isSequrity($file)) return false;
            $dirupload = $_SERVER['DOCUMENT_ROOT']."/".$this->dir."/".$file['name'];
            return move_uploaded_file($file['tmp_name'], $dirupload);
        }
    
        protected function isSequrity($file) {
            $blacklist = array (".php", ".php3", ".php4", ".html", ".htm", ".exe", ".js", ".css");//Запрещено
            foreach ($blacklist as $item) {
                if (preg_match("/$item\$/i", $file["name"])) return false;
            }
            $type = $file["type"];//тип файла
            $mime_types = $this->mime_type;
            $i = 0;
            foreach ($mime_types as $k => $v) {
                if ($type == $v) break;//Если тип файла найден(равняется типу, что файл какого типа, то выходим из цикла.
                if ($i + 1 === count($this->mime_type)) return false;
                $i++;
            }
            $size = $file["size"];
            if ($size > 2048000) return false;
            return true;
        }
    }
    ?>

    Код мне прислал адепт пРуссакова. С вопросом, "че не раблотает?". Собственно орфография, пунктуация и стили сохранены. Если кто-то будет спрашивать "чем плохи видеокурсы?", просто скиньте линку на данный код.

    Keeper, 28 Августа 2016

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