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:
unsigned long header[3];
This must be changed to:
unsigned long header[HEADER_SIZE];
The rest of the changes are handled in the library function
ReadFvwmPacket.
Another notable change is that modules do not have to read the .fvwmrc
file themselves. They can request the appropriate lines from fvwm:
static void ParseOptions() {
char *buf;
while (GetConfigLine(Channel,&buf), buf != NULL) {
ParseConfigLine(buf);
} /* end config lines */
} /* end function */
This is the preferred method of getting module-specific
configuration lines.
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''.
Some new packet types are defined, and a few values were added to some packet types.