original_string: public function mergeIn($def)
      {
          // later keys takes precedence
          foreach ($def->attr as $k => $v) {
              if ($k === 0) {
                  // merge in the includes
                  // sorry, no way to override an include
                  foreach ($v as $v2) {
                      $this->attr[0][] = $v2;
                  }
                  continue;
              }
              if ($v === false) {
                  if (isset($this->attr[$k])) {
                      unset($this->attr[$k]);
                  }
                  continue;
              }
              $this->attr[$k] = $v;
          }
          $this->_mergeAssocArray($this->excludes, $def->excludes);
          $this->attr_transform_pre = array_merge($this->attr_transform_pre, $def->attr_transform_pre);
          $this->attr_transform_post = array_merge($this->attr_transform_post, $def->attr_transform_post);
  
          if (!empty($def->content_model)) {
              $this->content_model =
                  str_replace("#SUPER", $this->content_model, $def->content_model);
              $this->child = false;
          }
          if (!empty($def->content_model_type)) {
              $this->content_model_type = $def->content_model_type;
              $this->child = false;
          }
          if (!is_null($def->child)) {
              $this->child = $def->child;
          }
          if (!is_null($def->formatting)) {
              $this->formatting = $def->formatting;
          }
          if ($def->descendants_are_inline) {
              $this->descendants_are_inline = $def->descendants_are_inline;
          }
      }
code: public function mergeIn($def)
      {
          // later keys takes precedence
          foreach ($def->attr as $k => $v) {
              if ($k === 0) {
                  // merge in the includes
                  // sorry, no way to override an include
                  foreach ($v as $v2) {
                      $this->attr[0][] = $v2;
                  }
                  continue;
              }
              if ($v === false) {
                  if (isset($this->attr[$k])) {
                      unset($this->attr[$k]);
                  }
                  continue;
              }
              $this->attr[$k] = $v;
          }
          $this->_mergeAssocArray($this->excludes, $def->excludes);
          $this->attr_transform_pre = array_merge($this->attr_transform_pre, $def->attr_transform_pre);
          $this->attr_transform_post = array_merge($this->attr_transform_post, $def->attr_transform_post);
  
          if (!empty($def->content_model)) {
              $this->content_model =
                  str_replace("#SUPER", $this->content_model, $def->content_model);
              $this->child = false;
          }
          if (!empty($def->content_model_type)) {
              $this->content_model_type = $def->content_model_type;
              $this->child = false;
          }
          if (!is_null($def->child)) {
              $this->child = $def->child;
          }
          if (!is_null($def->formatting)) {
              $this->formatting = $def->formatting;
          }
          if ($def->descendants_are_inline) {
              $this->descendants_are_inline = $def->descendants_are_inline;
          }
      }
code_tokens: public function mergeIn ( $ def ) { // later keys takes precedence foreach ( $ def -> attr as $ k => $ v ) { if ( $ k === 0 ) { // merge in the includes // sorry, no way to override an include foreach ( $ v as $ v2 ) { $ this -> attr [ 0 ] [ ] = $ v2 ; } continue ; } if ( $ v === false ) { if ( isset ( $ this -> attr [ $ k ] ) ) { unset ( $ this -> attr [ $ k ] ) ; } continue ; } $ this -> attr [ $ k ] = $ v ; } $ this -> _mergeAssocArray ( $ this -> excludes , $ def -> excludes ) ; $ this -> attr_transform_pre = array_merge ( $ this -> attr_transform_pre , $ def -> attr_transform_pre ) ; $ this -> attr_transform_post = array_merge ( $ this -> attr_transform_post , $ def -> attr_transform_post ) ; if ( ! empty ( $ def -> content_model ) ) { $ this -> content_model = str_replace ( "#SUPER" , $ this -> content_model , $ def -> content_model ) ; $ this -> child = false ; } if ( ! empty ( $ def -> content_model_type ) ) { $ this -> content_model_type = $ def -> content_model_type ; $ this -> child = false ; } if ( ! is_null ( $ def -> child ) ) { $ this -> child = $ def -> child ; } if ( ! is_null ( $ def -> formatting ) ) { $ this -> formatting = $ def -> formatting ; } if ( $ def -> descendants_are_inline ) { $ this -> descendants_are_inline = $ def -> descendants_are_inline ; } }
docstring: Merges the values of another element definition into this one.
  Values from the new element def take precedence if a value is
  not mergeable.
  @param HTMLPurifier_ElementDef $def
docstring_tokens: Merges the values of another element definition into this one . Values from the new element def take precedence if a value is not mergeable .