Macro: SEND$HELP

Module location: FMAC line 11460 (view source)

  #IF (!0>0)
    // check that none of the params are indicators. We wrap this in an IFLOGICAL because the # test 
    // also fires on other symbols like EQ
    #IFLOGICAL !1
        #CHECK !1 _#
    #ENDIF    
    #IFSAME !1 OF TO
      #ERROR DFERR_COMP_INVALID_MESSAGE_SYNTAX INVALID POSITION FOR '!1'
    #ELSE
      #IFSAME !1 FIELD
        #IFCLASS !2 F         // test for file element
          #PUSH !h
          #SET H$ %!2         // get the fieldnumber of parameter
          SEND$HELP |CI!h !3 !4 !5 !6 !7 !8 !9
          #POP H$
        #ELSE
          #ERROR DFERR_COMP_UNDEFINED_SYMBOL_IN_ARGUMENT UNKNOWN FIELD: !2
        #ENDIF
      #ELSE
        #IFSAME !1 FILE_FIELD
          #IFCLASS !2 F         // test for file element
            #PUSH !h
            #PUSH !g
            #SET H$ %!2  // get the fieldnumber of parameter
            #SET G$ !2   // get the filenumber of parameter
            SEND$HELP |CI!g |CI!h !3 !4 !5 !6 !7 !8 !9
            #POP G$
            #POP H$
          #ELSE
            #ERROR DFERR_COMP_UNDEFINED_SYMBOL_IN_ARGUMENT UNKNOWN FILE_FIELD: !2
          #ENDIF
        #ELSE
          // As of 10.1 we will support passing of object names as parameters.
          #IFDEF !1   // if value is defined, just use it
            #DPUSH !1
          #ELSE
            #IFCLASS !1 0123456789ABCDEF // this allows one to pass hex constants (e.g. $C003, NOENTER)
              #DPUSH !1
            #ELSE             // not defined, see if this is an object, referecne
              #IFDEF GET_!1   // if defined as a function and is an object access, use it
                #IF (GET_!1>$40000000)
                  DPUSH$EXP (!1(current_object))
                #ELSE
                  #DPUSH !1 // will generate a symbol not defined error
                #ENDIF
              #ELSE
                #DPUSH !1 // will generate a symbol not defined error
              #ENDIF
            #ENDIF
          #ENDIF
          SEND$HELP !2 !3 !4 !5 !6 !7 !8 !9
        #ENDIF
      #ENDIF
    #ENDIF
  #ENDIF