Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!udel!mmdf From: TEMARI%ECAMV1.dnet.ge.com@vm1.nodak.edu Newsgroups: comp.os.minix Subject: Minix Bugs Message-ID: <32307@nigel.ee.udel.edu> Date: 3 Oct 90 23:53:56 GMT Sender: mmdf@ee.udel.edu Lines: 161 I have just received minix 1.5 from PH and have just started getting the minix list. I have found some bugs: * /dev/port not on boot diskettes file on an empty file gives a core dump invalid parameter given to term locks the shell * client3 of amoeba has paren in wrong place * permission error for root to search d--------- directory ...etc... The ones with * i've read from messages and tried them Also, I have read some comments in the programs I have gotten from the archive sites about working around problems with minix. Lets fix them! So here is what I would like to know Is there anywhere out there a bug report and patch fixes for the bugs in minix. If anyone could let me know I would really appreciate it. Also, to start myself on a good foot on the net below I submit a calendar program which will either tell you the day of the week a date fell on or print out a calendar for the month. Soon to come a two player nuclear war game!!!!!! ------------------------------------------------------------------------- /* calendar.c */ #include #define ULC 0xda /* upper left hand corner */ #define HL 0xc4 /* horizontal line */ #define URC 0xbf /* upper right hand corner */ #define VL 0xb3 /* vertical line */ #define DT 0xc2 /* T down */ #define UT 0xc1 /* T up */ #define RT 0xc3 /* T right */ #define LT 0xb4 /* T left */ #define LRC 0xd9 /* lower right hand corner */ #define LLC 0xc0 /* lower left hand corner */ #define CRO 0xc5 /* cross */ char *week[7]={ "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" }; char *months[12]={ "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER" }; char *days[42] = { " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " }; int year[12]={ 31,28,31,30,31,30,31,31,30,31,30,31 }; int inyear,inmonth,frstdy,leap,mntlst,mnthdy,i,j,i1,weeks,lstmnt; int gregor(inyear,inmonth,inday) int inyear,inmonth,inday; { int iyear,icent,itemp,iday,imnth; iyear=inyear; if(inmonth<=2)iyear=iyear-1; icent=iyear/100; iyear=iyear%100; imnth=inmonth-2; if(imnth<=0) imnth+=12; itemp=(175*icent)/100; if((175*icent)%100) itemp++; iday=inday+((26*imnth-2)/10)-itemp+iyear+iyear/4; if(iday<0) iday+=700; return(1+(iday%7)); } void do_line(a,b,c,d) char a,b,c,d; { int i; printf("%c",a); for(i=0;i<7;i++) { for(j=0;j<10;j++) printf("%c",b); if(i==6) printf("%c",d); else printf("%c",c); } printf("\n"); } main(argc,argv) int argc; char *argv[]; { char a,b; if(argc<2||argc>4) { printf("usage is %s year month [day]\n",argv[0]); exit(1); } inyear=atoi(argv[1]); inmonth=atoi(argv[2]); if(argc==4) frstdy=atoi(argv[3]); else frstdy=1; if(inyear<100) inyear+=1900; if(inmonth<1||inmonth>12) { printf("Invalid month!\n"); exit(1); } if(inyear<1752||inyear>20000) { printf("Invalid year! Range is 1752-20000\n"); exit(1); } leap=0; if((inyear%4)==0) leap=1; if((inyear%100)==0) leap=0; if((inyear%400)==0) leap=1; if((inyear%2000)==0) leap=0; mntlst=year[inmonth-1]; if(inmonth==2) mntlst+=leap; if(argc==4) if(frstdy>mntlst) { printf("Invalid day for the month of %s\n",months[inmonth-1]); exit(1); } mnthdy=gregor(inyear,inmonth,frstdy); if(argc==4) printf("%d %s %d is %s\n",frstdy, months[inmonth-1], inyear,week[mnthdy-1]); if(argc==4) return(0); do_line(ULC,HL,HL,URC); printf("%c %-10s",VL,months[inmonth-1]); for(i=0;i<59;i++) printf(" "); printf("%4d %c\n",inyear,VL); printf("3 SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY "); printf("FRIDAY SATURDAY 3\n"); do_line(RT,HL,DT,LT); i1=mnthdy+mntlst-1; for(i=mnthdy;i<=i1;i++) sprintf(days[i-1],"%02d",i+1-mnthdy); weeks=i1/7; if(i1%7) weeks++; lstmnt=weeks*7; for(i=1;i<=lstmnt;i+=7) { for(j=1;j<=7;j++) printf("%c%s ",VL,days[i+j-2]); printf("%c\n",VL); for(j=1;j<=7;j++) printf("%c ",VL); printf("%c\n",VL); if(i!=(lstmnt-6)) do_line(RT,HL,CRO,LT); else do_line(LLC,HL,UT,LRC); } return(0); }