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

    +142

    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
    #include <dos.h>
    #include <conio.h>
    #include <graphics.h>
    
    
    void pix(unsigned int x, unsigned int  y, unsigned char c){
        unsigned char nb, ms, bt;                     //nomerbit maska bite
        unsigned int ofs;                      //sdvig
        unsigned char *pb;                //ukazatel na bit
    
        ofs= x/8 + y*80;
        nb=7-(x % 8);
        pb=(unsigned char *)MK_FP(0xA000, ofs);
        bt=*pb;
        ms=1<<nb;
    
        if( c !=0  ){
            bt=bt |  ms;
        }else{
            bt=bt&(~ms);
        };
    
        *pb=bt;
    };
    
    void main(){
        int drDriver, grMode;
        drDriver=VGA;
        grMode=VGAHI;
        initgraph(&drDriver, &grMode, "C:\\BORLANDC\\BGI");
        pix(60,30,15);
        getch();
    };

    13: где взял адрес
    28,29: с чего ты решил, что для паскалевского драйвера подходят определения сишного драйвера?
    30: почему драйвер паскалевский?

    all: ебанный пиздец, кто ж так пишет...

    d4rw1n1s7, 17 Февраля 2012

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

    +125

    1. 1
    #define DV_ERR_13               (DV_ERR_BASE + 15)

    There, i fixed it!
    Нашел в зловонных недрах Video for Windows. Если кому интересно, значение ни разу не 13, а 16.

    bugmenot, 16 Февраля 2012

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

    +132

    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
    for (int i=0;i<16;i++)
    {
    	if ((rbuf[i+1]>>16)!=(1<<i))
    	{
    		break;
    		res=SOME_ERROR;
    	}
    };
    
    /* in another function */
    DWORD * rbuf =new DWORD[Size];
    ...
    if (rbuf!=NULL) free(rbuf);

    Вот такими библиотеками пользуются клиенты некоторых фирм ;)

    klaks, 15 Февраля 2012

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

    +104

    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
    #ifdef _DEBUG
                if ( !
    #endif
                    dt_time_sprintf_current( tbuf, sizeof(tbuf), false )
    #ifdef _RELEASE
                    ;
    #else
                    )
                {
                    fprintf( stderr, "-- unable to get current time\n" );
                }
    #endif
            }
    #ifdef _DEBUG

    ;(

    ilardm, 09 Февраля 2012

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

    +132

    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
    #define COMMAND_MARKER		'\x1B'
    #define COMMAND_SET			'='
    #define COMMAND_XOR			'^'
    #define COMMAND_OR			'|'
    #define COMMAND_AND			'&'
    
    void usbWriteOut(uchar *data, int len)
    {
    	while(len--) {
    		uchar c = *data;
    		buf[0] = buf[1];
    		buf[1] = buf[2];
    		buf[2] = buf[3];
    		buf[3] = c;
    		
    		if(buf[0] == COMMAND_MARKER) {
    			uint8_t val = (hex2u(buf[2]) << 4) | hex2u(buf[3]);
    			if(buf[1] == COMMAND_SET) {
    				colorData = val;
    			}
    			else if(buf[1] == COMMAND_XOR) {
    				colorData ^= val;
    			}
    			else if(buf[1] == COMMAND_OR) {
    				colorData |= val;
    			}
    			else if(buf[1] == COMMAND_AND) {
    				colorData &= ~val;
    			}
    		}
    	}
    }

    Простой баг оказался крайне подлым!
    При тестировании девайса терминалкой и чепятании команды ручками, каждый символ уходил в отдельном пакете и создавалось впечатление, что всё работает.
    После чего девайс был собран с применением большого количества термоклея, так что исправление бага оказалось совершенно непростым занятием >_<

    odmin, 09 Февраля 2012

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

    +131

    1. 1
    2. 2
    3. 3
    4. 4
    struct tm lpstTimeRecordRet;
    struct tm lpstTimeRecord;
    
    lpstTimeRecordRet = *localtime_r ( &potiUnixTime, &lpstTimeRecord);

    *фейс палм*

    Dummy00001, 02 Февраля 2012

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

    +131

    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
    #include <stdio.h>
    #include <math.h>
    void out_bin (unsigned short c){
    	for (int i = 11; i>=0; i--) {
    		if ((c & (unsigned short)(1<<i))/(1<<i)==1) printf("1");
    		else printf("0");
    	}
    	printf("\n");
    }
    int main (){
    	int a[8]={2,4,5,6,8,9,10,11};
    	int b[4]={0,1,3,7};
    	int d=0;
    	unsigned short int c=0,c1[4]={0,0,0,0};
    	unsigned char data=165,tdata=176;
    	for(int i=7;i>=0;i--)
    	{ 
    		if (tdata & 128){
    			c+=(unsigned short )(1<<a[i]);
    		}
    		tdata<<=1;
    	}
    	for (int i=0;i<8;i++){
    		unsigned short b = (unsigned short)((c & (unsigned short)(1<<a[i]))/(1<<a[i])) ;
    		if(a[i] & 1) c1[0]^=b;
    		else
    			if(a[i] & 2) c1[1]^=b ;
    			else
    				if(a[i] & 4) c1[2]^=b ;
    				else
    					if(a[i] & 8) c1[3]^=b ;
    	}
    	for (int i = 0; i < 4; i++) {
    		if (!c1[i]) {
    			c|=(unsigned short)(1<<((1<<i)-1));
    		}
    	}
    	printf("Data=      ");
    	out_bin(c);
    	c ^= 256 ;
    	if ((((c & 1024)/1024) ^ ((c & 256)/256) ^ ((c & 64)/64) ^ ((c & 16)/16) ^ ((c & 4)/4) ^ ((c & 1)/1) ) !=1 ){
    		d += 1;
    	}
    	if ((((c & 1024)/1024) ^ ((c & 512)/512) ^ ((c & 64)/64) ^ ((c & 32)/32) ^ ((c & 4)/4) ^ ((c & 2)/2) )  !=1 ){
    		d +=2;
    	}  
    	if ((((c & 2048)/2048) ^ ((c & 64)/64) ^ ((c & 32)/32) ^ ((c & 16)/16) ^ ((c & 8)/8) ) !=1 ){
    		d +=4;
    	}
    	if ((((c & 2048)/2048) ^ ((c & 1024)/1024) ^ ((c & 512)/512) ^ ((c & 256)/256) ^ ((c & 128)/128) )!=1 ){
    		d+=8;
    	}
    	printf("Spoiled=   ");
    	out_bin(c);
    	printf("%d",d);
    	if (d){
    			c ^=(1<<(d-1));
    	}
    	printf("Corrected= ");
    	out_bin(c);
    	return 0;
    }

    Код Хэмминга

    Abbath, 13 Января 2012

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

    +132

    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
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    #include <time.h>
    char a[150],c[150];
    int main(int argc, char **argv) {	
    	FILE * tmp;
    	while(1) {
    		int b=0,b1=0;
    		bool A=0;
    		tmp=fopen(".tmp.txt","r");
    		fgets(c,150,tmp);
    		fclose(tmp);
    		system("rm .tmp.txt");
    		system("xwininfo -tree -root | grep -i '\\- deadbeef-0.5.1' > .tmp.txt");
    		tmp=fopen(".tmp.txt","r");
    		fgets(a,150,tmp);
    		fclose(tmp);
    		for(int i=16;i<149;i++) {
    
    			c[i-16]=c[i];
    			a[i-16]=a[i];
    			if(a[i-16]=='-')
    				b++;
    			if(c[i-16]=='-')
    				b1++;
    			if(b==2)
    				a[i-16]=0;
    			if(b1==2)
    				c[i-16]=0;
    		}
    		for(int j=0;j<(int)strlen(c);j++) {
    			if (a[j]!=c[j])	A=true;
    		}
    		if (A) {
    			char lamp[]="/usr/bin/purple-remote \"setstatus?status=available&message=";
    			strcat(lamp,a);
    			strcat(lamp,"\"");
    			system(lamp);
    		}
    		sleep(5);
    	}
    	return 0;
    }

    Реализация аналога pidgin-musictracker для deadbeef

    Abbath, 13 Января 2012

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

    +139

    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
    #include "stdio.h"
    #include "string.h"
    int main (int argc, char *argv[])
    {
    	FILE * f1= fopen("новый файл","r");
    	char a[3];
    	char * b= &a[0];
    	int i=0;
    	for (i = 0; i < 80; i ++)
    	{
    		char a1[400]="java -jar TextCode.jar ";
    		char a2[40]="/home/dan/Education/Subj/MFCIT/roz/";
    		fscanf(f1,"%s",b);
    		strcat(a1,a2);
    		strcat(a1,b);
    		strcat(a1,"/");
    		strcat(a1,b);
    		strcat(a1," ");
    		strcat(a1,a2);
    		strcat(a1,b);
    		strcat(a1,"/");
    		strcat(a1,b);
    		strcat(a1,".c ");
    		strcat(a1,a2);
    		strcat(a1,b);
    		strcat(a1,"/");
    		strcat(a1,b);
    		strcat(a1,".cod");
    		system(a1);
    	}
    	return 0;
    }

    Шифрует тексты при помощи проги на Java

    Abbath, 12 Января 2012

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

    +136

    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
    static BOOL CALLBACK callbackEspecial(
      LPSTR aModuleName,
      DWORD aModuleBase,
      ULONG aModuleSize,
      PVOID aUserContext)
    {
        BOOL retval = TRUE;
        DWORD addr = *(DWORD*)aUserContext;
    
        /*
         * You'll want to control this if we are running on an
         *  architecture where the addresses go the other direction.
         * Not sure this is even a realistic consideration.
         */
        const BOOL addressIncreases = TRUE;
    
        /*
         * If it falls inside the known range, load the symbols.
         */
        if (addressIncreases
           ? (addr >= aModuleBase && addr <= (aModuleBase + aModuleSize))
           : (addr <= aModuleBase && addr >= (aModuleBase - aModuleSize))
            ) {
            retval = _SymLoadModule(GetCurrentProcess(), NULL, aModuleName, NULL, aModuleBase, aModuleSize);
        }
    
        return retval;
    }

    аццкая адресация
    http://mozilla-thunderbird.sourcearchive.com/documentation/1.5.0.10-0ubuntu3/nsStackFrameWin_8cpp-source.html

    63F45EF45RB65R6VR, 10 Января 2012

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