Няшная / Говнокод #1864 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
BOOL NewStartUsed()
{
  if ((BOOL) -1 == bNewStartUsed) {
    bNewStartUsed = FALSE;
    bNewStartUsed = TRUE;
    int iVal = bNewStartUsed;

    if (GetConfigInt(&iVal, "NewStart", "Common", ConfigFile)) {
      bNewStartUsed = (0 != iVal);
    }
  }
  return bNewStartUsed;
}

просто но комментс...

kubrinsky kubrinsky, (Updated )

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

Няшная / Говнокод #1761 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
//рекурсивная процедура создающая структуру меню
byte form_hash(phasharray vrarr, WORD* ni, byte* ne)
{
	byte ct=MainMenu[(*ni)].numSubMenus, ict;
	phasharray	vrarrcr;

	if((*ni)++==0) pmain=vrarr; // если первый проход - запоминаем ссылку на главное меню
	for (ict=0; ict<ct; ict++)
	{
		vrarr->hash[ict].pitem=(tmenuitem*)RTKGetBuffer(&menuPool);
		//инициализация строки элемента
		scopy0(((*((*vrarr).hash[ict].pitem)).menustr), MainMenu[*ni].nameMenu);
		if (MainMenu[*ni].numSubMenus!=0)
		{
			(*((*vrarr).hash[ict].pitem)).pnextlev=RTKGetBuffer(&hashMenuPool);// создание хэша
			vrarrcr=(phasharray)(*((*vrarr).hash[ict].pitem)).pnextlev;//вводим новую переменную для облегчения доступа к созданной структуре
			(*vrarr).hash[ict].quantity=(byte)MainMenu[*ni].numSubMenus;//запоминаем количество элементов в меню уровнем выше
			(*vrarrcr).pPrevLev=vrarr; // ссылка на предыдущий элемент
			(*((*vrarr).hash[ict].pitem)).fpmenu=true;
			if (MainMenu[*ni].numSubMenus==MENU_FUNC) // вызов процедуры динамического формирования меню
			{
				menupr_params.vrarr=vrarrcr;
				menupr_params.phashprev=vrarr;
				menupr_params.ni=ni;
				menupr_params.ne=ne;
				menupr_params.ict=ict;
				(MainMenu[*ni].pproc)(); 
				(*ni)++;
			} else 
			{
				if(MainMenu[*ni].pproc) // если исключение (перед входом в подменю необходимо выполнить функцию)
				{
					changeArr[(*ne)++]=vrarrcr;
					(*((*vrarr).hash[ict].pitem)).pexec=MainMenu[*ni].pproc;
					(*((*vrarr).hash[ict].pitem)).fpmenu=false;
				};
				// исправляем значение элементов
				(*(vrarr)).hash[ict].quantity=form_hash(vrarrcr, ni, ne);
			};
			// проверка сформированного меню
			switch ((*(vrarr)).hash[ict].quantity)
			{
			case MENU_NO: // нет подменю
				// освободить эл-т
				RTKFreeBuffer(&hashMenuPool, vrarrcr); 
				(*((*(vrarr)).hash[ict].pitem)).pexec=*menu_refresh;
				(*((*(vrarr)).hash[ict].pitem)).fpmenu=false;
				break;
			case MENU_NOEL: // не формировать эл-т
				// освободить эл-т
				RTKFreeBuffer(&hashMenuPool, vrarrcr); 
				RTKFreeBuffer(&menuPool, vrarr->hash[ict].pitem);
				ict--;
				ct--;
				break;
			case MENU_FUNC: // нет подменю, нормальная функция
				RTKFreeBuffer(&hashMenuPool, vrarrcr); 
				(*(vrarr)).hash[ict].quantity=0; 
				//(*((*vrarr).hash[ict].pitem)).fpmenu=false;
				break;
			}
		} else // заполнение элемента
		{
			(*((*vrarr).hash[ict].pitem)).pexec=MainMenu[*ni].pproc;
			(*((*vrarr).hash[ict].pitem)).fpmenu=false;
			(*ni)++;
		};
	};
	return ct;
};

Эх, бурная была молодость :-)

Barmaglot Barmaglot, (Updated )

Комментарии (26, +26)

Няшная / Говнокод #1696 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
HWsDigrfLvdsctrlRxEnable(HWvDigrflvdsctrlrxenableOn) ; 
    HWsDigrfLvdsctrlIcmEnable(HWvDigrflvdsctrlicmenableOn) ;
    HWsDigrfLvdsctrlRxSpeed(HWvDigrflvdsctrlrxspeedF2) ; 

    HWsDigrfLvdsctrlTxEnable(HWvDigrflvdsctrltxenableOn) ;
    HWsDigrfLvdsctrlTxSpeed(HWvDigrflvdsctrltxspeedF) ;

Кусок конфигурационного кода (реальный проект). Фантазия авторов на имена функций поражает...

govnocoder govnocoder, (Updated )

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

Няшная / Говнокод #1665 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
switch (c)
		{
		case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
		case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
		case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
		case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
		case 'Y': case 'Z':
		case '_':
		case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
		case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
		case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
		case 's': case 't': case 'u': case 'v': case 'w': case 'x':
		case 'y': case 'z':
		case '0': case '1': case '2': case '3': case '4':
		case '5': case '6': case '7': case '8': case '9':
		case 127: case 128: case 129: case 130: case 131: case 132:
		case 133: case 134: case 135: case 136: case 137: case 138:
		case 139: case 140: case 141: case 142: case 143: case 144:
		case 145: case 146: case 147: case 148: case 149: case 150:
		case 151: case 152: case 153: case 154: case 155: case 156:
		case 157: case 158: case 159: case 160: case 161: case 162:
		case 163: case 164: case 165: case 166: case 167: case 168:
		case 169: case 170: case 171: case 172: case 173: case 174:
		case 175: case 176: case 177: case 178: case 179: case 180:
		case 181: case 182: case 183: case 184: case 185: case 186:
		case 187: case 188: case 189: case 190: case 191: case 192:
		case 193: case 194: case 195: case 196: case 197: case 198:
		case 199: case 200: case 201: case 202: case 203: case 204:
		case 205: case 206: case 207: case 208: case 209: case 210:
		case 211: case 212: case 213: case 214: case 215: case 216:
		case 217: case 218: case 219: case 220: case 221: case 222:
		case 223: case 224: case 225: case 226: case 227: case 228:
		case 229: case 230: case 231: case 232: case 233: case 234:
		case 235: case 236: case 237: case 238: case 239: case 240:
		case 241: case 242: case 243: case 244: case 245: case 246:
		case 247: case 248: case 249: case 250: case 251: case 252:
		case 253: case 254: case 255: 
		  continue;

		default:
		  phase1_ungetc (c);
		  break;
		}

нашел в недрах gettext

aleo aleo, (Updated )

Комментарии (28, +28)

Няшная / Говнокод #1659 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
#define CHAINFREE_STATIC_DAT(a, field) {\
    ptr=(typeof(ptr))&(a);\
    if(((typeof(&(a)))(ptr))->field)\
        free(((typeof(&(a)))(ptr))->field);\
    ptr=(typeof(ptr))(((typeof(&a))(ptr))->next);\
    if(ptr) {\
        while(((typeof(&(a)))(ptr))->next) {\
            if(((typeof(&(a)))(ptr))->field)\
                free(((typeof(&(a)))(ptr))->field);\
            ptr=(typeof(ptr))(((typeof(&a))(ptr))->next);\
            free(((typeof(&(a)))(ptr))->prev);\
        }\
        if(((typeof(&(a)))(ptr))->field)\
            free(((typeof(&(a)))(ptr))->field);\
        free(ptr);\
    }\
    memset(&(a), 0, sizeof(a));\
}

Кол-во скобок радует :)

xaionaro xaionaro, (Updated )

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

Няшная / Говнокод #1638 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
...............
if (!strcmp(tCom2ConfigWr.aucModeNo,"m1"))
                         {
                             fprintf(cgiOut, " <option value=\"m1\" selected>comport to comport</option><option value=\"m2\">network to comport</option><option value=\"m3\">comport to group of comports</option><option value=\"m4\">network to group of comports</option><option value=\"m5\">modem mode</option><option value=\"m6\">none</option><option value=\"m7\">console</option>");
                         }
                         else if (!strcmp(tCom2ConfigWr.aucModeNo,"m2"))
                         {
                             fprintf(cgiOut, " <option value=\"m1\" >comport to comport</option><option value=\"m2\" selected>network to comport</option><option value=\"m3\">comport to group of comports</option><option value=\"m4\">network to group of comports</option><option value=\"m5\">modem mode</option><option value=\"m6\">none</option><option value=\"m7\">console</option>");
                         }
                         else if (!strcmp(tCom2ConfigWr.aucModeNo,"m3"))
                         {
                             fprintf(cgiOut, " <option value=\"m1\" >comport to comport</option><option value=\"m2\" >network to comport</option><option value=\"m3\" selected>comport to group of comports</option><option value=\"m4\">network to group of comports</option><option value=\"m5\">modem mode</option><option value=\"m6\">none</option><option value=\"m7\">console</option>");
                         }
.................

и так до m7, а также в двух копиях! Взято с сорсов вебадминки одного девайса. Досталось от индусов.

memorizer memorizer, (Updated )

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

Няшная / Говнокод #1596 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <math.h>
#include <stdlib.h>

struct thread_arg
{
	int a;
	int b;
	int c;
	double d;
};
	

void *ret_x1(void *arg)
{
		
	struct thread_arg targ = *(struct thread_arg *)arg;
	double x1;
	x1 = (-targ.b + sqrt(targ.d)) / (2*targ.a);

	fprintf(stderr, "x1 = %f\n", x1);

	return NULL;
}

void *ret_x2(void *arg)
{
	struct thread_arg targ = *(struct thread_arg*)arg;
	double x2;
	x2 = (-targ.b - sqrt(targ.d)) / (2*targ.a);

	

	fprintf(stderr, "x2 = %f\n", x2);
	
	return NULL;
}

int main(void)
{
	pthread_t thread1, thread2;
	struct thread_arg args;

	fprintf(stderr, "Enter a, b and c\n");
	scanf("%d %d %d", &args.a, &args.b, &args.c);
	
	args.d = args.b*args.b - 4*args.a*args.c;

	if(args.d < 0)
	{
		fprintf(stderr,"There is no roots\n");
		return 0;
	}
	else
	{
		if(pthread_create(&thread1, NULL, &ret_x1, &args) != 0)
		{
			fprintf(stderr, "Error1\n");
			return 1;
		}
		if(pthread_create(&thread2, NULL, &ret_x2, &args) != 0)
		{
			fprintf(stderr, "Error2\n");
			return 1;
		}
		pthread_join(thread1, NULL);
		pthread_join(thread2, NULL);

	}
	return 0;
		
}

Многопоточное решение квадратного уравнения...

zitzy zitzy, (Updated )

Комментарии (11, +11)