diff --git a/src/ui/db/zcl_abapgit_gui_page_db_edit.clas.abap b/src/ui/db/zcl_abapgit_gui_page_db_edit.clas.abap index d63425145..4c7917669 100644 --- a/src/ui/db/zcl_abapgit_gui_page_db_edit.clas.abap +++ b/src/ui/db/zcl_abapgit_gui_page_db_edit.clas.abap @@ -56,7 +56,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB_EDIT IMPLEMENTATION. lv_string TYPE string. - CONCATENATE LINES OF it_postdata INTO lv_string. + lv_string = zcl_abapgit_utils=>translate_postdata( it_postdata ). lv_string = cl_http_utility=>unescape_url( lv_string ). diff --git a/src/ui/zcl_abapgit_gui_page_boverview.clas.abap b/src/ui/zcl_abapgit_gui_page_boverview.clas.abap index 237abe31b..741fd92f1 100644 --- a/src/ui/zcl_abapgit_gui_page_boverview.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_boverview.clas.abap @@ -233,7 +233,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_BOVERVIEW IMPLEMENTATION. FIELD-SYMBOLS: LIKE LINE OF lt_fields. - CONCATENATE LINES OF it_postdata INTO lv_string. + lv_string = zcl_abapgit_utils=>translate_postdata( it_postdata ). lt_fields = zcl_abapgit_html_action_utils=>parse_fields( lv_string ). diff --git a/src/ui/zcl_abapgit_gui_page_patch.clas.abap b/src/ui/zcl_abapgit_gui_page_patch.clas.abap index 37634de27..3867a3ecf 100644 --- a/src/ui/zcl_abapgit_gui_page_patch.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_patch.clas.abap @@ -345,7 +345,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_PATCH IMPLEMENTATION. lv_add TYPE string, lv_remove TYPE string. - CONCATENATE LINES OF it_postdata INTO lv_string. + lv_string = zcl_abapgit_utils=>translate_postdata( it_postdata ). lt_fields = zcl_abapgit_html_action_utils=>parse_fields( lv_string ). zcl_abapgit_html_action_utils=>get_field( EXPORTING iv_name = c_patch_action-add diff --git a/src/ui/zcl_abapgit_gui_page_repo_sett.clas.abap b/src/ui/zcl_abapgit_gui_page_repo_sett.clas.abap index d23350386..75cf1f5f6 100644 --- a/src/ui/zcl_abapgit_gui_page_repo_sett.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_repo_sett.clas.abap @@ -84,7 +84,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_SETT IMPLEMENTATION. DATA lv_serialized_post_data TYPE string. - CONCATENATE LINES OF it_postdata INTO lv_serialized_post_data. + lv_serialized_post_data = zcl_abapgit_utils=>translate_postdata( it_postdata ). rt_post_fields = zcl_abapgit_html_action_utils=>parse_fields( lv_serialized_post_data ). ENDMETHOD. diff --git a/src/ui/zcl_abapgit_gui_page_settings.clas.abap b/src/ui/zcl_abapgit_gui_page_settings.clas.abap index 387ddddd1..7ad4456d6 100644 --- a/src/ui/zcl_abapgit_gui_page_settings.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_settings.clas.abap @@ -128,7 +128,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION. DATA lv_serialized_post_data TYPE string. - CONCATENATE LINES OF it_postdata INTO lv_serialized_post_data. + lv_serialized_post_data = zcl_abapgit_utils=>translate_postdata( it_postdata ). rt_post_fields = zcl_abapgit_html_action_utils=>parse_fields( lv_serialized_post_data ). ENDMETHOD. diff --git a/src/ui/zcl_abapgit_gui_page_stage.clas.abap b/src/ui/zcl_abapgit_gui_page_stage.clas.abap index a253a6910..e95cbc401 100644 --- a/src/ui/zcl_abapgit_gui_page_stage.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_stage.clas.abap @@ -581,7 +581,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION. LIKE LINE OF ms_files-status, LIKE LINE OF lt_fields. - CONCATENATE LINES OF it_postdata INTO lv_string. + lv_string = zcl_abapgit_utils=>translate_postdata( it_postdata ). lt_fields = zcl_abapgit_html_action_utils=>parse_fields( lv_string ). IF lines( lt_fields ) = 0. diff --git a/src/ui/zcl_abapgit_gui_page_tag.clas.abap b/src/ui/zcl_abapgit_gui_page_tag.clas.abap index 71bdd8d01..8cbaf6a53 100644 --- a/src/ui/zcl_abapgit_gui_page_tag.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_tag.clas.abap @@ -159,7 +159,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_TAG IMPLEMENTATION. CLEAR eg_fields. - CONCATENATE LINES OF it_postdata INTO lv_string. + lv_string = zcl_abapgit_utils=>translate_postdata( it_postdata ). REPLACE ALL OCCURRENCES OF zif_abapgit_definitions=>c_crlf IN lv_string WITH lc_replace. REPLACE ALL OCCURRENCES OF zif_abapgit_definitions=>c_newline IN lv_string WITH lc_replace. lt_fields = zcl_abapgit_html_action_utils=>parse_fields_upper_case_name( lv_string ). diff --git a/src/utils/zcl_abapgit_utils.clas.abap b/src/utils/zcl_abapgit_utils.clas.abap index 2f8e67835..cd196ed55 100644 --- a/src/utils/zcl_abapgit_utils.clas.abap +++ b/src/utils/zcl_abapgit_utils.clas.abap @@ -19,6 +19,11 @@ CLASS zcl_abapgit_utils DEFINITION !ev_time TYPE zif_abapgit_definitions=>ty_commit-time RAISING zcx_abapgit_exception . + CLASS-METHODS translate_postdata + IMPORTING + !it_postdata TYPE cnht_post_data_tab + RETURNING + VALUE(rv_string) TYPE string . PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. @@ -72,4 +77,32 @@ CLASS zcl_abapgit_utils IMPLEMENTATION. ENDIF. ENDMETHOD. + + + METHOD translate_postdata. + + DATA: lt_post_data TYPE cnht_post_data_tab, + ls_last_line TYPE cnht_post_data_line, + lv_last_line_index TYPE i. + + IF it_postdata IS INITIAL. + "Nothing to do + RETURN. + ENDIF. + + lt_post_data = it_postdata. + + "Save the last line for separate merge, because we don't need its trailing spaces + WHILE ls_last_line IS INITIAL. + lv_last_line_index = lines( lt_post_data ). + READ TABLE lt_post_data INTO ls_last_line INDEX lv_last_line_index. + DELETE lt_post_data INDEX lv_last_line_index. + ENDWHILE. + + CONCATENATE LINES OF lt_post_data INTO rv_string + IN CHARACTER MODE RESPECTING BLANKS. + CONCATENATE rv_string ls_last_line INTO rv_string + IN CHARACTER MODE. + + ENDMETHOD. ENDCLASS.