DDLS newline serialization in 750 and lower (#4143)

* DDLS: Empty line at serialization

Change included in 751+

* Newline serialization remove spaces

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Jaime Rodriguez Capote 2020-11-22 09:47:20 +01:00 committed by GitHub
parent 4a30a3c079
commit 9ef961cc8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -18,6 +18,9 @@ CLASS zcl_abapgit_object_ddls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
METHODS read_baseinfo
RETURNING
VALUE(rv_baseinfo_string) TYPE string.
METHODS format_source_before_serialize
CHANGING
cv_string TYPE string.
ENDCLASS.
@ -437,6 +440,8 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.
ASSERT sy-subrc = 0.
format_source_before_serialize( CHANGING cv_string = <lg_field> ).
mo_files->add_string( iv_ext = 'asddls'
iv_string = <lg_field> ).
@ -446,4 +451,33 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
ig_data = <lg_data> ).
ENDMETHOD.
METHOD format_source_before_serialize.
DATA:
lv_len TYPE i,
lv_lastchar1 TYPE c,
lv_lastchar2 TYPE c.
" New line included in 751+ by CL_DD_DDL_HANDLER=>ADD_BASEOBJS_INFO_TO_DDLS
" Change for 750-
lv_len = strlen( cv_string ) - 1.
lv_lastchar1 = cv_string+lv_len(1).
lv_len = strlen( cv_string ) - 2.
lv_lastchar2 = cv_string+lv_len(1).
" only add a line break, if the last character is unequal to cr_lf and newline !
IF lv_lastchar1 <> cl_abap_char_utilities=>cr_lf AND lv_lastchar1 <> cl_abap_char_utilities=>newline AND
lv_lastchar1 <> space OR
( lv_lastchar1 = space AND
( lv_lastchar2 <> cl_abap_char_utilities=>cr_lf AND lv_lastchar2 <> cl_abap_char_utilities=>newline ) ).
cv_string = |{ cv_string }{ cl_abap_char_utilities=>cr_lf }|.
ENDIF.
ENDMETHOD.
ENDCLASS.