FvwmCpp(1)                                                          FvwmCpp(1)




NAME
       FvwmCpp - the FVWM  Cpp pre-processor

SYNOPSIS
       FvwmCpp is spawned by fvwm, so no command line invocation will work.


DESCRIPTION
       When called, this module will attempt to have /usr/lib/cpp pre-process
       the file specified in its invocation, and then have fvwm read the
       resulting file.


INVOCATION
       FvwmCpp can be invoked by inserting the line 'FvwmCpp' in the .fvwmrc
       file. It can also be called from a menu or mouse binding.  If the user
       wants his entire .fvwmrc file pre-processed with FvwmCpp, then fvwm
       should be invoked as:

       fvwm2 -cmd "FvwmCpp .fvwmrc"

  Some options can be specified on the command line:

       -cppopt option
              Lets you pass an option to the cpp program.  Not really needed
              as any unknown options will be passed on automatically.


       -cppprog name
              Instead of invoking "/usr/lib/cpp", fvwm will invoke name.


       -outfile filename
              Instead of creating a random unique name for the temporary file
              for the preprocessed rc file, this option will let you specify
              the name of the temporary file it will create.


       -debug Causes the temporary file create by Cpp to be retained. This
              file is usually called "/tmp/fvwmrcXXXXXXXXXX"



CONFIGURATION OPTIONS
       FvwmCpp defines some values for use in the pre-processor file:


       TWM_TYPE
              Always set to "fvwm".

       SERVERHOST
              The name of the machine running the X Server.

       CLIENTHOST
              The name of the machine running fvwm.

       HOSTNAME
              The hostname of the machine running fvwm. Generally the same as
              CLIENTHOST.

       OSTYPE The operating system for CLIENTHOST.

       USER   The name of the person running fvwm.

       VERSION
              The X11 version.

       REVISION
              The X11 revision number.

       VENDOR The X server vendor.

       RELEASE
              The X server release number.

       WIDTH  The screen width in pixels.

       HEIGHT The screen height in pixels.

       X_RESOLUTION
              Some distance/pixel measurement for the horizontal direction, I
              think.

       Y_RESOLUTION
              Some distance/pixel measurement for the vertical direction, I
              think.

       PLANES Number of color planes for the X server display

       BITS_PER_RGB
              Number of bits in each rgb triplet.

       CLASS  The X11 visual class, ie PsuedoColor.

       COLOR  Yes or No, Yes if the display class is neither StaticGrey or
              GreyScale.

       FVWM_VERSION
              The fvwm version number, ie 2.0

       OPTIONS
              Some combination of SHAPE, XPM, NO_SAVEUNDERS, and Cpp, as
              defined in configure.h at compile time.

       FVWM_MODULEDIR
              The directory where fvwm looks for .fvwmrc and modules by
              default, as determined at compile time.


EXAMPLE PROLOG

       #define TWM_TYPE fvwm #define SERVERHOST spx20 #define CLIENTHOST
       grumpy #define HOSTNAME grumpy #define OSTYPE SunOS #define USER nation
       #define HOME /local/homes/dsp/nation #define VERSION 11 #define
       REVISION 0 #define VENDOR HDS human designed systems, inc. (2.1.2-D)
       #define RELEASE 4 #define WIDTH 1280 #define HEIGHT 1024 #define
       X_RESOLUTION 3938 #define Y_RESOLUTION 3938 #define PLANES 8 #define
       BITS_PER_RGB 8 #define CLASS PseudoColor #define COLOR Yes #define
       FVWM_VERSION 2.0 pl 1 #define OPTIONS SHAPE XPM Cpp #define
       FVWM_MODULEDIR /local/homes/dsp/nation/modules



BUGS
       Module configurations do not become active until fvwm2 has restarted if
       you use FvwmCpp on startup. FvwmCpp creates a temporary file and passes
       this to fvwm2, so you would have to edit this file too.  There are some
       problems with comments in your .fvwmrc file.  The comment sign # is
       misinterpreted by the preprocessor.  This has usually no impact on
       functionality but generates annoying warning messages.  The sequence /*
       is interpreted as the start of a C comment what is probably not what
       you want in a filename. You might want to try /?* (for filenames only)
       or /\* or "/*" instead.  Macros are not replaced within single (') or
       double quotes ("). Use backquotes (`) to circumvent this. Fvwm2 accepts
       backquotes for quoting and at least FvwmButtons does too.  The
       preprocessor may place a space after a macro substitution, so with
       #define MYCOMMAND ls "Exec "MYCOMMAND" -l"
  you might get "Exec "ls " -l" (two words)
and not "Exec "ls" -l" (one word).


AUTHOR
       FvwmCpp is the result of a random bit mutation on a hard disk,
       presumably a result of a  cosmic-ray or some such thing.



3rd Berkeley Distribution                                             12/12/94
