- 1
- 2
- 3
- 4
- 5
check_p = (p)->
if p && p.p
"?p=#{p.p}"
else
''
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+4
check_p = (p)->
if p && p.p
"?p=#{p.p}"
else
''
Не знаю, зачем это нужно и что оно делает
+3
$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);
Вот поэтому нотайсы должны быть фатальными
+76
.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);
}
#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) */
+3
$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;
Я вам покушать принес(((( П.с. это прод онлайн игры мать ее(((((
−99
Если Сальдо = Перечисления.ДаНет.Да И Кредит = Перечисления.ДаНет.Да Тогда
СуммаКОплате = Строка.Сальдо + Строка.Начислено + Строка.Разовые - Строка.Оплата - Льгота;
Строка.Коплате = СуммаКОплате;
ИначеЕсли Сальдо = Перечисления.ДаНет.Нет И Кредит = Перечисления.ДаНет.Да Тогда
СуммаКОплате = Строка.Начислено + Строка.Разовые - Строка.Оплата - Льгота - ?(Строка.Сальдо < 0, Строка.Сальдо * -1, 0);
Строка.Коплате = СуммаКОплате;
ИначеЕсли Сальдо = Перечисления.ДаНет.Да И Кредит = Перечисления.ДаНет.Нет Тогда
СуммаКОплате = ?(Строка.Сальдо > 0, Строка.Сальдо , 0) + Строка.Начислено + Строка.Разовые - Строка.Оплата - Льгота;
Строка.Коплате = СуммаКОплате;
ИначеЕсли Сальдо = Перечисления.ДаНет.Нет И Кредит = Перечисления.ДаНет.Нет Тогда
СуммаКОплате = Строка.Начислено + Строка.Разовые - Льгота;
Строка.Коплате = СуммаКОплате;
КонецЕсли;
Проняло до слез. Ребята не знают простой математики, зато им известна условная тернарная операция. Привел самый эпичный отрывок, но там впору публиковать всю конфигурацию.
+2
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.
+1
// Определение метода 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 под виндой скомпилил это без багов?
+2
<?php
function generate_number_part($length=2) {
$password = substr(preg_replace("/[^0-9]/", "", crypt(time())) .
preg_replace("/[^0-9]/", "", crypt(time())) .
preg_replace("/[^0-9]/", "", crypt(time())),
0, $length);
return $password;
}
Сгенерировать пароль из ровно $length цифр... или меньше
−2
float PriceByProductID(string product_id)
{
if(product_id == RUBY_PILE)
return 1.99f;
else if (product_id == RUBY_BAG)
return 4.99f;
else if (product_id == RUBY_SACK)
return 9.99f;
else if (product_id == RUBY_BOX)
return 19.99f;
else if (product_id == RUBY_CHEST)
return 39.99f;
else if (product_id == RUBY_TRUNK)
return 99.99f;
else if (product_id == GOLD_PILE)
return 0.99f;
else if (product_id == GOLD_BAG)
return 2.99f;
else if (product_id == GOLD_SACK)
return 7.99f;
else if (product_id == GOLD_BOX)
return 14.99f;
else if (product_id == GOLD_CHEST)
return 29.99f;
else if (product_id == GOLD_TRUNK)
return 79.99f;
return 0f;
}
+9
int naive_show_int(int x) {
char buf[32];
char *p = buf + sizeof(buf);
*--p = 0;
int negative = 0;
if (x < 0) {
x = -x;
negative = 1;
}
while (x > 0) {
if (x <= 0)
return -1;
int digit = '0' + x % 10;
if (digit < '0' || digit >= '9')
return -1;
*--p = digit;
x /= 10;
}
if (negative)
*--p = '-';
puts(p);
return 0;
}
Допустишь один UB - ничто уже не спасёт твою прогу...
http://ideone.com/EFGoBi