1. Список говнокодов пользователя odmin

    Всего: 8

  2. Си / Говнокод #9363

    +132

    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
    #define COMMAND_MARKER		'\x1B'
    #define COMMAND_SET			'='
    #define COMMAND_XOR			'^'
    #define COMMAND_OR			'|'
    #define COMMAND_AND			'&'
    
    void usbWriteOut(uchar *data, int len)
    {
    	while(len--) {
    		uchar c = *data;
    		buf[0] = buf[1];
    		buf[1] = buf[2];
    		buf[2] = buf[3];
    		buf[3] = c;
    		
    		if(buf[0] == COMMAND_MARKER) {
    			uint8_t val = (hex2u(buf[2]) << 4) | hex2u(buf[3]);
    			if(buf[1] == COMMAND_SET) {
    				colorData = val;
    			}
    			else if(buf[1] == COMMAND_XOR) {
    				colorData ^= val;
    			}
    			else if(buf[1] == COMMAND_OR) {
    				colorData |= val;
    			}
    			else if(buf[1] == COMMAND_AND) {
    				colorData &= ~val;
    			}
    		}
    	}
    }

    Простой баг оказался крайне подлым!
    При тестировании девайса терминалкой и чепятании команды ручками, каждый символ уходил в отдельном пакете и создавалось впечатление, что всё работает.
    После чего девайс был собран с применением большого количества термоклея, так что исправление бага оказалось совершенно непростым занятием >_<

    odmin, 09 Февраля 2012

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

    +147

    1. 1
    $field_value = trim( $field_value, ' \n"' );

    odmin, 28 Ноября 2011

    Комментарии (11)
  4. Си / Говнокод #8298

    +140

    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
    void Lcd_goto(uc8 x, uc8 y)
    {
            int str;
            if (x == 0)
            {
                    switch (y)
                    {
                    case 0:  str = 0x80; break;
                    case 1:  str = 0x81; break;
                    case 2:  str = 0x82; break;
                    case 3:  str = 0x83; break;
                    case 4:  str = 0x84; break;
                    case 5:  str = 0x85; break;
                    case 6:  str = 0x86; break;
                    case 7:  str = 0x87; break;
                    case 8:  str = 0x88; break;
                    case 9:  str = 0x89; break;
                    case 10: str = 0x8A; break;
                    case 11: str = 0x8B; break;
                    case 12: str = 0x8C; break;
                    case 13: str = 0x8D; break;
                    case 14: str = 0x8E; break;
                    case 15: str = 0x8F; break;
                    }
    
            }
            if (x==1)
            {
                    switch (y)
                    {
                    case 0:  str = 0xC0; break;
                    case 1:  str = 0xC1; break;
                    case 2:  str = 0xC2; break;
                    case 3:  str = 0xC3; break;
                    case 4:  str = 0xC4; break;
                    case 5:  str = 0xC5; break;
                    case 6:  str = 0xC6; break;
                    case 7:  str = 0xC7; break;
                    case 8:  str = 0xC8; break;
                    case 9:  str = 0xC9; break;
                    case 10: str = 0xCA; break;
                    case 11: str = 0xCB; break;
                    case 12: str = 0xCC; break;
                    case 13: str = 0xCD; break;
                    case 14: str = 0xCE; break;
                    case 15: str = 0xCF; break;
                    }
            }
    
            Lcd_write_cmd(str);
    
    }

    odmin, 26 Октября 2011

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

    +155

    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
    function otherString($str,$style)
    {
    	$str=trim($str);
    	switch($style)
    	{
    		case 1: $str=strip_tags($str); $str=str_replace("\n",'<br />',$str); break;
    		case 2:  break;
    		case 3: $str=strip_tags($str); $str=str_replace("\n",'',$str); $str=str_replace('<br />',"\n",$str); break;
    		case 4: $str=ereg_replace('(mailto:|mailto|http://|http:/|http:|http|ftp://|ftp:/|ftp:|ftp)','',$str);break;
    		case 5: $str=stripslashes($str); break;
    		case 6: $str=stripslashes($str); $str=strip_tags($str); break;
    		case 7: $str=strip_tags($str); break;
    	}
    	return $str;
    }

    web-based cms

    odmin, 24 Августа 2011

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

    +147

    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
    private function getExperts($where = '') {
    		if ($where) {
    			$where = "WHERE $where";
    		}
    		$query = "SELECT * FROM $this->expertsTable $where";
    		$experts = self::$DB->select($query);		
    		
    		// workarround кривой структуры бд
    		// выбрасываем повторяющихся экспертов
    		$experts_unique = array();
    		foreach($experts as $expert)
    		{
    			$key = md5($expert['expertName'].$expert['photo'].$expert['text']);
    			if(!isset($experts_unique[$key])) 
    				$experts_unique[$key] = $expert;
    		}
    		return array_values($experts_unique);
    	}

    odmin, 29 Июля 2011

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

    +162

    1. 1
    notified.insert( (void*)dns, (void*)42 );

    Порадовал юмор разработчиков QT. Им было нужно какое-то магическое значение указателя для внутренних нужд. Они выбрали это.

    http://habrahabr.ru/blogs/qt_software/123603/#comment_4059719

    odmin, 07 Июля 2011

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

    +146

    1. 1
    2. 2
    count:while(1);
    goto count;

    odmin, 30 Июня 2011

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

    +140

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // connection reset by peer?
          if(tcpflags & TCP_FLAG_RST)
          {
             st->status = TCP_CLOSED;
             if( (st->status == TCP_ESTABLISHED) ||
                (st->status == TCP_FIN_WAIT) )
             {
                tcp_closed(id, 1);
             }
             return;
          }

    из одного маленького эмбеддед-проектика)

    odmin, 24 Мая 2011

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