home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / WWIVMODS / MODSUNKN.ZIP / ARPRINT.C < prev    next >
Text File  |  1990-04-28  |  6KB  |  232 lines

  1. /*ARPrint.c */
  2. /* Elric22.zip*/
  3. /*
  4. This program will print out a list of directories, message bases, games, and
  5. gfiles sections. I have been wanting something like this for a long time,
  6. so I wrote it. What could it possibly be good for? Well, let's say you were
  7. in a situation where you needed to put in a new message base for you and 4
  8. other people for a class project you are working on. So you assign it an AR
  9. or A. But then you find out you used that for your "adult" discussion base,
  10. and now 37 other people have access to it. This program is designed to
  11. prevent exactly that sort of problem.
  12.  
  13. If you use this, the only payment I ask is that you send me a
  14. note through WWIVNet to 1@8251 saying you are using it...not too much to
  15. ask is it?
  16.  
  17. If you have any problems, you can reach me through WWIV-Net, 1@8251, or call
  18. my BBS.
  19. The Kingdom of Melnibone
  20. 812-877-3488  24 Hrs a day
  21. 3/12/2400/4800/9600/12,000/14,400 baud HST MNP5
  22. Auto-validation of WWIV sysops on first call
  23. Xmodem, Ymodem, DSZ Zmodem with retry, Ymodem-G
  24.  
  25. Lord Elric
  26. */
  27.  
  28.  
  29. #include <io.h>
  30. #include <stdio.h>
  31. #include <fcntl.h>
  32. #include "vardec.h"
  33.  
  34.  
  35. int configfile,dirsfile,gamesfile,gfilesfile,subsfile;
  36. FILE *printer;
  37. int num_dirs,num_subs,num_games,num_gfiles;
  38. directoryrec dirs[64];
  39. subboardrec subs[64];
  40. chainfilerec games[50];
  41. gfiledirrec  gfiles[32];
  42. configrec syscfg;
  43. int i,j,k;
  44. unsigned short AR;
  45. char s[81],s2[3];
  46.  
  47.  
  48.  
  49. void main()
  50. {
  51.   char s3[80],ch;
  52.   char a1[10];
  53.  
  54.   configfile=-1;
  55.   strcpy(s,"CONFIG.DAT");
  56.   configfile=open(s,O_RDWR | O_BINARY);
  57.   if (configfile<0) {
  58.     printf("%s NOT FOUND.\n",s);
  59.     printf("This program must be run from the main BBS directory");
  60.     exit(0);
  61.     }
  62.   read(configfile,(void *) (&syscfg), sizeof(configrec));
  63.   close(configfile);
  64.  
  65.   dirsfile=-1;
  66.   strcpy(s,syscfg.datadir);
  67.   strcat(s,"DIRS.DAT");
  68.   dirsfile=open(s,O_RDWR | O_BINARY);
  69.   if (dirsfile<0) {
  70.   printf("%s NOT FOUND.\n",s);
  71.     exit(0);
  72.     }
  73.   num_dirs=(read(dirsfile,(void *) (&dirs), (64*sizeof(directoryrec))))/
  74.              sizeof(directoryrec);
  75.   close(dirsfile);
  76.  
  77.   subsfile=-1;
  78.   strcpy(s,syscfg.datadir);
  79.   strcat(s,"SUBS.DAT");
  80.   subsfile=open(s,O_RDWR | O_BINARY);
  81.   if (subsfile<0) {
  82.   printf("%s NOT FOUND.\n",s);
  83.     exit(0);
  84.     }
  85.   num_subs=(read(subsfile,(void *) (&subs), (64*sizeof(subboardrec))))/
  86.          sizeof(subboardrec);
  87.   close(subsfile);
  88.  
  89.  
  90.   gamesfile=-1;
  91.   strcpy(s,syscfg.datadir);
  92.   strcat(s,"CHAINS.DAT");
  93.   gamesfile=open(s,O_RDWR | O_BINARY);
  94.   if (gamesfile<0) {
  95.   printf("%s NOT FOUND.\n",s);
  96.     exit(0);
  97.     }
  98.   num_games=(read(gamesfile,(void *) (&games), (64*sizeof(chainfilerec))))/
  99.          sizeof(chainfilerec);
  100.   close(gamesfile);
  101.  
  102.   gfilesfile=-1;
  103.   strcpy(s,syscfg.datadir);
  104.   strcat(s,"GFILE.DAT");
  105.   gfilesfile=open(s,O_RDWR | O_BINARY);
  106.   if (gfilesfile<0) {
  107.   printf("%s NOT FOUND.\n",s);
  108.     exit(0);
  109.     }
  110.   num_gfiles=(read(gfilesfile,(void *) (&gfiles), (64*sizeof(gfiledirrec))))/
  111.          sizeof(gfiledirrec);
  112.   close(gfilesfile);
  113.  
  114.   printf("Welcome to AR Print.\n");
  115.   printf("Written By Lord Elric AKA Wayne McDaniel\n");
  116.   printf("This program is for use with WWIV 4.xx\n");
  117.   printf("Please contact Lord Elric, 1@8251 WWIVNet, with any problems\n");
  118.   printf("Or call The Kingdom Of Melnibone BBS, 1-812-877-3488\n");
  119.   printf("This is officially Elric's Mod #22\n\n");
  120.   printf("Please enter the name of the file\n");
  121.   printf("you wish to send this report to. Hit Return for printer.\n");
  122.   printf("?");
  123.   gets(s3);
  124.   if (s3[0]==0)
  125.     strcpy(s3,"prn");
  126.   printer=fopen(s3,"w");
  127.   if (printer==NULL) {
  128.   printf("Cannot access printer\n");
  129.     exit(0);
  130.     }
  131.  
  132.   sprintf(s,"\nComplete AR Listing for %s\n\n",syscfg.systemname);
  133.   fputs(s,printer);
  134.  
  135.  
  136.   for (i=0;i<17;i++) {
  137.     /* first set up our AR letter, mask, and everything */
  138.     a1[0]='A'+i;
  139.     a1[1]=0;
  140.     if (i<16)
  141.       AR=1L << i;
  142.     else
  143.       AR=0L;
  144.     if (i==16)
  145.     strcpy(a1,"none");
  146.     sprintf(s,"Listing for AR: %s\n",a1);
  147.     fputs(s,printer);
  148.     fputs("-----------------------\n",printer);
  149.  
  150. /* Now let's cycle through the Message bases */
  151.  
  152.     sprintf(s,"Message Bases with AR : %s\n",a1);
  153.     fputs(s,printer);
  154.     fputs("Base  ReadSL  PostSL  Age  Name\n",printer);
  155. fputs("--------------------------------------------------------\n",printer);
  156.     j=0;  /* set our count of found subs to 0 */
  157.     for (k=0;k<num_subs;k++) {
  158.       if (subs[k].ar==AR) {
  159.     sprintf(s," %2d     %3d     %3d   %2d    %-50s\n",++j,
  160.     subs[k].readsl,subs[k].postsl,subs[k].age,subs[k].name);
  161.     fputs(s,printer);
  162.       }
  163.     }
  164.  
  165.     if (j==0)
  166.       fputs("none\n",printer);
  167.     fputs("\n\n",printer);
  168.  
  169. /* Now let's cycle through the Games */
  170.  
  171.     sprintf(s,"Games with AR : %s\n",a1);
  172.     fputs(s,printer);
  173.     fputs("Game  SL   Name\n-------------------------------\n",printer);
  174.     j=0;  /* set our count of found games to 0 */
  175.     for (k=0;k<num_games;k++) {
  176.       if (games[k].ar==AR) {
  177.     sprintf(s," %2d   %3d  %-65s\n",++j,
  178.     games[k].sl,games[k].description);
  179.     fputs(s,printer);
  180.       }
  181.     }
  182.     if (j==0)
  183.       fputs("none\n",printer);
  184.     fputs("\n\n",printer);
  185.  
  186. /* Now let's cycle through the Gfile Sections */
  187.  
  188.     sprintf(s,"Gfile Sections with AR : %s\n",a1);
  189.     fputs(s,printer);
  190.     fputs("Base  SL   Age  Name\n",printer);
  191. fputs("--------------------------------------------------------\n",printer);
  192.     j=0;  /* set our count of found subs to 0 */
  193.     for (k=0;k<num_gfiles;k++) {
  194.       if (gfiles[k].ar==AR) {
  195.     sprintf(s," %2d   %3d  %2d    %-50s\n",++j,
  196.     gfiles[k].sl,gfiles[k].age,gfiles[k].name);
  197.     fputs(s,printer);
  198.       }
  199.     }
  200.  
  201.     if (j==0)
  202.       fputs("none\n",printer);
  203.     fputs("\n\n",printer);
  204.  
  205. /* Now let's cycle through the Transfer dirs */
  206.  
  207.     sprintf(s,"Transfer Directories with DAR : %s\n",a1);
  208.     fputs(s,printer);
  209.     fputs("Dir  DSL  Age  Name\n",printer);
  210. fputs("--------------------------------------------------------\n",printer);
  211.     j=0;  /* set our count of found subs to 0 */
  212.     for (k=0;k<num_dirs;k++) {
  213.       if (dirs[k].dar==AR) {
  214.     sprintf(s," %2d  %3d  %2d    %-50s\n",++j,
  215.     dirs[k].dsl,dirs[k].age,dirs[k].name);
  216.     fputs(s,printer);
  217.       }
  218.     }
  219.  
  220.     if (j==0)
  221.       fputs("none\n",printer);
  222.     fputs("\n\n",printer);
  223.  
  224.  
  225.  
  226. }
  227.  
  228.   fputs("\f",printer);
  229.   fclose(printer);
  230. }
  231.  
  232.