diff --git a/src/zabapgit.prog.abap b/src/zabapgit.prog.abap index 238ed1a05..d84ad1500 100644 --- a/src/zabapgit.prog.abap +++ b/src/zabapgit.prog.abap @@ -3,7 +3,7 @@ REPORT zabapgit LINE-SIZE 100. * See http://www.abapgit.org CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT - gc_abap_version TYPE string VALUE 'v1.24.1'. "#EC NOTEXT + gc_abap_version TYPE string VALUE 'v1.24.2'. "#EC NOTEXT ******************************************************************************** * The MIT License (MIT) diff --git a/src/zabapgit_page_diff.prog.abap b/src/zabapgit_page_diff.prog.abap index 80d13850a..1be3f3ac6 100644 --- a/src/zabapgit_page_diff.prog.abap +++ b/src/zabapgit_page_diff.prog.abap @@ -54,9 +54,9 @@ CLASS lcl_gui_page_diff DEFINITION FINAL INHERITING FROM lcl_gui_page_super. EXPORTING ev_lattr TYPE string ev_rattr TYPE string. METHODS append_diff - IMPORTING it_remote TYPE ty_files_tt - it_local TYPE ty_files_item_tt - is_status TYPE ty_result + IMPORTING it_remote TYPE ty_files_tt + it_local TYPE ty_files_item_tt + is_status TYPE ty_result RAISING lcx_exception. ENDCLASS. "lcl_gui_page_diff @@ -121,8 +121,8 @@ CLASS lcl_gui_page_diff IMPLEMENTATION. METHOD append_diff. DATA: - ls_r_dummy LIKE LINE OF it_remote ##NEEDED, - ls_l_dummy LIKE LINE OF it_local ##NEEDED. + ls_r_dummy LIKE LINE OF it_remote ##NEEDED, + ls_l_dummy LIKE LINE OF it_local ##NEEDED. FIELD-SYMBOLS: LIKE LINE OF it_remote, @@ -202,14 +202,14 @@ CLASS lcl_gui_page_diff IMPLEMENTATION. CREATE OBJECT ro_html. - ro_html->add( '' ). "#EC NOTEXT - ro_html->add( '' ). "#EC NOTEXT - ro_html->add( '' ). "#EC NOTEXT - ro_html->add( 'LOCAL' ). "#EC NOTEXT - ro_html->add( '' ). "#EC NOTEXT - ro_html->add( 'REMOTE' ). "#EC NOTEXT - ro_html->add( '' ). "#EC NOTEXT - ro_html->add( '' ). "#EC NOTEXT + ro_html->add( '' ). "#EC NOTEXT + ro_html->add( '' ). "#EC NOTEXT + ro_html->add( '' ). "#EC NOTEXT + ro_html->add( 'LOCAL' ). "#EC NOTEXT + ro_html->add( '' ). "#EC NOTEXT + ro_html->add( 'REMOTE' ). "#EC NOTEXT + ro_html->add( '' ). "#EC NOTEXT + ro_html->add( '' ). "#EC NOTEXT ENDMETHOD. " render_table_head. @@ -261,6 +261,7 @@ CLASS lcl_gui_page_diff IMPLEMENTATION. lv_remote TYPE string, lv_lattr TYPE string, lv_rattr TYPE string, + lv_highlight TYPE abap_bool, lv_insert_nav TYPE abap_bool. FIELD-SYMBOLS LIKE LINE OF lt_diffs. @@ -270,6 +271,8 @@ CLASS lcl_gui_page_diff IMPLEMENTATION. lt_diffs = is_diff-o_diff->get( ). + lv_highlight = boolc( is_diff-filename CP '*.abap' ). + LOOP AT lt_diffs ASSIGNING . IF -short = abap_false. lv_insert_nav = abap_true. @@ -282,11 +285,19 @@ CLASS lcl_gui_page_diff IMPLEMENTATION. ENDIF. IF is_diff-mod = c_mod-remote. " Remote file leading changes - lv_local = lo_highlighter->process_line( -old ). - lv_remote = lo_highlighter->process_line( -new ). + lv_local = -old. + lv_remote = -new. ELSE. " Local leading changes or both were modified - lv_local = lo_highlighter->process_line( -new ). - lv_remote = lo_highlighter->process_line( -old ). + lv_local = -new. + lv_remote = -old. + ENDIF. + + IF lv_highlight = abap_true. + lv_local = lo_highlighter->process_line( lv_local ). + lv_remote = lo_highlighter->process_line( lv_remote ). + ELSE. + lv_local = escape( val = lv_local format = cl_abap_format=>e_html_attr ). + lv_remote = escape( val = lv_remote format = cl_abap_format=>e_html_attr ). ENDIF. get_line_hl( EXPORTING iv_mod = is_diff-mod @@ -315,21 +326,21 @@ CLASS lcl_gui_page_diff IMPLEMENTATION. " Both file changed ? Or line updated ? - All yellow IF iv_mod = c_mod-both OR iv_result = lcl_diff=>c_diff-update. - ev_lattr = ' class="diff_upd"'. "#EC NOTEXT - ev_rattr = ' class="diff_upd"'. "#EC NOTEXT + ev_lattr = ' class="diff_upd"'. "#EC NOTEXT + ev_rattr = ' class="diff_upd"'. "#EC NOTEXT ELSEIF iv_mod = c_mod-local. " Changed locally CASE iv_result. WHEN lcl_diff=>c_diff-insert. - ev_lattr = ' class="diff_ins"'. "#EC NOTEXT + ev_lattr = ' class="diff_ins"'. "#EC NOTEXT WHEN lcl_diff=>c_diff-delete. - ev_rattr = ' class="diff_del"'. "#EC NOTEXT + ev_rattr = ' class="diff_del"'. "#EC NOTEXT ENDCASE. ELSEIF iv_mod = c_mod-remote. " Changed remotely - invert sides CASE iv_result. WHEN lcl_diff=>c_diff-insert. - ev_rattr = ' class="diff_ins"'. "#EC NOTEXT + ev_rattr = ' class="diff_ins"'. "#EC NOTEXT WHEN lcl_diff=>c_diff-delete. - ev_lattr = ' class="diff_del"'. "#EC NOTEXT + ev_lattr = ' class="diff_del"'. "#EC NOTEXT ENDCASE. ENDIF.