1. 1C / Говнокод #19401

    −99

    1. 1
    2. 2
    3. 3
    4. 4
    ЭлементыФормы.РедактированиеСклада.Доступность = Ложь;	
    Если ЭтотОбъект.ЭтоНовый() Тогда
    	ЭлементыФормы.РедактированиеСклада.Доступность = Ложь;
    КонецЕсли;

    когда склад недоступен никогда...

    CMblCL, 05 Февраля 2016

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

    −101

    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
    Процедура foo()
    		...
    		РезультатИтого = 0;
    		ТабДокВременный = Новый ТабличныйДокумент;
    	   		
    		ПечатьСчетИзвещения(...,РезультатИтого);
    		
    		Если (РезультатИтого > 0 ИЛИ РезультатИтого < 0 ИЛИ РезультатИтого = 0) и 
       	   	   	   	(СокрЛП(Строка(мСтруктураДанных.ЛицевойСчетФио)) <> "Вероятный собственник")  Тогда //это мое
    		...
    КонецПроцедуры
    
    //Функция формирует табличный документ с печатной формой СчетИзвещения
    //Возвращаемое значение:
    // Табличный документ - печатная форма 
    Функция ПечатьСчетИзвещения(..., РезультатИтого = Неопределено)  
    	...
       	Если РезультатИтого <> Неопределено Тогда
       	   	РезультатИтого = ОбластьИтого2.Параметры.КОплате; 
       	КонецЕсли;
    	...
    КонецФункции

    Самый реальный способ получения итогов запроса, что я видел!
    + кто-то ничье застолбил.
    Это из той же конфигурации, что и первая моя кладка.

    ivan_0110, 05 Февраля 2016

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    var ta = $( '#Modal form textarea');
         for(var i = 0, len = ta.length; i < len; i++) {
             $(ta[i]).html('');$(ta[i]).val('');$(ta[i]).text('');
         }

    deep, 04 Февраля 2016

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    check_p = (p)->
          if p && p.p
            "?p=#{p.p}"
          else
            ''

    Не знаю, зачем это нужно и что оно делает

    Sandwich, 04 Февраля 2016

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    $tdir = APPLICATION_PATH.'/../tmp/lv/'.md5(json_encode($_GET));
    if (!is_dir($tdir))
        mkdir($tdir, 0777, true);
    foreach(glob($lv.'/*') as $f) if(filemtime($f) < time() - 3600) rm_rf($f);

    Вот поэтому нотайсы должны быть фатальными

    DIX315, 04 Февраля 2016

    Комментарии (4)
  6. Assembler / Говнокод #19395

    +76

    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
    .global	shit
    	.type	shit, @function
    shit:
    /* prologue: function */
    /* frame size = 0 */
    /* stack size = 0 */
    .L__stack_usage = 0
    	mov r30,r24
    	mov r31,r25
    	ldd r18,Z+1
    	ldd r22,Z+2
    	mov r24,r22
    	ldi r25,0
    	ldi r26,0
    	ldi r27,0
    	mov r26,r24
    	mov r27,r25
    	clr r25
    	clr r24
    	or r25,r18
    	ld r18,Z
    	or r24,r18
    	ldd r18,Z+3
    	mov r22,r24
    	mov r23,r25
    	mov r24,r26
    	mov r25,r27
    	or r25,r18
    	ret
    	.size	shit, .-shit

    Вот такое ГЛОБАЛЬНОЕ ГОВНО мне делает GCC под AVR
    Код разворота байтиков:

    unsigned long int shit(unsigned char *a)
    {
    return
    ( unsigned long int)a[0] << 0 |
    ((unsigned long int)a[1] << 8 ) |
    ((unsigned long int)a[2] << 16) |
    ((unsigned long int)a[3] << 24);
    }

    Вот другие попытки это сделать, чтоб компилятор сделал более оптимально http://goo.gl/3D2Lri - ссылка на gcc.godbolt.org

    У меня есть собранный через crosstools-ng более новый gcc под AVR, вот выхлоп с него для тех же примеров, что и в godbolt https://paste.debian.net/378491/

    Там __builtin_bswap32() становится rcall __bswapsi2, но этот __bswapsi2 состоит из двух сраных инструкций
    gcc/libgcc/config/avr/lib1funcs.S
    #if defined (L_bswapsi2)
    ;; swap bytes
    ;; r25:r22 = bswap32 (r25:r22)
    DEFUN __bswapsi2
    bswap r22, r25
    bswap r23, r24
    ret
    ENDF __bswapsi2
    #endif /* defined (L_bswapsi2) */

    ТАК ПОЧЕМУ Б ТУПО НЕ ЗАИНЛАЙНИТЬ ЭТО?

    j123123, 04 Февраля 2016

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

    +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
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    $bo[0][1]=$data[0][4][6]; $bo[0][0]=$data[0][4][7]; $bo[1][1]=0; $bo[1][0]=0;//def&atk bonuses
     switch($data[0][2][3])
     {
      case 1: $bo[0][0]+=0.25*$bo[0][0]; $bo[0][1]-=0.25*$bo[0][1]; break;//offensive
      case 2: $bo[0][0]-=0.25*$bo[0][0]; $bo[0][1]+=0.25*$bo[0][1]; break;//defensive
     }
     switch($data[1][2][3])
     {
      case 1: $bo[1][0]+=0.25*$bo[1][0]; $bo[1][1]-=0.25*$bo[1][1]; break;//offensive
      case 2: $bo[1][0]-=0.25*$bo[1][0]; $bo[1][1]+=0.25*$bo[1][1]; break;//defensive
     }
     //naval combat
     if ((($data[1][1][9])||($data[1][1][10]))&&(($data[0][1][9])||($data[0][1][10])))
     {
      $def[0]=($d_units[9][5]+$data[0][7][9])*$data[0][1][9]+($d_units[10][5]+$data[0][7][10])*$data[0][1][10]; $def[1]=($d_units[9][6]+$data[0][8][9])*$data[0][1][9]+($d_units[10][6]+$data[0][8][10])*$data[0][1][10]; $def[2]=($d_units[9][7]+$data[0][9][9]+$d_units[10][7]+$data[0][9][10])/2;
      $def[1]+=$def[1]*$bo[0][0]/100; $def[2]+=$def[2]*$bo[0][1]/100;
      $atk[0]=($a_units[9][5]+$data[1][3][9])*$data[1][1][9]+($a_units[10][5]+$data[1][3][10])*$data[1][1][10]; $atk[1]=($a_units[9][6]+$data[1][4][9])*$data[1][1][9]+($a_units[10][6]+$data[1][4][10])*$data[1][1][10]; $atk[2]=($a_units[9][7]+$data[1][5][9]+$a_units[10][7]+$data[1][5][10])/2;
      $atk[1]+=$atk[1]*$bo[1][0]/100; $atk[2]+=$atk[2]*$bo[1][1]/100;
      $ah=$def[0]/$atk[1]*(100-$def[2])/100; $dh=$atk[0]/$def[1]*(100-$atk[2])/100;
      $admg=($atk[0]-$ah*$def[1]*(100-$atk[2])/100)/$atk[0]; $ddmg=($def[0]-$dh*$atk[1]*(100-$def[2])/100)/$def[0];
      if ($admg<0) $admg=0; else if ($admg>1) $admg=1;
      if ($ddmg<0) $ddmg=0; else if ($ddmg>1) $ddmg=1;
      if ($ah<$dh)//if attacking ships win
      {
       $data[1][1][9]=ceil($data[1][1][9]*$admg); $data[1][1][10]=ceil($data[1][1][10]*$admg);
       $data[0][1][9]=0; $data[0][1][10]=0;
       for ($i=0; $i<count($a_units); $i++) if (($i<9)||($i>10)) $data[1][1][$i]=ceil($data[1][1][$i]*$admg);//drowned units
      }
      else//if defending ships win
      {
       $data[0][1][9]=ceil($data[0][1][9]*$ddmg); $data[0][1][10]=ceil($data[0][1][10]*$ddmg);
       $data[1][1]=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
       $data[0][2][1]++; if ($data[1][2][1]) $data[1][2][1]--;//defending general promoted, the other demoted
       $data[3]=array(0, 0, 0, 0, 0); $data[4]=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
       return $data;
      }
     }
     //land combat
     $def[0]=0; $def[1]=0; $def[2]=0; $atk[0]=0; $atk[1]=0; $atk[2]=0;
     for ($i=0; $i<count($d_units); $i++) if (($i<9)||($i>10))
     {
      $def[0]+=($d_units[$i][5]+$data[0][7][$i])*$data[0][1][$i]; $def[1]+=($d_units[$i][6]+$data[0][8][$i])*$data[0][1][$i]; $def[2]+=$d_units[$i][7]+$data[0][9][$i];
      $atk[0]+=($a_units[$i][5]+$data[1][3][$i])*$data[1][1][$i]; $atk[1]+=($a_units[$i][6]+$data[1][4][$i])*$data[1][1][$i]; $atk[2]+=$a_units[$i][7]+$data[1][5][$i];
     }
     if ($data[0][2][0]) {$def[1]+=($d_units[$data[0][2][2]][6]+$data[0][8][$data[0][2][2]])*$data[0][2][1]; $def[2]+=$d_units[$data[0][2][2]][7]+$data[0][9][$data[0][2][2]];}
     if ($data[1][2][0]) {$atk[1]+=($a_units[$data[1][2][2]][6]+$data[1][4][$data[1][2][2]])*$data[1][2][1]; $atk[2]+=$a_units[$data[1][2][2]][7]+$data[1][5][$data[1][2][2]];}
     $def[2]/=11; $def[1]+=$def[1]*$bo[0][0]/100; $def[2]+=$def[2]*$bo[0][1]/100;
     $atk[2]/=11; $atk[1]+=$atk[1]*$bo[1][0]/100; $atk[2]+=$atk[2]*$bo[1][1]/100;

    Я вам покушать принес(((( П.с. это прод онлайн игры мать ее(((((

    shift196, 04 Февраля 2016

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

    −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
    Если Сальдо = Перечисления.ДаНет.Да И Кредит = Перечисления.ДаНет.Да Тогда
                
    	СуммаКОплате   =  Строка.Сальдо +  Строка.Начислено +  Строка.Разовые - Строка.Оплата - Льгота;
    	Строка.Коплате = СуммаКОплате;
                
    ИначеЕсли Сальдо = Перечисления.ДаНет.Нет И Кредит = Перечисления.ДаНет.Да Тогда
                
    	СуммаКОплате   = Строка.Начислено + Строка.Разовые - Строка.Оплата - Льгота - ?(Строка.Сальдо < 0, Строка.Сальдо * -1, 0);
    	Строка.Коплате = СуммаКОплате;
                
    ИначеЕсли Сальдо = Перечисления.ДаНет.Да И Кредит = Перечисления.ДаНет.Нет Тогда
                
    	СуммаКОплате = ?(Строка.Сальдо > 0, Строка.Сальдо , 0) +  Строка.Начислено + Строка.Разовые - Строка.Оплата  - Льгота;
    	Строка.Коплате = СуммаКОплате;
                
    ИначеЕсли Сальдо = Перечисления.ДаНет.Нет И Кредит = Перечисления.ДаНет.Нет Тогда
                
    	СуммаКОплате = Строка.Начислено + Строка.Разовые - Льгота;
    	Строка.Коплате = СуммаКОплате;
                
    КонецЕсли;

    Проняло до слез. Ребята не знают простой математики, зато им известна условная тернарная операция. Привел самый эпичный отрывок, но там впору публиковать всю конфигурацию.

    ivan_0110, 03 Февраля 2016

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    bool matchingNumerals(int num)
    {
    QString str = QString("%1").arg(num);
        for (int i = 0; i < 10; i++)
            if (str.split(QString("%1").arg(i)).size() > 2)
                return true;
        return false;
    }

    Функция, определяющая, есть ли в числе одинаковые цифры на великой могучей Qt.

    Mongrell, 03 Февраля 2016

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

    +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
    // Определение метода  Q3CanvasText::text() 
    
    class Q_COMPAT_EXPORT Q3CanvasText : public Q3CanvasItem {
    //...
      QString text() const;
    //...
    };
    
    // Далее уже в "моем" классе строчка:
    class CDevice : public CDiagramObject {
    // ...
    private:
      Q3CanvasText * m_pTitle;
    //....
    public:
      const QString & stitle() const { return m_pTitle->text(); } // обратим вниманиена возвращаемый тип
    // ...
    };
    
    // Еще один класс и отображение тултипа при наведении
    void CDiagramView::showToolTip( const QPoint & p, CDevice * d ) {
    
        if( d ) {
            QString tmp;
            if( d->group() == QString::null || d->group() == "" )
                tmp = ( d->stitle().left( d->stitle().indexOf(":") ) );  // вылетало здесь : d->stitle().indexOf(":") segmentation fault
            else
                tmp = d->group();
    //.....
            }
        }

    Нашел магию!

    Юзаю Qt 4.8.6 в Linux
    Под Виндой новая версия перепиливаемой проги компилится и работает,
    под Линухом новая версия вылетает, старая робит.

    Соль в том, что метод stitle() по факту возвращает ссылку на копию текста возвращенного Q3CanvasText::text(), которая внезапно удаляется при выходе из метода.

    Но почему тот же gcc под виндой скомпилил это без багов?

    OlegUP, 03 Февраля 2016

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