text: /*
   * Copyright 1993, 2000 Christopher Seiwald.
   *
   * This file is part of Jam - see jam.c for Copyright information.
   */
  
  /*
   * variable.h - handle jam multi-element variables
   */
  
  #ifndef VARIABLE_SW20111119_H
  #define VARIABLE_SW20111119_H
  
  struct hash;
  
  void    var_defines( char* const *e, int preprocess );
  int     var_string( const char * in, char * out, int outsize, LOL * lol );
  LIST *  var_get( OBJECT * symbol );
  void    var_set( OBJECT * symbol, LIST * value, int flag );
  LIST *  var_swap( OBJECT * symbol, LIST *value );
  void    var_done();
  void    var_hash_swap( struct hash * * );
  
  /** Expands the "in" expression directly into the "out" file.
      The file can be one of: a path, STDOUT, or STDERR to send
      the output to a file overwriting previous content, to
      the console, or to the error output respectively.
  */
  void var_string_to_file( const char * in, int insize, const char * out, LOL * lol );
  
  /*
   * Defines for var_set().
   */
  
  # define VAR_SET    0   /* override previous value */
  # define VAR_APPEND 1   /* append to previous value */
  # define VAR_DEFAULT    2   /* set only if no previous value */
  
  #endif
  