home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / SYSOP / MODS1.ZIP / BEAM209A.MOD < prev    next >
Text File  |  1995-08-22  |  19KB  |  731 lines

  1. Beamer #7 @2148
  2. Sat Aug 19 11:28:07 1995
  3. ╔═══════════════════════════════════════════════════════════════════════════╗
  4. ║ Mod Name:    : BEAM209A.MOD                                               ║
  5. ║ Difficulty   : ▓░░░░░░░░░                                                 ║
  6. ║ WWIV Version : 4.24                                                       ║
  7. ║ Version Date : 08/18/95                                                   ║
  8. ║ Description  : This mod will give you (The local SysOp) and all the users ║
  9. ║                a different way to upload files with this new Full screen  ║
  10. ║                ANSI setup. Real cool mod, VERY easy to install.           ║
  11. ║                Ansi Included!                                             ║
  12. ╚═══════════════════════════════════════════════════════════════════════════╝
  13.  
  14. ┌───────────────────────────────────────────────────────────────────────────┐
  15. │ Legend:                                                                   │
  16. │                                                                           │
  17. │  - Commeny out or delete                                                  │
  18. │  + Add this                                                               │
  19. │  = Leave alone                                                            │
  20. │  @ Change this                                                            │
  21. └───────────────────────────────────────────────────────────────────────────┘
  22.  
  23. ┌───────────────────────────────────────────────────────────────────────────┐
  24. │ NOTE:   WATCH FOR LINE WRAPS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! │
  25. │                                                                           │
  26. │ -=*=-   You MUST have the 'Use FSED for ext. descriptions' turned toggled │
  27. │         ON in your WWIV.INI setup...                                      │
  28. │                                                                           │
  29. │ Example:                                                                  │
  30. │ FSED_EXT_DESC         = YES        ; allow fsed for extended descriptions │
  31. └───────────────────────────────────────────────────────────────────────────┘
  32.  
  33. ─────────────────────────────────────────────────────────────────────────────
  34. Step 0:   Dahhhhh!!!
  35. ─────────────────────────────────────────────────────────────────────────────
  36.  
  37. ─────────────────────────────────────────────────────────────────────────────
  38. Step 1:   If you do not have this yet, please add this to the end of
  39.       BBSOVL2.C
  40. ─────────────────────────────────────────────────────────────────────────────
  41.  
  42. void noabort(unsigned char *fn)
  43. {
  44.   int oic;
  45.  
  46.   if (using_modem) {
  47.     oic=incom;
  48.     incom=0;
  49.     dump();
  50.   }
  51.   existprint(fn);
  52.   if (using_modem) {
  53.     dump();
  54.     incom=oic;
  55.   }
  56. }
  57.  
  58. ─────────────────────────────────────────────────────────────────────────────
  59. Step 2:   Add these to the end of COM.C
  60. ─────────────────────────────────────────────────────────────────────────────
  61.  
  62. int new_yn(void)
  63. {
  64.   char ch=0;
  65.  
  66.   ansic(4);
  67.   while ((!hangup) && ((ch = upcase(getkey())) != *str_yes) &&
  68.     (ch != *str_no) && (ch != 13));
  69.   ansic(4);
  70.   if (ch==*str_yes)
  71.     print_yn(2);
  72.   else
  73.     print_yn(3);
  74.   return(ch == *str_yes);
  75. }
  76.  
  77.  
  78. char ynq2(void)
  79. {
  80.   char ch=0;
  81.   ansic(4);
  82.   while ((!hangup) &&
  83.      ((ch = upcase(getkey())) != *str_yes) &&
  84.      (ch != *str_no) &&
  85.      (ch != *str_quit) &&
  86.      (ch != 13)) ;
  87.   ansic(4);
  88.   if (ch==*str_yes) {
  89.     ch='Y';
  90.     print_yn2(2);
  91.   } else if (ch==*str_quit) {
  92.     ch='Q';
  93.     outstr(str_quit);
  94.   } else {
  95.     ch='N';
  96.     print_yn2(3);
  97.   }
  98.   return(ch);
  99. }
  100.  
  101. ─────────────────────────────────────────────────────────────────────────────
  102. Step 3:   Load XFEROVL2.C and search for: 'void upload(int dn)' and Replace
  103.       it with the one I provided...
  104. ─────────────────────────────────────────────────────────────────────────────
  105.  
  106. void maybe_extended_description(char **sss, char *dest, char *title)
  107. {
  108.   char s[161],s1[161];
  109.   int f,ii,i,i1,i2,i3;
  110.  
  111.   if (*sss)
  112.     ii=1;
  113.   else
  114.     ii=0;
  115.   do {
  116.     if (ii) {
  117.       goxy(5,17);
  118.       npr("4%s", charstr(70,' '));
  119.       goxy(5,18);
  120.       npr("4%s", charstr(70,' '));
  121.       goxy(5,13);
  122.       npr("4%s", charstr(70,' '));
  123.       goxy(5,13);
  124.       prt(4,get_string(734));//Modify extended description?
  125.       if (!new_yn())
  126.     return;
  127.     } else {
  128.       goxy(5,13);
  129.       npr("4%s", charstr(70,' '));
  130.       goxy(5,13);
  131.       prt(4,"Enter an extended description? ");
  132.       if (!new_yn())
  133.     return;
  134.     }
  135.     CLS();
  136.     sprintf(s,"%sEXTENDED.DSC", syscfgovr.tempdir);
  137.     if (*sss) {
  138.       f=sh_open(s,O_RDWR | O_BINARY | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE);
  139.       sh_write(f,*sss,strlen(*sss));
  140.       sh_close(f);
  141.       bbsfree(*sss);
  142.       *sss=NULL;
  143.     } else
  144.       unlink(s);
  145.     i=thisuser.screenchars;
  146.     if (thisuser.screenchars>(76-INDENTION))
  147.       thisuser.screenchars=76-INDENTION;
  148.     i1=external_edit("extended.dsc",syscfgovr.tempdir,(int) thisuser.defed-1,
  149.       sysinfo.max_extend_lines, dest, title, 1);
  150.     thisuser.screenchars=i;
  151.     if (i1) {
  152.       if ((*sss=malloca(10240))==NULL)
  153.     return;
  154.       f=sh_open1(s,O_RDWR | O_BINARY);
  155.       sh_read(f,*sss,(int) filelength(f));
  156.       (*sss)[filelength(f)]=0;
  157.       sh_close(f);
  158.     }
  159.     for (i3=strlen(*sss)-1; i3>=0; i3--)
  160.        if ((*sss)[i3]==1)
  161.      (*sss)[i3]=' ';
  162.  
  163.     nln(2);
  164.     prt(5,get_string(740));//Is this what you want?
  165.     i=!yn();
  166.     if (i) {
  167.       CLS();
  168.       nln(2);
  169.       bbsfree(*sss);
  170.       *sss=NULL;
  171.     }
  172.   } while (i);
  173. }
  174.  
  175.  
  176. void upload(int dn)
  177. {
  178.   directoryrec d;
  179.   uploadsrec u,u1;
  180.   unsigned char ch;
  181.   int i,i1,i2,i3,i4,ok,xfer,f;
  182.   char s[255],s1[81],s2[81],*ss;
  183.   long l;
  184.   double ti;
  185.  
  186.   if ((numbatch!=0) && (numbatch-numbatchdl>0)) {
  187.     nln(2);
  188.     npr(get_string(1529));
  189.     if (ny()) {
  190.       batchdl(2);
  191.       return;
  192.     }
  193.   }
  194.   dliscan1(dn);
  195.   d=directories[dn];
  196.   if (numf>=d.maxfiles) {
  197.     nln(2);
  198.     prt(7,get_string(755));//This dir is full.
  199.     nl();
  200.     return;
  201.   }
  202.   if ((d.mask & mask_no_uploads) && (!dcs())) {
  203.     nln(2);
  204.     pl(get_string(756));//Upoads not allowed in this dir
  205.     nl();
  206.     return;
  207.   }
  208.   nl();
  209.   l=(long)freek1(d.path);
  210.  
  211.   if (l<100) {
  212.     nln(2);
  213.     pl(get_string(759));//not enough free space to upload
  214.     nl();
  215.     return;
  216.   }
  217.   if (menu_on()) {
  218.     rip_saveall();
  219.     printmenu(361);
  220.     input(s,12);
  221.     rip_restoreall();
  222.   } else {
  223.     if ((okansi()) && (!rip_on())) {
  224.       noabort("UL.ANS");
  225.       goxy(5,13);
  226.       prt(4,"Filename that you want to Upload:");
  227.       goxy(23,18);
  228.       prt(4,"Thank You For All Your New Uploads!");
  229.       goxy(39,13);
  230.       mpl(12);
  231.       input(s,12);
  232.     } else {
  233.       prt(2,get_string(44));//Filename:
  234.       input(s,12);
  235.     }
  236.   }
  237.   if (!okfn(s)) {
  238.     s[0]=0;
  239.     CLS();
  240.     ansic(0);
  241.   } else {
  242.     if (!is_uploadable(s)) {
  243.       if (so()) {
  244.     if ((okansi()) && (!rip_on())) {
  245.       goxy(5,13);
  246.       npr("4%s", charstr(70,' '));
  247.       goxy(5,13);
  248.       prt(4,get_string(1322));//In database, add anyway?
  249.     } else {
  250.       nl();
  251.       prt(7,get_string(1322));//In database, add anyway?
  252.     }
  253.     ch=ynq2();
  254.     if (ch=='N') {
  255.       s[0]=0;
  256.       CLS();
  257.       ansic(0);
  258.       nln(2);
  259.     } else if (ch=='Q') {
  260.       s[0]=0;
  261.       CLS();
  262.       ansic(0);
  263.       nln(2);
  264.     }
  265.       } else {
  266.     if ((okansi()) && (!rip_on())) {
  267.       goxy(5,18);
  268.       npr("4%s", charstr(70,' '));
  269.       goxy(14,18);
  270.       prt(4,get_string(1323));//That file is already here, Or not wanted!
  271.       goxy(33,22);
  272.       pausescr();
  273.       CLS();
  274.       ansic(0);
  275.     } else {
  276.       nl();
  277.       pl(get_string(1323));//That file is already here!
  278.     }
  279.     s[0]=0;
  280.       }
  281.     }
  282.   }
  283.   if (!s[0]) {
  284.     CLS();
  285.     ansic(0);
  286.     return;
  287.   }
  288.   align(s);
  289.   if (strchr(s,'?')) {
  290.     CLS();
  291.     ansic(0);
  292.     return;
  293.   }
  294.   if (d.mask & mask_archive) {
  295.     ok=0;
  296.     s1[0]=0;
  297.     for (i=0; i<4; i++) {
  298.       if (syscfg.arcs[i].extension[0] && syscfg.arcs[i].extension[0]!=' ') {
  299.     if (s1[0])
  300.       strcat(s1,", ");
  301.     strcat(s1,syscfg.arcs[i].extension);
  302.     if (strcmp(s+9,syscfg.arcs[i].extension)==0)
  303.       ok=1;
  304.       }
  305.     }
  306.     if (!ok) {
  307.       if ((okansi()) && (!rip_on())) {
  308.     goxy(5,18);
  309.     npr("4%s",charstr(70,' '));
  310.     goxy(7,17);
  311.     prt(4,"I'm sorry, but all Uploads to that directory MUST be Archived using");
  312.     goxy(21,18);
  313.     prt(4,"PKZIP.EXE / ARC.EXE / LZH.EXE / LHA.EXE");
  314.     goxy(33,22);
  315.     pausescr();
  316.     CLS();
  317.       } else {
  318.     nl();
  319.     pl(get_string(760));//sorry, all uploads to this dir must
  320.     pl(get_string(761));//be archived like the following:
  321.     pl(s1);
  322.     nl();
  323.       }
  324.       return;
  325.     }
  326.   }
  327.   strcpy(u.filename,s);
  328.   u.ownerusr=usernum;
  329.   u.ownersys=0;
  330.   u.numdloads=0;
  331.   u.filetype=0;
  332.   u.mask=0;
  333.   strcpy(u.upby,nam(&thisuser,usernum));
  334.   strcpy(u.date,date());
  335.   if ((okansi()) && (!rip_on())) {
  336.     ok=1;
  337.   } else {
  338.     nl();
  339.     ok=1;
  340.   }
  341.   xfer=1;
  342.   if (check_batch_queue(u.filename)) {
  343.     if ((okansi()) && (!rip_on())) {
  344.       ok=0;
  345.       goxy(5,18);
  346.       npr("4%s",charstr(70,' '));
  347.       goxy(5,17);
  348.       npr("4%s",charstr(70,' '));
  349.       goxy(20,18);
  350.       prt(4,get_string(762));//That file already in batch queue.
  351.       goxy(33,22);
  352.       pausescr();
  353.       CLS();
  354.     } else {
  355.       ok=0;
  356.       nl();
  357.       pl(get_string(762));//That file already in batch queue.
  358.       nl();
  359.     }
  360.   } else {
  361.     sprintf(s1,"%s 7'2%s7' %s 3%s2? ",get_string(757), s,
  362.         get_string(763),d.name);//U/L 'FILE.EXT' to xxx dir?
  363.     sprintf(s2,"Upload '%s' to %s? ",s,d.name);//U/L 'FILE.EXT' to xxx dir?
  364.     if (strcmp(s,"        .   ")) {
  365.       if ((okansi()) && (!rip_on())) {
  366.     goxy(5,13);
  367.     npr("4%s", charstr(70,' '));
  368.     goxy(5,13);
  369.     prt(4,s2);
  370.       } else {
  371.     prt(7,s1);
  372.       }
  373.     } else {
  374.       ok=0;
  375.       CLS();
  376.       ansic(0);
  377.     }
  378.   }
  379.   if ((ok) && (new_yn())) {
  380.     sprintf(s1,"%s%s",d.path,s);
  381.     if (exist(s1)) {
  382.       if (dcs()) {
  383.     xfer=0;
  384.     if ((okansi()) && (!rip_on())) {
  385.       goxy(5,13);
  386.       npr("4%s", charstr(70,' '));
  387.       goxy(5,13);
  388.       prt(4,get_string(1322));//In database, add anyway?
  389.     } else {
  390.       nln(2);
  391.       pl(get_string(764));//Already exists
  392.       prt(7,get_string(765));//Add anyway?
  393.     }
  394.     if (new_yn()==0) {
  395.       ok=0;
  396.       CLS();
  397.       ansic(0);
  398.     }
  399.       } else {
  400.     if ((okansi()) && (!rip_on())) {
  401.       goxy(5,17);
  402.       npr("4%s",charstr(70,' '));
  403.       goxy(5,18);
  404.       npr("4%s",charstr(70,' '));
  405.       goxy(5,18);
  406.       prt(4,"Upload Aborted!  That file is already here!");
  407.       goxy(33,22);
  408.       pausescr();
  409.       CLS();
  410.     } else {
  411.       nln(2);
  412.       pl(get_string(766));//File is here already
  413.       nl();
  414.     }
  415.     ok=0;
  416.       }
  417.     } else
  418.       if (!incom) {
  419.     CLS();
  420.     nln(3);
  421.     pl(get_string(767));//File is not here already
  422.     pl(get_string(768));//Can't upload locally
  423.     nln(3);
  424.     ok=0;
  425.       }
  426.     if ((d.mask & mask_PD) && (ok)) {
  427.       if ((okansi()) && (!rip_on())) {
  428.     goxy(5,13);
  429.     npr("4%s", charstr(70,' '));
  430.     goxy(5,13);
  431.     prt(4,"Is the file Shareware or Freeware? ");
  432.       } else {
  433.     nl();
  434.     prt(5,get_string(769));//Is the file shareware?
  435.       }
  436.       if (!new_yn()) {
  437.     if ((okansi()) && (!rip_on())) {
  438.       goxy(5,17);
  439.       npr("4%s",charstr(70,' '));
  440.       goxy(5,18);
  441.       npr("4%s",charstr(70,' '));
  442.       goxy(5,17);
  443.       prt(4,"This directory is for Shareware or Freeware programs ONLY, Please don't");
  444.       goxy(5,18);
  445.       prt(4,"Upload Non-Public Domain files here, Leave SysOp E-mail if any question");
  446.       goxy(33,22);
  447.       pausescr();
  448.       CLS();
  449.     } else {
  450.       nl();
  451.       pl(get_string(770));
  452.       pl(get_string(771));
  453.       pl(get_string(772));
  454.       pl(get_string(773));
  455.       pl(get_string(774));
  456.       nl();
  457.     }
  458.     sprintf(s,get_stringx(1,41),u.filename);
  459.     add_ass(5,s);
  460.     ok=0;
  461.       } else
  462.     u.mask=mask_PD;
  463.     }
  464.     if (ok && (!(sysinfo.flags & OP_FLAGS_FAST_SEARCH))) {
  465.       if ((okansi()) && (!rip_on())) {
  466.     goxy(5,17);
  467.     npr("4%s",charstr(70,' '));
  468.     goxy(5,18);
  469.     npr("4%s",charstr(70,' '));
  470.     goxy(5,17);
  471.     prt(4,"Please hold,  Checking for same file in other directories...");
  472.       } else {
  473.     nl();
  474.     pl(get_string(775));//Checking for same file in other dirs
  475.     nl();
  476.       }
  477.       i2=0;
  478.       for (i=0; (i<num_dirs) && (udir[i].subnum!=-1); i++) {
  479.     strcpy(s,get_string(776));//Scanning
  480.     strcat(s,directories[udir[i].subnum].name);
  481.     for (i3=i4=strlen(s); i3<i2; i3++) {
  482.       s[i3]=' ';
  483.       s[i3+1]=0;
  484.     }
  485.     i2=i4;
  486.     if ((okansi()) && (!rip_on())) {
  487.       goxy(5,18);
  488.       npr("%s",s);
  489.     } else {
  490.       npr("%s\r",s);
  491.     }
  492.     dliscan1(udir[i].subnum);
  493.     i1=recno(u.filename);
  494.     if (i1>=0) {
  495.       if ((okansi()) && (!rip_on())) {
  496.         goxy(5,17);
  497.         npr("4%s",charstr(70,' '));
  498.         goxy(5,18);
  499.         npr("4%s",charstr(70,' '));
  500.         goxy(5,17);
  501.         prt(4,"Same file found on:");
  502.         goxy(5,18);
  503.         npr("%s",directories[udir[i].subnum].name);
  504.         goxy(33,22);
  505.         pausescr();
  506.         CLS();
  507.       } else {
  508.         nl();
  509.         outstr(get_string(777));//same file found on
  510.         pl(directories[udir[i].subnum].name);
  511.       }
  512.       if (dcs()) {
  513.         if ((okansi()) && (!rip_on())) {
  514.           goxy(5,13);
  515.           npr("4%s",charstr(70,' '));
  516.           prt(4,"Upload anyway? ");
  517.         } else {
  518.           nl();
  519.           prt(5,get_string(778));//Upload anyway?
  520.           nl();
  521.         }
  522.         if (!new_yn()) {
  523.           ok=0;
  524.           CLS();
  525.           ansic(0);
  526.           break;
  527.         }
  528.       } else {
  529.         ok=0;
  530.         CLS();
  531.         ansic(0);
  532.         break;
  533.       }
  534.     }
  535.       }
  536.       for (i1=0; i1<i2; i1++)
  537.     s[i1]=' ';
  538.       s[i1]=0;
  539.       npr("%s\r",s);
  540.       if (ok)
  541.     dliscan1(dn);
  542.     if (!okansi())
  543.       nl();
  544.     }
  545.     if (ok) {
  546.       if ((okansi()) && (!rip_on())) {
  547.     goxy(5,13);
  548.     npr("4%s",charstr(70,' '));
  549.     goxy(5,13);
  550.     prt(4,"Enter Description: ");
  551.     goxy(24,13);
  552.     mpl(50);
  553.     inputl(u.description,50);
  554.       } else {
  555.     nl();
  556.     pl(get_string(779));//Enter the discription
  557.     outstr(": ");
  558.     inputl(u.description,58);
  559.     nl();
  560.       }
  561.       ss=NULL;
  562.       if ((okansi()) && (!rip_on())) {
  563.     maybe_extended_description(&ss, directories[dn].name,u.filename);
  564.       } else {
  565.     modify_extended_description(&ss, directories[dn].name,u.filename);
  566.       }
  567.       if (ss) {
  568.         add_extended_description(u.filename,ss);
  569.         u.mask |= mask_extended;
  570.         bbsfree(ss);
  571.       }
  572.       nl();
  573.       if (xfer) {
  574.         write_inst(INST_LOC_UPLOAD,udir[curdir].subnum,INST_FLAGS_NONE);
  575.     ti=timer();
  576.     CLS();
  577.     ansic(0);
  578.     receive_file(s1,&ok,&u.filetype, u.filename, dn);
  579.     ti=timer()-ti;
  580.         if (ti<0)
  581.           ti += 24.0*3600.0;
  582.         thisuser.extratime += ti;
  583.       }
  584.       if (ok) {
  585.     if (ok==1) {
  586.       f=sh_open1(s1,O_RDONLY | O_BINARY);
  587.       if (f<0) {
  588.             ok=0;
  589.         CLS();
  590.         goxy(1,2);
  591.         pl(get_string(780));//DOS error, file not found
  592.         nln(2);
  593.         if (u.mask & mask_extended)
  594.           delete_extended_description(u.filename);
  595.       }
  596.       if (ok && syscfg.upload_c[0]) {
  597.         sh_close(f);
  598.         CLS();
  599.         goxy(1,2);
  600.         prt(1,get_string(26));//Please wait...
  601.         nl();
  602.         if (check_ul_event(dn,&u)) {
  603.               if (u.mask & mask_extended)
  604.                 delete_extended_description(u.filename);
  605.           ok=0;
  606.         } else {
  607.           f=sh_open1(s1,O_RDONLY | O_BINARY);
  608.             }
  609.       }
  610.     }
  611.         if (ok) {
  612.       CLS();
  613.       ansic(0);
  614.       if (ok==1) {
  615.         l=filelength(f);
  616.             u.numbytes=l;
  617.             sh_close(f);
  618.         ++thisuser.uploaded;
  619.             modify_database(u.filename,1);
  620.             thisuser.uk += bytes_to_k(l);
  621.             get_file_idz(&u,dn);
  622.         if (sysinfo.flags & OP_FLAGS_PACKSCAN_FREQ)
  623.               remotenotify(u.filename,u.description);
  624.           } else
  625.             u.numbytes=0;
  626.           time(&l);
  627.           u.daten=l;
  628.       f=sh_open(dlfn,O_RDWR | O_BINARY | O_CREAT, S_IREAD | S_IWRITE);
  629.       for (i=numf; i>=1; i--) {
  630.             SETREC(f,i);
  631.         sh_read(f,(void *)&u1,sizeof(uploadsrec));
  632.         SETREC(f,i+1);
  633.             sh_write(f,(void *)&u1,sizeof(uploadsrec));
  634.       }
  635.           SETREC(f,1);
  636.           sh_write(f,(void *)&u,sizeof(uploadsrec));
  637.           ++numf;
  638.       SETREC(f,0);
  639.           sh_read(f, &u1, sizeof(uploadsrec));
  640.           u1.numbytes=numf;
  641.           u1.daten=l;
  642.       dir_dates[dn]=l;
  643.           SETREC(f,0);
  644.       sh_write(f,(void *)&u1,sizeof(uploadsrec));
  645.           f=sh_close(f);
  646.           if (ok==1) {
  647.         lock_status();
  648.             ++status.uptoday;
  649.         ++status.filechange[filechange_upload];
  650.             save_status();
  651.         sprintf(s,get_stringx(1,42),u.filename,directories[dn].name);
  652.         sysoplog(s);
  653.         nln(2);
  654.         pl(get_string(781));//File Uploaded
  655.         nl();
  656.         outstr(get_string(782));//Your ratio is now:
  657.         npr("%-6.3f\r\n", ratio());
  658.         nln(2);
  659.         if (useron)
  660.               topscreen();
  661.           }
  662.     }
  663.       } else {
  664.     CLS();
  665.     ansic(0);
  666.     goxy(1,2);
  667.     pl(get_string(783));//File transmission aborted!
  668.     nln(2);
  669.     if (u.mask & mask_extended)
  670.       delete_extended_description(u.filename);
  671.       }
  672.     }
  673.   }
  674.   if ((okansi()) && (!rip_on())) {
  675.     CLS();
  676.     ansic(0);
  677.   }
  678. }
  679.  
  680. ─────────────────────────────────────────────────────────────────────────────
  681. STEP 4:   Open MMENU.C and replace case 'U':
  682.       with this one...
  683. ─────────────────────────────────────────────────────────────────────────────
  684.  
  685.       case 'U':
  686.     helpl=17;
  687.     play_sdf(get_string(1040),0);
  688.     CLS();
  689.     if ((thisuser.restrict & (restrict_validate | restrict_upload)) ||
  690.         (syscfg.sysconfig & sysconfig_all_sysop)) {
  691.       if (syscfg.newuploads<num_dirs)
  692.         upload((int) syscfg.newuploads);
  693.       else
  694.         upload(0);
  695.     } else
  696.       upload(udir[curdir].subnum);
  697.     break;
  698.  
  699. ─────────────────────────────────────────────────────────────────────────────
  700. STEP 5:   Un UUEcode the following ANSI and place it in your Gfiles dir
  701. ─────────────────────────────────────────────────────────────────────────────
  702.  
  703. section 1 of uuencode 5.10 of file ul.zip    by R.E.M.
  704.  
  705. begin 644 ul.zip
  706. M4$L#!!0````(`(NJ"1_RGKX5Z0$``*8)```&````54PN04Y3W9;-3MM`$(#O
  707. MD?($N4SO%8J)A0\^@I"@4HK41#U8/2SQ)C'R>"M[0Y3G\@.00U\B8-I786?6
  708. M(19))&Q\0)W3_HQGOOGQV+W`[6,O.+WF1;?3"_K^X`S_FJV+_]H4=O#<[5C3
  709. MT`L<?^#XKH//[+-/RR*'G5@-S"O7YHC0[-[%HE3R?-?#QS]-9&O,PX<MU^#,
  710. M/T8*.Y:<-#T<_XZ5"*-D]HI+YWVB=,[M\ZQ('G+[N$OKFUB*3$*HZ-;!X?<1
  711. M+5Q<L#V81K',0,^%AJ4$$:=2A"N8BWNS24+K(J\+;$GPDFU#3>`J413'EB51
  712. M@%(D%/Z2;C(%\EZF)S":*Q-=$\QUB56IT:8.(</=+3(-MR:],I9:AIRSE5JD
  713. MG%=(A8Z457P_807QD=-8E,(FJ)$8^^%]K#.I082$2723B4JIA^+5"?R47TU:
  714. M4\*%I4@T:(,JC%XSUIQ9GP">C)J']KTRYW7+3\G3$5+'+I-=RQL#U^/A-]N[
  715. MAII/?HS&-U<7]LP699HJI(B^?"B(HF@0Q'KWAC<:$)MCK-;EWIB#QG+`18NR
  716. M-WX-?+.1>7B,FCJXW/W\_7CCJ#K6/QH&.\J/.%J7]ZT%MMEWU*:T7Q7J(@PH
  717. M3SA46F8E/WTN?Y6CZM-4ZW]JBZ)-V;8%_X]AM_,"4$L!`A0`%`````@`BZH)
  718. M'_*>OA7I`0``I@D```8``````````0`@`````````%5,+D%.4U!+!08`````
  719. .`0`!`#0````-`@``````
  720. `
  721. end
  722. sum -r/size 57255/851 section (from "begin" to "end")
  723. sum -r/size 34540/599 entire input file
  724.  
  725. ─────────────────────────────────────────────────────────────────────────────
  726. STEP 6:   MAKE FCNS and Re-Compile the whole code!
  727. ─────────────────────────────────────────────────────────────────────────────
  728.  
  729.                 After Dark BBs
  730.                 (314) 946-1730
  731.