1. Perl / Говнокод #5753

    −124

    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
    sub check_dir
    {
    	my ($param, $mode) = @_;
    	$mode ||= 'sr';
    
    	unless ( $mode eq 'sc')
    	{
    		my $full_path = $config_params{$param};
    		$full_path =~ /^(.+)\/(.+)$/;
    		my $put = $1;
    
    		while(1)
    		{
    			if (-l $full_path)
    			{
    				$info->debug("Load param $param = $full_path it is symlink. Readlink...");
    				$full_path = readlink $full_path;
    			}
    			elsif (-d $full_path or -d "$put/$full_path")
    			{
    				$info->debug("Load param $param = $full_path. It is directory and it is exists");
    				last;
    			}
    			else
    			{
    				$warning->debug("Not valid config. Error parsing param: $param");
    				exit 1;
    			}
    		}
    	}
    	else
    	{
    		my $full_path = $config_params_sc{$param};
    		$full_path =~ /^(.+)\/(.+)$/;
    		my $put = $1;
    
    		while(1)
    		{
    			if (-l $full_path)
    			{
    				$info_sc->debug("Load param $param = $full_path it is symlink. Readlink...");
    				$full_path = readlink $full_path;
    			}
    			elsif (-d $full_path or -d "$put/$full_path")
    			{
    				$info_sc->debug("Load param $param = $full_path. It is directory and it is exists");
    				last;
    			}
    			else
    			{
    				$warning_sc->debug("Not valid config. Error parsing param: $param");
    				exit 1;
    			}
    		}
    	}
    }

    По крайней мере, этот код можно сократить вдвое... И подобное по всей утилите...

    SadKo, 21 Февраля 2011

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

    +167

    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
    const StringId sidPathName = [=]() -> const char* const
    {
    	switch (path)
    	{
    		case PATH_TOWN_HERO:
    			return "game/careers/town_hero";
    		case PATH_MAD_SCIENTIST:
    			return "game/careers/mad_scientist";
    		case PATH_SPECIAL_AGENT:
    			return "game/careers/special_agent";
    		case PATH_PSYCHIC_PAINTER:
    			return "game/careers/psychic_painter";
    		default:
    			RZT_ASSERT(false);
    			return "";
    	}
    }();

    Не удержался: давно мечтал о возможности ставить const на такие переменные, не отказываясь при этом от свитчей!

    Kirinyale, 21 Февраля 2011

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

    +117

    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
    public static class EventExtensions
        {
            public static void Fire(this EventHandler eventHandler, object sender)
            {
                eventHandler.Fire(sender, EventArgs.Empty);
            }
    
            public static void Fire(this EventHandler eventHandler, object sender, EventArgs args)
            {
                eventHandler.FireDelegate(sender, args);
            }
    
            public static void Fire<TEA>(this EventHandler<TEA> eventHandler, object sender, TEA args)
                where TEA : EventArgs
            {
                eventHandler .FireDelegate(sender, args);
            }
    
            public static void FireDelegate(this Delegate eventHandler, params object[] parameters)
            {
                if (eventHandler != null)
                {
                    Delegate[] delegates = eventHandler.GetInvocationList();
                    foreach (var del in delegates)
                    {
                        try
                        {
                            del.Method.Invoke(del.Target, parameters);
                        }
                        catch (Exception e)
                        {
                            // use logger here
                            throw;
                        }
                    }
                }
            }
        }

    Надоело писать инвокаторы для ивентов? Как тебе это?

    walash, 21 Февраля 2011

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

    −179

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    def ispalindrome(string):
    	decide=1
    	i=0
    	while i<=int(len(string)/2) and decide==1:
    		if string[i]!=string[-(i+1)]:
    			decide=0
    		i+=1
    	return decide

    Функция определяет, является ли число паниндромом =)

    SSPkrolik, 21 Февраля 2011

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

    +157

    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
    <?php 
    echo '
    <form method="POST" action="">
    <input type="submit" name="sub" value="Отправить">
    </form>
    ';
    $sub=$_POST['sub'];
    if ($sub==true){
    function rand_foto($patch = "images") 
    { 
    if(!$dir = opendir($patch)) return "images"; 
    while(($t = readdir($dir)) !== false) 
    { 
    $ext = substr(strrchr($t,'.'), 1); 
    if(is_file($t) && ($ext == "gif") || ($ext == "jpg") || ($ext == "png")) 
    { 
    $filename[] = $patch."/".$t; 
    } 
    } 
    closedir($dir); 
    $index = rand(0, count($filename) - 1); 
    $foto = "<img src=".$filename[$index].">"; 
    return $foto; 
    } 
    echo rand_foto(); }

    qbasic, 21 Февраля 2011

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

    +178

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if($active_days > 4)
    {
    	$active_days = 1;
    }
    else
    {
    	if($active_days > 5)
    	{
    		$active_days = 1;
    	}
    }

    В цикле

    vizio, 21 Февраля 2011

    Комментарии (19)
  7. ActionScript / Говнокод #5747

    −241

    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
    while (i < 6) 
    {
        scene.scene["pirat" + i].shot = false;
        scene.scene["pirat" + i].num = i;
        scene.scene["pirat" + i].gotoAndStop(1);
        scene.scene["pirat" + i]._visible = false;
        scene.scene["pirat" + i].swapDepths(10 + i);
        scene.scene["pirat" + i].thisDepth = scene.scene["pirat" + i].getDepth();
        scene.scene["pirat" + i].pirat.piratFall.gotoAndStop(1);
        scene.scene["pirat" + i].pirat.piratFall._visible = false;
        scene.scene["splash" + i].splash1.gotoAndStop(1);
        scene.scene["splash" + i].splash2.gotoAndStop(1);
        scene.scene["splash" + i]._visible = false;
        ++i;
    }

    Данный кусок был найден в недрах флеш-рекламы.

    Govnocoder#0xFF, 21 Февраля 2011

    Комментарии (5)
  8. Java / Говнокод #5746

    +80

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    List<Map<String, Object>> list;
    ...........
    // берем первый элемент списка и сохраняем его
    for(Map<String, Object> properties: list ) {
                map = properties;
                break;
     }

    paralainer, 21 Февраля 2011

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

    +163

    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
    /**
     * Callback for gravity gradient menu option. Turn Gravity Gradient profile display on/off.
     */
    void Exf2dMW::toggleGravGradientProfileCb()
    {
      // GV show Gravity Gradient profile here.
      if (_toggleGravGradientProfileAct->isChecked())
        gvWidget()->showProfiles(1);
      else
        gvWidget()->hideProfiles(1);
    }
    
    /**
     * Callback for gravity menu option. Turn Gravity profile display on/off.
     */
    void Exf2dMW::toggleGravProfileCb()
    {
      // GV show Gravity profile here.
      if (_toggleGravProfileAct->isChecked())
        gvWidget()->showProfiles(2);
      else
        gvWidget()->hideProfiles(2);
    }
    
    /**
     * Callback for magnetic menu option. Turn Magnetic profile display on/off.
     */
    void Exf2dMW::toggleMagProfileCb()
    {
      // GV show magnetic profile here.
      if (_toggleMagProfileAct->isChecked())
        gvWidget()->showProfiles(3);
      else
        gvWidget()->hideProfiles(3);
    }

    boolean logic fail.

    kitaec, 21 Февраля 2011

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    foreach($code_array as $code)
    {
    	$code*=1;               //это не тупизм, это самый легкий способ получить из строки число без возможных пробелов
    	if($code==$_POST["code"])
    	{
    		$flag=true;
    		break;
    	}
    }

    intval отменили похоже

    schursin, 21 Февраля 2011

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