wtoomey@gara.une.oz (Warren Toomey) (06/07/89)
I finally found the bug that was causing Clam to crash, and Jwahar Bammi found it at the same time :-) So here are the patches to get Clam Patch #2 to work. Builtin.c has been modified; it had the bug in it. Header.h & main.c have also changed, as they didn't work too well on the Atari. Thanks Jwahar! Let me know if there are any more problems. Warren Toomey (wtoomey@gara.une.oz) ------------------------------- shred here ---------------------------- # This is a shell archive. Remove anything before this line, then # unpack it by saving it in a file and typing "sh file". (Files # unpacked will be owned by you and have default permissions.) # # This archive contains: # builtin.cdif header.hdif main.cdif echo x - builtin.cdif cat > "builtin.cdif" << '//E*O*F builtin.cdif//' *** 2builtin.c Wed Jun 7 09:59:21 1989 --- builtin.c Wed Jun 7 09:57:14 1989 *************** *** 34,39 **** --- 34,42 ---- extern char *getcwd(); #endif + #ifdef DEBUG + fprintf(stderr,"In Cd\n"); + #endif if (argc==1) argv[1]=vget("HOME"); if (argc>2) { *************** *** 48,54 **** else argv[1]=(char *) malloc ((unsigned)(MAXPL)); #endif #ifdef ATT ! if (getcwd(argv[1]),MAXPL) vset("cwd",argv[1]); #else # ifdef MINIX if (getcwd(dirname, 128)) vset("cwd",dirname); --- 51,57 ---- else argv[1]=(char *) malloc ((unsigned)(MAXPL)); #endif #ifdef ATT ! if (getcwd(argv[1],MAXPL)) vset("cwd",argv[1]); #else # ifdef MINIX if (getcwd(dirname, 128)) vset("cwd",dirname); *************** *** 57,63 **** # endif #endif else write(2,"Can't get cwd properly\n",23); ! free(argv[1]); /* just in case? */ } static --- 60,69 ---- # endif #endif else write(2,"Can't get cwd properly\n",23); ! /* free(argv[1]); just in case? */ ! #ifdef DEBUG ! fprintf(stderr,"Leaving Cd\n"); ! #endif } static //E*O*F builtin.cdif// echo x - header.hdif cat > "header.hdif" << '//E*O*F header.hdif//' *** /tmp/,RCSt1a00566 Sun Jun 4 17:42:37 1989 --- header.h Sat Jun 3 17:05:34 1989 *************** *** 9,16 **** # include <sys/file.h> #else # include <sgtty.h> - # include <sys/dir.h> # ifndef ATARI_ST # include <sys/time.h> #else # include <time.h> --- 9,16 ---- # include <sys/file.h> #else # include <sgtty.h> # ifndef ATARI_ST + # include <sys/dir.h> # include <sys/time.h> #else # include <time.h> *************** *** 228,234 **** void goend(char *, int *, int *); void copyback(char *, int, int *, int); void delnextword(char *, int, int *); ! void delprevword(char *, int, int *); void backword(char *, int *, int *); void forword(char *, int *, int *); void yanknext(char *, int, char *); --- 228,234 ---- void goend(char *, int *, int *); void copyback(char *, int, int *, int); void delnextword(char *, int, int *); ! void delprevword(char *, int *, int *); void backword(char *, int *, int *); void forword(char *, int *, int *); void yanknext(char *, int, char *); //E*O*F header.hdif// echo x - main.cdif cat > "main.cdif" << '//E*O*F main.cdif//' *** main.c~ Sat Jun 3 16:01:40 1989 --- main.c Sat Jun 3 19:41:01 1989 *************** *** 424,429 **** --- 424,430 ---- termod->sg_flags |= ECHO; /* echo chars to screen */ if (ioctl(0,TIOCSETP,termod)) /* put it back, modified */ perror("ioctl"); + free(termod); setsigc=(struct tchars *) malloc ((unsigned)(sizeof(struct tchars))); if (ioctl(0,TIOCGETC,setsigc)) /* get the tchars struct */ perror("ioctl"); *************** *** 432,437 **** --- 433,439 ---- setsigc->t_eofc=4; /* and eof signalling */ if (ioctl(0,TIOCSETC,setsigc)) /* put it back, modified */ perror("ioctl"); + free(setsigc); # ifndef MINIX moresigc.t_suspc=26; /* stopping */ moresigc.t_dsuspc=25; /* delayed stopping */ //E*O*F main.cdif// exit 0