1. Лучший говнокод

    В номинации:
    За время:
  2. Си / Говнокод #4866

    +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
    ZEB_CALLBACK ZEB_CACHE_GetPage(ZEB_PagesCache *pPagesCache, ZEB_PAGEIDX fpPageIndex, void **ppCachedPageAdress)
    {  
      ZEB_WORD i; 
      for(i = 0; i < pPagesCache->loadedCount; i++)
      {
        if(pPagesCache->pDescriptors[i].fpPosition == fpPageIndex)
        {
          pPagesCache->pDescriptors[i].hitPoints++;
          (*ppCachedPageAdress)=(pPagesCache->pCache)+(i<<(pPagesCache->pageRatio)); //выдаю адрес подгруженной страницы в кэше
          return ZEBCB_GOOD;
        }
      }
      // запрошенная страница все еще не найдена} 
      //если страницы нету - то проверяем - есть ли свободный слот, а если нет слotа, то проводим операцию по выпиливанию страницы с наименьшим ХП 
      if( pPagesCache->loadedCount < pPagesCache->capacity )
      {//если слот еще есть то загружаем в позицию края - это loadedCount и увеличиваем его на 1
        pPagesCache->pDescriptors[pPagesCache->loadedCount].fpPosition = fpPageIndex; //указываем реальный адрес в соусе
        pPagesCache->pDescriptors[pPagesCache->loadedCount].hitPoints = 1;  //ХП ставим в 1
        ZEB_CACHE_MechMountPage(pPagesCache,pPagesCache->loadedCount,fpPageIndex);//загружаем эту страницу в кэш (позиция соответствует индексу дескриптора) 
        (*ppCachedPageAdress)=(pPagesCache->pCache) + ((pPagesCache->loadedCount) << (pPagesCache->pageRatio)); //получаем адрес страницы  
        pPagesCache->loadedCount++; //увеличиваем количество загруженных страниц  
        return ZEBCB_GOOD;
      }else //TODO: елсе не нужен     // Почему не нужен? (2010 07 12)    //Не знаю (2010 07 28)
      {//если свободных слотов нет - то проводим поиск наименьшего хп и выпиливаем его, загружая на его место новый дескриптор и страницу
        //поиск наименбшего хп
        ZEB_WORD 
         register minHP,
         register minDIDX  //Descriptor InDeX
         ;    
        minHP = pPagesCache->pDescriptors[0].hitPoints;
        minDIDX = 0;
        for(i = 1; i < pPagesCache->capacity; i++)
        {
          if(pPagesCache->pDescriptors[i].hitPoints < minHP)
          {
            minHP = pPagesCache->pDescriptors[i].hitPoints;
            minDIDX = i;
          }
        }
        //страница в любос случае найдена - выпиливаем ее - сохраняя ее в сурс обратно
        ZEB_CACHE_MechUnmountPage(pPagesCache,minDIDX,pPagesCache->pDescriptors[minDIDX].fpPosition); 
        //и на ее место грузим новый дескриптор и саму страницу
        pPagesCache->pDescriptors[minDIDX].fpPosition = fpPageIndex; //указываем реальный адрес в соусе   //TODO: Нужно запихивать дескрипторы в отдельный массив и обращаться по указателю, потом это дело можно сортировать для ускорения поиска страниц. Режимы сортировок - максимум и минимум: 1 - для быстрого обращения к наиболее часто используемым страницам, 2 - для быстрого выпиливания менее используемых страниц. (2010 07 28)
        pPagesCache->pDescriptors[minDIDX].hitPoints = 1;  //ХП ставим в 1 
        //кэшируем требуемую страницу
        ZEB_CACHE_MechMountPage(pPagesCache,minDIDX,fpPageIndex);    
        (*ppCachedPageAdress)=(pPagesCache->pCache) + ((pPagesCache->loadedCount) << (pPagesCache->pageRatio)); //получаем адрес страницы  
        return ZEBCB_GOOD;
      }
    }

    Господа - я не уверен говнокод ли это, но вы как бесспорные эксперты в области обнаружения ГК дайте свое заключение. Метод получает страницу из кэша. Страницы фиксированного размера и кэшируются из файла. Буфер под кэш - определяется один раз при создании как единый динамически полученный массив. Код кодил ОП.

    CreatorOfBullshit, 08 Декабря 2010

    Комментарии (5)
  3. Си / Говнокод #3575

    +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
    int 
    grub_auth_strcmp (const char *user_input, const char *template) 
    { 
      int ok = 1; 
      const char *ptr1, *ptr2; 
      for (ptr1 = user_input, ptr2 = template; *ptr1; ptr1++) 
        if (*ptr1 == (ptr2 ? *ptr2 : ptr1[1]) && ok && ptr2 != NULL) 
          ptr2++; 
        else 
          ok = 0; 
     
      return !ok; 
    }

    Несвежий говнокод (давно пропатчено) и, возможно, кто-то скажет "баян", однако оставлю это здесь.
    Код из загрузчика grub 1.97, проверка пароля. Принимает за верный пароль любую подстроку пароля.

    cfdev, 27 Июня 2010

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

    +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
    int  seek_substring_KMP  (char s[],   char q[])
    	{ 
    	int  i, j, N, M; 
    	N = strlen(s); 
    	M = strlen(q); 
    	int *d =(int*)malloc(M*sizeof(int)); /* динамический массив длины М*/ 
    	/* Вычисление префикс-функции */ 
    	i=0; 
    	j=-1;
    	d[0]=-1;
    	while(i<M-1)
    		{
    		while((j>=0) && (q[j]!=q[i]))
    			j = d[j];
    		i++;
    		j++;
    		if(q[i]==q[j])
    			d[i]=d[j];
    		else
    			d[i]= j;
    		}
    	/* поиск */
    	for(i=0,j=0;(i<N)&&(j<M); i++,j++)
    		while((j>=0)&&(q[j]!=s[i]))
    			j=d[j];
    	free (d);  /* освобождение памяти массива d */ 
    	if (j==M)
    		return i-j;
    	else /* i==N */
    		return -1;
    	}

    Алгоритм Кнута — Морриса — Пратта. Жуже сложно реализвовать(

    guest, 07 Августа 2009

    Комментарии (18)
  5. Куча / Говнокод #1475

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Говнокод
    уже
    не торт...
    
    Код несодержательный,и всё больше какие-то диалоги.
    Это больше похоже на пьессу...

    Говнокод уже не торт

    guest, 05 Августа 2009

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

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (!isset($GLOBALS['ISC_CLASS_CART'])) {
      $GLOBALS['ISC_CLASS_CART'] = GetClass('ISC_CART');
    }
    
    $GLOBALS['ISC_CLASS_CART'] = GetClass('ISC_CART');

    Отрывок кода из Interspire Shopping Cart
    Пунктуация сохранена...

    guest, 29 Июля 2009

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

    +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
    char *bukva="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
    char *cifra="1234567890";
    
    //тут получаем строку
    
    while((ch = getc(fp)) != EOF) {
        putc(ch,stdout);
        if(ch == ' ') {probel++; continue;}
        for (j = 0; j < (strlen(cifra)); j++) {
            if(ch == cifra[j])
                countcifra++;
        }
    
        for (j = 0;j < (strlen(bukva)); j++) {
            if(ch == bukva[j])
                countbukva++;
        }
     }

    Из лабораторки однокурсника. Подсчет количества букв и цифр в строке

    guest, 23 Июля 2009

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

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void f(bool b)
    {
      if(b.ToString().Length() == 4)
        ; // типа true
      else if(b.ToString().Length() == 5)
        ; // типа false
    }

    Сравнение

    guest, 09 Июня 2009

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

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $count=count($arr);
    for($i=0;$i<$count;$i++){
    	....
    };
    };

    Нашел с своём старом коде. Когда-то я незнал про foreach.. :D

    guest, 28 Апреля 2009

    Комментарии (2)
  10. Куча / Говнокод #860

    +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
    <table width="100%" border="0" cellspacing="0" cellpadding="1" id="gmtbl2" class="gmtbl">
    	<tbody>
    		<tr>
    			<td colspan="3" width="100%">
    				<table width="100%" cellspacing="0" cellpadding="0">
    					<tbody>
    						<tr>
    							<td colspan="3" width="100%" height="20" id="gmtdttl" class="gmtdttl"><B><A href="http://www.gismeteo.RU/towns/27760.htm" id="tgmtdttl" class="gmtdttl" target="_blank">Саранск</A></B></td>
    						</tr>
    					</tbody>
    				</table>
    			</td>
    		</tr>
    		<tr>
    			<td width="40%" id="gmtdtext0" class="gmtdtext" align="left">Пн, ночь</td>
    			<td width="40%" id="tgmtdtext0" class="gmtdtext" align="center">0..-2 °C
    			<td width="20%" align="center"><IMG src="http://informer.gismeteo.ru/html/images/sm/1n.gif" width="26" height="26" alt="Малооблачно" title="Малооблачно"></td><tr><td width="40%" id="gmtdtext1" class="gmtdtext" align="left">   Пн, утро</td><td width="40%" id="tgmtdtext1" class="gmtdtext" align="center">+4..+6 °C<td width="20%" align="center"><IMG src="http://informer.gismeteo.ru/html/images/sm/2.gif" width="26" height="26" alt="Облачно" title="Облачно"></td><tr><td width="40%" id="gmtdtext2" class="gmtdtext" align="left">   Пн, день</td><td width="40%" id="tgmtdtext2" class="gmtdtext" align="center">+10..+12 °C<td width="20%" align="center"><IMG src="http://informer.gismeteo.ru/html/images/sm/3.gif" width="26" height="26" alt="Пасмурно" title="Пасмурно"></td><tr><td width="40%" id="gmtdtext3" class="gmtdtext" align="left">   Пн, вечер</td><td width="40%" id="tgmtdtext3" class="gmtdtext" align="center">+4..+6 °C<td width="20%" align="center"><IMG src="http://informer.gismeteo.ru/html/images/sm/3n.gif" width="26" height="26" alt="Пасмурно" title="Пасмурно"></td>
    			<tr>
    				<td colspan="3" align="center">
    					<table border="0" cellspacing="0" cellpadding="0">
    						<tbody>
    							<tr>
    								<td align="right" height="20"><IMG src="http://informer.gismeteo.ru/html/images/logo.gif" width="13" height="20" alt="/"></td>
    								<td align="left"><A href="http://www.gismeteo.RU" id="lgmtdtext" class="gmtdtext" target="_blank">GISMETEO.RU</A></td>
    							</tr>
    						</tbody>
    					</table>
    				</td>
    			</tr>
    			<tr>
    			<td heigth="5" colspan="3"></td>
    		</tr>
    	</tbody>
    </table>

    html информера, который возвращает js, генерируемый на сайте gismeteo.ru.

    guest, 13 Апреля 2009

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

    +140

    1. 1
    Нельзя позволять школьникам употреблять дурь вроде PHP

    http://www.bbspot.com/News/2000/6/php_suspend.html

    guest, 12 Апреля 2009

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