             
                       Alternative Worlds Presents                      
   Ŀ
    Mod Name        FMDFIX01.TXT                                       
    Date Affected   06/25/95                                           
   : Files Affected  CONIO.C / XINIT.C / LILO.C / BBS.C                 
    Description     Official Bug Fixes For FMD Modifications           
    ſ
           A French Mod Division Release - (C) 1995 FMD Software         
          


  Since there is nothing perfect in this world, I'll have to admit that
with the latest rush we got with the release of WWIV v4.24, there is a few
errors that slipped out of our hands, so here are the official fixes for
all the FMD modifications.

  This is the first serie of the FMD fixes, these files contains the current
fixes for the modifications available on the release date of the fix only,
prior versions to this are no longer supported, and new version will be
fixed (if needed, of course) in the next issue of FMDFIX*.TXT, the reason
for this is to avoid network traffic by posting the mods all over again in
revisions.

So this file concerns all the FMD modifications released on June 1st 1995.


FMD-02b.MOD:


Somebody claimed that there was garbage in the wfc screen when loading the
BBS with the "-m" command, since MODEMS.DAT wasn't loaded, the WFC couldn't
print the modem's name. This little fix will take care of this:


 Load WFC.C and modify the following line:

=    } else
=      wfc_prlocate(46, 19, wfcinfo.wfc_prt_color, "None");
*  wfc_prlocate(46, 21, wfcinfo.wfc_prt_color, "%.30s",
+    (syscfgovr.primaryport && ok_modem_stuff)?modem_i->name:"Local Mode");
=  wfc_prlocate(46, 18, wfcinfo.wfc_prt_color, "%5.5s", ctim(syscfg.executetime*60));
=  wfc_prlocate(70, 11, wfcinfo.wfc_prt_color, "%u", status.days);
=  if (status.days<1)

Notice also that "Node" has been changed to "Mode" which is more accurate for
these 2 situations.

Another "problem" is that FMD-02b.MOD refers to the file WFC.H, this file
has been deleted in revision b, so here is the correct setup for the
MAKEFILE.MAK file in Turbo C++

>>> TURBO C / TURBO C++ USERS:

Load MAKEFILE.MAK and do the following changes:

=                $(OBJ)bbsovl1.obj $(OBJ)shrink.obj $(OBJ)bbsovl2.obj\
*                $(OBJ)sr.obj $(OBJ)wfc.obj


Lower:

= $(OBJ)bbsovl2.obj : bbsovl2.c  vars.h vardec.h net.h
=   $(TCC_OVL)
+ $(OBJ)wfc.obj     : wfc.c      vars.h vardec.h net.h
+   $(TCC_OVL)

That's it, now forget that you saw WFC.H, since the whole configuration is
now in WWIV.INI

Another problem related is due to OS/2 WARP, it seems that on some systems,
the half of the screen goes blank for an unknown reason. Sorry guys, I can't
test this, I don't use OS/2 Warp, and I have no reason to use it since
I'm using Win95, where the mod works like a charm. Maybe it's a problem with
your configuration, you'll have to debate this with other WARP users on the
FMD Support Sub.


FMD-12a.MOD:


The bug in this modifications has been there since the early stages, I
recently received a fix from Zu Digital to take care of the problem. The
problem was the "upload_mods" function by Frank Reid, it wasn't checking
for inter conferences number. This should take care of the "Aborted." problem.

Load BBSOVL1.C and then..

int upload_mods(int dn, char *filename)
/* Passes a specific filename to the upload function */
{
  int i1,f1,maxf,ok;
  char s[81],s1[81];
  struct ffblk ff;

  dliscan1(udir[dn].subnum);    /* udir[].subnum added */
  nln(2);
  strcpy(s,filename);
  strcpy(s1,(directories[udir[dn].subnum].path)); /* udir[].subnum added */
  maxf=directories[udir[dn].subnum].maxfiles;     /* udir[].subnum added */
  strcat(s1,s);
  f1=findfirst(s1,&ff,0);

Note: I'll be trying to improve this mod a little so it can uudecode the
      coded files automatically.


FMD-13b.MOD:


Scrap it, FMD-13c.MOD is now available with the release of this fix.


FMD-14a.MOD:


The problem is was related to COMMON, v4.0 was not available when the doc
file has been done, and the functions in COMMON changes, so you had
compatibility problems, but even if this would have works, it was a "bug"
since these strings haven't been replaced by the WWIV v4.24's INI strings,
so here is the replacement (and it was also trying to read FMD.INI which
was the old ini file, now back in WWIV.INI):

Replace this function in LILO.C

void bdaycheck (void)
{
  char BirthDay[9], Buffer[9], Buffer1[80], delims[3], *ss;
  int i, ok, abort;
  static int fields[5] = { 3, 2, 2, 2, 8 };

  strcpy(delims, "//");
  i = abort = 0;
  do
  {
    ok = 1;
    nl();
    prt(7, "Please take a moment to verify some information.");
    nl();
    prt(1, "Please enter your birth date 9(1MM9/1DD9/1YY9): ");0
    mpl2(8);
    indate(BirthDay, fields, delims, &abort);
    if ((strlen(BirthDay) < 8))
    {
      nl();
      prt(6, "Sorry, you must enter your birth date in the correct format!");
      nl();
      ok = 0;
    }
    i++;
    if (ok)
    {
      sprintf(Buffer, "%02d/%02d/%02d",
             (int) thisuser.month, (int) thisuser.day, (int) thisuser.year);
      if (date_to_daten(Buffer) == date_to_daten(BirthDay))
      {
        nl();
        prt(6, "Birth date verified!  Thank you!");
        nln(2);
        sprintf(Buffer1,"Verified %s birth date.", nam(&thisuser,usernum));
        sysoplog(Buffer1);
        if (ini_init("WWIV.INI", "MATRIX", NULL)==0)
        {
          if ((ss=ini_get("SEND_SSM", -1, NULL))!=NULL)
          {
            if (ss[0]==*str_yes)
              ssm(1, 0, Buffer1);
          }
          ini_done();
        }
        return;
      } else {
        nl();
        prt(6, "Invalid birth date entered!");
        nl();
        ok = 0;
      }
    }
  } while ((!hangup) && (!ok) && (i < 3));
  if (i == 3)
  {
    outchr(12);
    prt(3, "You have incorrectly responded to the 3 previous questions.");
    nl();
    prt(3, "Your access level has been changed to that of an unvalidated user.");
    nln(2);
    prt(9, "Would you like to leave the SysOp a note describing your problem? ");
    if (yn())
    {
      outchr(12);
      strcpy(irt,"Invalid Birthday Check");
      email(1, 0, 1, 0);
    }
    sprintf(Buffer1,"%s entered an invalid birth date!",
              nam(&thisuser,usernum));
    sysoplog(Buffer1);
    if (ini_init("WWIV.INI", "MATRIX", NULL)==0)
    {
      if ((ss=ini_get("SEND_SSM", -1, NULL))!=NULL)
      {
        if (ss[0]==*str_yes)
          ssm(1, 0, Buffer1);
      }
      ini_done();
    }
    thisuser.sl = syscfg.newusersl;
    thisuser.dsl = syscfg.newuserdsl;
    write_user(usernum, &thisuser);
    hangup = 1;
  }
}

Then in function logon_matrix:

=                  if (ini_init("WWIV.INI", "MATRIX", NULL)==0)
=                  {
=                    if ((ss=ini_get("MATRIX_PASSWORD", -1, NULL))!=NULL)
=                    {
=                      if (ss[0]==*str_yes)
=                      {
+                       if ((ss=ini_get("LOGON_PASSWORD", -1, NULL))!=NULL) // ADD
+                         strcpy(ini, ss); // ADD
-                       get_ini_value("FMD.INI", "Matrix", "LOGON_PASSWORD", ini, 10);
                        // DELETE THIS LINE
=                       npr("1The login password is %c6%s1%c. "0
=                           "You will need it to logon.",
=                            34,ini,34);
=                       nln(2);


Another "fix" was mentionned because the disclaimer was shown even if you
have a "closed" system, so here is the quick fix:

=void apply_for_access(void)
={
=  char *ss;
=
=   outchr(12);
+   if (syscfg.closedsystem) {
+     nln(2);
+     pl(get_string(561));
+     pl(get_string(562));
+     nl();
+     hangup=1;
+   }
=   input_language();
=   if (existprint("BBSLAW")) // You can change for New User if wished
=     sl1(0,"# User aborted the disclaimer.");

That's it.


FMD-20a.MOD:


Not really a bug, but the documentation asks you to copy FMD.INI in your
main WWIV directory, well, there is no FMD.INI in revision a, that file
is now in WWIV.INI itself, so disregard everything concerning FMD.INI


FMD-24a.MOD:


Some people have problems to add taglines, well, I installed the mod itself
and there was simply no problems, but this can be caused by 2 things:

1 - in BBSUTL, you didn't put a "1" at the end of the line you added:

+  set_strings_fn(5, languagedir, "TAG.STR", 1); // BE SURE THE LAST ONE IS "1"
                                             ^^=- THIS!

2 - Your TAG.STR is too big, I tried to use the mod with the large tag file
    I've created, and it simply freezed the system, so if you plan to use
    the add tagline stuff, don't use an extra large string file.


FMD-25a.MOD:


I've been told that this mod wasn't too compatible with monochrome users,
so if you want them to see something, do the following change:

This is STEP 3 in the mod:

In void newuser(); do the following changes:

=      if (printfile("NEWUSER"))
=        sl1(0,get_stringx(1,28));
=    }
+    if (thisuser.sysstatus & sysstatus_ansi & sysstatus_color) {
       /* changed the previous line for the fix */
+      input_screensize();
+      newuser_ansi();
+    } else {
=    if (syscfg.sysconfig & sysconfig_extended_info)
=      input_country();

That's it, your non-color users should now have the old WWIV newuser routine.


FMD-26a.MOD:


A big mistery of life, how can the little variable disapeard from the doc
file at the last minute? A big secret compared to the Caramilk secret if
you ask me.


Add the following item to function oneliner (in LILO.C)

void oneliner(void)
{
  char s[81], s1[81], s2[162], ro[160], text[26][81], *ss; // Added *ss


FMD-37a.MOD


Change the name of the function to something else, sysinfo is already used in
v4.24, so rename it like this:

void sys_info(void)
{
 int c1;

And do the change in the MMENU.C file:

=        existprint(get_string(1033));
=        existprint(get_string(1034));
+        pausescr();
+        sys_info();  // Change me!
=        break;


FMD-39a.MOD

Thanks to Papa Bear for the fixes on this one:

Load MSGBASE.C and add this line:

=void inmsg(messagerec *m1, char *title, int *anony, int needtitle, char *aux, int fsed, char *dest, int flags)
={
=  char s[181],s1[181],ro[81],fnx[81],chx,*ss,*ss1, fn1[81], fn2[81],*nd,tmp[81];
+  char s2[81]; // I forgot to add s2, sorry.

The other one is not a bug, he seems to strip the heart codes from the mods <g>
because it was there, but just update these lines "just in case":

You should have this 2 times in inmsg:

+        sprintf(tmp,"%c",lastcolor);

Replace it for:

+        sprintf(tmp,"%c%c",3,lastcolor);

And that will do the trick.

And if you add any functions to the menu there, don't forget to put the
stripcolors function, otherwise your command won't work if the user backspaces.


[EOF] - Bug Reported On 06/25/95.
