anchor.diff:  
   ENDCLASS.
   
  +*----------------------------------------------------------------------*
  +*       CLASS lcl_html_helper DEFINITION
  +*----------------------------------------------------------------------*
  +CLASS lcl_html_helper DEFINITION FINAL.
  +  PUBLIC SECTION.
  +    CONSTANTS c_indent_size TYPE i VALUE 2.
  +
  +    DATA mv_html   TYPE string READ-ONLY.
  +    DATA mv_indent TYPE i READ-ONLY.
  +
  +    METHODS add IMPORTING iv_chunk TYPE any.
  +    METHODS reset.
  +
  +  PRIVATE SECTION.
  +    METHODS _add_str IMPORTING iv_str  TYPE csequence.
  +    METHODS _add_htm IMPORTING io_html TYPE REF TO lcl_html_helper.
  +
  +ENDCLASS.                    "lcl_html_helper DEFINITION
  +
  +*----------------------------------------------------------------------*
  +*       CLASS lcl_html_helper IMPLEMENTATION
  +*----------------------------------------------------------------------*
  +CLASS lcl_html_helper IMPLEMENTATION.
  +  METHOD add.
  +    DATA lo_type TYPE REF TO cl_abap_typedescr.
  +    DATA lo_html TYPE REF TO lcl_html_helper.
  +
  +    lo_type = cl_abap_typedescr=>describe_by_data( iv_chunk ).
  +
  +    CASE lo_type->type_kind.
  +      WHEN cl_abap_typedescr=>typekind_char
  +          OR cl_abap_typedescr=>typekind_string.
  +        IF strlen( iv_chunk ) = 0.
  +          RETURN.
  +        ENDIF.
  +        _add_str( iv_chunk ).
  +      WHEN cl_abap_typedescr=>typekind_oref.
  +        ASSERT iv_chunk IS BOUND. " Dev mistake
  +        TRY.
  +            lo_html ?= iv_chunk.
  +          CATCH cx_sy_move_cast_error.
  +            ASSERT 1 = 0. " Dev mistake
  +        ENDTRY.
  +        _add_htm( lo_html ).
  +      WHEN OTHERS.
  +        ASSERT 1 = 0. " Dev mistake
  +    ENDCASE.
  +
  +  ENDMETHOD.  " add
  +
  +  METHOD reset.
  +    CLEAR: me->mv_html, me->mv_indent.
  +  ENDMETHOD.                    "reset
  +
  +  METHOD _add_str.
  +    CONSTANTS lc_single_tags_re TYPE string " HTML5 singleton tags
  +      VALUE '<(area|base|br|col|command|embed|hr|img|input|link|meta|param|source)'.
  +
  +    DATA lv_tags        TYPE i.
  +    DATA lv_tags_open   TYPE i.
  +    DATA lv_tags_close  TYPE i.
  +    DATA lv_tags_single TYPE i.
  +    DATA lv_close_offs  TYPE i.
  +    DATA lv_shift_back  TYPE i.
  +
  +    FIND FIRST OCCURRENCE OF '</' IN iv_str MATCH OFFSET lv_close_offs.
  +    IF sy-subrc = 0 AND lv_close_offs = 0 AND mv_indent > 0. " Found close tag @beginning
  +      lv_shift_back = 1.
  +    ENDIF.
  +
  +    mv_html =   mv_html
  +            &&  repeat( val = ` ` occ = ( mv_indent - lv_shift_back ) * c_indent_size )
  +            &&  iv_str
  +            &&  gc_newline.
  +
  +    FIND ALL OCCURRENCES OF '<'  IN iv_str MATCH COUNT lv_tags.
  +    FIND ALL OCCURRENCES OF '</' IN iv_str MATCH COUNT lv_tags_close.
  +    FIND ALL OCCURRENCES OF REGEX lc_single_tags_re IN iv_str MATCH COUNT lv_tags_single.
  +
  +    lv_tags_open = lv_tags - lv_tags_close - lv_tags_single.
  +
  +    " More-less logic chosen due to possible double tags in a line '<a><b>'
  +    IF lv_tags_open > lv_tags_close.
  +      mv_indent = mv_indent + 1.
  +    ELSEIF lv_tags_open < lv_tags_close AND mv_indent > 0.
  +      mv_indent = mv_indent - 1.
  +    ENDIF.
  +
  +  ENDMETHOD.                    "_add_str
  +
  +  METHOD _add_htm.
  +    DATA lv_indent_str  TYPE string.
  +    DATA lv_temp_str    TYPE string.
  +
  +    lv_indent_str = repeat( val = ` ` occ = mv_indent * c_indent_size ).
  +    lv_temp_str   = io_html->mv_html.
  +
  +    IF me->mv_indent > 0.
  +      REPLACE ALL OCCURRENCES OF gc_newline IN lv_temp_str
  +        WITH gc_newline && lv_indent_str.
  +      SHIFT lv_temp_str RIGHT DELETING TRAILING space.
  +      SHIFT lv_temp_str LEFT  DELETING LEADING space.
  +    ENDIF.
  +
  +    mv_html   = mv_html && lv_indent_str && lv_temp_str.
  +    mv_indent = mv_indent + io_html->mv_indent.
  +
  +  ENDMETHOD.                    "_add_htm
  +
  +ENDCLASS.                    "lcl_html_helper IMPLEMENTATION
  +
   CLASS lcl_log DEFINITION.
   
     PUBLIC SECTION.
  
positive.code: 
      CLASS-METHODS status
        IMPORTING io_repo           TYPE REF TO lcl_repo
  *      it_files          TYPE ty_files_tt
  *                iv_package        TYPE devclass
        RETURNING VALUE(rt_results) TYPE ty_results_tt
        RAISING   lcx_exception.
  
  
negative.code:       LOOP AT it_results ASSIGNING <ls_res2>
            WHERE filename = <ls_res1>-filename
            AND path <> <ls_res1>-path.
          io_log->add( iv_msgv1 = 'Multiple files with same filename,'
                       iv_msgv2 = <ls_res1>-filename ) ##no_text.
          EXIT.
        ENDLOOP.
      ENDLOOP.
  
    ENDMETHOD.                    "check
  
  