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

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
char *getUI_ID_AsString(MENU_ID menuId)
{
    char *IdStr;
    	
	if((menuId == VOLUME_ID) || (menuId == POPUPWIN_ID) || (menuId == YESNOWIN_ID) || (menuId == MAINMENU_ID) || (menuId == 
		MODEMENU_ID) || (menuId == USBMODE_ID) || (menuId == SETTINGSMENU_ID) || (menuId == MENUPLAYMODE_ID) || (menuId == MENUEQ_ID) 
		|| (menuId == MENUSETTING_ID) || (menuId == MENULOCK_ID) || (menuId == MENUPLAYSPEED_ID) || (menuId == MENUCONTRAST_ID) || (menuId == 
		MENUBACKLIGHT_ID) || (menuId == MENULANGUAGE_ID) || (menuId == MENUSHUTDOWN_ID) || (menuId == MENUINFO_ID) || (menuId == 
		MENUBEEP_ID) || (menuId == MENUFACTORYSET_ID) || (MENUUSEREQ_ID) || (menuId == SET_PREFERENCES_ID) || (menuId == 
		MENUCONFIRM_RESET_ID) || (menuId == MENUCONFIRM_FORMAT_ID) || (menuId == MAINRECMENU_ID) || (menuId == RECSETMODE_ID) || 
		(menuId == RECSETINPUT_ID) || (menuId == RECSETVAD_ID) || (menuId == RECSETAUTOSYNC_ID) || (menuId == NAVIGATION_ID) ||
		(menuId == PROMPT_VOLUME_ID) || (menuId == MENUGPSAPPL_MAIN_ID) || (menuId == POWERON_CONNECTING_ID) || (menuId == 
		HOMESCREEN_ID) || (menuId == RC_DOWNLOADING_ID) || (menuId == SCREEN_BRIGHTNESS_ID) || (menuId == ABOUT_ID) || (menuId == 
		INSTMENU_ID) || (menuId == INST_ABOUT_ID) || (menuId == DISPL_ORIENT_ID) || (menuId == LINEOUT_ID) || (menuId == 
		PRIVACY_MUTE_ID) || (menuId == TEST_INSTALL_ID) || (menuId == FACTORY_RESET_ID) || (menuId == CALL_DTMF_ID) ||	(menuId == 
		NAVI_FILEMENU_ID) || (menuId == NAVI_CONFIRM_DEL_ID) || (menuId == NAVI_SELECTFOLDER_ID) || (menuId == LANG_SELECT_ID) ||
		(menuId == DISPLAY_JPG_ID) || (menuId == DISPLAY_TEXT_ID) || (menuId == SET_DISPLAY_ID))
	{
	    IdStr = (char *) malloc(4);
    	strcpy(IdStr, " MENU");
	}
	else if( <тут примерно еще столько же условий> )
		{
		       IdStr = (char *) malloc(5);
			   strcpy(IdStr, " PHONE");
		}
	else if( <тут примерно еще столько же условий> )
		{
		    strcpy(IdStr, " PBOOK");
		}
	else if( <тут примерно еще столько же условий> )
		{
		    IdStr = (char *) malloc(5);
		    strcpy(IdStr, " MUSIC");
		}
	else if( <тут примерно еще столько же условий> )
		{
		    IdStr = (char *) malloc(3);
		    strcpy(IdStr, " MSG");
		}
		
		return IdStr;
}

Шедевр индусского говнокодирования. А потом с нас спрашивают, почему это у нас система нестабильно работает.
switch, по ходу, они еще в школе не прошли, да и с математикой у них плоховато. А где-то память вообще выделять не надо - зачем?

Scrambler Scrambler, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
if(no!=s.FrameCounter) 
        s.FramesGarbage++;  //выкидываем кадр
        else { s.FramesOK++; s.NakCount++; }
        curbufdata=packet-data;
        if(no==s.FrameCounter) 
        WriteAdminLog("Не готов принять отриц. квитанцию (не в ожидании подтверждения) ",no,0,TRUE);
        else if(no!=s.FrameCounter) {  
        WriteAdminLog("Получена отриц. квитанция на последний переданный кадр! Часть данных могла потеряться. Корректируется счётчик на:",no,PARAM_LONG,FALSE);
        s.FrameCounter=no;
        }

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

vyalcevanet vyalcevanet, (Updated )

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

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

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
...

// TODO: remove this godless "switch()"!
                switch(tuntype) { // TODO: Important: do as in documentation instead of reverse-ingeniering!
#define PACKET_TRY {\
                if(packet->ip_v == 4) {\
                        hl=packet->ip_hl<<2;\
                        if(hl>=sizeof(*packet))\
                                break;\
                        /* TODO: Check in RFC something about of ICMP send-back in this case */\
                        fprintf(stderr, "Got too short IP-header (%i)...\n",hl);\
                }\
                if((packet->ip_v&IPV6_VERSION_MASK) == IPV6_VERSION) {\
                        break;\
                }\
}
#define NEXT(a) tuntype=a;\
                if(tuntry>=2)\
                        goto tun_process_switch_end;\
                tuntry++;
#define CASE(a) NEXT(a);\
        case a
tun_process_switch:
//              switch(tuntype) {
                        case TUNTYPE_NORM:              // NetBSD-like?
                                packet=(typeof(packet))ptr;
                                PACKET_TRY;
                        CASE(TUNTYPE_EXT):              // FreeBSD-like?
                                packet=(typeof(packet))((char *)ptr + 4);
                                if(s>4)
                                        if(*ptr==0x02)
                                                PACKET_TRY;
                        CASE(TUNTYPE_ETH):              // Ethernet? TODO: Implement VLAN-tagging
                                packet=(typeof(packet))((char *)ptr + sizeof(*eth));
                                eth=(typeof(eth))ptr;
                                if(!teth) {
                                        teth=alloca(sizeof(*teth));
                                        memcpy(&teth->ether_shost, &eth->ether_dhost, sizeof(teth->ether_shost));
                                        memcpy(&teth->ether_dhost, &eth->ether_shost, sizeof(teth->ether_dhost));
                                        teth->ether_type=ETHERTYPE_IP;
                                }
                                if(s>sizeof(*eth))
//                                      if((*(char *)&eth->ether_type==0x08/* not IPv4? */)||(*(char *)&eth->ether_type==0x86/* not IPv6? */))  // TODO: Implement compatibility with all protocols over ethernet
                                                PACKET_TRY;
                                NEXT(TUNTYPE_NORM);
                                goto tun_process_switch;
                        
                        default:                        
                                tuntype=TUNTYPE_NORM;
                                goto tun_process_switch;
//              }
tun_process_switch_end:
#undef CASE
#undef NEXT
#undef PACKET_TRY
                                if(tuntry<~0)
                                        tuntry=0;
                                tuntype=oldtuntype;
                                fprintf(stderr, "Got unknown packet. Flushing...\n");
                                FLUSH;  // Flush all. We don't know the length of packet with unknown type.. So, we have to flush the buffer, to probably get new packets from the start.
                                goto tun_process_while;
                }

...

"Ляпотааааа"... Очень "структурный" switch...

xaionaro xaionaro, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
if (errno==EINTR) while (errno==EINTR)
     {
            fseek(fr,loffset,SEEK_SET);
            fgets(line_buffer,len,fr);
}

sacc - система биллинга для squid

Одной проверки на ошибку - видимо, недостаточно

fiss fiss, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
switch( 1 ) 
{
  default :
    TO_STR( 2, "10" );
}

Интересно, откуда и зачем такая конструкция. Может, кто-то что-то подобное встречал?

nil nil, (Updated )

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

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

0

  1. 1
  2. 2
return DSQR(a.r) + DSQR(a.i);
return fabs(a.r) + fabs(a.i);

Пример говроретурна одной из моих функций в дипломном проекте на Си. Я собрал несколько вариантов программы, комментируя в различных местах различные return такого вида, как сейчас представлено выше.

DSQR() -- это макрос возведения в квадрат из numericalrecepies. Там вся программа на основе "рецептного" кода.

interested interested, (Updated )

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

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

0

  1. 1
printf(" %f %f %f %f %f %f %f %f\n",Xk[0],Xk[1],Xk[2],Xk[3],Xk[4],Xk[5],Xk[6], Xk[7]);

Рад бы был, если б это написали китайцы. К сожалению, дело рук наших соотечественников.

mkaz mkaz, (Updated )

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

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

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
char *uart_readln_timeout(UART_HANDLE h, char *buf, uint16_t len, clock_tick_t to)
{
    clock_tick_t finish_time;
 
    char *datap = buf;
    char *datae = buf + len - 1;

    if( len == 0 ) return buf;
    if( len == 1 ) {
        buf[0] = 0;
        return buf;
    }

    finish_time = clock_get_millis() + to;

    // FIXME!!!
    while( datap < datae && ( to == 0 || clock_get_millis() < finish_time ) ) {
        if( uart_read_char(h, datap) ) {
            if( *datap++ == '\n' ) break;
        }
    }
    *datap = 0;
	return buf;
}

читает строку из UART. есть подозрение, что это говнокод.

dmzlj.livejournal.com dmzlj.livejournal.com, (Updated )

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

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

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
/**
 * Копирует первое большое число во второе.
 *
 * @param a большое число приемник
 * @param b большое число источник
 * @param n длинна больших чисел в словах
 *
 * @return FALSE - четное, TRUE - нечетное
 */
void int_copy(uword_t *a, const uword_t *b, const int n)
{
    memcpy(a, b, sizeof(a[0]) * n);
}

Вот такую милую функцию я нашел в проекте над которым работаю.

pvkr2 pvkr2, (Updated )

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

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

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
/*                                     ,*/
            #include                              <time.h>
             #include/*                     _  ,o*/  <stdlib.h>
             #define  c(C)/*     -      . */return      ( C); /*    2004*/
              #include   <stdio.h>/*.   Moekan           "'   `\b-'     */
                typedef/*  */char   p;p* u                     ,w       [9
                  ][128] ,*v;typedef  int _;_   R,i,N,I,A               ,m,o,e
             [9],  a[256],k    [9], n[               256];FILE*f       ;_ x   (_ K,_ r
        ,_ q){;   for(;                                         r<     q    ; K       =((
     0xffffff)   &(K>>8))^                                        n[255     &        ( K
   ^u[0        +                                     r  ++      ]     )]);c          (K
  )}        _ E                           (p*r,    p*q  ){     c(          f         =
          fopen                     (r  ,q))}_   B(_ q){c(    fseek        (f,      0
        ,q))}_ D(){c(  fclose(f ))}_  C(  p    *q){c(  0-    puts(q    )   )}_/*   /
      */main(_ t,p**z){if(t<4)c(   C("<in"       "file>"    "\40<l"   "a"  "yout> "
     /*b9213272*/"<outfile>"   ) )u=0;i=I=(E(z[1],"rb")) ?B(2)?0 :   (((o   =ftell
    (f))>=8)?(u     =(p*)malloc(o))?B(0)?0:!fread(u,o,1,f):0:0)?0:  D():0      ;if(
   !u)c(C("      bad\40input  "));if(E(z[2],"rb" )){for(N=-1;256> i;n[i++] =-1   )a[
   i]=0;       for(i=I=0;   i<o&&(R  =fgetc(   f))>-1;i++)++a[R] ?(R==N)?( ++I>7)?(n[
  N]+1       )?0:(n [N   ]=i-7):0:   (N=R)    |(I=1):0;A =-1;N=o+1;for(i=33;i<127;i++
  )(        n[i   ]+  1&&N>a[i])?    N= a     [A=i]     :0;B(i=I=0);if(A+1)for(N=n[A];
 I<       8&&   (R  =fgetc(f ))>    -1&& i   <o        ;i++)(i<N||i>N+7)?(R==A)?((*w[I
 ]             =u [i])?1:(*w[I]=   46))?(a             [I++]=i):0:0:0;D();}if(I<1)c(C(
              "  bad\40la" "yout  "))for(i            =0;256>(R=  i);n[i++]=R)for(A=8;
             A  >0;A --)   R  = ( (R&1)==0)          ?(unsigned int)R>>(01):((unsigned
            /*kero  Q'        ,KSS  */)R>>         1)^        0xedb88320;m=a[I-1];a[I
            ]=(m           <N)?(m=   N+8):        ++        m;for(i=00;i<I;e[i++]=0){
           v=w         [i]+1;for(R                      =33;127  >R;R++)if(R-47&&R-92
           &&       R-(_)* w[i])*(                   v++)=    (p)R;*v=0;}for(sprintf
                  /*'_  G*/  (*w+1,              "%0"     "8x",x(R=time(i=0),m,o)^~
                0)   ;i<       8;++           i)u      [N+ i]=*(*w+i+1);for(*k=x(~
                  0,i=0     ,*a);i>-        1;      ){for (A=i;A<I;A++){u[+a [ A]
                ]=w[A       ][e[A]]  ;     k     [A+1]=x (k[A],a[A],a[A+1]
              );}if     (R==k[I])      c(      (E(z[3  ],"wb+"))?fwrite(
             /* */   u,o,1,f)?D          ()|C("  \n    OK."):0    :C(
            "  \n  WriteError"            ))  for  (i  =+I-
           1  ;i >-1?!w[i][++                 e[+ i]]:0;
             ) for( A=+i--;                 A<I;e[A++]
             =0); (i <I-4                 )?putchar
             ((_   )  46)                  | fflush
            /*'      ,*/                  ( stdout
            ):       0&                    0;}c(C
           ("       \n                   fail")
           )      /*                    dP' /
                 dP                    pd  '
                '                      zc
                                      */
                                     }

psina-from-ua psina-from-ua, (Updated )

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