def set name, value, match_image = nil, flags = 0
      gtype = get_typeof name

      if gtype == IMAGE_TYPE
        value = Operation::imageize match_image, value

        if (flags & ARGUMENT_MODIFY) != 0
          # make sure we have a unique copy
          value = value.copy.copy_memory
        end
      elsif gtype == ARRAY_IMAGE_TYPE
        value = value.map {|x| Operation::imageize match_image, x}
      end

      super name, value
    end
def set name, value, match_image = nil, flags = 0
      gtype = get_typeof name

      if gtype == IMAGE_TYPE
        value = Operation::imageize match_image, value

        if (flags & ARGUMENT_MODIFY) != 0
          # make sure we have a unique copy
          value = value.copy.copy_memory
        end
      elsif gtype == ARRAY_IMAGE_TYPE
        value = value.map {|x| Operation::imageize match_image, x}
      end

      super name, value
    end
set an operation argument, expanding constants and copying images as
 required