- 1
if ( (mver!=0) != (qver!=0) )
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+103
if ( (mver!=0) != (qver!=0) )
для головоломки слабовато, но глаза все равно напрягает.
+132
enum
{
MaxStringLen = 1024
};
Офигенный метод объявления констант!
+106
if ( ... )
{
if ( ... )
{
if ( ... )
{
usleep(250000);
}
else
{
sleep( 1 );
}
}
else
{
if ( ... )
{
if ( ... )
{
usleep( 250000 );
}
else
{
sleep( ... );
}
}
else
{
sleep( ... );
}
}
}
else
{
usleep( 250000 );
}
из главного цикла одного "рил-тайм" приложения. (комментарии, етц были удалены.)
каждый раз тестеры/кастомеры жалуются что приложение работает слишком медленно или слишком быстро - появляется либо новый if со слипом, либо новый else со слипом. за два года существования, вот до этого "полного" дерева доросло. и все равно не работает как надо. :)
−99
- (void)selectCurrentItem
{
NSInteger index = 0;
BOOL fl = NO;
BOOL fl2 = YES;
BOOL fl3 = YES;
if (self.currentScheme == LeftPanelSchemeFriendsDetail) {
if (!self.selectedGenre) {
fl3 = NO;
} else {
fl3 = YES;
}
}
if (!self.selectCurrentItemOnes) {
self.needShowFriendsDetail = NO;
}
if (self.selectedItem && (self.needSelectCurrentItem || !self.selectCurrentItemOnes) && fl3) {
if ([self.news containsObject:self.selectedItem]) {
index = [self.news indexOfObject:self.selectedItem];
if ([self.news containsObject:self.selectedItem]) {
if (index == [self.news indexOfObject:self.selectedItem]) {
fl = YES;
if (self.currentScheme == LeftPanelSchemeFriendsMap) {
self.needShowFriendsDetail = NO;
if (self.downButton.enabled) {
self.needShowFriendsDetail = NO;
[self updateDownPressed];
fl2 = NO;
} else {
}
}
}
}
}
}
if ([self.tableView numberOfRowsInSection:0] && fl2) {
[self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] animated:YES scrollPosition:UITableViewScrollPositionMiddle];
[self selectRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]];
if (fl) {
self.selectCurrentItemOnes = YES;
fl = NO;
}
}
}
+153
if ((this.formType.urlParam === 'sell1') || (this.formType.urlParam === 'supply1')) {
url = 'sell-return-list';
} else if ((this.formType.urlParam === 'sell2') || (this.formType.urlParam === 'supply2')) {
url = 'buy-return-list';
} else if ((this.formType.urlParam === 'service1') || (this.formType.urlParam === 'service2')) {
url = 'get-service-list';
} else {
url = 'provide-service-list';
}
Ниньзя стайл
+18
template <typename TYPE> class Ptr
{
public:
Ptr():
Pointer_(0),
IsValid_(false)
{
}
Ptr( const Ptr<TYPE> &other )
{
this->Pointer_ = other.Pointer_;
this->IsValid_ = other.IsValid_;
}
Ptr( TYPE* &ptr ):
IsValid_(true)
{
if ( std::find( Ptr<TYPE>::List_.begin(), Ptr<TYPE>::List_.end(), ptr ) == Ptr<TYPE>::List_.end() )
Ptr<TYPE>::List_.push_back( ptr );
this->Pointer_ = ptr;
}
~Ptr()
{
}
inline Ptr<TYPE>& operator = ( const Ptr<TYPE> &other )
{
this->Pointer_ = other.Pointer_;
this->IsValid_ = other.IsValid_;
return *this;
}
inline Ptr<TYPE>& operator = ( TYPE* &ptr )
{
if ( std::find( Ptr<TYPE>::List_.begin(), Ptr<TYPE>::List_.end(), ptr ) == Ptr<TYPE>::List_.end() )
Ptr<TYPE>::List_.push_back( ptr );
this->Pointer_ = ptr;
this->IsValid_ = true;
return *this;
}
inline bool operator == ( const Ptr<TYPE> &other )
{
return (this->Pointer_ == other.Pointer_) ? true:false;
}
inline bool operator != ( const Ptr<TYPE> &other )
{
return (this->Pointer_ != other.Pointer_) ? true:false;
}
inline TYPE* operator -> ()
{
return this->Pointer_;
}
inline bool isValid() const
{
if (!this->IsValid_)
return false;
return this->IsValid_ = ( (std::find( Ptr<TYPE>::List_.begin(), Ptr<TYPE>::List_.end(), this->Pointer_ ) == Ptr<TYPE>::List_.end() ) ? false:true );
}
inline void release()
{
if ( this->isValid() )
{
Ptr<TYPE>::List_.erase( std::find( Ptr<TYPE>::List_.begin(), Ptr<TYPE>::List_.end(), this->Pointer_ ) );
delete this->Pointer_;
}
this->Pointer_ = 0;
this->IsValid_ = false;
}
inline TYPE* get()
{
return this->Pointer_;
}
private:
TYPE* Pointer_;
mutable bool IsValid_;
static std::list < TYPE* > List_;
};
template <typename TYPE> std::list < TYPE* > Ptr<TYPE>::List_;
+107
public Quote[] ParseQuotesFromFile(string p){
HtmlDocument d = new HtmlDocument();
d.Load(p, new UTF8Encoding());
#if !DEBUG
return
#endif
#if DEBUG
var v1 =
#endif
d.GetElementbyId("body")//main div
#if DEBUG
; var v2 = v1
#endif
.ChildNodes//subnodes
#if DEBUG
; var v3 = v2
#endif
.Where(a => a.Attributes.Contains("class"))//nodes with classes
#if DEBUG
; var v4 = v3
#endif
.Where(a => a.Attributes["class"].Value == "quote")//quotes
#if DEBUG
; var v5 = v4
#endif
.Where(a => a.ChildNodes.Any(b => b.Attributes.Contains("class")))//only real quotes
#if DEBUG
; var v6 = v5
#endif
.Select(a => a.ChildNodes.Where(b => b.Attributes.Contains("class")).ToArray())//only usable
#if DEBUG
; var v7 = v6
#endif
.Where(a => a.Length == 2)//drop ads
#if DEBUG
; var v8 = v7
#endif
.Select(a => new Quote()
{
Text = conv.HtmlSpecialCharsDecode(a.First(b => b.Attributes["class"].Value == "text").InnerHtml.Replace("<br>", "\r\n"),StringTools.ReplaceType.Both),
ID=BadParse(GetIdString(a)),
Score=BadParse(GetScoreString(a))})
#if DEBUG
; var v9 = v8
#endif
.ToArray();
#if DEBUG
return v9;
#endif
} private static string GetScoreString(HtmlNode[] a){
#if !DEBUG
return
#endif
#if DEBUG
var v1 =
#endif
a.First(b => b.Attributes["class"].Value == "actions")
#if DEBUG
; var v2 = v1
#endif
.ChildNodes.Where(b => b.Name != "#text")
#if DEBUG
; var v3 = v2
#endif
.First(b => b.Attributes["class"].Value == "rating-o")
#if DEBUG
; var v4 = v3
#endif
.FirstChild
#if DEBUG
; var v5 = v4
#endif
.InnerText;
#if DEBUG
return v5;
#endif
} private static string GetIdString(HtmlNode[] a) {
#if !DEBUG
return
#endif
#if DEBUG
var v1=
#endif
a.First(b => b.Attributes["class"].Value == "actions")
#if DEBUG
; var v2 = v1
#endif
.ChildNodes.Where(b => b.Name != "#text")
#if DEBUG
; var v3 = v2
#endif
.First(b => b.Attributes["class"].Value == "id")
#if DEBUG
; var v4 = v3
#endif
.InnerText.Replace("#", "");
#if DEBUG
return v4;
#endif
}
Это должен был быть парсер bash.org.ru
Самоое странное, что код даже работает
+8
bool ASN1Parser::ConvertOID(const ASN1Block &blk, char *oid, unsigned int bufSize) {
int a = 0;
bool first = true;
char tmp[32];
oid[0] = 0;
for (unsigned int i=0;i<blk.size;i++) {
unsigned char c = data[blk.offset+i];
if (c & 0x80) {
a = (a << 7) | (c & 0x7F);
} else {
a = (a << 7) | (c & 0x7F);
if (!first) {
sprintf(tmp,".%d",a);
} else {
sprintf(tmp,"%d.%d",a/40,a%40);
}
a=0;
first = false;
if (strlen(tmp) >= bufSize) return false;
strcat(oid, tmp);
}
}
return true;
}
И еще один говнокодец на тему ASN.1 - распаковка OID'а.
Кто найдет ошибку - получит пирожок с полочки ;)
+24
#include <stdio.h>
#include "gost.h"
int main() {
MemoryFile mf("root.cer");
MemoryFile mf2("test.cer");
ASN1Parser parser(mf);
ASN1Parser parser2(mf2);
ASN1Block e1[2];
parser.Split("30{30{A0#,02$1,30#,30#,30#,30#,30{30#,03$2},A3#},30#,03#}", e1);
unsigned char px[32], py[32], r[32], s[32], h[32];
for (int i=0;i<32;i++) {
px[i] = mf.data[e1[1].offset+i+3];
py[i] = mf.data[e1[1].offset+i+35];
}
parser2.Split("30{30$1,30#,03$2}", e1);
for (int i=0;i<32;i++) {
r[i] = mf2.data[e1[1].offset+64-i];
s[i] = mf2.data[e1[1].offset+32-i];
}
Gost3411 hash;
hash.AddData(mf2.data+e1[0].offset-4, e1[0].size+4);
hash.Finish(h);
Gost3410 g;
if (!g.VerifySignature(h, px, py, r, s)) {
printf("Invalid!");
} else {
printf("Valid!");
}
return 0;
}
Продолжение http://govnokod.ru/11528. Вот так я проверял валидность сертификата...
Прекрасные говорящие имена переменных...
Удобный парсер ASN.1...
Отличная инкапсуляция...
Ни одного магического числа...
+20
//Вколите мне каплю никотина, а когда меня разорвет - сожгите ошметки напалмом.
//Только это смоет мой позор.
//Примерно так у меня выглядит вся обработка исключений:
int main(int, char**) //или wWinMain, не важно
{
try
{
//all stuff here
}
catch(std::exception e)
{
MessageBoxA(NULL, e.what(), "oops", MB_OK | MB_ICONERROR);
}
catch(...)
{
MessageBoxA(NULL, "Unknown error", "oops", MB_OK | MB_ICONERROR);
}
return 0;
}
//А еще у меня есть свой класс строки:
class MyString
{
wchar_t * data;
size_t length;
MyString(wchar_t * _data, size_t _length) : data(_data), length(_length) { }
public:
//...
static MyString MyString::fromNumber(int num)
{ //Грешен, определяю функции в заголовочном, хотя это и не тот случай.
wchar_t * data = new wchar_t[16];
HRESULT hr = StringCchPrintfW(data, 16, L"%d", num);
if(FAILED(hr))
{
throw std::exception("shit happend inside MyString::fromNumber(int)");
}
size_t len = 0;
hr = StringCchLengthW(data, 16, &len);
if(FAILED(hr))
{
throw std::exception("shit happend inside MyString::fromNumber(int)");
}
return MyString(data, len);
}
};
//А вкупе с обработкой исключений чуть выше...
//Чуть не забыл про auto_ptr. Укорочено до сути.
class Base
{
protected:
std::auto_ptr<SomeType> data; //А где он инициализируется?...
public:
virtual ~Base() { }
};
class Deriv : public Base
{
public:
Deriv() : Base()
{
data = std::auto_ptr<SomeType>(new SomeType(args)); //...а вот тут он инициализируется!
}
virtual ~Deriv() { }
};
//Паттерны!
class Single
{
Single(); //Без реализации.
template<typename T> Single(T); //Без реализации.
template<typename T1, typename T2> T1 operator = (T2); //Без реализации.
class Ton
{
//...
};
static Ton object;
static Ton initObject();
public:
Ton & instance() { return object; }
};
//Мне стыдно.