1. C++ / Говнокод #17158

    +51

    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
    std::list<COptions *> COptions::m_InstanceList;
    ..........
    COptions::COptions()
    {
    	for (int i = 0; i < OPTIONS_NUM; ++i)
    		m_OptionsCache[i].bCached = FALSE;
    	m_pOptionsHelperWindow = new COptionsHelperWindow(this);
    	simple_lock lock(m_mutex);
    #ifdef _DEBUG
    	for (std::list<COptions *>::iterator iter=m_InstanceList.begin(); iter != m_InstanceList.end(); ++iter)
    		ASSERT(*iter != this);
    #endif _DEBUG
    	m_InstanceList.push_back(this);
    	m_SpeedLimits[0] = m_sSpeedLimits[0];
    	m_SpeedLimits[1] = m_sSpeedLimits[1];
    }
    
    COptions::~COptions()
    {
    	{
    		simple_lock lock(m_mutex);
    		std::list<COptions *>::iterator iter;
    		for (iter=m_InstanceList.begin(); iter != m_InstanceList.end(); ++iter) {
    			if (*iter == this)
    				break;
    		}
    
    		ASSERT(iter != m_InstanceList.end());
    		if (iter != m_InstanceList.end())
    			m_InstanceList.erase(iter);
    	}
    
    	if (m_pOptionsHelperWindow)
    		delete m_pOptionsHelperWindow;
    	m_pOptionsHelperWindow=0;
    }
    .......

    В отладке включается тяжелый героиновый бред разработчиков FileZilla

    fsmoke, 24 Ноября 2014

    Комментарии (1)
  2. Pascal / Говнокод #17157

    +87

    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
    class function TTransfer.getCreditStateOFCreditPoints(creditPoints:Int64):Integer;
    begin
      Result := 0;
      if (creditPoints>=0) AND (creditPoints <200) then
         begin
              Result := 1;
              exit;
         end;
      if (creditPoints>=200) AND (creditPoints <600) then
         begin
              Result := 2;
              exit;
         end;
      if (creditPoints>=600) AND (creditPoints <1200) then
         begin
              Result := 3;
              exit;
         end;
      if (creditPoints>=1200) AND (creditPoints <2000) then
         begin
              Result := 4;
              exit;
         end;
      if (creditPoints>=2000) AND (creditPoints <3700) then
         begin
              Result := 5;
              exit;
         end;
      if (creditPoints>=3700) AND (creditPoints <7000) then
         begin
              Result := 6;
              exit;
         end;
      if (creditPoints>=7000) AND (creditPoints <15000) then
         begin
              Result := 7;
              exit;
         end;
      if (creditPoints>=15000) AND (creditPoints <25000) then
         begin
              Result := 8;
              exit;
         end;
      if (creditPoints>=25000) AND (creditPoints < 100000) then
         begin
              Result := 9;
              exit;
         end;
      if (creditPoints>=100000) then
         begin
              Result := 10;
              exit;
         end;
    end;

    Типа Ы-нтерпрайз код. Где таких делают только.

    Cynicrus, 24 Ноября 2014

    Комментарии (76)
  3. JavaScript / Говнокод #17156

    +156

    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
    var old = 47;
    
            function getRate() {
                $.ajax({
                      url: "http://query.yahooapis.com/v1/public/yql?q=select%20%2a%20from%20yahoo.finance.xchange%20where%20pair%20in%20%28%22USDRUB%22%29&env=store://datatables.org/alltableswithkeys",
                      dataType: "text"
                }).done(function(msg) {
                    var value = /<Rate>(.+)<\/Rate>/.exec(msg)[1];
                    //$("#p-rate").html(/<Rate>(.+)<\/Rate>/.exec(msg)[1]);
                    $("#p-rate").html(value);
                    if(value > old) $("#p-message").html("МНЕ ОТ ЭТОГО ТОЛЬКО ЛУЧШЕ! ТОЛЬКО НА ПОЛЬЗУ!");
                    else if(value < old) $("#p-message").html("СКАЛЕН! СКАЛЕН!");
                    else $("#p-message").html("МНОГОХОДОВОЧКА!");
                    old = value;
                });
            }
    
            setInterval(getRate,1500);

    gost, 24 Ноября 2014

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

    +50

    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
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    #include <deque>
    #include <stdint.h>
    #include <iterator>
    #include <algorithm>
    #include <iostream>
    #include <iomanip>
    using namespace std;
    typedef uint32_t bt;
    typedef uint64_t dbt;
    typedef deque<bt> bn;
    #define cat2(b,e) b##e
    #define cat(b,e) cat2(b,e)
    #define fsi(i,s,e) for(size_t i(s), cat(i,_end)(e); i<cat(i,_end); ++(i))
    #define fe(i,c) for(auto i((c).begin()), cat(i,_end)((c).end()); i!=cat(i,_end); ++(i))
    void ml10(bn& n){
      n.push_front(0);
    }
    uint32_t ni(const bn& n, size_t i){
      if(n.size()<=i)
        return 0;
      else
        return n[i];
    }
    size_t ms(const bn& n1, const bn& n2){
      return (max) (n1.size(), n2.size());
    }
    bt gr(dbt tr){
      return tr & (numeric_limits<bt>::max)();
    }
    bt gc(dbt tr){
      return (tr & (~((dbt)(numeric_limits<bt>::max)()))) >> (numeric_limits<bt>::digits);
    }
    void pb(bt b1, bt b2, bt lc, bt& r, bt& c){
      dbt tr = ((uint64_t)b1 + b2 + lc);
      r = gr(tr);
      c = gc(tr);
    }
    void mb(bt b1, bt b2, bt lc, bt& r, bt& c){
      dbt tr = ((uint64_t)b1 * b2 + lc);
      r = gr(tr);
      c = gc(tr);
    }
    bn /*constexpr*/ bi(bn n){
      reverse(n.begin(), n.end());
      return n;
    }
    bn pl(const bn& n1, const bn& n2){
      bn r;
      bt c=0,br=0;
      size_t ms_ = ms(n1, n2);
      //r.reserve(ms_+1);
      fsi(i,0,ms_){
        pb(ni(n1,i),ni(n2,i),c,br,c);
        r.push_back(br);
      }
      if (c)
        r.push_back(c);
      return r;
    }
    bn ml(bn n1, const bn& n2){
      bn lr, r;
      bt c=0;
      //r.reserve(n1.size() + n2.size() + 1);
      fsi(i2,0,n2.size()){
        fsi(i1, 0, n1.size()){
          lr.emplace_back();
          mb(n1[i1], n2[i2], c, lr[i1], c);
        }
        if (c){
          lr.push_back(c);
          c = 0;
        }
        r = pl(r, lr);
        lr.clear();
        ml10(n1);
      }
      return r;
    }
    #define STR1(x) #x
    #define STR(x) STR1(x)
    #define EXPECT_TRUE(expr)\
    do{\
      if(!(expr))\
        cout<<"*****Failed test: \"" STR(expr) "\"" << endl;\
        else\
        cout << "Test OK: \"" STR(expr) "\"" << endl;\
    }while(false)
    #define TEST(expr)\
    do{\
        cout << "Test begined: \"" STR(expr) "\"" << endl;\
        (void)(expr);\
    } while (false)

    И вот мой просмотр аниме закончен.
    http://ideone.com/eRJ7FA
    main смотри в коментах

    LispGovno, 24 Ноября 2014

    Комментарии (21)
  5. Си / Говнокод #17154

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    int size;
    
    size = EXPR;
    
    if (size > INT_MAX || size <= 0) {
        return NULL;
    }
    
    // ...

    Ндя. Семь лет уже. Теперь всё понятно...

    bot, 23 Ноября 2014

    Комментарии (52)
  6. C++ / Говнокод #17153

    +52

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    int QTabBarPrivate::indexAtPos(const QPoint &p) const
    {
        Q_Q(const QTabBar);
        if (q->tabRect(currentIndex).contains(p))
            return currentIndex;
        for (int i = 0; i < tabList.count(); ++i)
            if (tabList.at(i).enabled && q->tabRect(i).contains(p))
                return i;
        return -1;
    }

    currentIndex - видимо откат заплатил

    PS
    Cкоро всю Qt на говнокод заливать придется.
    Плохое настроение или хотите поржать - открывайте исходники Qt в случайном месте - поднимаете себе настроение идиотскими решениями - профит

    fsmoke, 23 Ноября 2014

    Комментарии (38)
  7. C++ / Говнокод #17152

    +57

    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
    typedef deque<uint8_t> bn;
    #define cat2(b,e) b##e
    #define cat(b,e) cat2(b,e)
    #define fsi(i,s,e) for(size_t i(s), cat(i,cat(_fsi_end_,__LINE__))(e); i<cat(i,cat(_fsi_end_,__LINE__)); ++(i))
    void ml10(bn& n){
      n.push_front(0);
    }
    uint8_t ni(const bn& n, size_t i){
      if(n.size()<=i)
        return 0;
      else
        return n[i];
    }
    size_t ms(const bn& n1, const bn& n2){
      return (max) (n1.size(), n2.size());
    }
    void pb(uint8_t b1, uint8_t b2, uint8_t lc, uint8_t& r, uint8_t& c){
      uint8_t tr = (b1+b2+lc);
      r = tr & 1;
      c = !!(tr & 2);
    }
    bn bi(bn n){
      reverse(n.begin(), n.end());
      return n;
    }
    bn pl(const bn& n1, const bn& n2){
      bn r;
      uint8_t c=0,br=0;
      fsi(i,0,ms(n1, n2)){
        pb(ni(n1,i),ni(n2,i),c,br,c);
        r.push_back(br);
      }
      if (c)
        r.push_back(c);
      return r;
    }
    bn ml(bn n1, const bn& n2){
      bn r;
      fsi(i,0,n2.size()){
        if(n2[i])
          r=pl(r,n1);
        ml10(n1);
      }
      return r;
    }

    У меня к вам вопрос парни.
    В нашем отделе взяли олимпиадника. За ним не следили. Он написал много кода и ушел в гугл.
    Как бы за ним теперь код поправить? Хотябы конструкции языка типа for вернуть вместо например fsi?
    Код не из проекта. но его. В проекте похожий и даже хуже.
    Нужно типа утилиты препроцессор крестов для части макросов (все разворачивать макросы или инклудить хедеры очевидно нельзя).

    laMer007, 23 Ноября 2014

    Комментарии (68)
  8. JavaScript / Говнокод #17151

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    # coffee script
    d = 1 - Math.pow(d,n) * Math.pow((1/d -1),n)
    
    // java script
    d = 1 - Math.pow(d, n) * Math.pow(1 / d(-1), n);

    почему не любят кофескрипт, выпуск -дцатьпервый. потому что нельзя просто скопипастить формулу и не поймать Uncaught TypeError: number is not a function

    makc3d, 22 Ноября 2014

    Комментарии (99)
  9. Си / Говнокод #17150

    +139

    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
    SGELISTENTRY *sgeListAdd(SGELIST *l, const char *id, void *data) {
       SGELISTENTRY *ret;
    
       sgeNew(ret, SGELISTENTRY);
       l->numberOfEntries++;
       if (l!=NULL) {
          ret->prev=l->last;
       } else {
          ret->prev=NULL;
       }
       if (l!=NULL && l->last!=NULL) {
          l->last->next=ret;
       }
       ret->next=NULL;
       ret->id=strdup(id);
       ret->data=data;
    
       if (l==NULL) return ret;
    
       if (l->first==NULL) l->first=ret;
       l->last=ret;
    
       return ret;
    }

    Эх, проверяй, не проверяй, один хрен все грохнется при l==NULL

    Pythoner, 21 Ноября 2014

    Комментарии (54)
  10. PHP / Говнокод #17149

    +160

    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
    /**
    * @param array $input
    * @return array
    * @throws Exception
    */
    protected function makeParams($input)
    {
        if (!is_array($input))
        {
            throw new \Exception('argument should be array');
        }
    
        $params = array();
    
        foreach ($input as $k=>$v)
        {
            $params[] = $v;
        }
    
        return $params;
    }

    свой array_values, с блекджеком и экзепшенами

    heyzea1, 21 Ноября 2014

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