From 9ef961cc8aba508c1195414a65444b3edac590f8 Mon Sep 17 00:00:00 2001 From: Jaime Rodriguez Capote Date: Sun, 22 Nov 2020 09:47:20 +0100 Subject: [PATCH] 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 --- src/objects/zcl_abapgit_object_ddls.clas.abap | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/objects/zcl_abapgit_object_ddls.clas.abap b/src/objects/zcl_abapgit_object_ddls.clas.abap index 454d12859..1487ef3ed 100644 --- a/src/objects/zcl_abapgit_object_ddls.clas.abap +++ b/src/objects/zcl_abapgit_object_ddls.clas.abap @@ -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 TO . ASSERT sy-subrc = 0. + format_source_before_serialize( CHANGING cv_string = ). + mo_files->add_string( iv_ext = 'asddls' iv_string = ). @@ -446,4 +451,33 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION. ig_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.