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

    +1003

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class fileOutStream : public ostream
    {
    public:
        /* ... */
        virtual inline int printf( const char * fpFormat, ... )
        {
            /* ... */
        }
        /* ... */
    }

    virtual inline метод.

    Dummy00001, 08 Февраля 2012

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

    +1004

    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
    class FuncFileOutStream: public fileOutStream
    {
    public:
    	/* ... */
    	friend FuncFileOutStream& operator<<(FuncFileOutStream& out, bool b);
    	friend FuncFileOutStream& operator<<(FuncFileOutStream& out, char c);
    	friend FuncFileOutStream& operator<<(FuncFileOutStream& out, long l);
    	friend FuncFileOutStream& operator<<(FuncFileOutStream& out, int i);
    	friend FuncFileOutStream& operator<<(FuncFileOutStream& out, short s);
    	friend FuncFileOutStream& operator<<(FuncFileOutStream& out, const char* pc);
    	friend FuncFileOutStream& operator<<(FuncFileOutStream& out, float f);
    	friend FuncFileOutStream& operator<<(FuncFileOutStream& out, double d);
    	/* ... */
    };

    попытка перенаправления данных проходящих через ostream.

    только маленькая тонкость. fileOutStream уже перенакрывает ostream специально для этой цели - что бы собственный streambuf подставить, который данными проходящими через ostream и манипулирует используя два официальных виртуальных метода - вместо дюжины корявых операторов которые наверное и половины того что проект испульзует не покрывают. ну бляха муха поэтому же и сделали streambuf в стандарте, что бы вот таким маразмом не страдали...

    Dummy00001, 08 Февраля 2012

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

    +159

    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
    var wma0;
    wma0 = {
    0: "02:35 08/01/2012",
    1: "дайте скрипт подарки",
    id: 3,
    uid: 103,
    login: "gadget"
    }
    mess[0] = wma0;
    var wma0;
    wma0 = {
    pol: 0,
    last: 1325975830
    }
    u[0] = wma0;
    var wma1;
    wma1 = {
    0: "10:19 20/12/2011",
    1: "уххйййффыввы",
    id: 2,
    uid: 90,
    login: "kotofeyka"
    }
    mess[1] = wma1;
    var wma1;
    wma1 = {
    pol: 0,
    last: 1324361954
    }
    u[1] = wma1;

    json? Не, не слышал

    jQuery, 08 Февраля 2012

    Комментарии (4)
  4. PHP / Говнокод #9357

    +38

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $t='array(';
    	foreach ($info as $k=>$v){
    		$t.='"'.$k.'"=>"'.mysql_escape_string(htmlspecialchars($v)).'"';
    		if ($i<($cnt-1)) $t.=',';
    		$i++;
    	}
    	$t.=')';
    	if ($labelingid) sql ("UPDATE labeling SET info='$t' WHERE id='$labelingid'");

    Хрясь!

    brainstorm, 08 Февраля 2012

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

    +1007

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    #if defined( HPUX_11_31 )
    #define BDYNAMIC_CAST( CLASS, OBJECT )  (( CLASS ) ( OBJECT ))
    #else
    #define BDYNAMIC_CAST( CLASS, OBJECT )  (dynamic_cast< CLASS >(( OBJECT )))
    #endif

    чуть кофе не похлебнулся.

    при более детальном рассмотрении кода из-за которого это сделали, выяснилось что: (А) в проекте нет ни одного места где нужен динамик каст и (Б) половина наших С++ профисианалов не умеют пользоватся конст кастом (который по коду там и был им нужен, вместе со статик кастом).

    Dummy00001, 08 Февраля 2012

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

    +971

    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
    using System;
    
    public class Man
    {
        static int num;
        public Man parent = new Man();    //У каждого человека есть родители, ведь так?
    
        static Man()
        {
            num = 0;
        }
    
        public Man()
        {
            num++;
        }
    }

    Компилятор C# против перенаселения, вовремя выдаёт StackOverflowException, пока расплодиться не успели..

    vistefan, 08 Февраля 2012

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

    +115

    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
    switch (pList)
                    {
                        #region Формы контейнера        |
                        case TObjects.ContainerForm         :
                            frmList                                         =   new TfrmContainerForm();
                            pnlMain                                         =   ((TfrmContainerForm)frmList).pnlMain;
                            Result                                          =   ((TfrmContainerForm)frmList).grList;
                            break;
                        #endregion
                        #region Тип контейнера          |
                        case TObjects.ContainerType         :
                            frmList                                         =   new TfrmContainerType();
                            pnlMain                                         =   ((TfrmContainerType)frmList).pnlMain;
                            Result                                          =   ((TfrmContainerType)frmList).grList;
                            break;
                        #endregion
                        #region Объект НВАЭС            |
                        case TObjects.Object                :
                            frmList                                         =   new TfrmObjects();
                            pnlMain                                         =   ((TfrmObjects)frmList).pnlMain;
                            Result                                          =   ((TfrmObjects)frmList).grList;
                            break;
                        #endregion
                        #region Исполнитель работ       |
                        case TObjects.DepSource             :
                            frmList                                         =   new TfrmDepSource();
                            pnlMain                                         =   ((TfrmDepSource)frmList).pnlMain;
                            Result                                          =   ((TfrmDepSource)frmList).grList;
                            break;
                        #endregion
                        #region Установка переработки   |
                        case TObjects.TreatSet              :
                            frmList                                         =   new TfrmTreatSet();
                            pnlMain                                         =   ((TfrmTreatSet)frmList).pnlMain;
                            Result                                          =   ((TfrmTreatSet)frmList).grList;
                            break;
                        #endregion
                        #region Контейнер               |
                        case TObjects.Container             :
                            frmList                                         =   new TfrmContainer();
                            pnlMain                                         =   ((TfrmContainer)frmList).pnlMain;
                            Result                                          =   ((TfrmContainer)frmList).grList;
                            break;
                        #endregion
                        #region Хранилище               |
                        case TObjects.Storage               :
                            frmList                                         =   new TfrmStorage();
                            pnlMain                                         =   ((TfrmStorage)frmList).pnlMain;
                            Result                                          =   ((TfrmStorage)frmList).grList;
                            break;
                        #endregion
    ...

    А тут ок. 400 таких вот строк.

    gcoder, 08 Февраля 2012

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

    +119

    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
    public  static  string      LoadGridDT          (TObjects pList, out DataTable Dt, params object[] pArgs)
    ...              
                    switch (pList)
                    {
                        case TObjects.Radio                 :
                            if (pArgs.Length == 1 && pArgs[0] is int)
                                vLoadResult = Protocol.Radionuclide.Load((int)pArgs[0], out Dt);
                            else if (pArgs.Length > 1 && pArgs[0] is int && pArgs[1] is bool)
                                vLoadResult = Part2.Radionuclide.Load((int)pArgs[0], out Dt);
                            else vLoadResult = Radionuclide.Load(out Dt);
                            break;
                        case TObjects.Protocol              :
                            // [0](int): Тип протокола; [1](int): Очередь; [2](bool): Активность; [3](int): Объект
                    if (pArgs.Length > 3 && pArgs[0] is int && pArgs[1] is int && pArgs[2] is bool && pArgs[3] is int)
                        if (pArgs.Length > 4 && pArgs[4] is int)
                            vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], (int)pArgs[3], (bool)pArgs[2], out Dt, (int)pArgs[4]);
                        else
                        {
                            if (pArgs.Length > 4 && pArgs[4] is bool && (bool)pArgs[4] == true) // 5-й аргумент для загрузки детализированного списка протоколов с учетом объекта отбора
                                vLoadResult = Protocol.Load((int)pArgs[0], (int)pArgs[1], (int)pArgs[3], (bool)pArgs[2], out Dt);
                            else // недетализированный список протоколов с учетом объекта отбора
                                vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], (int)pArgs[3], (bool)pArgs[2], out Dt);
                        }
                    else
                    // [0](List<int>): Типы протокола; [1](int): Очередь; [2](int): Id место отбора; [3](bool): Активность
                    if (pArgs.Length > 3 && pArgs[0] is List<int> && pArgs[1] is int && pArgs[2] is int && pArgs[3] is bool)
                        if (pArgs.Length > 4 && pArgs[4] is int)
                            vLoadResult = Protocol.LoadList((List<int>)pArgs[0], (int)pArgs[1], (int)pArgs[2], (bool)pArgs[3], out Dt, (int)pArgs[4]);
                        else
                            vLoadResult = Protocol.Load((List<int>)pArgs[0], (int)pArgs[1], (int)pArgs[2], (bool)pArgs[3], out Dt);
                    else
                    // [0](List<int>): Типы протокола; [1](int): Очередь; [2](bool): Активность
                    if (pArgs.Length > 2 && pArgs[0] is List<int> && pArgs[1] is int && pArgs[2] is bool)
                        if (pArgs.Length > 3 && pArgs[3] is int)
                            vLoadResult = Protocol.LoadList((List<int>)pArgs[0], (int)pArgs[1], (bool)pArgs[2], out Dt, (int)pArgs[3]);
                        else
                            vLoadResult = Protocol.LoadList((List<int>)pArgs[0], (int)pArgs[1], (bool)pArgs[2], out Dt);
                    else
                    // [0](int): Тип протокола; [1](int): Очередь; [2](bool): Активность;
                    if (pArgs.Length > 2 && pArgs[0] is int && pArgs[1] is int && pArgs[2] is bool)
                        if (pArgs.Length > 4 && pArgs[3] is bool && pArgs[4] is int)
                            vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], (bool)pArgs[2], out Dt, (int)pArgs[4]);
                        else
                            vLoadResult = Protocol.Load((int)pArgs[0], (int)pArgs[1], (bool)pArgs[2], out Dt);
                    else
                    // [0](int): Тип протокола; [1](int): Очередь
                    if (pArgs.Length > 1 && pArgs[0] is int && pArgs[1] is int)
                        if (pArgs.Length > 2 && pArgs[2] is int)
                            vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], out Dt, (int)pArgs[2]);
                        else
                            vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], out Dt);
                    else
    ...

    Метод 500+ вот такого рода строк...

    gcoder, 08 Февраля 2012

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

    +123

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    pOutGrid    =   pTab                                                != null     ? 
                                pTab.SelectedTab                                    != null     ? 
                                pTab.SelectedTab.Tag                                is GridEX   ?
                                (GridEX)pTab.SelectedTab.Tag                                    :
    
                                pTab.SelectedTab.Tag                                is TObject  ?
                                ((TObject)pTab.SelectedTab.Tag).ViewForm            != null     ?
                                ((TObject)pTab.SelectedTab.Tag).ViewForm.GridEX     != null     ?
                                ((TObject)pTab.SelectedTab.Tag).ViewForm.GridEX                 : pGrid : pGrid : pGrid
                                                                                                : pGrid : pGrid;

    gcoder, 08 Февраля 2012

    Комментарии (7)
  10. JavaScript / Говнокод #9351

    +146

    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
    function readReverseCrypt(){
                if (!cryptStr) return END_OF_INPUT;
                while (true){
                    if (cryptCount >= cryptStr.length) return END_OF_INPUT;
                    var nextCharacter = cryptStr.charAt(cryptCount);
                    cryptCount++;
                    if (rbc[nextCharacter]){
                        return rbc[nextCharacter];
                    }
                    if (nextCharacter == 'A') return 0;
                }
    
                return END_OF_INPUT;
            }

    Выйдем из цикла только выйдя из функции. Строка 13 на всякий случай.
    // из одной соц сети с 25 миллионами пользователей

    jcs, 08 Февраля 2012

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