1. Си / Говнокод #2612

    +135.2

    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
    inline void clearbufshort (void *buff, unsigned int count, WORD clear)
    {
            if (!count)
                    return;
            SWORD *b2 = (SWORD *)buff;
            if ((int)b2 & 2)
            {
                    *b2++ = clear;
                    if (--count == 0)
                            return;
            }
            do
            {
                    *b2++ = clear;
            } while (--count);
    }

    Наткнулся на такой вот шедевр в коде ZDaemon. Это аналог memset, только заполняет не байтами, а словами.

    Кстати, там же рядом есть функция, запполняющая двойными словами:

    inline void clearbuf (void *buff, int count, SDWORD clear)
    {
    SDWORD *b2 = (SDWORD *)buff;
    while (count--)
    *b2++ = clear;
    }

    Arseniy, 13 Февраля 2010

    Комментарии (6)
  2. Си / Говнокод #2611

    +137.6

    1. 1
    w = (GtkWidget*)(*((int*)(lw->data)));

    Объект для медитаций

    mutanabbi, 13 Февраля 2010

    Комментарии (20)
  3. C++ / Говнокод #2610

    +68.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    void TInputTID::AvWnd(GtkWidget* w, char* name, int bOut, void (*cb) (int wnd, int data))
    {
        // Тут объявления локальных переменных и не относящиеся к делу манипуляции
        if(((int)cb) != -1) // Шедевр
        {
          gtk_signal_connect ((GtkObject*)hButOK,
                               "clicked",GTK_SIGNAL_FUNC(cb),hOutWndBox);
        }
    }

    Вечное сияние чистого разума. Новое слово в арифметике указателей.

    mutanabbi, 13 Февраля 2010

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

    −112.9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    NSString *s_diskUsage = [NSString localizedStringWithFormat:@"Unavailable"];;
    float f_vaultUsage = 0;
      
    if (inData == NULL || inData.loggedIn != 0)
    {
        [s_diskUsage release];
        s_diskUsage = [NSString localizedStringWithFormat:@"Unavailable"];
        f_vaultUsage = (float)0;
    }

    Продолжение эпопеи с проектом на Objective-C. Я не знаю, может это стандарт кодирования такой, когда нужно как можно чаще переинициализировать переменные одними и теми же значениями... на случай если им надоест и они самоуничтожатся...

    Highlander, 13 Февраля 2010

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

    −357.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    -(bool)hasInternetConnection
    {
        return true;
    }
    
    -(void)checkInternetConnection
    {
        NSLog(@"checking connection");
        mTmp.loggedIn = ([self hasInternetConnection]==YES) ? 0 : -1;
    }

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

    P.S. если кто не знает, то код на Objective-C

    Highlander, 13 Февраля 2010

    Комментарии (12)
  6. PHP / Говнокод #2607

    +162.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
    $s_name=$_POST['s_name'];
    $f_name=$_POST['f_name'];
    $m_name=$_POST['m_name'];
    $login=$_POST['login'];
    $password1=$_POST['password1'];
    $password2=$_POST['password2'];
    $post_id=$_POST['post'];
    $query="SELECT  person.login as login	FROM	person	ORDER BY ID";
    $res=Select($query);
    $flag=false;
    		  While(OCIFetch($res))
    		        {
    			        $login_base=text($res,'LOGIN');
    				if ($login==$login_base)
    				{
    				$flag=true;
    				break;
    				}
    			}
    		If($flag)
    			{
    			echo "</br><center><h3>Такой логин уже существует...придумайте еще что-нибудь!</center></h3></br>";
    			?>
    			<center><h4><a href="index.php?menu=reg">Назад</a></h4><center>
    			<?
    			}
                   if (!$flag)
    		   {
    		     if ($password1==$password2)
    		           {
    		             If (($login!='') and ($password1!='') and ($s_name!='') and ($f_name!='') and ($m_name!=''))
    			   {
                                     .... Ну и дальше  добавение и все такое))

    ммм.. альтернативные способы защиты от инъекций в запросах???)))

    1_and_0, 12 Февраля 2010

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

    +153.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
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    var xmlhttp
    var dlid;
    
    function showHint(id)
    {
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
      {
      alert ("Your browser does not support XMLHTTP!");
      return;
      }
    dlid="dl"+id;
    var url="download.php";
    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("GET",url+"?update="+id,false);
    xmlhttp.send(null);
    window.location=url+"?id="+id;
    }
    
    function stateChanged()
    {
    if (xmlhttp.readyState==4)
      {
      document.getElementById(dlid).innerHTML=xmlhttp.responseText;
      }
    }
    
    function GetXmlHttpObject()
    {
    if (window.XMLHttpRequest)
      {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      return new XMLHttpRequest();
      }
    if (window.ActiveXObject)
      {
      // code for IE6, IE5
      return new ActiveXObject("Microsoft.XMLHTTP");
      }
    return null;
    }

    Разбираюсь с AJAX

    ko4epblzka, 12 Февраля 2010

    Комментарии (1)
  8. Си / Говнокод #2605

    +137.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
    void TWindowTID::SetStyle(GtkWidget* widget, const char *form, gint Red_, gint Green_, gint Blue_)
    {
        struct _GtkStyle *style;
        GdkColor bg;
        style=gtk_style_new();
        bg.red = Red_;
        bg.blue = Blue_;
        bg.green = Green_;
        if (form=="TEXT")
        {
            style->fg[GTK_STATE_NORMAL]=bg; //TEXT
        }
        else
            if (form=="BORDER")
            {
                style->base[GTK_STATE_NORMAL]=bg; //BORDER
            }
            else
                if (form=="ALL")
                {
                    style->bg[GTK_STATE_NORMAL]=bg;
                    style->base[GTK_STATE_NORMAL]=bg; //BORDER
                    style->fg[GTK_STATE_NORMAL]=bg; //TEXT
                }
                else
                    if (form=="button")
                    {
                        style->bg[GTK_STATE_PRELIGHT]=bg;
                        style->base[GTK_STATE_PRELIGHT]=bg; //BORDER
                        style->bg[GTK_STATE_SELECTED]=bg;
                        style->base[GTK_STATE_SELECTED]=bg; //BORDER
                    }
                    else
                    {
                        style->bg[GTK_STATE_NORMAL]=bg;
                    }
        style->font = gdk_font_load("-adobe-helvetica-*-r-*-*-12-*-*-*-*-*-*-*");
        if ((GtkWidget *)widget!=NULL) gtk_widget_set_style((GtkWidget *)widget, style);
    }

    Сравнение строк умиляет

    mutanabbi, 12 Февраля 2010

    Комментарии (4)
  9. Pascal / Говнокод #2604

    +107.2

    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
    procedure TFormMoneyToBag.AMEditVirtualKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var
      Field : string;
      Value : integer;
    begin
      if (Key = 16) or (Key = 13) then begin
        with ADOHardCash.FieldByName('Dengi') do begin
          if AsString = '500 грн' then Field := '[500hrn]'
          else if AsString = '200 грн' then Field := '[200hrn]'
               else if AsString = '100 грн' then Field := '[100hrn]'
                    else if AsString = '50 грн' then Field := '[50hrn]'
                         else if AsString = '20 грн' then Field := '[20hrn]'
                              else if AsString = '10 грн' then Field := '[10hrn]'
                                   else if AsString = '5 грн' then Field := '[5hrn]'
                                        else if AsString = '2 грн' then Field := '[2hrn]'
                                             else if AsString = '1 грн' then Field := '[1hrn]'
                                                  else if AsString = '1 грн монета' then Field := '[1hrnCoin]'
                                                       else if AsString = '50 коп' then Field := '[50kopCoin]'
                                                            else if AsString = '25 коп' then Field := '[25kopCoin]'
                                                                 else if AsString = '10 коп' then Field := '[10kopCoin]'
                                                                      else if AsString = '5 коп' then Field := '[5kopCoin]'
                                                                           else if AsString = '2 коп' then Field := '[2kopCoin]'
                                                                                else if AsString = '1 коп' then Field := '[1kopCoin]'
        end;
    
        UpdateIncassationCurrentValue.Parameters.ParamByName('@IncassationId').Value := IncassationId;
        UpdateIncassationCurrentValue.Parameters.ParamByName('@Field').Value := Field;
        if AMEditVirtual.Text = '' then Value := 0 else Value := StrToInt(AMEditVirtual.Text);
        UpdateIncassationCurrentValue.Parameters.ParamByName('@Value').Value := Value;
        ExecStoredProc(UpdateIncassationCurrentValue);
    
        RequeryADO(ADOHardCash);
        RequeryADO(ADOCashDeskInfo);
        ButtonStatus;
        AMEditVirtual.Visible := false;
      end;
    end;

    Сие Чудо техники заполняет параметры для выполнения хранимой процедуры на сервере.
    Написал Большой Мудила, хотя в целом он хороший человек.

    cruelwizard, 12 Февраля 2010

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    final public function getModelId()
    {
    	return '42';
    }

    e-one, 12 Февраля 2010

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