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

  1. Goose #19 @7313
  2. Mon Jul 02 18:20:58 1990
  3. That's it for the quote itself.  It will work fine as long as the user has
  4. selected a full screen editor.  Unfortunately, many don't like to do this and
  5. instead stick with the internal editor in WWIV.  The next part of this mod
  6. allows the user to delete lines using the internal editor (which is necessary
  7. to be able to really use the quote feature), and allows the internal editor to
  8. be loaded from an external file.  Load up MSGBASE.C and find void
  9. load_workspace(...), then make the following change to allow editing of
  10. messages when using the internal editor:
  11.  
  12. -   strcat(s,"INPUT.MSG");
  13. -   i5=open(s,O_RDWR | O_CREAT | O_BINARY,S_IREAD | S_IWRITE);
  14. -   write(i5, (void *)b,l);
  15. -   close(i5);
  16. -   farfree(b);
  17. +   if (no_edit)                                             /* mod - change */
  18. -     use_workspace=1;
  19. -   else
  20. -     use_workspace=0;
  21.  
  22. Then go down to void inmsg(...), and add the variable declarations as shown.
  23. You can include them on the line with the other int variables if you want, I
  24. just figured it would be easier this way.
  25.  
  26. + int  i5,i6;                                                /* mod - add */
  27.  
  28. And if you haven't defined it in another mod, you'll have to add l2 as well:
  29.  
  30. + long l2;                                                   /* mod - add */
  31.  
  32. Then, go down a few lines and make the following change to correctly set the
  33. flag only if an external editor is selected:
  34.  
  35. -   strcat(fnx,"INPUT.MSG");
  36. -   if (fsed)
  37. -     fsed=1;
  38. +   if ((use_workspace) && (okfsed)) {                       /* mod - change */
  39. -     if (!exist(fnx))
  40.  
  41. And a few lines farther down, add the following code to read in the input file
  42. for the internal editor:
  43.  
  44. -     for (i=0; i<maxli; i++)
  45. -       lin[i*LEN]=0;
  46. -     ro[0]=0;
  47. +     if (exist(fnx)) {                                      /* mod - add */
  48. +       f=open(fnx,O_RDONLY | O_BINARY);                     /* mod - add */
  49. +       l1=filelength(f);                                    /* mod - add */
  50. +       if ((b=malloca(l1))!=NULL) {                         /* mod - add */
  51. +         read(f,(void *)b,l1);                              /* mod - add */
  52. +         i5=0; l2=0;                                        /* mod - add */
  53. +         do {                                               /* mod - add */
  54. +           if (b[l2]==13) {                                 /* mod - add */
  55. +             s[i5]=0;                                       /* mod - add */
  56. +             strcpy(&(lin[(curli++)*LEN]),s);               /* mod - add */
  57. +             ++l2;                                          /* mod - add */
  58. +             i5=0;                                          /* mod - add */
  59. +           } else                                           /* mod - add */
  60. +           if ((b[l2]!=10) && (b[l2]!=26)) {                /* mod - add */
  61. +             s[i5]=b[l2];                                   /* mod - add */
  62. +             ++i5;                                          /* mod - add */
  63. +           }                                                /* mod - add */
  64. +           ++l2;                                            /* mod - add */
  65. +         } while (l2<l1);                                   /* mod - add */
  66. +         farfree(b);                                        /* mod - add */
  67. +       }                                                    /* mod - add */
  68. +       close(f);                                            /* mod - add */
  69. +       unlink(fnx);                                         /* mod - add */
  70. +     }                                                      /* mod - add */
  71. -   }
  72. -
  73. -   nl();
  74. -   helpl=6;
  75.  
  76. (Continued...)