- 1
print for <>
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+3
print for <>
Базовая функциональность программы cat на perl. Кто короче?
(только возможности самого языка без exec и подобных, шеллы вне олимпиады)
+4
// ...
if (isset($_GET["download"])) {
include "./download.inc.php";
} elseif (isset($_GET["table"])) {
include "./table.inc.php";
} elseif (isset($_GET["schema"])) {
include "./schema.inc.php";
} elseif (isset($_GET["dump"])) {
include "./dump.inc.php";
} elseif (isset($_GET["privileges"])) {
include "./privileges.inc.php";
} elseif (isset($_GET["sql"])) {
include "./sql.inc.php";
} elseif (isset($_GET["edit"])) {
include "./edit.inc.php";
} elseif (isset($_GET["create"])) {
include "./create.inc.php";
} elseif (isset($_GET["indexes"])) {
include "./indexes.inc.php";
} elseif (isset($_GET["database"])) {
include "./database.inc.php";
} elseif (isset($_GET["scheme"])) {
include "./scheme.inc.php";
} elseif (isset($_GET["call"])) {
include "./call.inc.php";
} elseif (isset($_GET["foreign"])) {
include "./foreign.inc.php";
} elseif (isset($_GET["view"])) {
include "./view.inc.php";
} elseif (isset($_GET["event"])) {
include "./event.inc.php";
} elseif (isset($_GET["procedure"])) {
include "./procedure.inc.php";
} elseif (isset($_GET["sequence"])) {
include "./sequence.inc.php";
} elseif (isset($_GET["type"])) {
include "./type.inc.php";
} elseif (isset($_GET["trigger"])) {
include "./trigger.inc.php";
} elseif (isset($_GET["user"])) {
include "./user.inc.php";
} elseif (isset($_GET["processlist"])) {
include "./processlist.inc.php";
} elseif (isset($_GET["select"])) {
include "./select.inc.php";
} elseif (isset($_GET["variables"])) {
include "./variables.inc.php";
} elseif (isset($_GET["script"])) {
include "./script.inc.php";
} else {
include "./db.inc.php";
}
// ...
https://github.com/vrana/adminer/blob/master/adminer/index.php
p.s хотя сама штука полезная, пару раз выручала
+506
if(isset($db_array["reference"]) && is_array($db_array["reference"]))
$ref = $db_array["reference"];
elseif(isset($db_array["REFERENCE"]) && is_array($db_array["REFERENCE"]))
$ref = $db_array["REFERENCE"];
else
$ref = array();
if(isset($db_array["reference_id"]) && is_array($db_array["reference_id"]))
$ref_id = $db_array["reference_id"];
elseif(isset($db_array["REFERENCE_ID"]) && is_array($db_array["REFERENCE_ID"]))
$ref_id = $db_array["REFERENCE_ID"];
else
$ref_id = array();
bitrix/modules/main/tools.php:182
+262
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define e if
#define h while
#define s return
#define v NULL
#define r else
#define u case
#define C switch
#define D for
#define L0 typedef
#define L int
L0 char S;L0 S*Z;L0 Z*U;L0 double N;
L0 struct Q{L Z;union{N b;S c;}M;struct Q*w;struct Q*q;}Q;
Q*K(L w){Q*n=(Q*)malloc(sizeof(Q));e(v==n)exit(1);n->Z=w;s n;}
void A(Z g,U t){h(' '==*g)g++;*t=g;}
Q*V(Z g,U t){Q*n=K(2);n->M.b=strtod(g,t);s n;}
Q*I(Z g,U t){e('+'!=*g)s v;Q*n=K(1);n->M.c='+';++*t;s n;}
Q*W(Z g,U t){e('x'!=*g)s v;Q*n=K(20);g++;e(*g<'0'||*g>'9'){n->M.b=1;*t=g;}r{n->M.b=strtod(g,t);e(*t==g)n->M.b=1;}s n;}
Q*J(Z g,U t){Q*n,*p=v;h(*g){A(g,&g);Q*l=V(g,&g);A(g,&g);Q*m=W(g,&g);Q*o;e(v==m)o=l;r{o=K(1);o->M.c='*';o->w=l;o->q=m;}e(v==p)n=o;r{p->w=n;p->q=o;n=p;}A(g,&g);p=I(g,&g);e(v==p){*t=g;s n;}}}
Q**E(Z g){L n=1,i;Z t=g;h(*t){e(';'==*t)n++;t++;}Q**R=(Q**)malloc((n+1)*sizeof(Q*));e(v==R)s v;D(i=0;i<n;++i){R[i]=J(g,&g);e(*g!=';'&&*g!=0)s v;e(v==R[i])s v;g++;}R[n]=v;s R;}
N P(Q*I,N a){C(I->Z){u 1:C(I->M.c){u '+':s P(I->w,a)+P(I->q,a);u '*':s P(I->w,a)*P(I->q,a);u '/':s P(I->w,a)/P(I->q,a);u '-':s P(I->w,a)-P(I->q,a);}u 2:s I->M.b;u 20:s pow(a,I->M.b);}}
N O(Q*I){N x=0,y=1,z=2,Z=P(I,x),X=P(I, y),H=P(I,z),j=1e-10;L i;D(i=0;i<100&&fabs(z-y)>j&&fabs(x-y)>j&&fabs(X)>j;i++){e(Z*X<0){z=y;H=X;}r e(H*X<0){x=y;Z=X;}r{N d=z-x;x=x-d;z=z+d;Z=P(I,x);X=P(I,y);}y=(z+x)/2;X=P(I,y);}s y;}
Z B(Q**A){L n=0,i,j,d=0;D(;A[n]!=v;n++);Z M=(Z)malloc(n*10+1);e(v==M)s v;D(i=0;A[i]!=v;i++)D(j=0;j<10;j++){
M[i*10+j-d]=(S)fmod(12.51*O(A[i])+j*17,256);
e(!M[i*10+j-d])d++;}M[n*10-d]=0;s M;}
L T(Z g,Z M){Z k=M;h(*g){*g++^=*k++;e(!*k)k=M;}s(0);}
L main(void){
Q**n=E("2.0x5+6.2x2+7;0.3x6.1+6x5+1");
L i;
Z k=B(n);
S w[]={-91,-35,97,113,89,37,113,32,28,-10,124,67,93,32,123,70,63,-19,-71,-123,-114,45,109,64,96,57,13,7,-91,0};
T(w,k);
printf("%s\n",w);
}
+5
[color=blue][u]https://otvet.imgsmail.ru/download/1bceee23eb24bf87101d513013c175aa_i-215.jpg[/u][/color]
[color=blue][u]https://hsto.org/files/fb4/363/3e4/fb43633e4de04988b9f64eeb0c521f68.png[/u][/color]
[color=blue][u]https://cdn.scratch.mit.edu/scratchr2/static/images/hp-video-screenshot.png[/u][/color]
Можете бить ногами за передачу кода по ссылке, но на ГК картинки по значению не проходят.
+1
sector_t * s = §ors[secnum];
if (!s->floorplane.isSlope()) s->reflect[sector_t::floor] = arg1/255.f;
if (!s->ceilingplane.isSlope()) sectors[secnum].reflect[sector_t::ceiling] = arg2/255.f;
присвоил переменной и во второй раз не использовал
+2
for(int c = 0; c < 2; ++c)
{
if(c)
{
// do something
}
else
{
// do something else
}
}
Одна из причин необходимости разворачивания циклов.
+7
$guid = @sprintf("%X%X%X%X%X%X%X%X-%X%X%X%X-%X%X%X%X-%X%X%X%X-%X%X%X%X%X%X%X%X%X%X%X%X",
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16);
+129
<macrodef name="foreach">
<attribute name="target"/>
<attribute name="file-property"/>
<element name="files"/>
<element name="args"/>
<sequential>
<local name="foreach.files"/>
<local name="foreach.target"/>
<local name="foreach.file-property"/>
<local name="foreach.args"/>
<property name="foreach.target" value="@{target}"/>
<property name="foreach.file-property" value="@{file-property}"/>
<pathconvert property="foreach.files">
<files/>
</pathconvert>
<propertyset id="foreach.args">
<args/>
</propertyset>
<property name="foreach.args" refid="foreach.args"/>
<property name="foreach.target" value="@{target}"/>
<!-- there is no better way to do this at the moment
property names and values should not contain comma-space and equals signs
-->
<script language="javascript"><![CDATA[
var files = project.getProperty("foreach.files").split(":"),
args = project.getProperty("foreach.args").split(", "),
task = project.createTask("antcall"), arg;
task.target = project.getProperty("foreach.target");
for (var a in args) {
arg = task.createParam();
arg.setName(a.split("=")[0]);
arg.setValue(String(a.split("=")[1]));
}
for (var f in files) {
arg = task.createParam();
arg.setName(project.getProperty("foreach.file-property"));
arg.setValue(String(files[f]));
task.perform();
}
]]></script>
</sequential>
</macrodef>
<!-- пример использования: -->
<target name="transcode-font-helper">
<property name="font.face.local" value="${font.face}"/>
<foreach target="transcode-font" file-property="font.raw.source">
<files>
<fileset dir="${basedir}/fonts">
<include name="*/${font.face.local}/*.otf"/>
<include name="*/${font.face.local}/*.ttf"/>
</fileset>
</files>
<args>
<propertyref name="font.face.local"/>
</args>
</foreach>
</target>
А ведь если подумать: собрали все самое лучше, что есть в современном программировании - Ява, ХМЛ и ж.скрипт. Потом выбросили условные операторы, итерацию и операции со строкам - потому что не нужны. И получилась замечательная система для сборки проектов.
+70
QString windoliz_path(QString str)
{
/*
функция "виндолизирует" QTшные пути, для передачи в неQTшные части проги
(в QT-шные, кстати тоже можно, ибо QT вроде бы понимает и те и другие ;)
если вызвать вне винды ничо страшного, предпроцессор сделает всё за вас
и функция вернёт ту же строку что и получила. После вызова в виндах не
помешает сделать .toLocal8Bit()
//*/
#ifdef _WIN32 //если венда
char s = '\\'; //символ для замены
char t = '/'; //шаблон поиска
for (int i = str.size();i;i--) //повторить столько раз сколько символов в строке
{
if (str[i-1] == t) //если символ соответствует образцу поиска
{
str[i-1] = s; //меняем на образец замены
}
}
#endif //директива отметы условия "если венда"
return str;
}
Этот проект не перестаёт удивлять... апи не смотри, велосипеды пиши. Коммент сохранен авторский.