1. Лучший говнокод

    В номинации:
    За время:
  2. Си / Говнокод #2530

    +138.1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    sprintf(cmd, "%supd_downloader -p upd_downloader\\bin %s %s -a %s", 
    #if defined(__unix__)
    	"./",
    #else
    	"",
    #endif
    	arg1, 
    	option->arg2 ? arg2 : "", 
    #if defined(__i386__) || defined(_M_X86)
    	"i686"
    #else
    	"x86_64"
    #endif
    );
    res = run_command(cmd);

    Обнаружил в коде. Типа портируемый код =) Да еще и sprintf() ...

    del, 02 Февраля 2010

    Комментарии (13)
  3. PHP / Говнокод #2519

    +149.8

    1. 1
    return urlencode(urlencode($text));

    xxx: cлушай, отправляю урл-кодированное, на телефон приходит перекодированное в KOI-8
    yyy: zzz: нужно отправляемое всё закодировать сверху снова urlencode($text)
    xxx: жеесть, 2 раза :-D, получилось!

    hardcoder, 01 Февраля 2010

    Комментарии (13)
  4. C++ / Говнокод #2513

    +55.5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    //------------------------------- COMPARE -------------------------------------
    // Function to compare two strings on a mask, using a question mark and
    // asterisk.Question mark matches any single character. The asterisk matches
    // any signs of a minimum length of zero. maximum length is not limited. Only
    // the next character in the mask has a value when there is a coincidence.
    int compare(const char pat[],const char text[],int rec_ex)
    {
        bool    flag = false;               // flag show if working on "star"
        int     pat_len ,txt_len,           // lehtghs of pattern and text
                flagc,                      // counter and  position i check
                shift=0;                    // shift position
    
        pat_len = (int)strlen(pat);         // get lehtgh of pattern
        txt_len = (int)strlen(text);        // get lehtgh of text
    
        if(rec_ex == 1 || (!pat_len && !txt_len))   // check if have to check some
            return(1);                      // if yes return 1 or if have exit
        else if(rec_ex == pat_len)          // else return 0 becose not check that
            return (0);                     // return 0
    
        for(flagc=0;flagc < pat_len;flagc++)
            if(pat[flagc] == '*' && flagc + 1 == pat_len)
                return(compare(pat,text,1));// end of check return 1
            else if(pat[flagc] == '*')
                flag = true;                // start * compare set flag true
            else if(pat[flagc] != '?')
            {
                if(toupper(pat[flagc]) != toupper(text[flagc+shift]) && !flag)
                    return(compare(pat,text,pat_len));   // bad char and no star
                else if(toupper(pat[flagc]) == toupper(text[flagc+shift]) && flag)
                    flag = false;                   // set flag false position
                else if(toupper(pat[flagc]) != toupper(text[flagc+shift]) && flag)
                    shift++;
            }
            else if(pat[flagc] == '?')
            {                               // check if have ? in star operation
                if(toupper(pat[flagc]) == toupper(text[flagc+shift]) && flag)
                    flag = false;           // set flag false position
                else if(toupper(pat[flagc]) != toupper(text[flagc+shift]) && flag)
                    shift++;                // add one more into shift
            }
        if((flagc+shift < txt_len && !flag) // text have nore chars and
            || (flagc+shift == txt_len +1 && pat[pat_len+1] != '*'))
            return(compare(pat,text,pat_len)); // and next char in pattern no star
        else
            return(compare(pat,text,1));       // end of pattern and text
    
    }

    Вот на после завтра нужно по программированию функцию написать- рекурсивную для сравнения строк по маске.
    Написал :-) якобы рекурсивную функцию :-)

    werd, 01 Февраля 2010

    Комментарии (13)
  5. PHP / Говнокод #2511

    +163.6

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    <?php
    function g_webi_razbitye_stranicy($st,$nachalo_ssilki, $kol_vidimyx_stranic, $kol_dannix, $kol_dannix_na_stran,$name_st_var="st",$rewrite=0,$end_stat="")
    {
    	$return=""; // переменная для сбора вывода
    	if($kol_dannix > $kol_dannix_na_stran){
    		$ostatok=$kol_dannix%$kol_dannix_na_stran;
    		$kolichestvo_stranic=($kol_dannix-$ostatok)/$kol_dannix_na_stran;
    		if ($ostatok>0): # Если остаток был больше нуля, значит остается еще несколько объяв, для которых нужна еще одна страница
    			$kolichestvo_stranic++;
    		endif;
    	}
    	if ($kolichestvo_stranic>$kol_vidimyx_stranic){ # если больше количества видимых страниц, начинаем прятать другие страницы в >>>
    		$kol_stranic_s_leva=ceil($kol_vidimyx_stranic/2);
    		if ($st>$kol_stranic_s_leva) { # (отсекание левой части)Если открыта страница выше пятой, то i примет другое значение, а если меньше пятой, то i будет 0
    			$i=$st-$kol_stranic_s_leva;
    			$menshe=$i;  }
    		else $i=0;
    		if($menshe<1):$menshe=1;endif;
    		if($i>0){ # Если вывод с первой страницы 1 2 3 4... то <<< выводить не надо
    			if($rewrite) $return.=$nachalo_ssilki."".$menshe.$end_stat."\"><<<</a>  ";
    			else $return.=$nachalo_ssilki."&".$name_st_var."=".$menshe."\"><<<</a>  ";
    		}
    		while($i<$kolichestvo_stranic){
    			$iii=$i+1;
    			if($st==$iii) $return.=" <b>$iii</b>  ";
    			else {
    				if($rewrite) $return.=$nachalo_ssilki."".$iii.$end_stat."\">$iii</a>  ";
    				else $return.=$nachalo_ssilki."&".$name_st_var."=".$iii."\">$iii</a>  ";
    			}
    			$i++;
    		}
    		return $return;
    	}
    }
    ?>

    функция вывода постраничного разбиения
    #webi.ru

    xXx_totalwar, 31 Января 2010

    Комментарии (13)
  6. Perl / Говнокод #2476

    −257.7

    1. 1
    sub count {scalar(@{[@_]})}

    Из себя выдавил)

    RolCom, 23 Января 2010

    Комментарии (13)
  7. Ruby / Говнокод #2416

    −131.4

    1. 1
    some_variable = (some_condition && some_other_condition) ? true : false

    Иногда встречаю ГК подобный этому но реализованный в виде case..when. Еще более впечатляет :)

    shine, 15 Января 2010

    Комментарии (13)
  8. Python / Говнокод #2401

    −427.9

    1. 1
    2. 2
    f.write("#ifndef _" + fileouth.replace("/","_").replace(".", "_").upper() + "_\n")
    f.write("#define _" + fileouth.replace("/","_").replace(".", "_").upper() + "_\n")

    что еще сказать... видно человека не научили что копипастить плохо... и что бывает повторное испольхование кода...

    Pencioner, 13 Января 2010

    Комментарии (13)
  9. C++ / Говнокод #2384

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void render_tee(/*<еще аргументы>*/, vec2 dir, vec2 pos)
    {
    	vec2 direction = dir;
    	vec2 position = pos;
    
                      //еще код
    }

    вот что я нашел в сорцах игрушки TeeWorlds

    danilissimus, 07 Января 2010

    Комментарии (13)
  10. C++ / Говнокод #2367

    +65.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    case WM_DESTROY:
        // Microsoft, you MORONS! Don't destroy stuff I create!
        // Oh well, try to handle this as gracefully as possible so we
        // don't send any commands to the now non-existent window:
        tablet_close(hWnd);
        if (window) window->destroy();
        fl_prune_deferred_calls(hWnd);
        break;

    FLTK. В свое время заставило похихикать.

    Altravert, 04 Января 2010

    Комментарии (13)
  11. C++ / Говнокод #2363

    +55.3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    #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 решили начать писать новый клиент.

    Sauron, 01 Января 2010

    Комментарии (13)