diff --git a/zabapgit.abap b/zabapgit.abap index 127bd58e7..f7e929564 100644 --- a/zabapgit.abap +++ b/zabapgit.abap @@ -716,6 +716,8 @@ CLASS lcl_debug DEFINITION FINAL. CLASS-METHODS: render_objects IMPORTING iv_message TYPE string it_objects TYPE tt_objects. + CLASS-METHODS: message IMPORTING iv_message TYPE string. + CLASS-METHODS: get_html RETURNING value(rv_html) TYPE string. CLASS-METHODS: get_debug RETURNING value(rv_debug) TYPE abap_bool. @@ -743,10 +745,7 @@ CLASS lcl_debug IMPLEMENTATION. rv_html = gv_html. ENDMETHOD. "get_html - METHOD render_objects. - - FIELD-SYMBOLS: LIKE LINE OF it_objects. - + METHOD message. IF gv_debug = abap_false. RETURN. @@ -757,15 +756,43 @@ CLASS lcl_debug IMPLEMENTATION. iv_message && '
'. + ENDMETHOD. "message + + METHOD render_objects. + + DATA: lv_len TYPE i. + + FIELD-SYMBOLS: LIKE LINE OF it_objects. + + + IF gv_debug = abap_false. + RETURN. + ENDIF. + + message( iv_message ). + + gv_html = gv_html && '' && gc_newline. LOOP AT it_objects ASSIGNING . -* todo + + lv_len = xstrlen( -data ). + IF lv_len > 50. + lv_len = 50. + ENDIF. + + gv_html = gv_html && + '' && gc_newline && + '' && gc_newline && + '' && gc_newline && + '' && gc_newline && + '' && gc_newline. ENDLOOP. + gv_html = gv_html && '
' && -sha1 && '' && -type && '' && -data(lv_len) && '
' && gc_newline. ENDMETHOD. "render_objects METHOD clear. - gv_html = '

Debug Information

'. + gv_html = '

Debug Information


'. ENDMETHOD. "clear @@ -4481,6 +4508,9 @@ CLASS lcl_pack IMPLEMENTATION. lv_result TYPE xstring, lv_bitbyte TYPE t_bitbyte, lv_offset TYPE i, + lv_message TYPE string, + lv_sha1 TYPE t_sha1, + lv_char40 TYPE c LENGTH 40, ls_object LIKE LINE OF ct_objects, lv_len TYPE i, lv_x TYPE x. @@ -4493,11 +4523,18 @@ CLASS lcl_pack IMPLEMENTATION. * find base READ TABLE ct_objects ASSIGNING WITH KEY sha1 = is_object-sha1. IF sy-subrc <> 0. - _raise 'Base not found'. + lv_char40 = is_object-sha1. + CONCATENATE 'Base not found,' lv_char40 INTO lv_message + SEPARATED BY space. "#EC NOTEXT + _raise lv_message. ELSE. lv_base = -data. ENDIF. +* sanity check + IF -type = gc_ref_d. + _raise 'Delta, base eq delta'. + ENDIF. delta_header( CHANGING cv_delta = lv_delta ). @@ -4559,8 +4596,23 @@ CLASS lcl_pack IMPLEMENTATION. ENDWHILE. + lv_sha1 = lcl_hash=>sha1( iv_type = -type iv_data = lv_result ). + + lcl_debug=>message( 'Delta,' && + -type && + ',new sha1, ' && + lv_sha1 && + ',old: ' && + -sha1 ). "#EC NOTEXT + IF -type = gc_blob. + lcl_debug=>message( '
' &&
+        escape( val = lcl_convert=>xstring_to_string_utf8( lv_result )
+                format = cl_abap_format=>e_html_text ) &&
+        '
' ). + ENDIF. + CLEAR ls_object. - ls_object-sha1 = lcl_hash=>sha1( iv_type = -type iv_data = lv_result ). + ls_object-sha1 = lv_sha1. ls_object-type = -type. ls_object-data = lv_result. APPEND ls_object TO ct_objects. @@ -6437,9 +6489,9 @@ CLASS lcl_gui IMPLEMENTATION. METHOD render_footer. rv_html = rv_html && - '


abapGit Version: ' && - gc_version && - ' d

'. + '


abapGit Version: ' && + gc_version && + ' d

'. "#EC NOTEXT rv_html = rv_html && ''.