# HB_SETMACRO()

Enable/disable the macro compiler runtime features.

Syntax

  HB_SETMACRO( <nOption>, [<lOnOff>] ) --> <lOldSetting>

Arguments

  <nOption> One of the HB_SM_* constants defined in set.ch.
  <lOnOff> .T. to enable or .F. to disable a feature

Returns

  HB_SETMACRO() return the old state of requested feature.

Description

  This function enables or disables some features of the macro compiler. The Harbour is extending the macro features compared to an original set available in Clipper. Enabling/disabling some of them allows to keep strict Clipper compatibility.
  Available features are: HB_SM_HARBOUR - enables harbour extensions: operators: ++, --, +=, -=, *=, /=, ^= objects: assigments to an instance variable HB_SM_XBASE - enables other xbase dialects extensions: expanding of expresions lists HB_SM_SHORTCUTS - enables optimized evaluation of logical operators (.and., .or.) HB_SM_PREPROC - enables preprocessing of commands This is meaningfull if Harbour is compiled with HB_MACRO_STATEMENTS flag

Examples

          INIT PROCEDURE IWANTCLIPPER()
            HB_SETMACRO( HB_SM_HARBOUR, .F. )
            HB_SETMACRO( HB_SM_XBASE, .F. )
          RETURN

Status

  Ready

Compliance

  This function is Harbour extension.

Platforms

  All

Files

  Header file is set.ch Library is macro

See Also

- Macro compiler