--- ../mutt-0.89i/system.c Fri Jan 23 07:08:56 1998 +++ system.c Wed Jan 28 10:42:40 1998 @@ -60,7 +60,11 @@ sigaction (SIGTSTP, &act, &oldtstp); sigaction (SIGCONT, &act, &oldcont); +#ifdef AMIGA + if ((thepid = vfork ()) == 0) +#else if ((thepid = fork ()) == 0) +#endif { /* reset signals for the child */ sigaction (SIGINT, &act, NULL); @@ -69,7 +73,11 @@ if (flags & M_DETACH_PROCESS) { setsid (); +#ifdef AMIGA + switch (vfork ()) +#else switch (fork ()) +#endif { case 0: sigaction (SIGCHLD, &act, NULL); --- ../mutt-0.89i/init.c Fri Jan 23 07:08:55 1998 +++ init.c Wed Jan 28 10:46:39 1998 @@ -35,6 +30,10 @@ #include #include +#ifdef AMIGA +# include "getenv.c" /* getenv of ixemul.library is buggy */ +#endif + void set_quadoption (int opt, int flag) { QuadOptions &= ~(0x3 << (2 * opt)); /* first clear the bits */ --- ../mutt-0.89i/mh.c Fri Jan 23 07:08:56 1998 +++ mh.c Tue Jan 27 22:29:58 1998 @@ -95,7 +93,13 @@ h->old = isOld; +#ifdef AMIGA +/* ':' is volume separator and cannot be used in filenames */ +/* we're using ';' to be consistent with qmail port */ + if ((p = strchr (h->path, ';')) != NULL && strncmp (p + 1, "2,", 2) == 0) +#else if ((p = strchr (h->path, ':')) != NULL && strncmp (p + 1, "2,", 2) == 0) +#endif /* AMIGA */ { p += 3; while (*p) @@ -227,7 +231,11 @@ if (hdr && (hdr->flagged || hdr->replied || hdr->read)) { +#ifdef AMIGA + sprintf (suffix, ";2,%s%s%s", +#else sprintf (suffix, ":2,%s%s%s", +#endif /* AMIGA */ hdr->flagged ? "F" : "", hdr->replied ? "R" : "", hdr->read ? "S" : ""); @@ -269,11 +277,20 @@ strcat (newpath, p); /* kill the previous flags */ +#ifdef AMIGA +/* beaware of the dreaded ':' */ + if ((p = strchr (newpath, ';')) != NULL) *p = 0; +#else if ((p = strchr (newpath, ':')) != NULL) *p = 0; +#endif /* AMIGA */ if (h->replied || h->read || h->flagged) { +#ifdef AMIGA + strcat (newpath, ";2,"); +#else strcat (newpath, ":2,"); +#endif /* AMIGA */ if (h->flagged) strcat (newpath, "F"); if (h->replied) strcat (newpath, "R"); if (h->read) strcat (newpath, "S"); --- ../mutt-0.89i/filter.c Fri Jan 23 07:08:55 1998 +++ filter.c Tue Jan 27 22:29:55 1998 @@ -73,7 +73,11 @@ mutt_block_signals_system (); +#ifdef AMIGA + if ((thepid = vfork ()) == 0) +#else if ((thepid = fork ()) == 0) +#endif /* AMIGA */ { mutt_unblock_signals_system (0);