pretty printer, plus fix #51

This commit is contained in:
Lars Hvam 2015-02-07 12:33:00 +01:00
parent f0241da370
commit 4b3a598d58

View File

@ -3,7 +3,7 @@ REPORT zabapgit.
* See https://github.com/larshp/abapGit/
CONSTANTS: gc_xml_version TYPE string VALUE 'v0.2-alpha', "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v0.14'. "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v0.15'. "#EC NOTEXT
********************************************************************************
* The MIT License (MIT)
@ -455,7 +455,7 @@ CLASS lcl_xml IMPLEMENTATION.
li_elm TYPE REF TO if_ixml_element,
lo_descr_ref TYPE REF TO cl_abap_structdescr.
FIELD-SYMBOLS: <lg_any> TYPE ANY,
FIELD-SYMBOLS: <lg_any> TYPE any,
<ls_comp> LIKE LINE OF lo_descr_ref->components.
@ -500,7 +500,7 @@ CLASS lcl_xml IMPLEMENTATION.
lo_data_descr TYPE REF TO cl_abap_datadescr,
lo_table_descr TYPE REF TO cl_abap_tabledescr.
FIELD-SYMBOLS: <lg_line> TYPE ANY.
FIELD-SYMBOLS: <lg_line> TYPE any.
CLEAR ct_table[].
@ -539,7 +539,7 @@ CLASS lcl_xml IMPLEMENTATION.
ENDCASE.
IF <lg_line> IS INITIAL.
lv_index = LINES( ct_table ).
lv_index = lines( ct_table ).
DELETE ct_table INDEX lv_index.
ASSERT sy-subrc = 0.
EXIT. " current loop
@ -622,7 +622,7 @@ CLASS lcl_xml IMPLEMENTATION.
lo_data_descr TYPE REF TO cl_abap_datadescr,
lo_table_descr TYPE REF TO cl_abap_tabledescr.
FIELD-SYMBOLS: <lg_line> TYPE ANY.
FIELD-SYMBOLS: <lg_line> TYPE any.
lo_table_descr ?= cl_abap_typedescr=>describe_by_data( it_table ).
@ -730,7 +730,7 @@ CLASS lcl_xml IMPLEMENTATION.
lo_descr TYPE REF TO cl_abap_structdescr.
FIELD-SYMBOLS: <ls_comp> LIKE LINE OF lo_descr->components,
<lg_any> TYPE ANY.
<lg_any> TYPE any.
lo_descr ?= cl_abap_typedescr=>describe_by_data( ig_structure ).
@ -864,7 +864,7 @@ CLASS lcl_debug IMPLEMENTATION.
CONCATENATE gv_html '<table border="1">' gc_newline INTO gv_html.
LOOP AT it_objects ASSIGNING <ls_object>.
lv_len = XSTRLEN( <ls_object>-data ).
lv_len = xstrlen( <ls_object>-data ).
IF lv_len > 50.
lv_len = 50.
ENDIF.
@ -1114,7 +1114,7 @@ CLASS lcl_convert IMPLEMENTATION.
lv_xstring = iv_xstring.
WHILE XSTRLEN( lv_xstring ) > 0.
WHILE xstrlen( lv_xstring ) > 0.
lv_x = lv_xstring(1).
rv_i = rv_i * 256 + lv_x.
lv_xstring = lv_xstring+1.
@ -1132,7 +1132,7 @@ CLASS lcl_convert IMPLEMENTATION.
lo_obj = cl_abap_conv_in_ce=>create(
input = iv_data
encoding = 'UTF-8' ).
lv_len = XSTRLEN( iv_data ).
lv_len = xstrlen( iv_data ).
lo_obj->read( EXPORTING n = lv_len
IMPORTING data = rv_string ).
@ -1172,7 +1172,7 @@ CLASS lcl_convert IMPLEMENTATION.
lv_bits = iv_bits.
rv_int = 0.
WHILE STRLEN( lv_bits ) > 0.
WHILE strlen( lv_bits ) > 0.
rv_int = rv_int * 2.
IF lv_bits(1) = '1'.
rv_int = rv_int + 1.
@ -1452,7 +1452,7 @@ CLASS lcl_objects_common IMPLEMENTATION.
ENDIF.
IF NOT it_tpool[] IS INITIAL.
INSERT textpool is_progdir-name
INSERT TEXTPOOL is_progdir-name
FROM it_tpool
LANGUAGE sy-langu
STATE 'I'.
@ -1683,7 +1683,7 @@ CLASS lcl_objects_common IMPLEMENTATION.
io_xml = lo_xml ).
ENDIF.
IF LINES( lt_tpool ) = 1.
IF lines( lt_tpool ) = 1.
READ TABLE lt_tpool INDEX 1 INTO ls_tpool.
IF ls_tpool-id = 'R' AND ls_tpool-key = '' AND ls_tpool-length = 0.
DELETE lt_tpool INDEX 1.
@ -2450,7 +2450,7 @@ CLASS lcl_object_clas IMPLEMENTATION.
* skip files that only contain the standard comments
lv_found = abap_false.
LOOP AT ct_source INTO lv_source.
IF STRLEN( lv_source ) >= 3 AND lv_source(3) <> '*"*'.
IF strlen( lv_source ) >= 3 AND lv_source(3) <> '*"*'.
lv_found = abap_true.
ENDIF.
ENDLOOP.
@ -2833,7 +2833,7 @@ CLASS lcl_object_clas IMPLEMENTATION.
lv_clsname = is_item-obj_name.
lv_cp = cl_oo_classname_service=>get_classpool_name( lv_clsname ).
INSERT textpool lv_cp
INSERT TEXTPOOL lv_cp
FROM lt_tpool
LANGUAGE sy-langu
STATE 'I'.
@ -3274,7 +3274,7 @@ CLASS lcl_object_tabl IMPLEMENTATION.
CALL FUNCTION 'RS_DD_DELETE_OBJ'
EXPORTING
no_ask = abap_true
no_ask = abap_false
objname = lv_objname
objtype = 'T'
EXCEPTIONS
@ -4197,7 +4197,7 @@ CLASS lcl_object_msag IMPLEMENTATION.
IMPORTING
message_id_inf = ls_inf
TABLES
SOURCE = lt_source
source = lt_source
EXCEPTIONS
cancelled = 1
not_found = 2
@ -4710,7 +4710,7 @@ CLASS lcl_object_fugr IMPLEMENTATION.
tables_parameter = lt_tables
exception_list = lt_exception
documentation = lt_documentation
SOURCE = lt_source
source = lt_source
EXCEPTIONS
error_message = 1
function_not_found = 2
@ -5292,11 +5292,11 @@ CLASS lcl_object_prog IMPLEMENTATION.
METHOD deserialize_textpool.
READ TABLE it_tpool WITH KEY id = 'R' TRANSPORTING NO FIELDS.
IF ( sy-subrc = 0 AND LINES( it_tpool ) = 1 ) OR LINES( it_tpool ) = 0.
IF ( sy-subrc = 0 AND lines( it_tpool ) = 1 ) OR lines( it_tpool ) = 0.
RETURN. " no action for includes
ENDIF.
INSERT textpool is_item-obj_name
INSERT TEXTPOOL is_item-obj_name
FROM it_tpool
LANGUAGE sy-langu
STATE 'I'.
@ -5671,7 +5671,7 @@ CLASS lcl_objects IMPLEMENTATION.
lt_files[] = rt_files[].
SORT lt_files BY path ASCENDING filename ASCENDING.
DELETE ADJACENT DUPLICATES FROM lt_files COMPARING path filename.
IF LINES( lt_files ) <> LINES( rt_files ).
IF lines( lt_files ) <> lines( rt_files ).
_raise 'Duplicates'.
ENDIF.
@ -5697,7 +5697,7 @@ CLASS lcl_objects IMPLEMENTATION.
TRANSLATE lv_pre TO UPPER CASE.
TRANSLATE lv_type TO UPPER CASE.
IF lv_ext <> 'xml' OR STRLEN( lv_type ) <> 4.
IF lv_ext <> 'xml' OR strlen( lv_type ) <> 4.
CONTINUE. " current loop
ENDIF.
@ -5822,7 +5822,7 @@ CLASS lcl_objects IMPLEMENTATION.
activate_ddic_objects = abap_true
with_popup = abap_true
TABLES
OBJECTS = lcl_objects_common=>gt_ddic
objects = lcl_objects_common=>gt_ddic
EXCEPTIONS
excecution_error = 1
cancelled = 2
@ -5840,7 +5840,7 @@ CLASS lcl_objects IMPLEMENTATION.
activate_ddic_objects = abap_false
with_popup = abap_true
TABLES
OBJECTS = lcl_objects_common=>gt_programs
objects = lcl_objects_common=>gt_programs
EXCEPTIONS
excecution_error = 1
cancelled = 2
@ -5914,7 +5914,7 @@ CLASS lcl_hash IMPLEMENTATION.
lv_char8 TYPE c LENGTH 8.
do xstrlen( iv_xstring ) times.
DO xstrlen( iv_xstring ) TIMES.
lv_index = sy-index - 1.
lv_a = ( lv_a + iv_xstring+lv_index(1) ) MOD lc_adler.
@ -5964,7 +5964,7 @@ CLASS lcl_hash IMPLEMENTATION.
lv_xstring TYPE xstring.
lv_len = XSTRLEN( iv_data ).
lv_len = xstrlen( iv_data ).
lv_char10 = lv_len.
CONDENSE lv_char10.
CONCATENATE iv_type lv_char10 INTO lv_string SEPARATED BY space.
@ -6084,7 +6084,7 @@ CLASS lcl_pack IMPLEMENTATION.
_raise 'Unexpected object type while encoding pack'.
ENDCASE.
lv_x4 = XSTRLEN( is_object-data ).
lv_x4 = xstrlen( is_object-data ).
DO 32 TIMES.
GET BIT sy-index OF lv_x4 INTO lv_c.
CONCATENATE lv_bits lv_c INTO lv_bits.
@ -6106,10 +6106,10 @@ CLASS lcl_pack IMPLEMENTATION.
* convert bit string to xstring
CLEAR lv_x.
do strlen( lv_result ) times.
DO strlen( lv_result ) TIMES.
lv_offset = sy-index - 1.
IF lv_result+lv_offset(1) = '1'.
SET bit ( lv_offset mod 8 ) + 1 of lv_x.
SET BIT ( lv_offset MOD 8 ) + 1 OF lv_x.
ENDIF.
IF ( lv_offset + 1 ) MOD 8 = 0.
CONCATENATE rv_xstring lv_x INTO rv_xstring IN BYTE MODE.
@ -6260,7 +6260,7 @@ CLASS lcl_pack IMPLEMENTATION.
lv_mode = 'tree'. "#EC NOTEXT
LOOP AT lt_string ASSIGNING <lv_string>.
lv_len = STRLEN( lv_mode ).
lv_len = strlen( lv_mode ).
IF NOT lv_mode IS INITIAL AND <lv_string>(lv_len) = lv_mode.
CASE lv_mode.
@ -6293,7 +6293,7 @@ CLASS lcl_pack IMPLEMENTATION.
ENDLOOP.
* strip first newline
IF STRLEN( rs_commit-body ) >= 2.
IF strlen( rs_commit-body ) >= 2.
rs_commit-body = rs_commit-body+2.
ENDIF.
@ -6381,7 +6381,7 @@ CLASS lcl_pack IMPLEMENTATION.
delta_header( CHANGING cv_delta = lv_delta ).
WHILE XSTRLEN( lv_delta ) > 0.
WHILE xstrlen( lv_delta ) > 0.
lv_x = lv_delta(1).
lv_delta = lv_delta+1.
@ -6493,7 +6493,7 @@ CLASS lcl_pack IMPLEMENTATION.
DO.
IF lv_cursor >= XSTRLEN( iv_data ).
IF lv_cursor >= xstrlen( iv_data ).
EXIT. " current loop
ENDIF.
@ -6548,7 +6548,7 @@ CLASS lcl_pack IMPLEMENTATION.
lv_data = iv_data.
* header
IF NOT XSTRLEN( lv_data ) > 4 OR lv_data(4) <> c_pack_start.
IF NOT xstrlen( lv_data ) > 4 OR lv_data(4) <> c_pack_start.
_raise 'Unexpected pack header'.
ENDIF.
lv_data = lv_data+4.
@ -6619,7 +6619,7 @@ CLASS lcl_pack IMPLEMENTATION.
* result when '7801'
* compressed data might be larger than origial so add 10, adding 10 is safe
* as package always ends with sha1 checksum
do lv_expected + 10 times.
DO lv_expected + 10 TIMES.
lv_compressed_len = sy-index.
cl_abap_gzip=>decompress_binary(
@ -6676,7 +6676,7 @@ CLASS lcl_pack IMPLEMENTATION.
ENDDO.
* check SHA1 at end of pack
lv_len = XSTRLEN( iv_data ) - 20.
lv_len = xstrlen( iv_data ) - 20.
lv_xstring = iv_data(lv_len).
lv_sha1 = lcl_hash=>sha1_raw( lv_xstring ).
IF lv_sha1 <> lv_data.
@ -6700,7 +6700,7 @@ CLASS lcl_pack IMPLEMENTATION.
CONCATENATE rv_data c_version INTO rv_data IN BYTE MODE.
lv_len = LINES( it_objects ).
lv_len = lines( it_objects ).
lv_xstring = lcl_convert=>int_to_xstring( iv_i = lv_len
iv_length = 4 ).
CONCATENATE rv_data lv_xstring INTO rv_data IN BYTE MODE.
@ -6972,7 +6972,7 @@ CLASS lcl_persistence IMPLEMENTATION.
_raise 'Error from READ_TEXT'.
ENDIF.
IF LINES( lt_lines ) MOD 4 <> 0.
IF lines( lt_lines ) MOD 4 <> 0.
* if this happens, delete text ZABAPGIT in SO10 or edit the text
* manually, so it contains the right information
_raise 'Persistence, text broken'.
@ -7213,26 +7213,26 @@ CLASS lcl_transport IMPLEMENTATION.
_raise 'branch empty'.
ENDIF.
lv_len = STRLEN( is_repo-branch_name ).
lv_len = strlen( is_repo-branch_name ).
SPLIT lv_data AT gc_newline INTO TABLE lt_result.
LOOP AT lt_result INTO lv_data.
IF sy-tabix = 1.
CONTINUE. " current loop
ELSEIF sy-tabix = 2 AND STRLEN( lv_data ) > 49
ELSEIF sy-tabix = 2 AND strlen( lv_data ) > 49
AND lv_data+49(lv_len) = is_repo-branch_name.
lv_hash = lv_data+8.
EXIT. " current loop
ELSEIF sy-tabix > 2 AND STRLEN( lv_data ) > 45
ELSEIF sy-tabix > 2 AND strlen( lv_data ) > 45
AND lv_data+45 = is_repo-branch_name.
lv_hash = lv_data+4.
EXIT. " current loop
ELSEIF sy-tabix = 2 AND STRLEN( lv_data ) = 8 AND lv_data(8) = '00000000'.
ELSEIF sy-tabix = 2 AND strlen( lv_data ) = 8 AND lv_data(8) = '00000000'.
_raise 'No branches, create branch manually by adding file'.
ENDIF.
ENDLOOP.
TRANSLATE lv_hash TO UPPER CASE.
IF STRLEN( lv_hash ) <> 40.
IF strlen( lv_hash ) <> 40.
_raise 'Branch not found'.
ENDIF.
@ -7316,7 +7316,7 @@ CLASS lcl_transport IMPLEMENTATION.
lo_obj = cl_abap_conv_in_ce=>create(
input = lv_xstring
encoding = 'UTF-8' ).
lv_len = XSTRLEN( lv_xstring ).
lv_len = xstrlen( lv_xstring ).
lo_obj->read( EXPORTING n = lv_len
IMPORTING data = lv_string ).
@ -7335,7 +7335,7 @@ CLASS lcl_transport IMPLEMENTATION.
lv_pack TYPE xstring.
WHILE XSTRLEN( cv_data ) >= 4.
WHILE xstrlen( cv_data ) >= 4.
lv_len = length_utf8_hex( cv_data ).
lv_contents = cv_data(lv_len).
@ -7348,7 +7348,7 @@ CLASS lcl_transport IMPLEMENTATION.
lv_contents = lv_contents+4.
IF XSTRLEN( lv_contents ) > 1 AND lv_contents(1) = '01'. " band 1
IF xstrlen( lv_contents ) > 1 AND lv_contents(1) = '01'. " band 1
CONCATENATE lv_pack lv_contents+1 INTO lv_pack IN BYTE MODE.
ENDIF.
@ -7418,7 +7418,7 @@ CLASS lcl_transport IMPLEMENTATION.
lv_len TYPE i.
lv_len = STRLEN( iv_string ).
lv_len = strlen( iv_string ).
IF lv_len >= 255.
_raise 'PKT, todo'.
@ -8035,7 +8035,7 @@ CLASS lcl_gui IMPLEMENTATION.
lv_string TYPE string.
FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields,
<lg_any> TYPE ANY.
<lg_any> TYPE any.
lv_string = iv_string. " type conversion
@ -8059,7 +8059,7 @@ CLASS lcl_gui IMPLEMENTATION.
ls_field LIKE LINE OF lt_fields.
FIELD-SYMBOLS: <ls_comp> LIKE LINE OF lo_descr_ref->components,
<lg_any> TYPE ANY.
<lg_any> TYPE any.
lo_descr_ref ?= cl_abap_typedescr=>describe_by_data( ig_structure1 ).
@ -8175,8 +8175,8 @@ CLASS lcl_gui IMPLEMENTATION.
SELECT * FROM tadir INTO TABLE lt_tadir
WHERE devclass = is_repo-package. "#EC *
IF LINES( lt_tadir ) > 0.
lv_count = LINES( lt_tadir ).
IF lines( lt_tadir ) > 0.
lv_count = lines( lt_tadir ).
CONCATENATE 'This will delete all objects in package' is_repo-package
INTO lv_question
@ -8418,7 +8418,7 @@ CLASS lcl_gui IMPLEMENTATION.
rv_html = rv_html && '<br><br><br>'.
LOOP AT lt_repos INTO ls_repo.
lv_f = ( sy-tabix / LINES( lt_repos ) ) * 100.
lv_f = ( sy-tabix / lines( lt_repos ) ) * 100.
lv_pct = lv_f.
IF lv_pct = 100.
lv_pct = 99.
@ -8609,8 +8609,8 @@ CLASS lcl_gui IMPLEMENTATION.
lv_html = iv_html.
WHILE STRLEN( lv_html ) > 0.
IF STRLEN( lv_html ) < 200.
WHILE strlen( lv_html ) > 0.
IF strlen( lv_html ) < 200.
APPEND lv_html TO lt_data.
CLEAR lv_html.
ELSE.
@ -8671,7 +8671,7 @@ ENDFORM. "run
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_abap_unit DEFINITION FOR TESTING risk level harmless duration short FINAL.
CLASS lcl_abap_unit DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
PRIVATE SECTION.