1. PHP / Говнокод #13445

    +148

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $type = isset($config['type']) ? $config['type'] : 'default';
    switch($type) {
        default:
            $blockClass = 'adminhtml/widget_grid_massaction_item_additional_default';
            break;
    }

    Magento core

    crook, 18 Июля 2013

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

    +88

    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
    program Project6;
    
    {$APPTYPE CONSOLE}
    
    uses SysUtils;
    
    type TIntArr = array of integer;
    
    function GetSingleArr (i: integer): TIntArr;
    begin
      SetLength(Result, 1);
      Result[0] := i;
    end;
    
    var
      W: TIntArr;
      i : integer;
    begin
      readln(i);
      if i=0 then begin
        W := GetSingleArr(5);
        WriteLn(W[0]);
      end;
      ReadLn;
    end.
    
    Delphi-7
    [Warning] Project6.dpr(25): Variable 'W' might not have been initialized

    Да какого хуя? Динмассив вообще по определению - чисто автоматический тип, как он может не инициализироваться?
    И почему для других типов такая хрень не вылазит?

    TarasB, 18 Июля 2013

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

    +138

    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
    uint32_t multiply (uint16_t a, uint16_t b)
    {
      return ((a &  ( (int16_t)( ( b & (1 << 0) ) << 15 ) ) / ( 1 << 15) ) << 0 ) +
             ((a &  ( (int16_t)( ( b & (1 << 1) ) << 14 ) ) / ( 1 << 15) ) << 1 ) +
             ((a &  ( (int16_t)( ( b & (1 << 2) ) << 13 ) ) / ( 1 << 15) ) << 2 ) +
             ((a &  ( (int16_t)( ( b & (1 << 3) ) << 12 ) ) / ( 1 << 15) ) << 3 ) +
             ((a &  ( (int16_t)( ( b & (1 << 4) ) << 11 ) ) / ( 1 << 15) ) << 4 ) +
             ((a &  ( (int16_t)( ( b & (1 << 5) ) << 10 ) ) / ( 1 << 15) ) << 5 ) +
             ((a &  ( (int16_t)( ( b & (1 << 6) ) << 9  ) ) / ( 1 << 15) ) << 6 ) +
             ((a &  ( (int16_t)( ( b & (1 << 7) ) << 8  ) ) / ( 1 << 15) ) << 7 ) +
             ((a &  ( (int16_t)( ( b & (1 << 8) ) << 7  ) ) / ( 1 << 15) ) << 8 ) +
             ((a &  ( (int16_t)( ( b & (1 << 9) ) << 6  ) ) / ( 1 << 15) ) << 9 ) +
             ((a &  ( (int16_t)( ( b & (1 <<10) ) << 5  ) ) / ( 1 << 15) ) << 10) +
             ((a &  ( (int16_t)( ( b & (1 <<11) ) << 4  ) ) / ( 1 << 15) ) << 11) +
             ((a &  ( (int16_t)( ( b & (1 <<12) ) << 3  ) ) / ( 1 << 15) ) << 12) +
             ((a &  ( (int16_t)( ( b & (1 <<13) ) << 2  ) ) / ( 1 << 15) ) << 13) +
             ((a &  ( (int16_t)( ( b & (1 <<14) ) << 1  ) ) / ( 1 << 15) ) << 14) +
             ((a &  ( (int16_t)( ( b & (1 <<15) ) << 0  ) ) / ( 1 << 15) ) << 15);
    }

    Умножение двух чисел через битовые маски и сдвиги без условных переходов. Компилятор переведет деление инта на сдвинутую единчку в арифметический сдвиг
    Использование ">>" применительно к signed типам - implementation defined http://stackoverflow.com/questions/4009885/arithmetic-bit-shift-on-a-signed-integer/4009922

    j123123, 18 Июля 2013

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

    +125

    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
    var colorInfoList = new List<ColorInfo>()
                    {
                        new ColorInfo("#000000", "	black", "	Черный"),
                        new ColorInfo("#000080","	navy","	Темно-синий"),
                        new ColorInfo("#00008B","	darkblue","	Темно-голубой"),
                        new ColorInfo("#0000CD","	mediumblue","	Умеренно-голубой"),
                        new ColorInfo("#0000FF","	blue	","Голубой"),
                        new ColorInfo("#006400","	darkgreen","	Темно-зеленый"),
                        new ColorInfo("#008000","	green","	Зеленый"),
                        new ColorInfo("#008080","	teal","	Чайный"),
                        new ColorInfo("#008B8B","	darkcyan","	Темный циан"),
                        new ColorInfo("#00BFFF","	deepskyblue","	Темный небесно-синий"),
                        new ColorInfo("#00CED1","darkturquoise	","Темно-бирюзовый"),
                        new ColorInfo("#00FA9A","	mediumspringgreen","	Умеренный синевато-серый"),
                        new ColorInfo("#00FF00","	lime","	Известковый"),
                        new ColorInfo("#00FFFF","	aqua","	Синий"),
                        new ColorInfo("#2E8B57","	seagreen","	Морской волны"),
                        new ColorInfo("#32CD32","	limegreen","	Зеленовато-известковый"),
                        new ColorInfo("#4B0082","	indigo","	Индиго"),
                        new ColorInfo("#696969","	dimgray","	Тускло-серый"),
                        new ColorInfo("#7CFC00","	lawngreen","	Зеленой травы"),    
                        new ColorInfo("#7FFFD4","	aquamarine","	Аквамарин"),
                        new ColorInfo("#800000","	maroon","	Оранжево-розовый"),
                        new ColorInfo("#808080"," 	gray","	Серый"),
                        new ColorInfo("#8B0000","	darkred","	Темно-красный"),
                        new ColorInfo("#9ACD32","	yellowgreen","	Желто-зеленый"),
                        new ColorInfo("#A52A2A","	brown","	Коричневый")
                    };
    
    
            public ColorInfo ColorCheck(List<ColorInfo> list, string colorHex)
            {
                for (int i = 0; i < list.Count-1; i++)
                {
                    if (String.Compare(list[i].HexInfo, colorHex, StringComparison.Ordinal) <= 0 && String.Compare(list[i + 1].HexInfo, colorHex, StringComparison.Ordinal)>=0)
                        return list[i+1];
                }
                return new ColorInfo();
            }

    Определение названия цвета

    iofjuupasli, 17 Июля 2013

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

    +121

    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
    /// Разрезать строку на части длиной не более maxRecordLen
      private static void splitText(ref List<string> splitTextArray,  string text) {
        splitTextArray = new List<string>();
        for (; ; ) {
          try {
            string str = text.Substring(0, maxRecordLen);
            splitTextArray.Add(str);
            try {
              text = text.Substring(maxRecordLen);
            }
            catch (Exception) {
              break;
            }
          }
          catch (Exception) {
            splitTextArray.Add(text);
            break;
          }
        }
      }

    no comment.

    diimdeep , 17 Июля 2013

    Комментарии (12)
  6. Java / Говнокод #13439

    +132

    1. 1
    ТОП ТРАЛ КАРОЧ ЕДИТ АТДЫХАТЬ НА МОРЕ БУДУ ТАМ АКУЛ И МИДУЗ ТРАЛИРАВАТЬ))00 ОСЕНЬЮ ВЕРНУСЬ КАРОЧ))00 НЕ СКУЧАЙТИ ЛАЛКИ

    ТОП ТРАЛ КАРОЧ ЕДИТ АТДЫХАТЬ НА МОРЕ БУДУ ТАМ АКУЛ И МИДУЗ ТРАЛИРАВАТЬ))00 ОСЕНЬЮ ВЕРНУСЬ КАРОЧ))00 НЕ СКУЧАЙТИ ЛАЛКИ

    PragramistOtBoga, 17 Июля 2013

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

    +149

    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
    if (!class_exists($module, false))
    {
    // Get content from php file
    $filepath = _PS_MODULE_DIR_.$module.'/'.$module.'.php';
    $file = trim(file_get_contents(_PS_MODULE_DIR_.$module.'/'.$module.'.php'));
    if (substr($file, 0, 5) == '<?php')
    	$file = substr($file, 5);
    if (substr($file, -2) == '?>')
    	$file = substr($file, 0, -2);
    
    // If (false) is a trick to not load the class with "eval".
    // This way require_once will works correctly
    if (eval('if (false){	'.$file.' }') !== false)
    	require_once( _PS_MODULE_DIR_.$module.'/'.$module.'.php' );
    else
    	$errors[] = sprintf(Tools::displayError('%1$s (parse error in %2$s)'), $module, substr($filepath, strlen(_PS_ROOT_DIR_)));
    }

    Это оригинал кода из знаменитого Prestashop ...
    Попросили написать модуль. Долго мучался, почему валидный код не работает. Потом нашел.
    Смысл логики в строках 13-17 : мы не хотим принимать файлы модулей с eval функцией.
    Поэтому мы сначала проверяем, есть ли eval в файле.
    Как проверяем?
    А давайте его просто выполним!
    Если выполнится - тогда - require_once
    В общем я О....ЕЛ! Других слов просто нет.
    Мало того, так еще нужно следить, чтобы ваш файл модуля был валидным для eval функции.
    Иначе - Parse error: syntax error ...

    corner578, 17 Июля 2013

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

    −174

    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
    Стр = ТЗОбщая.Добавить();
    Стр.сотрудник = Выборка.сотрудник;
    Стр.Результат = ВЫборка.Результат;
    ИскомаяСтрока = ТЗСотрДатаПриема.Найти(Стр.сотрудник,"Сотрудник");
    Если ИскомаяСтрока <> Неопределено Тогда
    	месяц_ = Месяц(ИскомаяСтрока.ДатаПриемаНаРаботу);
    	если месяц_ > 7 тогда  // чел принят после июля
    		число_ = 12 - месяц_;  //кол-во отработанных месяцев
    	иначе	  
    		число_ = 6 ; 
    	конецесли;	  
    КонецЕсли;	
    число_ = число_+ Месяц(ВыбДата) ;
    если число_ >=12 тогда
    	число_=12;
    конецесли;	 
    Стр.СреднийЗаработок = Окр(ВЫборка.Результат/29.4/число_,2);

    Вот так у нас считают средний заработок за последний год)))

    doom2good, 17 Июля 2013

    Комментарии (10)
  9. 1C / Говнокод #13436

    −126

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Функция ЗначениеСвойства(Объект, ИмяСвойства) Экспорт
    	
    	Возврат Объект[ИмяСвойства]
    	
    КонецФункции

    Пипец полезная функция!

    doom2good, 17 Июля 2013

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

    −124

    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
    Procedure mes(aVal) export
      Message(aVal);
    endProcedure
    
    function eqStr(a,b) export
    	result=false;
    	return ВРЕГ(TrimAll(a))=ВРЕГ(TrimAll(b));
    	if ВРЕГ(TrimAll(a))=ВРЕГ(TrimAll(b)) then
      	result=true;
     endif;	
     mes(result);
     return result;
    endfunction

    Форматирование не менял.
    1. Зачем вызывать процедуру "mes", где выводится только сообщение. Когда вывесли сообщение можно там же.
    2. В функции eqStr никогда не выполнится условие и вызов процедуры "mes".

    Danik, 17 Июля 2013

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