home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / WWIVMODS / MODSUNKN.ZIP / GIFDESC.MOD < prev    next >
Text File  |  1990-05-11  |  2KB  |  99 lines

  1. Snorkel #1 @3459
  2. Wed May 09 08:34:52 1990
  3. 5Reference : 1Mod Requests:0
  4. 5Written by: 2Warrior #304 @31100
  5.  
  6. I did not write this mod.  Just those places that you see 2YELLOW0 (^P2), are
  7. places where I modified the code to make it operate more smoothly.
  8.  
  9. 1    °0
  10. 1  °0
  11. 1  °0
  12. 1°0
  13. 4Snorkel 1@34590 
  14.  
  15. 4==============================================================================0
  16.  
  17. This is a simple mod that will automatically add a prefix to any GIF file
  18. that is uploaded to your board, remotely or locally.  The prefix will be in
  19. the format of (WWxHHxCC), where WW is the width, HH is the height, and CC is
  20. the number of colors used.
  21.  
  22. Legend:   * Existing Line - search for this.
  23.           + Add this line
  24.  
  25. In XFER.C in function void upload add the following line.
  26.  
  27. *        if (ok) {
  28. *          l=filelength(f);
  29. *          u.numbytes=l;
  30. *          close(f);
  31. +          if (2strstr0(u.filename,"2.GIF0"))
  32. +            check_gif(s1,u.description);
  33. *          ++thisuser.uploaded;
  34. *          thisuser.uk += ((l+1023)/1024);
  35.  
  36. Then add the following line in int upload_file.
  37.  
  38. *  if (s[0]==0)
  39. *    return(0);
  40. *  ++thisuser.uploaded;
  41. +  if (2strstr0(u.filename,"2.GIF0"))
  42. +    check_gif(ff,u.description);
  43. *  thisuser.uk += ((l+1023)/1024);
  44.  
  45. Then, block read the following two functions to the end of SR.C
  46.  
  47.  
  48. int getbytes(FILE *dev)
  49. {
  50.     int byte1;
  51.     int byte2;
  52.     int result;
  53.  
  54.     /* read bytes and shift over */
  55.  
  56.     byte1 = getc(dev);
  57.     byte2 = getc(dev);
  58.  
  59.     result = (byte2 << 8) | byte1;
  60.  
  61.     return result;
  62.  
  63. }
  64.  
  65. void check_gif(char *fn, char *descript)
  66. {
  67.   int byte1, bits_per_pix,colors,i;
  68.   unsigned int width;
  69.   unsigned int height;
  70.   FILE *in;
  71.   char s[81];
  72.  
  73.   in = fopen (fn, "rb");
  74.   for (i = 0; (i < 6); i++) s[i] = getc(in);
  75.   s[6] = '\0';
  76.   width = getbytes(in);
  77.   height = getbytes(in);
  78.   byte1 = getc(in);
  79.   fclose(in);
  80.   if (strcmp(s,"GIF87a")) {
  81.     sprintf(s,"%s -- NOT a GIF file.",fn);
  82.     sysoplog(s);
  83.     return;
  84.   }
  85.   bits_per_pix = byte1 & 0x07;
  86.   bits_per_pix++;
  87.   colors = 1 << bits_per_pix;
  88.   sprintf(s,"(%dx%dx%2-30d) %s",width,height,colors,descript);
  89.   strcpy(descript,s);
  90. }
  91.  
  92. And that's all! Just recompile your BBS and you are finished.
  93.  
  94. Note: You can put the two new functions anywhere, but then you will
  95.       need to put an entry in FCNS.H for them, thus making you re-
  96.       compile the entire 50K lines of the BBS.
  97.  
  98. Thog
  99.