anchor.diff:            WHERE NOT result IS INITIAL AND short = abap_false.
           lv_index = sy-tabix.
   
  -        DO 20 TIMES.
  -          READ TABLE mt_diff INDEX lv_index ASSIGNING <ls_diff>.
  -          IF sy-subrc <> 0 OR <ls_diff>-short = abap_true.
  +        DO 20 TIMES. " Backward
  +          READ TABLE mt_diff INDEX ( lv_index - sy-index ) ASSIGNING <ls_diff>.
  +          IF sy-subrc <> 0 OR <ls_diff>-short = abap_true. " tab bound or prev marker
               EXIT.
             ENDIF.
             <ls_diff>-short = abap_true.
  -          lv_index = lv_index - 1.
  +*          lv_index = lv_index - 1.
  +        ENDDO.
  +
  +        DO 20 TIMES. " Forward
  +*          lv_index = lv_index + 1.
  +          READ TABLE mt_diff INDEX ( lv_index + sy-index - 1 ) ASSIGNING <ls_diff>.
  +          IF sy-subrc <> 0. " tab bound reached
  +            EXIT.
  +          ENDIF.
  +          CHECK <ls_diff>-short = abap_false. " skip marked
  +          <ls_diff>-short = abap_true.
           ENDDO.
   
         ENDLOOP.
  
positive.code: 
      DATA lo_html         TYPE REF TO lcl_html_helper.
      DATA lt_diffs        TYPE lcl_diff=>ty_diffs_tt.
      DATA lv_index        TYPE i.
      DATA lv_local        TYPE string.
      DATA lv_remote       TYPE string.
      DATA lv_attr_local   TYPE string.
      DATA lv_attr_remote  TYPE string.
      DATA lv_anchor_count LIKE sy-tabix.
      DATA lv_href         TYPE string.
  
      FIELD-SYMBOLS <ls_diff>  LIKE LINE OF lt_diffs.
      FIELD-SYMBOLS <ls_break> LIKE LINE OF lt_diffs.
  
negative.code: 
    PRIVATE SECTION.
      DATA: mv_filename TYPE string,
            ms_stats    TYPE lcl_diff=>ty_count,
            mo_diff     TYPE REF TO lcl_diff.
  
      METHODS styles       RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
  