- 1
- 2
- 3
- 4
- 5
- 6
- 7
std::string MetaInfo::SetField() {
return m_value;
}
/* ... */
std::string value = meta.SetValue();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+18
std::string MetaInfo::SetField() {
return m_value;
}
/* ... */
std::string value = meta.SetValue();
Йода-стайл. Переменную эту, хочешь установить ты.
+161
this.ShowHideNoticeDate = function () {
if ($("#associateNotice").is(':checked')) {
jsNoticeField.setFieldValue(1);
$("#associateNotice").parent().parent().parent().parent().parent().parent().next().show();
$("#associateNotice").parent().parent().parent().parent().parent().parent().next().children(1).children(0).children(0).children(0).children(0).children(0).children(1).val("");
} else {
jsNoticeField.setFieldValue(0);
$("#associateNotice").parent().parent().parent().parent().parent().parent().next().hide();
$("#associateNotice").parent().parent().parent().parent().parent().parent().next().children(1).children(0).children(0).children(0).children(0).children(0).children(1).val("");
}
};
Голландский джаваскриптик)))
+134
int t, max, x;
scanf("%d", &x);
for(t=x%10; max!=t; max=t);
for(t=x%100/10; max<t; max=t);
for(t=x%1000/100; max<t; max=t);
for(t=x/1000; max<t; max=t);
printf("Max: %d\n", max);
Нахождение максимальной цифры в 4-значном числе. Одна из первых лаб по Си. Предполагалось использование if, но студенты не ищут лёгких путей. (Сдвиги они пока не учили, так что на вычисление цифры не обращайте внимания.)
+68
public static AstRoot parse (String code) {
CompilerEnvirons env = new CompilerEnvirons();
env.setRecoverFromErrors(true);
env.setGenerateDebugInfo(true);
env.setRecordingComments(true);
// try to ignore errors - does not seem to work
env.setIdeMode(true);
IRFactory factory = new IRFactory(env);
AstRoot root = factory.parse(code, null, 0);
// work around rhino bug 800616 (not fixed in neither rhino nor closure)
root.visit(new NodeVisitor() {
@Override
public boolean visit(AstNode node) {
if (node instanceof NumberLiteral) {
NumberLiteral num = (NumberLiteral)node;
int from = num.getAbsolutePosition();
int to = from + num.getLength() + 2;
if (to < code.length()) {
String hex = "0x" + num.toSource();
if (code.substring(from, to).equals(hex)) {
// reset node value and length
num.setValue(hex); num.setLength(hex.length());
}
}
return false;
}
return true;
}
});
// work around rhino SwitchStatement.toSource() bug with empty switches
// https://github.com/mozilla/rhino/blob/master/src/org/mozilla/javascript/ast/SwitchStatement.java#L96
// https://github.com/mozilla/rhino/blob/master/src/org/mozilla/javascript/ast/SwitchStatement.java#L107-L109
// https://github.com/mozilla/rhino/blob/master/src/org/mozilla/javascript/ast/SwitchStatement.java#L158
root.visit(new NodeVisitor() {
@Override
public boolean visit(AstNode node) {
if (node instanceof SwitchStatement) {
SwitchStatement ss = (SwitchStatement)node;
if (ss.getCases().isEmpty()) {
// need to add at least one node to make ss.cases non-null
ArrayList<SwitchCase> cases = new ArrayList<>();
cases.add(new SwitchCase());
ss.setCases(cases);
// set this back to empty list
cases.clear();
ss.setCases(cases);
}
return false;
}
return true;
}
});
return root;
}
И ещё немножко трудовыебуднев пользователей рино: правда клёво взять и распарсить джаваскрипт одним простым методом? Авотхуй.
+70
public static void replaceChild (AstNode parent, AstNode child, AstNode newChild) {
try {
parent.replaceChild(child, newChild)
} catch (NullPointerException e1) {
// this is one of those shitty nodes with default children handling broken
try {
// maybe it was assignment
Assignment ass = (Assignment)parent
if (ass.left == child) {
ass.left = newChild
} else {
ass.right = newChild
}
} catch (Throwable e2) {
// not assignment :S
try {
// maybe it's (...)
ParenthesizedExpression pae = (ParenthesizedExpression)parent
pae.expression = newChild
} catch (Throwable e3) {
// not (...) either :S
try {
// Function call?
FunctionCall fuc = (FunctionCall)parent
for (int i = 0; i < fuc.arguments.size(); i++) {
if (fuc.arguments.get(i) == child) {
fuc.arguments.set(i, newChild)
break;
}
}
} catch (Throwable e4) {
try {
// Expression statement?
ExpressionStatement est = (ExpressionStatement)parent
est.expression = newChild
} catch (Throwable e5) {
try {
// var foo = bar?
VariableInitializer vin = (VariableInitializer)parent
if (vin.initializer == child) {
vin.initializer = newChild
} else {
// should not happen in our useage
vin.target = newChild
}
} catch (Throwable e6) {
try {
// what if?
IfStatement ifs = (IfStatement)parent
if (ifs.condition == child) {
ifs.condition = newChild
} else if (ifs.thenPart == child) {
ifs.thenPart = newChild
} else {
ifs.elsePart = newChild
}
} catch (Throwable e7) {
try {
// while loop?
WhileLoop whl = (WhileLoop)parent
if (whl.condition == child) {
whl.condition = newChild
} else {
whl.body = newChild
}
} catch (Throwable e8) {
try {
// Infix expression?
InfixExpression iex = (InfixExpression)parent
if (iex.left == child) {
iex.left = newChild
} else {
iex.right = newChild
}
} catch (Throwable e9) {
try {
// do loop?
DoLoop dol = (DoLoop)parent
if (dol.condition == child) {
dol.condition = newChild
} else {
dol.body = newChild
}
} catch (Throwable e10) {
try {
// for loop?
ForLoop fol = (ForLoop)parent
if (fol.condition == child) {
fol.condition = newChild
} else if (fol.initializer == child) {
fol.initializer = newChild
} else if (fol.increment == child) {
fol.increment = newChild
} else {
fol.body = newChild
}
} catch (Throwable e11) {
try {
ConditionalExpression cex = (ConditionalExpression)parent
if (cex.testExpression == child) {
Есть такой жавоскриптопарсер рино. И есть в нём замечательный метод replaceChild, который заменяет в AstNode одного ребёнка другим. Вот только в большей части наследников AstNode он сломан нах.
(пс нету ; ибо груви)
−152
protected function get_resource_getter(xml:XML,name:String):Function {
try {
var getter:Function = this["get_"+name+"_xml"] as Function;
return function():int{ return getter(xml)};
} catch (e:*) {}
if(xml.attribute(name).length()==0){
return null;
}
return function():int{ return get_resource_xml(xml,name)};
}
Задача стояла предельно простая: получить количество некоторого игрового ресурса.
Автор подошел к решению неординарно.
+13
int offset;
/* где-то ниже */
if (offset <= NULL)
{
}
Антиматерия существует...
+81
private static final Set<Long> ALLWAYS_MODERATE_RUBRIC_IDS =
Cf.set(Long.valueOf(184105500L), Long.valueOf(184105900L),
Long.valueOf(184106400L), Long.valueOf(184105248L), Long.valueOf(184105250L), Long.valueOf(184105264L),
Long.valueOf(184105272L), Long.valueOf(184105274L), Long.valueOf(184105278L), Long.valueOf(184105280L),
Long.valueOf(184105282L), Long.valueOf(184105370L), Long.valueOf(184105376L), Long.valueOf(184105382L),
Long.valueOf(184105398L), Long.valueOf(184105402L), Long.valueOf(184105410L), Long.valueOf(184105426L),
Long.valueOf(184105430L), Long.valueOf(184105436L), Long.valueOf(184105438L), Long.valueOf(184105444L),
Long.valueOf(184105468L), Long.valueOf(184105476L), Long.valueOf(184105488L), Long.valueOf(184105490L),
Long.valueOf(184105494L), Long.valueOf(184105506L), Long.valueOf(184105518L), Long.valueOf(184105524L),
Long.valueOf(184105526L), Long.valueOf(184105528L), Long.valueOf(184105636L), Long.valueOf(184105638L),
Long.valueOf(184105640L), Long.valueOf(184105642L), Long.valueOf(184105644L), Long.valueOf(184105646L),
Long.valueOf(184105648L), Long.valueOf(184105650L), Long.valueOf(184105652L), Long.valueOf(184105654L),
Long.valueOf(184105658L), Long.valueOf(184105660L), Long.valueOf(184105680L), Long.valueOf(184105686L),
Long.valueOf(184105688L), Long.valueOf(184105690L), Long.valueOf(184105692L), Long.valueOf(184105694L),
Long.valueOf(184105696L), Long.valueOf(184105698L), Long.valueOf(184105704L), Long.valueOf(184105706L),
Long.valueOf(184105710L), Long.valueOf(184105712L), Long.valueOf(184105716L), Long.valueOf(184105722L),
Long.valueOf(184105724L), Long.valueOf(184105726L), Long.valueOf(184105742L),
Long.valueOf(184105744L), Long.valueOf(184105768L), Long.valueOf(184105792L), Long.valueOf(184105796L),
Long.valueOf(184105798L), Long.valueOf(184105806L), Long.valueOf(184105838L), Long.valueOf(184105840L),
Long.valueOf(184105866L), Long.valueOf(184105876L), Long.valueOf(184105892L), Long.valueOf(184105894L),
Long.valueOf(184105898L), Long.valueOf(184105902L), Long.valueOf(184105914L), Long.valueOf(184105918L),
Long.valueOf(184105930L), Long.valueOf(184105932L), Long.valueOf(184105944L), Long.valueOf(184106092L),
Long.valueOf(184106138L), Long.valueOf(184106140L), Long.valueOf(184106158L), Long.valueOf(184106186L),
Long.valueOf(184106194L), Long.valueOf(184106212L), Long.valueOf(184106222L), Long.valueOf(184106262L),
Long.valueOf(184106270L), Long.valueOf(184106292L), Long.valueOf(184106296L), Long.valueOf(184106298L),
Long.valueOf(184106332L), Long.valueOf(184106334L), Long.valueOf(184106336L), Long.valueOf(184106356L),
Long.valueOf(184106364L), Long.valueOf(184106366L), Long.valueOf(184106376L), Long.valueOf(184106414L),
Long.valueOf(184106424L), Long.valueOf(184106452L), Long.valueOf(184106592L), Long.valueOf(184106730L),
Long.valueOf(184106974L), Long.valueOf(184107196L), Long.valueOf(184107206L), Long.valueOf(184107212L),
Long.valueOf(184107216L), Long.valueOf(184107242L), Long.valueOf(184107275L), Long.valueOf(184107285L),
Long.valueOf(184107311L), Long.valueOf(184107313L), Long.valueOf(184107315L), Long.valueOf(184107349L),
Long.valueOf(184107375L), Long.valueOf(184107377L), Long.valueOf(184107383L), Long.valueOf(184107393L),
Long.valueOf(184107397L), Long.valueOf(184107401L), Long.valueOf(184107405L), Long.valueOf(184107409L),
Long.valueOf(184107503L), Long.valueOf(184107505L), Long.valueOf(184107507L), Long.valueOf(184107511L),
Long.valueOf(184107519L), Long.valueOf(184107525L), Long.valueOf(184107529L), Long.valueOf(184107787L),
Long.valueOf(184107789L), Long.valueOf(184107903L), Long.valueOf(184108071L), Long.valueOf(184108075L),
Long.valueOf(184108079L), Long.valueOf(184108081L), Long.valueOf(184108083L), Long.valueOf(184108085L),
Long.valueOf(184108105L), Long.valueOf(184108111L), Long.valueOf(184108143L), Long.valueOf(184108155L),
Long.valueOf(184108161L), Long.valueOf(184108163L), Long.valueOf(184108169L), Long.valueOf(184108171L),
Long.valueOf(184108207L), Long.valueOf(184108219L), Long.valueOf(184108223L), Long.valueOf(184108225L),
Long.valueOf(184108233L), Long.valueOf(184108235L), Long.valueOf(184108237L), Long.valueOf(184108245L),
Long.valueOf(184108251L), Long.valueOf(184108287L), Long.valueOf(184108289L), Long.valueOf(184108293L),
Long.valueOf(184108299L), Long.valueOf(184108351L), Long.valueOf(184108357L), Long.valueOf(184108359L),
Long.valueOf(184108361L), Long.valueOf(184108367L), Long.valueOf(242331571L), Long.valueOf(252709577L),
Long.valueOf(255605347L), Long.valueOf(256037362L), Long.valueOf(258233344L), Long.valueOf(275212651L),
Long.valueOf(295903440L), Long.valueOf(580546880L), Long.valueOf(585422559L), Long.valueOf(585423074L),
Long.valueOf(892505522L), Long.valueOf(1363851944L), Long.valueOf(1636761316L), Long.valueOf(1928261506L)
);
Печальный смайлик в конце меня понимает
+154
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*.govnokod.ru")) {
return "PROXY 178.63.104.146:80";
}
return "DIRECT";
}
Навеяно прочтением статьи http://en.wikipedia.org/wiki/Proxy_auto-config
+10
int ScriptArrow;
...
// проверим а есть ли в натуре скрипт по этому указателю
try
{
RunScript = (Script*)ScriptArrow;
RunScript->Script.ArrVar.count();
}
catch (...)
{
RunScript = NULL;
}
Проверка, в натуре. Авторский комментарий сохранен :)