Macro: ON_KEY

Module location: FMAC line 12212 (view source)

  #IFSAME !4 PRIVATE
    ON_KEY !1 !2 !3 TO |CI-1 PRIVATE
  #ELSE
    #DATA
    #DPUSH !1
    #IFSAME !4 TO OF
      #IFDEF !5
        #DPUSH !5
      #ELSE
        //#IFDEF !5.OBJ
        //  #DPUSH !5.OBJ
        //#ELSE
        //  #DPUSH |CI0
        //  #FREF !5.OBJ !a,1
        //#ENDIF
        #IFDEF GET_!5 // if defined as a function
          #IF (GET_!5>$40000000) // and an object access method..we will help out
            // replace simple name with expression syntax
            DPUSH$EXP (!5(current_object))
          #ELSE       // if defined as a function but not an access method. This is an error
            #DPUSH !5 // will generate an Error
          #ENDIF
        #ELSE       // If undefined
          // 12.0 change. If not defined, this will get pushed as an object expression 
          // allowing one to not have to use register_object if the object is defined later
          // in the file.
          DPUSH$EXP (!5(current_object))
          //#DPUSH !5 // will generate an Error
        #ENDIF
      #ENDIF
    #ELSE
      #DPUSH |CI-1
    #ENDIF
    #IFSAME !6 PRIVATE
      #DPUSH |CI1
    #ENDIF
    #IFDEF !3
      !A [] OBJ$ONKEY !3 |VL
    #ELSE
      #IFDEF MSG_!3
        !A [] OBJ$ONKEY MSG_!3 |VL
      #ELSE             // else the command is defined in flex code
        !A [] OBJ$ONKEY |CI0 |VL        // get flex to fix the fwd ref
        #FREF MSG_!3 !a
      #ENDIF
    #ENDIF
  #ENDIF