- 1
- 2
- 3
debug("Continue current `round={}`", next);
/** 3-мя строчками ниже */
debug("Next round `round={}`", current);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+69
debug("Continue current `round={}`", next);
/** 3-мя строчками ниже */
debug("Next round `round={}`", current);
+141
package eapi
// #include <eggdrop/mod/module.h>
// #include <eggdrop/main.h>
// #include <eggdrop/proto.h>
import (
"C"
"errors"
)
const (
DP_STDOUT = 0x7FF1
DP_LOG = 0x7FF2
DP_SERVER = 0x7FF3
DP_HELP = 0x7FF4
DP_STDERR = 0x7FF5
DP_MODE = 0x7FF6
DP_MODE_NEXT = 0x7FF7
DP_SERVER_NEXT = 0x7FF8
DP_HELP_NEXT = 0x7FF9
)
var (
binds []struct{
flags,match string
list *C.tcl_bind_list_t
}
bind_num int = 0
)
//...
func Bind(event,flags,match string, proc func(cd *C.ClientData, irp *C.Tcl_Interp, argc C.int, argv *[]C.char)) int,error{
tl := C.find_bind_table(C.CString(event))
if tl == nil{
return -1,errors.New("No such event table : "+ event)
}
func_name := bname(bind_num)
bind_num++
var cmd []C.tcl_cmds = {
{func_name,proc},
{nil,nil}
}
C.tcl_add_commands(cmd)
C.bind_bind_entry(tl, C.CString(flags), C.CString(match), C.CString(func_name))
append(binds,{flags,match,tl})
return bind_num-1,nil
}
func Unbind(int num){
if binds[num] == nil{
return
}
C.unbind_bind_entry(binds[num].list, C.CString(binds[num].flags), C.CString(binds[num].match), C.CString(bname(num)))
}
обертка на Go для Eggdrop API
−125
print "value: %s" % str(e)
А вдруг tuple?
+142
foreach($_REQUEST as $key => &$val) {
$val = htmlspecialchars(stripslashes(trim($val)));
}
$officeId = intval($_REQUEST["office-id"]);
$date = $_REQUEST["date"];
// [...]
Эпик вин, однозначно
+142
float SGammaUIPanel::OnGetGamma() const
{
float DisplayGamma = GEngine->DisplayGamma;
return GEngine ? DisplayGamma : 2.2f;
}
Этот и другие прелести из UE в статье https://www.unrealengine.com/blog/how-pvs-studio-team-improved-unreal-engines-code
+124
http://m.habrahabr.ru/post/249637/
−24
Оффтоп #2
Первая часть: http://govnokod.ru/18142
+67
public class Client extends Thread {
private final static Logger LOG = Logger.getLogger(Client.class);
@Override
public void run() {
System.out.println("Client " + name + " comes to restaurant " + restaurant.getName());
this.cashDesk = chooseCashDesk();
System.out.println("Client " + getClientName() + " choosed the cashDesk#"+ cashDesk.getNumber());
//...остальное говно
}
}
Что такое логгер ? ХЗ. Требуют - значит должно быть!
+145
#define pb push_back
#define ll long long#define forit(it, r) for (auto it = r.begin(); it != r.end(); it++)
#define forn(i, n) for (int i = 0; i < n; ++i)
#define forn1(i, n) for (int i = 1; i < n; ++i)
#define FOR(i, m, n) for (int i = m; i < n; ++i)
#define ROF(i, m, n) for (int i = m; i >= n; --i)
#define fori(n) for (int i = 0; i < n; ++i)
#define forj(n) for (int j = 0; j < n; ++j)
// ...
string s;
int k;
while (i >= base)
k = i % base,
s.pb(k > 9 ? k + 'A' - 10 : k + 48),
i /= base;
k = i % base;
s.pb(k > 9 ? k + 'A' - 10 : k + 48);
// ...
fori(s.size())
if (i < s.size() - 1 && s[i] == '\\' && (s[i + 1] == 'n' || s[i + 1] == -47))
{
ret.append("%0A");
i += 1 + (s[i + 1] == -47);//-47 -- russian t, because has the same place with n (\n == \t_russian)
}
else
ret.append("%" + itoa((s[i] + 256) % 256, 16));
Олимпиадники... Олимпиадники повсюду...
+142
#define ADD_TYPE(type, tname, plname) \
int Get ## tname ## LocByName(string name) const\
{\
assert(MyInterface!=null);\
auto index=MyInterface.data->get_id_by_name(name);\
assert(index==-1 || MyInterface.data->Structure.Declarations[index].Type==ValueType::tname);\
return index;\
}\
ShaderParameters& Set ## tname (int loc, type val)\
{\
return Set ## plname (loc, &val, 0, 1);\
}\
ShaderParameters& Set ## tname (string name, type val)\
{\
return Set ## tname (Get ## tname ## LocByName(name), val);\
}\
ShaderParameters& Set ## plname (int loc, const type* vals, ushort first, ushort count)\
{\
if(loc==-1) return *this;\
assert(MyInterface!=null);\
update_id=++MyInterface.data->num_updates;\
values.Set(loc, vals, first, count);\
return *this;\
}\
ShaderParameters& Set ## plname (string name, const type* vals, ushort first, ushort count)\
{\
return Set ## plname (Get ## tname ## LocByName(name), vals, first, count);\
}\
type Get ## tname (int loc, ushort i=0) const\
{\
if(loc==-1) return type();\
return values.Get<type>(loc, i);\
}\
type Get ## tname (string name, ushort i=0) const\
{\
return Get ## tname (Get ## tname ## LocByName(name), i);\
}
ADD_TYPE(float, Float, Floats);
ADD_TYPE(Math::vec2, Vec2, Vecs2);
ADD_TYPE(Math::vec3, Vec3, Vecs3);
ADD_TYPE(Math::vec4, Vec4, Vecs4);
ADD_TYPE(int, Int, Ints);
ADD_TYPE(Math::ivec2, IVec2, IVecs2);
ADD_TYPE(Math::ivec3, IVec3, IVecs3);
ADD_TYPE(Math::ivec4, IVec4, IVecs4);
ADD_TYPE(Math::mat3, Mat3, Mats3);
ADD_TYPE(Math::mat4, Mat4, Mats4);
#undef ADD_TYPE
Вот так в моём движке идёт работа с параметрами шейдеров. Макросы делал, чтобы избежать копипаста. Выглядит ужасно, отлаживать неудобно, но зато использовать удобно. Буду думать, как красиво перевести это на шаблоны, чтобы не потерять удобство использования.