- 1
- 2
- 3
- 4
int str_length(const char *str)
{
return (int)strlen(str);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+66.4
int str_length(const char *str)
{
return (int)strlen(str);
}
Опенсорс, если чо.
+65.3
struct Point
{
double x,y,z;
Point()
{
L1:
x=Rand();
y=Rand();
z=Rand();
double r=sqrt(x*x+y*y+z*z);
if(r<eps)
goto L1;
x/=r;
y/=r;
z/=r;
}
...
};
+134.5
static void Main(string[] args)
{
if (args.Length < 1)
Console.WriteLine("Usage:\n\tprogram <Folder> [output file]");
else if (args.Length == 1)
{
string outf = args[0] + "\\output.txt";
System.IO.File.WriteAllLines
(
outf,
new List<string>
(
System.IO.Directory.GetFiles(args[0])
)
.Concat(System.IO.Directory.GetDirectories(args[0]))
.ToArray()
);
}
else if(args.Length == 2)
{
string outf = args[1];
System.IO.File.WriteAllLines
(
outf,
new List<string>
(
System.IO.Directory.GetFiles(args[0])
)
.Concat(System.IO.Directory.GetDirectories(args[0]))
.ToArray()
);
}
}
Видите ли, я не знал как это сделать с помощью скриптовых языков виндовс.
+55.3
#define constuserColor "usercolor"
#define consttagColor "tagcolor"
#define constmsgColor "idcolor"
#define constQcolor "quotecolor"
#define constLcolor "linkcolor"
#define constUbold "userbold"
#define constTbold "tagbold"
#define constMbold "idbold"
#define constQbold "quotebold"
#define constLbold "linkbold"
#define constUitalic "useritalic"
#define constTitalic "tagitalic"
#define constMitalic "iditalic"
#define constQitalic "quoteitalic"
#define constLitalic "linkitalic"
#define constUunderline "userunderline"
#define constTunderline "tagunderline"
#define constMunderline "idunderline"
#define constQunderline "quoteunderline"
#define constLunderline "linkunderline"
#define constIdAsResource "idAsResource"
#define constShowPhoto "showphoto"
#define constShowAvatars "showavatars"
#define constWorkInGroupchat "workingroupchat"
#define constVersion "0.9.9"
class JuickPlugin : public QObject, public PsiPlugin, public EventFilter, public OptionAccessor, public ActiveTabAccessor,
public StanzaFilter, public ApplicationInfoAccessor
{
Q_OBJECT
Q_INTERFACES(PsiPlugin EventFilter OptionAccessor ActiveTabAccessor StanzaFilter ApplicationInfoAccessor)
public:
JuickPlugin();
virtual QString name() const;
virtual QString shortName() const;
virtual QString version() const;
virtual QWidget* options();
virtual bool enable();
virtual bool disable();
virtual void applyOptions();
virtual void restoreOptions();
virtual bool processEvent(int account, QDomElement& e);
virtual bool processMessage(int account, const QString& fromJid, const QString& body, const QString& subject);
// OptionAccessor
virtual void setOptionAccessingHost(OptionAccessingHost* host);
virtual void optionChanged(const QString& option);
//ActiveTabAccessor
virtual void setActiveTabAccessingHost(ActiveTabAccessingHost* host);
//ApplicationInfoAccessor
virtual void setApplicationInfoAccessingHost(ApplicationInfoAccessingHost* host);
virtual bool incomingStanza(int account, const QDomElement& stanza);
void elementFromString(QDomElement& body,QDomDocument e, QString& msg, QString jid, QString resource = "");
void nl2br(QDomElement& body,QDomDocument e, QString msg);
void addPlus(QDomElement& body,QDomDocument e, QString msg, QString jid, QString resource = "");
void addSubscribe(QDomElement& body,QDomDocument e, QString msg, QString jid, QString resource = "");
void addHttpLink(QDomElement& body,QDomDocument e, QString msg);
void addTagLink(QDomElement& body,QDomDocument e, QString tag, QString jid);
void addUserLink(QDomElement& body,QDomDocument e, QString nick, QString altText, QString pattern, QString jid);
void addMessageId(QDomElement& body,QDomDocument e, QString mId, QString altText,QString pattern, QString jid, QString resource = "");
void addUnsubscribe(QDomElement& body,QDomDocument e, QString msg, QString jid, QString resource = "");
void addDelete(QDomElement& body,QDomDocument e, QString msg, QString jid, QString resource = "");
void addFavorite(QDomElement& body,QDomDocument e, QString msg, QString jid, QString resource = "");
Краткость - сестра таланта... Только видимо авторы этого чуда эту пословицу не знают.
Да и количество непонятных макросов нам тоже намекает.
Ну и конечно же необходимость в таком страшном множественном наследовании с возможностью рандомных побочных эффектов тоже намекает нам о говноархитектуре. В общем не зря авторы Psi решили начать писать новый клиент.
+950.3
//...
for (int i = 0; i < arr.Length; i++)
{
if (i == 5)
{
if (arr[i] == -1)
{
break;
}
else
{
return -1;
}
}
else continue;
}
//...
+162.3
$comments = (isset($_POST['lici-'.$login->id.'-comments']))?"yes":"no";
if($comments === "yes")
{
$xml .= "<nocomment>1</nocomment>\r\n";
}
Код из плагина кросспостера для wordpress.
Автор, видимо, не знает про булев тип. Все бы было хорошо, если бы плагин не закрывал комментарии, когда их нужно было открывать.
+131.4
internal static System.Drawing.Font ToWindowsFont(Microsoft.Office.Interop.PowerPoint.Font ppFont)
{
FontStyle style = ToGdiFontStyle(ppFont.Style);
System.Drawing.Font gdiFont = new System.Drawing.Font(ppFont.Name, ppFont.Size, style);
// из-за следующей строчки проект не скомпилируется под .NET 2.0, требуя ещё и один из более новых SP
if ( windowsFont.Name != windowsFont.OriginalFontName )
{
windowsFont = new System.Drawing.Font(TextConverter.DefaultUnicodeSubstituteFont, ppFont.Size, style);
}
return windowsFont;
}
Баг был случайно найден на виртуалке с чистой Windows XP и MS Visual Studio 2005, поскольку мы по собственной глупости упустили тот факт, что на хост-машинах давно стоит .NET 3.5. Строчка "if ( windowsFont.Name != ppFont.Name )" решает проблему совместимости. Вот как иногда из-за маленькой, не бросающейся в глаза, ошибки можно завалить весь проект. Каюсь, этот код - мой. ))
+184.4
$happy = new Year();
C наступающим ;)
+115.7
(defun create (a) ;; список из составляющих атомов списка A
(cond
((null a) nil)
((atom a) (list a))
(T (append (create (car a)) (create (cdr a))))
)
)
(defun uniq (a) ;; оставить только уникальные атомы
(cond
((null a) nil)
((member (car a) (cdr a)) (uniq (cdr a)))
(t (cons (car a) (uniq (cdr a))))
)
)
(defun compare (a b) ;; сравнение состава списков
(if (= (length a) (length b))
(diff a b)
nil
)
)
(defun diff (a b) ;; проверка состава 2x списков
(cond
((null a) T)
(T (if (member (car a) b)
(diff (cdr a) b)
nil )
)
)
)
(defun main (a b)
(compare
(uniq (create a))
(uniq (create b))
)
)
а нужно было всего то проверить состоят ли 2 списка из одних и тех же атомов
+67.4
// die elemente aufbauen
// wasserstoff (gruppe 1, Nichtmetalle)
Element* wasserstoff = new Element(this);
wasserstoff->setObjectName("wasserstoff");
wasserstoff->setze_element_namen(tr("Hydrogen"));
wasserstoff->setze_atomzahl(1);
wasserstoff->setze_symbol("H");
wasserstoff->setze_masse("1,00794 u");
wasserstoff->setze_exakte_masse("1.007825032");
wasserstoff->setze_ionisation("13,5984 kJ/mol");
wasserstoff->setze_elektronenaffinitaet("1.007825032");
wasserstoff->setze_elektronen_negativitaet("2,2");
wasserstoff->setze_kovalenter("37 pm");
wasserstoff->setze_van_der_waals_radius("120 pm");
wasserstoff->setze_schmelzpunkt("13.81");
wasserstoff->setze_siedepunkt("20.28");
wasserstoff->setze_familie(tr("nonmetal"));
wasserstoff->setze_gruppenfarbe(gruppenfarben.at(1));
wasserstoff->setze_entdeckungsjahr(1766);
wasserstoff->setze_position(0, 1);
elementliste.insert(wasserstoff->atomzahl(), wasserstoff);
wasserstoff->registriere_agrgatzustandsfarben(agregatzustandsfarben);
wasserstoff->fuege_elektronen_hinzu(1, 1);
// helium (gruppe 18, Edelgase)
Element* helium = new Element(this);
helium->setObjectName("helium");
helium->setze_element_namen(tr("Helium"));
helium->setze_atomzahl(2);
helium->setze_symbol("He");
helium->setze_masse("4,0026 u");
helium->setze_exakte_masse("4.002603254");
helium->setze_ionisation("24,5874 kJ/mol");
helium->setze_elektronenaffinitaet("4.002603254");
helium->setze_elektronen_negativitaet("-1");
helium->setze_kovalenter("32 pm");
helium->setze_van_der_waals_radius("140 pm");
helium->setze_schmelzpunkt("0.95");
helium->setze_siedepunkt("4.216");
helium->setze_familie(tr("noble gases"));
helium->setze_gruppenfarbe(gruppenfarben.at(18));
helium->setze_entdeckungsjahr(1868);
helium->setze_position(17, 1);
elementliste.insert(helium->atomzahl(), helium);
helium->fuege_elektronen_hinzu(1, 2);
// lithium (gruppe 1, Alkalimetalle)
Element* lithium = new Element(this);
...
// ununhexium (gruppe 16, Metalle)
Element* ununhexium = new Element(this);
ununhexium->setObjectName("ununhexium");
ununhexium->setze_element_namen(tr("Ununhexium"));
ununhexium->setze_atomzahl(116);
ununhexium->setze_symbol("Uuh");
ununhexium->setze_masse("292 u");
ununhexium->setze_exakte_masse("292.19979");
ununhexium->setze_ionisation("-1");
ununhexium->setze_elektronenaffinitaet("292.19979");
ununhexium->setze_elektronen_negativitaet("-1");
ununhexium->setze_kovalenter("-1");
ununhexium->setze_van_der_waals_radius("-1");
ununhexium->setze_schmelzpunkt(QString::number(INT_MAX));
ununhexium->setze_siedepunkt(QString::number(INT_MAX));
ununhexium->setze_familie(tr("other metal"));
ununhexium->setze_gruppenfarbe(gruppenfarben.at(16));
ununhexium->setze_entdeckungsjahr(2000);
ununhexium->setze_position(15, 7);
elementliste.insert(ununhexium->atomzahl(), ununhexium);
ununhexium->fuege_elektronen_hinzu(1, 2);
ununhexium->fuege_elektronen_hinzu(2, 8);
ununhexium->fuege_elektronen_hinzu(3, 18);
ununhexium->fuege_elektronen_hinzu(4, 32);
ununhexium->fuege_elektronen_hinzu(5, 32);
ununhexium->fuege_elektronen_hinzu(6, 18);
ununhexium->fuege_elektronen_hinzu(7, 6);
ЗЫ: итого порядка 3000 строк кода
http://sourceforge.net/projects/qperiodictable