1. Си / Говнокод #6935

    +143

    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
    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
    // find the start and end of the upload file.
    static FILE * _uploadGet(request *wp, unsigned int *startPos, unsigned *endPos) {
       
       FILE *fp=NULL;	
    	struct stat statbuf;	
    	unsigned char c, *buf; 
    	   
    	
    	if (wp->method == M_POST)
    	{
    	   fstat(wp->post_data_fd, &statbuf);
    		lseek(wp->post_data_fd, SEEK_SET, 0);
          
    		printf("file size=%d\n",statbuf.st_size);
    		fp=fopen(wp->post_file_name,"rb");
    		if(fp==NULL) goto error;
    	}
    	else goto error;
    
       
       //printf("_uploadGet\n");
       do
    	{
    		if(feof(fp))
    		{
    			printf("Cannot find start of file\n");
    			goto error;
    		}
    		c= fgetc(fp);
    		if (c!=0xd)
    			continue;
    		c= fgetc(fp);
    		if (c!=0xa)
    			continue;
    		c= fgetc(fp);
    		if (c!=0xd)
    			continue;
    		c= fgetc(fp);
    		if (c!=0xa)
    			continue;
    		break;
    	}while(1);
    	(*startPos)=ftell(fp);
    
       if(fseek(fp,statbuf.st_size-0x200,SEEK_SET)<0) 
          goto error;
    	do
    	{
    		if(feof(fp))
    		{
    			printf("fmmgmt: Cannot find end of file\n");
    			goto error;
    		}
    		c= fgetc(fp);
    		if (c!=0xd)
    			continue;
    		c= fgetc(fp);
    		if (c!=0xa)
    			continue;
    		c= fgetc(fp);
    		if (c!='-')
    			continue;
    		c= fgetc(fp);
    		if (c!='-')
    			continue;
    		break;
    	}while(1);
    	(*endPos)=ftell(fp);
    
       return fp;
    error:
       return NULL;
    }

    Вот так вот китайцы парсят MIME при загрузке прошивки в роутер.

    SadKo, 12 Июня 2011

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

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    //
    // String Lengths for various LanMan names
    //
    
    #define CNLEN       15                  // Computer name length
    #define LM20_CNLEN  15                  // LM 2.0 Computer name length
    #define DNLEN       CNLEN               // Maximum domain name length
    #define LM20_DNLEN  LM20_CNLEN          // LM 2.0 Maximum domain name length
    
    #if (CNLEN != DNLEN)
    #error CNLEN and DNLEN are not equal
    #endif

    а вдруг? определяй, да проверяй!
    виндовая имплементация lan manager

    bugmenot, 11 Июня 2011

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

    +105

    1. 1
    2. 2
    3. 3
    4. 4
    if ( (value[0] - 'N') == 0 || (value[0] - 'n') == 0 )
       val = 0;
    if ( (value[0] - 'Y') == 0 || (value[0] - 'y') == 0 )
       val = 1;

    нет, просто сравнить - это слишком скучно и неоригинально.

    ЗЫ от автора http://govnokod.ru/5034

    Dummy00001, 09 Июня 2011

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

    +130

    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
    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
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    MACROFIRE-MACRO 5.0.0
    
    [Info]
    Name = 
    Hotkey = 
    Repeat = 1
    
    [Macro]
    ButtonsPress = Circle
    Delay = 66
    ButtonsRelease = Circle
    Delay = 83
    ButtonsPress = Circle
    Delay = 83
    ButtonsRelease = Circle
    Delay = 50
    ButtonsPress = Circle
    Delay = 66
    ButtonsRelease = Circle
    Delay = 66
    ButtonsPress = Circle
    Delay = 83
    ButtonsRelease = Circle
    Delay = 66
    ButtonsPress = Down
    Delay = 50
    ButtonsPress = Right
    Delay = 83
    ButtonsRelease = Down
    ButtonsPress = Square
    Delay = 116
    ButtonsRelease = Right
    ButtonsRelease = Square
    Delay = 266
    ButtonsPress = RTrigger
    Delay = 83
    ButtonsRelease = RTrigger
    Delay = 50
    ButtonsPress = Circle
    Delay = 66
    ButtonsRelease = Circle
    Delay = 83
    ButtonsPress = Circle
    Delay = 66
    ButtonsRelease = Circle
    Delay = 66
    ButtonsPress = Circle
    Delay = 66
    ButtonsRelease = Circle
    Delay = 49
    ButtonsPress = Circle
    Delay = 83
    ButtonsRelease = Circle
    Delay = 66
    ButtonsPress = Circle
    Delay = 50
    ButtonsRelease = Circle
    Delay = 66
    ButtonsPress = Circle
    Delay = 100
    ButtonsChange = Down
    Delay = 83
    ButtonsPress = Right
    Delay = 66
    ButtonsRelease = Down
    Delay = 100
    ButtonsPress = Triangle
    ButtonsRelease = Right
    Delay = 83
    ButtonsRelease = Triangle
    Delay = 917
    ButtonsPress = Down
    Delay = 200
    ButtonsPress = Circle
    Delay = 83
    ButtonsRelease = Circle
    Delay = 66
    ButtonsPress = Circle
    Delay = 66
    ButtonsRelease = Circle
    Delay = 83
    ButtonsPress = Circle
    Delay = 133
    ButtonsRelease = Circle
    Delay = 50
    ButtonsRelease = Down
    Delay = 83
    ButtonsPress = Left
    ButtonsPress = Up
    Delay = 166
    ButtonsChange = Left + Circle
    ButtonsRelease = Left
    Delay = 116
    ButtonsRelease = Circle

    Lambda-11 Challenge 6

    minlexx, 07 Июня 2011

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

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    switch (options & (PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE))
      {
      case 0:
      case PCRE_BSR_ANYCRLF:
      case PCRE_BSR_UNICODE:
      break;
      default: errorcode = ERR56; goto PCRE_EARLY_ERROR_RETURN;
      }

    Выкидываем три варианта, обрабатываем один.

    blueboar2, 06 Июня 2011

    Комментарии (21)
  6. Си / Говнокод #6863

    +138

    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
    auto ret;
    ulong[] generateMobs() {
    
        ushort counter = 0;
    
        for(ulong id = 0; id < NUMBER_OF_MOBS; ++id) {
    
            Mob bufferMob = get(id);
    
            if ( bufferMob.habitat == hero.hero.heroLocalityType() && ((bufferMob.rating() <= hero.hero.rating())) ) {
                suitable ~= id;
                counter++;
            }
        }
        ret = suitable;
    
        suitable.length = 0;   /// Im
        suitable = null;        /// FUCKIN'
        delete suitable;      /// DESTROY YOU!!!
    
        return ret;
    }

    Вообще это язык Ди(D(digitalmars.com <-- разрабы языка). Зае... Достала всякая НЕ статичная хрень)
    Вообще в Ди есть гарбадж коллектор...

    Hackeridze, 05 Июня 2011

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    unsigned int userID;
    ...
    userID = -1;
    ...
    if( userID < 0 )

    bred, 02 Июня 2011

    Комментарии (24)
  8. Си / Говнокод #6799

    +146

    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 main(argc,argv)
    int argc;
    char *argv[];
    {
    int raw=0,httpcont=0;
    int i,ilatex=0,ititle=1;
    char *spoint=0;
    char ttver[]=TTH_VERSION;
    char ttname[20];
    ...
        strcpy(ttname,"Tt");
        strcat(ttname,TTH_NAME);
        strncpy(spoint-10-strlen(ttname),ttname,strlen(ttname));

    Понадобился мне конвертёр TeX в HTML.
    Скачал (http://hutchinson.belmont.ma.us/tth/), всё работает, но оказалось, что он не умеет работать с командой \begin{cases}
    Ну я решил его подправить, благо исходник открыт.
    Открыл я исходник и... решил написать с нуля свой.

    ПС Посоны, что делает 13я строчка?
    ППС Си - говно.

    TarasB, 31 Мая 2011

    Комментарии (21)
  9. Си / Говнокод #6778

    +148

    1. 1
    2. 2
    3. 3
    4. 4
    if((s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) die("socket creating.");
    if(bind(s, (struct sockaddr*) &local, sizeof(struct sockaddr_in)) == SOCKET_ERROR) die("bind...");
    if(ioctlsocket(s, FIONBIO, &on) != 0) die("IOCTL!!!");
    if(listen(s, 16) != 0) die("WHYYYYY?!?!!!!!");

    No hard feelings.

    danilissimus, 29 Мая 2011

    Комментарии (12)
  10. Си / Говнокод #6769

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if (m_socket == INVALID_SOCKET)
        {
    		printf("Client: socket() - Error at socket(): %ld\n", WSAGetLastError());
           
    		WSACleanup();
    
                     return EXIT_SUCCESS;
        }

    Лаба знакомого о сетям.


    Очень, блин, SUCCESS!

    lNevermore, 27 Мая 2011

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