<html>
<head>
<title>The Official FVWM Homepage - Important Changes Since Fvwm-1.xx</title>
</head>
  <body BACKGROUND="black-stone1.jpg"
    bgcolor="#000000" text="#ffffff"
    link="#FFFF88" vlink="#EEDDDD" alink="#ff0000">
<center>
<h1><font color="pink">The Official FVWM Homepage - Important Changes Since Fvwm-1.xx</font></h1>
</center>
<P>
The module interface remained fairly stable when going from Fvwm-1.xx
to Fvwm-2.xx. The change most likely to affect modules is the addition
of an extra value to the header. This value is a timestamp. Most
modules contained the line:
<FONT COLOR="YELLOW"><PRE>
	unsigned long header[3];
</FONT></PRE>
This must be changed to:
<FONT COLOR="YELLOW"><PRE>
	unsigned long header[HEADER_SIZE];
</FONT></PRE>
The rest of the changes are handled in the library function
ReadFvwmPacket.
<P>
Another notable change is that modules do not have to read the .fvwmrc
file themselves. They can request the appropriate lines from fvwm:
<!-- dje, from FvwmAnimate.c -->
<FONT COLOR="YELLOW"><PRE>
  static void ParseOptions() {
    char *buf;
    while (GetConfigLine(Channel,&amp;buf), buf != NULL) {
      ParseConfigLine(buf);
    } /* end config lines */
  } /* end function */
</FONT></PRE>
This is the preferred method of getting module-specific
configuration lines.
<P>
Starting in fvwm-2.0 pl 1, fvwm2 passes command line arguments
to the modules, so if the user said ``FvwmPager 2 4'', the module
will see argv[6] = 2 and argv[7] = 4, instead of argv[6] = ``2 4''.
<P>
Some new packet types are defined, and a few values were added to
some packet types.
<P>
    <hr>
  </body>
</html>
