Provided by: fvwm_2.5.30.ds-1_amd64 bug


       FvwmCpp - the Fvwm  Cpp pre-processor


       Module FvwmCpp [options] filename

       The  FvwmCpp  module  can only be invoked by fvwm.  Command line invocation of the FvwmCpp
       module will not work.


       When fvwm executes the FvwmCpp module, FvwmCpp invokes the cpp pre-processor on  the  file
       specified  in  its  invocation,  then  FvwmCpp  causes fvwm to execute the commands in the
       resulting file.


       FvwmCpp can be invoked as a module using an fvwm command, from the .fvwm2rc file, a  menu,
       mousebinding, or any of the many other ways fvwm commands can be issued.

       If the user wants his entire .fvwm2rc file pre-processed with FvwmCpp, then fvwm should be
       invoked as:

       fvwm -cmd "Module FvwmCpp .fvwm2rc"

       Note that the argument to the option "-cmd" should be enclosed in  quotes,  and  no  other
       quoting should be used.

       When  FvwmCpp  runs  as a module, it runs asynchronously from fvwm.  If FvwmCpp is invoked
       from the .fvwm2rc, the commands generated by FvwmCpp may or may not  be  executed  by  the
       time  fvwm  processes  the  next  command  in  the  .fvwm2rc.  Invoke FvwmCpp this way for
       synchronous execution:

       ModuleSynchronous FvwmCpp -lock filename


       Some options can be specified following the modulename:

       -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.   Please note that FvwmCpp will attempt to remove this file
              before writing to it, so don't point it at anything important even if it has  read-
              only protection.

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

       -lock  If you want to use this option you need to start  FvwmCpp  with  ModuleSynchronous.
              This  option  causes fvwm to wait that the pre-process finish and that FvwmCpp asks
              fvwm to Read the pre-processed file  before  continuing.  This  may  be  useful  at
              startup  if you use a session manager as Gnome. Also, this is useful if you want to
              process and run a Form in a fvwm function.

              Causes the pre-processed file to be not read  by  fvwm.  Useful  to  pre-process  a
              FvwmScript script with FvwmCpp.


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

              Always set to "fvwm".

              The name of the machine running the X Server.

              The name of the machine running fvwm.

              The host name of the machine running fvwm. Generally the same as CLIENTHOST.

       OSTYPE The operating system for CLIENTHOST.

       USER   The name of the person running fvwm.

       HOME   The home directory of the person running fvwm.

              The X11 version.

              The X11 revision number.

       VENDOR The X server vendor.

              The X server release number.

       SCREEN The screen number.

       WIDTH  The screen width in pixels.

       HEIGHT The screen height in pixels.

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

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

       PLANES Number of color planes for the X server display

              Number of bits in each rgb triplet.

       CLASS  The X11 default visual class, e.g. PseudoColor.

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

              The visual class that fvwm is using, e.g. TrueColor.

              Yes or No, Yes if the FVWM_CLASS is neither StaticGrey or GreyScale.

              The fvwm version number, ie 2.0

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

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

              The value of $FVWM_USERDIR.

              The value of $SESSION_MANAGER. Undefined if this variable is not set.


       #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 SCREEN 0
       #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
       #define FVWM_USERDIR /local/homes/dsp/nation/.fvwm
       #define SESSION_MANAGER local/grumpy:/tmp/.ICE-unix/440,tcp/spx20:1025


       Module  configurations do not become active until fvwm has restarted if you use FvwmCpp on
       startup. FvwmCpp creates a temporary file and passes this to fvwm, so you  would  have  to
       edit  this  file  too.   There are some problems with comments in your .fvwm2rc 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. Depending on your preprocessor you
       may have the same problem with "//".  Macros are not replaced within single (') or  double
       quotes  (  back quotes (`) to circumvent this. Fvwm accepts back quotes 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).

       If you use gcc you can use this invocation to turn off '//' comments:

       FvwmCpp -Cppprog '/your/path/to/gcc -C -E -' <filename>


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