1. PHP / Говнокод #2388

    +151.7

    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
    /**
    	 * bool _validate_mail(string mail)
    	 * Validate an email address
    	 * @access private
    	 * @param string mail The email address string
    	 * @return bool
    	 */
    	function _validate_mail($mail)
    	{
    		if (ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',$mail)){
    			return true;
    		}
    		return $this->_debug(4, $mail);
    	}

    no comments...

    InTech, 09 Января 2010

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

    +922.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    __declspec(noreturn) int FastAdd(const int a, const int b)
    {
      __asm mov eax, a;
      __asm mov ebx, b;
      __asm add eax, ebx;
    };

    Встречаеться множество подобных функций в одном С++ проекте, который в данный момент разгребаю. Хочеться что-нибудь сказать автору. Например: "на XYZ"?

    Говногость, 08 Января 2010

    Комментарии (147)
  3. ActionScript / Говнокод #2386

    −190.8

    1. 1
    2. 2
    3. 3
    4. 4
    if (flash.net.getClassByAlias("foo.bar.VO") == null){
              flash.net.registerClassAlias("foo.bar.VO", foo.bar.VO);}
          } catch (e:Error) {
              flash.net.registerClassAlias("foo.bar.VO", foo.bar.VO); }

    Так во флексовом фреймворке регистрируются алиасы для RPC классов... Нелогичность ситуации не сразу очевидна, поэтому опишу:
    При загрузке модулей может возникнуть ситуация, когда алиас уже зарегистрирован для другого класса, поэтому нужно проверить, а не был ли алиас зарегистрирован раньше. Иначе, его нужно зарегистрировать. Исторически, этой проверки сначала не было, данный код - это фикс вышеописаной проблемы. Пытаясь разобраться, что же все-таки случилось - скорее всего "писатель" не подозревал, что getClassByAlias() не может вернуть null - а выяснил он это, когда код вывалился с ошибкой, вот он не долго думая завернул это все в try-catch...
    Из мелких деталей: в рамках AS3 сравнение сложных типов с null - бессмысленная, и более того вредная операция, т.как выражение в условии всегда кастуется к Boolean, и компилятор не умеет делать оптимизации для таких случаев.

    wvxvw, 08 Января 2010

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

    +56.3

    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
    /*
    	Данный кусок кода был сперт uncle Lem'ом из небесной канцелярии 27.02.2008
    */
    
    #include<time.h>
    #include<stdlib.h>
    #include<iostream.h>
    #include"russian.h"
    
    void world();
    
    void main() {
    	srand(time(0));
    	world();
    }
    
    void world() {								/*void (пустота) указывает на безвыходность ситуации*/
    	const bool good = false,				/*Объективная реальность, данные получены на основе личного опыта*/
    		evil = !good;						/*ну, это логично... зло - это НЕ добро*/
    	/*пока рай... добро, зло и инфернальность - по нулям, армагеддон пока не светит*/
    	unsigned long int evil_level = 0;		/*Зло - в минуса не уйдет. Факт*/
    	short int good_level = 0;				/*добро - сильно не вырастет. Не дадут*/
    	int infernal = 0;						/*Инфернальность. ПОКА ноль. Позаимствовано у Ефремова*/
    	int years = 0;							/*начинается жизнь на Земле*/
    	int people_resources = 0;				/*человеческие ресурсы (для Армагеддона)*/
    	int evil_resources = 0;					/*ресурсы сил зла (для Армагеддона)*/
    	while(evil) {							/*пока существует зло...*/
    		years++;							/*и годы идут...*/
    		if (evil && !good) {				/*если в текущем году было зло и не было добра*/
    			infernal += evil_level++;		/*инфернальность растет на уровень зла, которое, в свою очередь, становится сильнее*/
    			good_level--;					/*а добро слабеет под натиском зла*/
    		}
    		else if (evil && good || !evil && !good) {	/*если в текущем году было добро и зло или ни того, ни другого*/
    			infernal = infernal;			/*инфернальность остается на том же уровне (да, тупо, зато наглядно)*/
    		}
    		else if (!evil && good) {			/*если в текущем году было добро и не было зла*/
    			infernal -= good_level++;		/*инфернальность уменьшается на уровень добра, которое, в свою очередь, становится сильнее*/
    			evil_level--;					/*а зло слабеет под натиском добра*/
    		}
    		if (infernal >= 100) {				/*когда уровень инфернальности достигнет критической точки, начинается Армагеддон*/
    			people_resources = 1+rand()%(1000000);	/*это у нас человеческие ресурсы*/
    			evil_resources = 1+rand()%(1000000);	/*а это - адские*/
    			/*тут у нас типа битва людишек против нечисти. ака Армагеддон*/
    			if (people_resources<evil_resources) {	/*если людей меньше, то хана. Ад победил. Пипец всему живому. Начало Апокалипсиса*/
    				cout<<"Все, армагеддец настал, комп тебе больше не понадобится. Беги, покупай белые тапочки\n";
    				return;
    			}
    			else if (people_resources>evil_resources) {	/*и наоборот, если люди победили - начало райской жизни. Манна небесная, пара белых крыльев и все, что к ним прилагается*/
    				cout<<"Че сидишь, готовься получать белые крылья и порцию манны небесной\n";
    				return;
    			}
    			else continue;					/*а если поровну - то ничья, живем дальше*/
    		}
    	}
    }

    Давным-давно, когда я только начинал изучать программирование, ради лулзов был рожден вот такой говнокод говномира. Позже, с появлением классов в моем мировосприятии, был рожден расширенный вариант этого мира с классами, но, к сожалению, в ограничение на сотню строк он никак не хочет влезать :(
    В общем, не судите строго, одна из первых программ вообще, и выложено без изменений)

    uncle Lem, 07 Января 2010

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void render_tee(/*<еще аргументы>*/, vec2 dir, vec2 pos)
    {
    	vec2 direction = dir;
    	vec2 position = pos;
    
                      //еще код
    }

    вот что я нашел в сорцах игрушки TeeWorlds

    danilissimus, 07 Января 2010

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

    +92.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    name[0].InnerText = Regex.Replace(name[0].InnerText, @"<[^>]+>", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, "a*[a-z]*A*[A-Z]*", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, ",", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, "\\.", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, ";", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, "&", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, "\\?", string.Empty); 
    name[0].InnerText = Regex.Replace(name[0].InnerText, "\n", string.Empty);
    name[0].InnerText = Regex.Replace(name[0].InnerText, " ", string.Empty);

    такие дела. кстати, как улучшить? :)) Нужно, чтобы обрезалось все, кроме чисел (положительных и отрицательных) Я какбе начинающий

    Yurik, 07 Января 2010

    Комментарии (21)
  7. PHP / Говнокод #2382

    +144.7

    1. 1
    $password = $password; // Возможно, в дальнейшем надо будет изменить строку ...

    Нашел у себя в описании старого класса (user class) =D

    SOKOJI, 07 Января 2010

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

    +160.8

    1. 1
    2. 2
    3. 3
    //...
    if(preg_match("/[0-9]{1,2,3,4,5,6}/",$_GET['id'],$reg))
    //...

    регулярное 'выражение'

    xXx_totalwar, 07 Января 2010

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

    +172.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $Sn = strtolower ($n);
    if (preg_match ("'(.*?)\.png$'si", $Sn)) $type="png";
    if (preg_match ("'(.*?)\.gif$'si", $Sn))	 $type="gif";
    if (preg_match ("'(.*?)\.jpg$'si", $Sn)) $type="jpg";
    if (preg_match ("'(.*?)\.jpeg$'si", $Sn)) $type="jpeg";

    Определение типа изображения

    1ac1324, 06 Января 2010

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

    +55.3

    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
    #include<iostream>
    #include<math.h>
    //#include<csdio>
    using namespace std;
    
    void main(){
         //char*s1=new char[0]
              int i=0;
         do
              char*s1=new char[0]; 
              cout<<'write s1: ';
              cin>>s1[i];
              i=i+1;
         while (*s1[i]=="\0");  
         for(int j=1, j==i, j++)  
              cout<<s1[j];
              cout<<endl;
              delete []s1;
    }

    Вот такую поделку мне прислали на проверку с жалобой "не работает".

    uncle Lem, 06 Января 2010

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