- 1
- 2
- 3
- 4
logit("e", "%s No Menu! Wait 5 minutes and try again.\n", whoami);
for(j=0;j<60;j++) {
sleep_ew( 5000 ); /* wait around */
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+146
logit("e", "%s No Menu! Wait 5 minutes and try again.\n", whoami);
for(j=0;j<60;j++) {
sleep_ew( 5000 ); /* wait around */
}
sgram из earthworm
+144
main() {
char * what = "\
........................................ ....________\
....................................,.-'\"...................``~.,\
.............................,.-\"................................... \"-.,\
.........................,/........................................ .......\":,\
.....................,?................. .....................................,\
.................../........................................ ...................,}\
................./........................................ ..............,:`^`..}\
.............../........................................ ...........,:\"........./\
..............?.....__.................. .......................:.........../\
............./__.(.....\"~-,_..............................,:..... ...../\
.........../(_....\"~,_........\"~,_.................. ..,:........_/\
..........{.._$;_......\"=,_.......\"-,_.......,.-~-,},.~\";/....}\
...........((.....*~_.......\"=-._......\";,,./`..../\"............../\
...,,,___.`~,......\"~.,................. ...`.....}............../\
............(....`=-,,.......`........................(..... .;_,,-\"\
............/.`~,......`-...................................../\
.............`~.*-,.....................................|, ./.....,__\
,,_..........}.>-._...................................|.. ............`=~-,\
.....`=~-,__......`,............................. ....\
...................`=~-,,.,...............................\
................................`:,,.... .......................`..............__\
.....................................`=-,...................,%`>--==``\
........................................ _..........._,-%.......`\
...................................,";
int c = 0; int i = 0;
for(; i < strlen(what); i++) {
switch(what[i]) {
case '.': c++;break;
case '_': c--;break;
case '/': c *= 2; break;
case ',': c /= 2; break;
case '?': c <<= 1; break;
case '"': c >>= 1; break;
case ':': c = ~c; break;
case '*': c = -c; break;
case '`': c += 100500; break;
case '{': c -= '{'; break;
case '}': c += '}'; break;
case '-': c /= 4; break;
case '~': c <<= 4; break;
case ';': c = c & -c; break;
case '%': c = c & 0xFF; break;
case '=': c = c; /* еба! */ break;
case '^': c = c ^ -c; break;
case '$': printf("BINGOOO!!!\n"); break;
}
}
printf("FACEPALM RESULT: %i\n", c);
BINGOOO!!!
FACEPALM RESULT: 50301
+106
// процедура ввода новой даты в RTC
long __new_date()
{
date sysdate;
unsigned long str,i;
unsigned char tmpbuf[16];
// ...
nextda: __putsV("\n\rВведите новую дату: ");
__getsV(tmpbuf,10);
if(tmpbuf[0]==0) goto daok;
//проверка строки на допустимые символы '0'-'9' и '.'
for(i=0; tmpbuf[i]!=0; i++)
{ if((tmpbuf[i]>0x39 || tmpbuf[i]<0x30) && tmpbuf[i]!=0x2e) goto baddat;
}
//проверка числа в диапазоне 01-31
if(((tmpbuf[0]==0x33)&&(tmpbuf[1]>0x31)) || (tmpbuf[0]>0x33)
|| (tmpbuf[1]==0x2e) || ((tmpbuf[0]==0x30)&&(tmpbuf[1]==0x30)) ) goto baddat;
//проверка точки после числа
if((tmpbuf[2]!=0x2e) && (tmpbuf[2]!=0x0)) goto baddat;
if((tmpbuf[2]==0x0) || (tmpbuf[3]==0x00))
{ sysdate.ti_date=(tmpbuf[1]-0x30)+((tmpbuf[0]-0x30)<<4);
goto fordok; }
//проверка месяца в диапазоне 01-12
if(((tmpbuf[3]==0x31)&&(tmpbuf[4]>0x32)) || (tmpbuf[3]>0x31)
|| (tmpbuf[4]==0x2e) || ((tmpbuf[3]==0x30)&&(tmpbuf[4]==0x30)) ) goto baddat;
//проверка точки после месяца
if((tmpbuf[5]!=0x2e) && (tmpbuf[5]!=0x0)) goto baddat;
if((tmpbuf[5]==0x0) || (tmpbuf[6]==0x00))
{ sysdate.ti_date=(tmpbuf[1]-0x30)+((tmpbuf[0]-0x30)<<4);
sysdate.ti_month=(tmpbuf[4]-0x30)+((tmpbuf[3]-0x30)<<4);
goto fordok; }
//проверка года в диапазоне 00-99
if((tmpbuf[6]==0x2e) || (tmpbuf[7]==0x2e)) goto baddat;
if(tmpbuf[7]==0x00) goto baddat;
if(tmpbuf[8]==0x0)
{ sysdate.ti_date=(tmpbuf[1]-0x30)+((tmpbuf[0]-0x30)<<4);
sysdate.ti_month=(tmpbuf[4]-0x30)+((tmpbuf[3]-0x30)<<4);
sysdate.ti_year=(tmpbuf[7]-0x30)+((tmpbuf[6]-0x30)<<4);
goto fordok; }
baddat: __putsV("\n\rДата введена неверно (дд.мм.гг)");
goto nextda;
//установка новой даты
fordok:
__set_date(&sysdate);
daok:
return 0;
}
Из ПО отечественного шифродевайса. Функция получает от "оператора" время (дд.мм.гг), проверяет его на корректность и пишет в Real Time Clock.
+109
/*
* The dump header describes the contents of a crash dump. Two headers
* are written out: one at the beginning of the dump, and the other at
* the very end of the dump device. The terminal header is at a known
* location (end of device) so we can always find it. The initial header
* is redundant, but helps savecore(1M) determine whether the dump has been
* overwritten by swap activity. See dumpadm(1M) for dump configuration.
*/
#define DUMP_MAGIC 0xdefec8edU /* dump magic number */
вот такая сигнатура у крэшдампа соляриса
−34
#define _ F-->00 || F-OO--;
long F=00,OO=00;
main(){F_OO();printf("%1.3f\n", 4.*-F/OO/OO);}F_OO()
{
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_
}
так расчитывается число пи. я не мог этого не запостить.
+105
int run_zero[] = {0xfffffffe,0xfffffffd,0xfffffffb,0xfffffff7,0xffffffef,0xffffffdf,0xffffffbf,0xffffff7f,0xfffffeff,0xfffffdff,0xfffffbff,0xfffff7ff,0xfffefff,0xffffdfff,0xffffbfff,0xffff7fff,0xfffeffff,0xfffdffff,0xfffbffff,0xfff7ffff,0xffeffff,0xffdfffff,0xffbfffff,0xff7fffff,0xfeffffff,0xfdffffff,0xfbffffff,0xf7ffffff,0xefffffff,0xdfffffff,0xbfffffff,0x7fffffff};
int run_one[] = {0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80,0x100,0x200,0x400,0x800,0x1000,0x2000,0x4000,0x8000,0x10000,0x20000,0x40000,0x80000,0x100000,0x200000,0x400000,0x800000,0x1000000,0x2000000,0x4000000,0x8000000,0x10000000,0x20000000,0x40000000,0x80000000};
int chess_code[] = {0xa5,0x5a};
Первые строки теста регистров некоего контроллера. Хорошо, что регистры не 64-разрядные, а то задолбался бы паренёк. А уж про chess_code вообще молчу. Вот так суровые российские программеры, не боящиеся лишней работы, тестируют авиационное бортовое оборудование.
+141
sprintf(name," %s", trim("рубль",0));
Функция trim(char*, int), где вторым параметром указывается с какой стороны удалять пробелы(0 - с обеих сторон)
+127
(&goodsBuff[k].name==&vmass[p].name)
Сравнение строк
+135
do {
data = get_stat();
} while ((data & (1 << stat_smth_ok_bit_n)) != (1 << stat_smth_ok_bit_n));
Суровый педантичный немецкий код.
+145
enum {
CONST_A,
CONST_B,
CONST_C,
/* ... и еще пяток в том же духе */
};
/* ... */
char opType = ...;
switch(opType) {
case 'A':
/* строчек 10 кода использующие CONST_A */
break;
case 'B':
/* капипасто тех же строчек 10 кода - но теперь с CONST_B */
break;
case 'C':
/* капипасто тех же строчек 10 кода - но с CONST_C */
break;
/* и т.д. и т.п. для других значений opType */
}
только что убил полчаса что бы понять что switch/case завален 100% копиями того же самого кода - только со смененной константой. просто замапить тот char в enum ... это наверное исключительно для слишком умных.