diff -c2 tin121/Makefile.ami amitin/Makefile.ami *** tin121/Makefile.ami Fri Jul 16 09:30:30 1993 --- amitin/Makefile.ami Mon Aug 09 11:29:29 1993 *************** *** 1,5 **** CC = sc LD = $(CC) ! LFLAGS = link >nil: startup=cres EXE = tin MAKE = smake --- 1,5 ---- CC = sc LD = $(CC) ! LFLAGS = link startup=cres EXE = tin MAKE = smake *************** *** 8,21 **** LIBS = ! CFLAGS = optimize stringmerge nostkchk parm=register optinlocal \ DEFINE M_AMIGA DEFINE SYSV DEFINE NO_SHELL_ESCAPE DEFINE NO_PIPING \ DEFINE SLOW_SCREEN_UPDATE DEFINE AMIGA_BBS DEFINE LIBDIR="uulib:" \ ! DEFINE DONT_LOG_USER DEFINE SPOOLDIR="uunews:" DEFINE MEM_POOL ! HFILES = config.h tin.h extern.h nntplib.h proto.h amiga.h os2.h win32.h CFILES = active.c amiga.c art.c curses.c debug.c envarg.c feed.c getline.c \ group.c hashstr.c help.c inews.c init.c kill.c lang.c mail.c \ ! main.c memory.c misc.c newsrc.c nntplib.c open.c os2.c page.c \ parsdate.y post.c prompt.c rcfile.c save.c screen.c search.c \ select.c sigfile.c signal.c spooldir.c strftime.c thread.c \ --- 8,22 ---- LIBS = ! CFLAGS = optimize stringmerge nostkchk parm=register gst=tin.gst\ DEFINE M_AMIGA DEFINE SYSV DEFINE NO_SHELL_ESCAPE DEFINE NO_PIPING \ DEFINE SLOW_SCREEN_UPDATE DEFINE AMIGA_BBS DEFINE LIBDIR="uulib:" \ ! DEFINE DONT_LOG_USER DEFINE SPOOLDIR="uunews:" DEFINE USE_MEMORY_POOL ! HFILES1 = config.h tin.h extern.h nntplib.h proto.h amiga.h os_2.h win32.h ! HFILES = tin.gst $(HFILES1) CFILES = active.c amiga.c art.c curses.c debug.c envarg.c feed.c getline.c \ group.c hashstr.c help.c inews.c init.c kill.c lang.c mail.c \ ! main.c memory.c misc.c newsrc.c nntplib.c open.c os_2.c page.c \ parsdate.y post.c prompt.c rcfile.c save.c screen.c search.c \ select.c sigfile.c signal.c spooldir.c strftime.c thread.c \ *************** *** 24,28 **** OFILES = active.o amiga.o art.o curses.o debug.o envarg.o feed.o getline.o \ group.o hashstr.o help.o inews.o init.o kill.o lang.o mail.o \ ! main.o memory.o misc.o newsrc.o nntplib.o open.o os2.o page.o \ parsdate.o post.o prompt.o rcfile.o save.o screen.o search.o \ select.o sigfile.o signal.o spooldir.o strftime.o thread.o \ --- 25,29 ---- OFILES = active.o amiga.o art.o curses.o debug.o envarg.o feed.o getline.o \ group.o hashstr.o help.o inews.o init.o kill.o lang.o mail.o \ ! main.o memory.o misc.o newsrc.o nntplib.o open.o os_2.o page.o \ parsdate.o post.o prompt.o rcfile.o save.o screen.o search.o \ select.o sigfile.o signal.o spooldir.o strftime.o thread.o \ *************** *** 42,45 **** --- 43,49 ---- $(LD) actived $(LIBS) + tin.gst: $(HFILES1) + $(CC) $(CFLAGS) makegst=tin.gst gst.h + active.o: active.c $(HFILES) amiga.o: amiga.c $(HFILES) *************** *** 64,68 **** nntplib.o: nntplib.c $(HFILES) open.o: open.c $(HFILES) patchlev.h ! os2.o: os2.c $(HFILES) page.o: page.c $(HFILES) parsdate.o: parsdate.y $(HFILES) --- 68,72 ---- nntplib.o: nntplib.c $(HFILES) open.o: open.c $(HFILES) patchlev.h ! os_2.o: os_2.c $(HFILES) page.o: page.c $(HFILES) parsdate.o: parsdate.y $(HFILES) diff -c2 tin121/README.AMI amitin/README.AMI *** tin121/README.AMI Fri Jul 16 09:30:28 1993 --- amitin/README.AMI Sat Jul 31 11:58:17 1993 *************** *** 25,28 **** --- 25,33 ---- of the recipient of the mail. + Printing is now available. You will have to edit the .tin/tinrc file to + enable it. The "default_printer" string should be set to "copy PIPE: PRT:" + instead of its default setting. This option has not been added to the + internal menu of configurable options. + The editor you use with TIN should not return instantly, so if you are using CED or TTX (or probably some others too) you will need to also add *************** *** 65,71 **** version: ! - Printing, and archive extraction. Note that 1.1 PL 9 has now enabled ! uudecoding and un-shar'ing of posted archives. This requires "uudecode" and ! "unshar" to be in the path. - Shell escape and piping to any shell command. --- 70,76 ---- version: ! - Archive extraction. Note that 1.1 PL 9 has now enabled uudecoding and ! un-shar'ing of posted archives. This requires "uudecode" and "unshar" to ! be in the path. - Shell escape and piping to any shell command. diff -c2 tin121/actived.c amitin/actived.c *** tin121/actived.c Tue Jul 20 08:04:40 1993 --- amitin/actived.c Sat Jul 31 06:51:40 1993 *************** *** 61,65 **** x = 0; } ! fprintf (active, "%s %05d 00001 y\n", groupname, x); numgroups++; } --- 61,65 ---- x = 0; } ! fprintf (active, "%s %05ld 00001 y\n", groupname, x); numgroups++; } diff -c2 tin121/amiga.c amitin/amiga.c *** tin121/amiga.c Tue Jul 20 08:04:40 1993 --- amitin/amiga.c Sat Jul 31 10:35:09 1993 *************** *** 135,139 **** if (mode[0] == 'w') { ! sprintf (cmd, "run %s NIL: %s", command); Execute (cmd, 0L, 0L); return fopen ("PIPE:", mode); diff -c2 tin121/curses.c amitin/curses.c *** tin121/curses.c Tue Jul 20 08:04:42 1993 --- amitin/curses.c Sat Jul 31 06:57:21 1993 *************** *** 38,42 **** #define VERY_LONG_STRING 2500 ! #if defined(M_AMIGA) || defined(COHERENT) || defined(BSD) # ifndef BSD4_1 # include --- 38,42 ---- #define VERY_LONG_STRING 2500 ! #if (defined(M_AMIGA) && !defined(__SASC)) || defined(COHERENT) || defined(BSD) # ifndef BSD4_1 # include *************** *** 70,74 **** #endif ! #if defined(M_AMIGA) || defined(BSD) || defined(MINIX) # ifdef TCGETA # undef TCGETA --- 70,74 ---- #endif ! #if (defined(M_AMIGA) && !defined(__SASC)) || defined(BSD) || defined(MINIX) # ifdef TCGETA # undef TCGETA *************** *** 82,97 **** _original_tty; #else ! # if defined(HAVE_TERMIOS_H) || defined(sinix) ! # ifndef TCGETA ! # define TCGETA STCGETA ! # endif ! # ifndef TCSETA ! # define TCSETAW STCSETAW ! # endif struct termios _raw_tty, _original_tty; ! # else struct termio _raw_tty, _original_tty; # endif #endif --- 82,99 ---- _original_tty; #else ! # ifndef M_AMIGA ! # if defined(HAVE_TERMIOS_H) || defined(sinix) ! # ifndef TCGETA ! # define TCGETA STCGETA ! # endif ! # ifndef TCSETA ! # define TCSETAW STCSETAW ! # endif struct termios _raw_tty, _original_tty; ! # else struct termio _raw_tty, _original_tty; + # endif # endif #endif *************** *** 116,121 **** static int in_inverse; /* 1 when in inverse, 0 otherwise */ ! int outchar (); /* char output for tputs */ ! #endif /* INDEX_DAEMON */ --- 118,126 ---- static int in_inverse; /* 1 when in inverse, 0 otherwise */ ! #if __STDC__ ! int outchar (int c); /* char output for tputs */ ! #else ! int outchar (); ! #endif #endif /* INDEX_DAEMON */ *************** *** 734,738 **** --- 739,752 ---- result = read (0, &ch, 1); # endif + # ifdef AMIGA + if (result <= 0) { + /* TIN doesn't check for EOF everywhere */ + signal_handler(SIGINT); + return EOF; + } + return (ch & 0xFF); + # else return((result <= 0 ) ? EOF : ch & 0xFF); + # endif #endif diff -c2 tin121/extern.h amitin/extern.h *** tin121/extern.h Tue Jul 20 08:04:44 1993 --- amitin/extern.h Sat Jul 31 08:55:52 1993 *************** *** 38,42 **** extern int setuid (int uid); extern int tgetent (char *bp, char *name); ! extern int tputs (register char *cp, int count, int (*outc)()); extern int unlink (char *path); --- 38,42 ---- extern int setuid (int uid); extern int tgetent (char *bp, char *name); ! extern int tputs (register char *cp, int count, int (*outc)(int)); extern int unlink (char *path); *************** *** 336,339 **** --- 336,340 ---- extern char txt_help_start_editor_offset[]; extern char txt_help_t[]; + extern char txt_help_tab_next_unread[]; extern char txt_help_t_0[]; extern char txt_help_t_4[]; *************** *** 444,447 **** --- 445,449 ---- extern char txt_opt_sort_type[]; extern char txt_opt_start_editor_offset[]; + extern char txt_opt_tab_next_unread[]; extern char txt_opt_thread_arts[]; extern char txt_option_not_enabled[]; diff -c2 tin121/group.c amitin/group.c *** tin121/group.c Tue Jul 20 08:04:44 1993 --- amitin/group.c Mon Aug 09 11:27:38 1993 *************** *** 31,36 **** --- 31,41 ---- static char *spaces = "XXXX"; + #if __STDC__ + static int bld_sline (int i); + static int draw_sline (int i, int full); + #else static int bld_sline (); static int draw_sline (); + #endif #ifndef ART_ADJUST /* what we do here is bizarre */ *************** *** 1415,1418 **** --- 1420,1424 ---- char new_resps[8]; char art_cnt[8]; + char art_lines[8]; struct art_stat_t sbuf; *************** *** 1434,1437 **** --- 1440,1449 ---- } + if (active[my_group[cur_groupnum]].attribute.thread_arts != 1) { + sprintf (art_lines, "[%4d]", arts[respnum].lines); + } else { + strcpy (art_lines, " "); + } + if (n) { sprintf (art_cnt, "%-3d", n); *************** *** 1445,1451 **** j = INDEX2SNUM(i); ! sprintf (screen[j].col, " %4d%3s %s%-*.*s%s%-*.*s", ! i+1, new_resps, art_cnt, len_subj, len_subj, ! arts[respnum].subject, spaces, len_from, len_from, from); #endif /* INDEX_DAEMON */ --- 1457,1474 ---- j = INDEX2SNUM(i); ! /* format is: ! * [artnum] [tag ind.] [num in thread] [subject] [from] when threaded ! * [artnum] [tag ind.] [subject] [lines] [from] when unthreaded ! */ ! ! if (active[my_group[cur_groupnum]].attribute.thread_arts != 1) { ! sprintf (screen[j].col, " %4d%3s %-*.*s%s %s %-*.*s", ! i+1, new_resps, len_subj, len_subj, arts[respnum].subject, ! spaces, art_lines, len_from-5, len_from-5, from); ! } else { ! sprintf (screen[j].col, " %4d%3s %s%-*.*s%s%-*.*s", ! i+1, new_resps, art_cnt, len_subj, len_subj, ! arts[respnum].subject, spaces, len_from, len_from, from); ! } #endif /* INDEX_DAEMON */ Only in amitin: gst.h diff -c2 tin121/hashstr.c amitin/hashstr.c *** tin121/hashstr.c Tue Jul 20 08:04:44 1993 --- amitin/hashstr.c Sat Jul 31 07:33:04 1993 *************** *** 81,88 **** struct hashnode *p; p = (struct hashnode *) my_malloc ((unsigned) sizeof (struct hashnode)); p->next = (struct hashnode *) 0; - iptr = (int *) my_malloc ((unsigned) strlen (s) + sizeof (int) + 1); *iptr++ = -1; p->s = (char *) iptr; --- 81,94 ---- struct hashnode *p; + #ifdef USE_MEMORY_POOL + p = (struct hashnode *) pool_malloc ((unsigned) sizeof (struct hashnode) + + strlen(s) + sizeof (int) + 1, MP_HASHSTR); + iptr = (int *)&p[1]; + #else p = (struct hashnode *) my_malloc ((unsigned) sizeof (struct hashnode)); + iptr = (int *) my_malloc ((unsigned) strlen (s) + sizeof (int) + 1); + #endif p->next = (struct hashnode *) 0; *iptr++ = -1; p->s = (char *) iptr; *************** *** 110,113 **** --- 116,120 ---- for (i = 0; i < HASHNODE_TABLE_SIZE; i++) if (table[i] != (struct hashnode *) 0) { + #ifndef USE_MEMORY_POOL p = table[i]; while (p != (struct hashnode *) 0) { *************** *** 121,125 **** --- 128,136 ---- p = next; } + #endif table[i] = (struct hashnode *) 0; } + #ifdef USE_MEMORY_POOL + pool_free(MP_HASHSTR); + #endif } diff -c2 tin121/inews.c amitin/inews.c *** tin121/inews.c Tue Jul 20 08:04:46 1993 --- amitin/inews.c Thu Jul 22 03:47:28 1993 *************** *** 398,402 **** #endif /* M_UNIX */ ! ret_code = (invoke_cmd (buf) ? 0 : 1); } --- 398,402 ---- #endif /* M_UNIX */ ! ret_code = (invoke_cmd (buf) ? 1 : 0); } diff -c2 tin121/lang.c amitin/lang.c *** tin121/lang.c Tue Jul 20 08:04:46 1993 --- amitin/lang.c Sat Jul 31 08:52:48 1993 *************** *** 437,440 **** --- 437,441 ---- char txt_opt_process_type[] = "14 Process type : "; char txt_opt_sort_type[] = "15 Sort article by : "; + char txt_opt_tab_next_unread[] = "16 TAB behaviour : "; char txt_opt_savedir[] = "16 Save directory : "; char txt_opt_maildir[] = "17 Mail directory : "; *************** *** 479,482 **** --- 480,484 ---- char txt_help_post_proc_type[] = "Post process (ie. unshar) saved article/thread. toggles & sets."; char txt_help_sort_type[] = "Sort articles by Subject, From or Date fields. toggles & sets."; + char txt_help_tab_next_unread[] = "TAB moves to next unread article. toggles & sets."; char txt_help_savedir[] = "The directory where you want articles/threads saved."; char txt_help_maildir[] = "The directory where articles/threads are to be saved in mailbox format."; diff -c2 tin121/mail.c amitin/mail.c *** tin121/mail.c Tue Jul 20 08:04:46 1993 --- amitin/mail.c Sat Jul 31 07:39:16 1993 *************** *** 243,247 **** --- 243,251 ---- if (i >= 0 && active[i].description == (char *) 0) { + #ifdef USE_MEMORY_POOL + active[i].description = pool_str_dup (p, MP_ACTIVE); + #else active[i].description = str_dup (p); + #endif if (active[i].type == GROUP_TYPE_NEWS) { if (fp_save && read_news_via_nntp && diff -c2 tin121/memory.c amitin/memory.c *** tin121/memory.c Tue Jul 20 08:04:48 1993 --- amitin/memory.c Sat Jul 31 08:29:10 1993 *************** *** 315,319 **** --- 315,323 ---- if (active != (struct group_t *) 0) { /* active[] */ + #ifdef USE_MEMORY_POOL + pool_free(MP_ACTIVE); + #endif for (i=0 ; i < num_active ; i++) { + #ifndef USE_MEMORY_POOL if (active[i].name != (char *) 0) { free ((char *) active[i].name); *************** *** 324,327 **** --- 328,332 ---- active[i].description = (char *) 0; } + #endif if (active[i].type == GROUP_TYPE_MAIL && active[i].spooldir != (char *) 0) { *************** *** 492,496 **** char *pool_malloc (size, pn) ! int size; int pn; { --- 497,501 ---- char *pool_malloc (size, pn) ! unsigned int size; int pn; { diff -c2 tin121/misc.c amitin/misc.c *** tin121/misc.c Tue Jul 20 08:04:48 1993 --- amitin/misc.c Wed Jul 21 06:30:09 1993 *************** *** 1454,1458 **** switch (*++format) { case '/': /* users homedir */ ! sprintf (tbuf, "%s/", homedir); break; default: /* some other users homedir */ --- 1454,1458 ---- switch (*++format) { case '/': /* users homedir */ ! joinpath (tbuf, homedir, ""); break; default: /* some other users homedir */ *************** *** 1527,1531 **** */ if (startp == format && maildir != (char *) 0) { ! sprintf (tbuf, "%s/", maildir); i = strlen (tbuf); if (i) { --- 1527,1531 ---- */ if (startp == format && maildir != (char *) 0) { ! joinpath(tbuf, maildir, ""); i = strlen (tbuf); if (i) { *************** *** 1562,1566 **** tmp[0] = tmp[0] - 32; } ! sprintf (tbuf, "%s/%s/", buf, tmp); i = strlen (tbuf); if (i) { --- 1562,1567 ---- tmp[0] = tmp[0] - 32; } ! joinpath(tbuf, buf, tmp); ! strcat (tbuf, "/"); i = strlen (tbuf); if (i) { diff -c2 tin121/nntplib.h amitin/nntplib.h *** tin121/nntplib.h Tue Jul 20 08:04:50 1993 --- amitin/nntplib.h Sat Jul 31 08:36:39 1993 *************** *** 30,33 **** --- 30,34 ---- */ + #if 0 extern char *getserverbyfile(); /* extern int server_init(); */ *************** *** 37,40 **** --- 38,42 ---- extern int get_server(); extern void close_server(); + #endif /* Only in amitin: parsdate.c diff -c2 tin121/post.c amitin/post.c *** tin121/post.c Tue Jul 20 08:04:52 1993 --- amitin/post.c Sat Jul 31 07:49:08 1993 *************** *** 67,73 **** posted[i].action = buf[j]; j += 2; ! for (k=j,j=0 ; buf[k] != '|' && buf[k] != ',' ; k++, j++) { ! if (j < sizeof (posted[i].group)) { ! posted[i].group[j] = buf[k]; } } --- 67,74 ---- posted[i].action = buf[j]; j += 2; ! for (k=j,j=0 ; buf[k] != '|' && buf[k] != ',' ; k++) { ! /* don't overrun string size - leave room for the ,... */ ! if (j < sizeof (posted[i].group)-5) { ! posted[i].group[j++] = buf[k]; } } *************** *** 83,89 **** posted[i].group[j++] = '\0'; k++; ! for (j=k,k=0 ; buf[j] != '\n' ; j++, k++) { ! if (k < sizeof (posted[i].subj)) { ! posted[i].subj[k] = buf[j]; } } --- 84,90 ---- posted[i].group[j++] = '\0'; k++; ! for (j=k,k=0 ; buf[j] != '\n' ; j++) { ! if (k < sizeof (posted[i].subj)-1) { ! posted[i].subj[k++] = buf[j]; } } *************** *** 1121,1125 **** #endif fprintf (fp, "\nCFG1: active=%d arts=%d reread=%d longfilenames=%d setuid=%d\n", ! DEFAULT_ACTIVE_NUM, DEFAULT_ARTICLE_NUM, reread_active_file_secs, --- 1122,1126 ---- #endif fprintf (fp, "\nCFG1: active=%d arts=%d reread=%d longfilenames=%d setuid=%d\n", ! max_active, DEFAULT_ARTICLE_NUM, reread_active_file_secs, diff -c2 tin121/proto.h amitin/proto.h *** tin121/proto.h Tue Jul 20 08:04:52 1993 --- amitin/proto.h Sat Jul 31 08:15:04 1993 *************** *** 157,160 **** --- 157,165 ---- extern char *my_malloc(unsigned size); extern char *my_realloc(char *p, unsigned size); + #ifdef USE_MEMORY_POOL + extern char *pool_malloc(unsigned size, int pool); + extern void pool_free(int pool); + extern char *pool_str_dup(char *str, int pool); + #endif /* misc.c */ extern void asfail(char *file, int line, char *cond); *************** *** 587,590 **** --- 592,600 ---- extern char *my_malloc(); extern char *my_realloc(); + #ifdef USE_MEMORY_POOL + extern char *pool_malloc(); + extern void pool_free(); + extern char *pool_str_dup(); + #endif /* misc.c */ extern void asfail(); diff -c2 tin121/rcfile.c amitin/rcfile.c *** tin121/rcfile.c Tue Jul 20 08:04:54 1993 --- amitin/rcfile.c Sat Jul 31 07:54:33 1993 *************** *** 788,792 **** } break; ! #ifndef AMIGA_BBS case 16: show_menu_help (txt_help_savedir); --- 788,797 ---- } break; ! #ifdef AMIGA_BBS ! case 16: /* TAB goes to next unread or pages */ ! prompt_on_off (INDEX_TOP+12, COL1, &tab_goto_next_unread, ! txt_help_tab_next_unread, txt_opt_tab_next_unread); ! break; ! #else case 16: show_menu_help (txt_help_savedir); *************** *** 914,918 **** printf ("%s%s\r\n\r\n", txt_opt_sort_type, str); ! #ifndef AMIGA_BBS printf ("%s%s\r\n\r\n", txt_opt_savedir, default_savedir); printf ("%s%s\r\n\r\n", txt_opt_maildir, default_maildir); --- 919,925 ---- printf ("%s%s\r\n\r\n", txt_opt_sort_type, str); ! #ifdef AMIGA_BBS ! printf ("%s%s\r\n\r\n",txt_opt_tab_next_unread, (tab_goto_next_unread ? "ON" : "OFF")); ! #else printf ("%s%s\r\n\r\n", txt_opt_savedir, default_savedir); printf ("%s%s\r\n\r\n", txt_opt_maildir, default_maildir); diff -c2 tin121/signal.c amitin/signal.c *** tin121/signal.c Tue Jul 20 08:04:56 1993 --- amitin/signal.c Sat Jul 31 09:14:05 1993 *************** *** 67,70 **** --- 67,71 ---- #ifdef HAVE_SIGTYPE_VOID signal (sig, func); + return (sigtype_t (*)())NULL; #endif } *************** *** 173,176 **** --- 174,181 ---- #ifdef SIGINT case SIGINT: + # ifdef AMIGA /* SAS-C supports this. We treat it like quit */ + sigtext = "SIGINT "; + break; + # else if (update) { sigtext = "SIGINT "; *************** *** 180,183 **** --- 185,189 ---- } break; + # endif #endif #ifdef SIGQUIT diff -c2 tin121/strftime.c amitin/strftime.c *** tin121/strftime.c Tue Jul 20 08:04:56 1993 --- amitin/strftime.c Sat Jul 31 07:55:41 1993 *************** *** 253,257 **** if (s < endp && *format == '\0') { *s = '\0'; ! return (s - start); } else return 0; --- 253,257 ---- if (s < endp && *format == '\0') { *s = '\0'; ! return (size_t) (s - start); } else return 0; diff -c2 tin121/thread.c amitin/thread.c *** tin121/thread.c Tue Jul 20 08:04:56 1993 --- amitin/thread.c Wed Jul 21 06:10:11 1993 *************** *** 30,33 **** --- 30,36 ---- #define MARK_OFFSET 8 + #if __STDC__ + static int bld_tline (int l, int i); + #endif static int bld_tline (l, i) *************** *** 101,104 **** --- 104,110 ---- } + #if __STDC__ + static int draw_tline (int i, int full); + #endif static int draw_tline (i, full) Only in amitin: tin Only in amitin: tin.gst Only in amitin: tin.gst.info diff -c2 tin121/tin.h amitin/tin.h *** tin121/tin.h Tue Jul 20 08:04:58 1993 --- amitin/tin.h Sat Jul 31 10:29:25 1993 *************** *** 315,319 **** # define DEFAULT_MAILBOX "uumail:" # define DEFAULT_POSTER "uucp:c/postnews %s" ! # define DEFAULT_PRINTER "c:type" /* Not Yet Implemented */ # define DEFAULT_SHELL "c:newshell" /* Not Yet Implemented */ # define DEFAULT_UUDECODE "uudecode %s" --- 315,319 ---- # define DEFAULT_MAILBOX "uumail:" # define DEFAULT_POSTER "uucp:c/postnews %s" ! # define DEFAULT_PRINTER "c:copy PIPE: NIL:" # define DEFAULT_SHELL "c:newshell" /* Not Yet Implemented */ # define DEFAULT_UUDECODE "uudecode %s" Only in amitin: tin.info Only in amitin: tin.lnk Only in amitin: tind Only in amitin: tind.info Only in amitin: tind.lnk