diff --git a/src/zcl_abapgit_message_helper.clas.abap b/src/zcl_abapgit_message_helper.clas.abap
index a861eb90d..af817c1db 100644
--- a/src/zcl_abapgit_message_helper.clas.abap
+++ b/src/zcl_abapgit_message_helper.clas.abap
@@ -4,34 +4,31 @@ CLASS zcl_abapgit_message_helper DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
+
CONSTANTS:
BEGIN OF gc_section_text,
cause TYPE string VALUE `Cause`,
system_response TYPE string VALUE `System response`,
what_to_do TYPE string VALUE `Procedure`,
sys_admin TYPE string VALUE `System administration`,
- END OF gc_section_text,
+ END OF gc_section_text .
+ CONSTANTS:
BEGIN OF gc_section_token,
cause TYPE string VALUE `&CAUSE&`,
system_response TYPE string VALUE `&SYSTEM_RESPONSE&`,
what_to_do TYPE string VALUE `&WHAT_TO_DO&`,
sys_admin TYPE string VALUE `&SYS_ADMIN&`,
- END OF gc_section_token.
-
- CLASS-METHODS:
- set_msg_vars_for_clike
- IMPORTING
- iv_text TYPE string.
-
- METHODS:
- constructor
- IMPORTING
- ii_t100_message TYPE REF TO if_t100_message,
-
- get_t100_longtext
- RETURNING
- VALUE(rv_longtext) TYPE string.
+ END OF gc_section_token .
+ CLASS-METHODS set_msg_vars_for_clike
+ IMPORTING
+ !iv_text TYPE string .
+ METHODS constructor
+ IMPORTING
+ !ii_t100_message TYPE REF TO if_t100_message .
+ METHODS get_t100_longtext
+ RETURNING
+ VALUE(rv_longtext) TYPE string .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
@@ -363,7 +360,8 @@ CLASS ZCL_ABAPGIT_MESSAGE_HELPER IMPLEMENTATION.
line = lv_msg_var
rest = lv_rest.
- IF lv_msg_var+lc_offset_of_last_character = space.
+ IF lv_msg_var+lc_offset_of_last_character(1) = space OR
+ lv_text+lc_length_of_msgv(1) = space.
" keep the space at the beginning of the rest
" because otherwise it's lost
lv_rest = | { lv_rest }|.
diff --git a/src/zcl_abapgit_message_helper.clas.testclasses.abap b/src/zcl_abapgit_message_helper.clas.testclasses.abap
new file mode 100644
index 000000000..3dcf15d50
--- /dev/null
+++ b/src/zcl_abapgit_message_helper.clas.testclasses.abap
@@ -0,0 +1,106 @@
+CLASS ltcl_test DEFINITION
+ FOR TESTING
+ DURATION SHORT
+ RISK LEVEL HARMLESS.
+
+ PUBLIC SECTION.
+ METHODS:
+ test_set_msg_b FOR TESTING,
+ test_set_msg_c FOR TESTING,
+ test_set_msg_d FOR TESTING,
+ test_set_msg_e FOR TESTING,
+ test_set_msg_z FOR TESTING.
+ PROTECTED SECTION.
+ PRIVATE SECTION.
+ TYPES:
+ BEGIN OF ty_msg,
+ v1 TYPE sy-msgv1,
+ v2 TYPE sy-msgv2,
+ v3 TYPE sy-msgv3,
+ v4 TYPE sy-msgv4,
+ END OF ty_msg.
+ CLASS-METHODS:
+ test_set_msg_vars
+ IMPORTING
+ iv_text TYPE string
+ is_msg TYPE ty_msg.
+ENDCLASS.
+
+CLASS ltcl_test IMPLEMENTATION.
+ METHOD test_set_msg_b.
+ CONSTANTS:
+ lc_text_b TYPE string VALUE '0123456789012345678901234567890123456789012345678 0123456789',
+ BEGIN OF lc_msg_b,
+ v1 TYPE sy-msgv1 VALUE '0123456789012345678901234567890123456789012345678',
+ v2 TYPE sy-msgv2 VALUE ' 0123456789',
+ v3 TYPE sy-msgv3 VALUE '',
+ v4 TYPE sy-msgv4 VALUE '',
+ END OF lc_msg_b.
+ test_set_msg_vars( iv_text = lc_text_b
+ is_msg = lc_msg_b ).
+ ENDMETHOD.
+ METHOD test_set_msg_c.
+ CONSTANTS:
+ lc_text_c TYPE string VALUE '01234567890123456789012345678901234567890123456789 123456789',
+ BEGIN OF lc_msg_c,
+ v1 TYPE sy-msgv1 VALUE '01234567890123456789012345678901234567890123456789',
+ v2 TYPE sy-msgv2 VALUE ' 123456789',
+ v3 TYPE sy-msgv3 VALUE '',
+ v4 TYPE sy-msgv4 VALUE '',
+ END OF lc_msg_c.
+ test_set_msg_vars( iv_text = lc_text_c
+ is_msg = lc_msg_c ).
+ ENDMETHOD.
+ METHOD test_set_msg_d.
+ CONSTANTS:
+ lc_text_d TYPE string VALUE '012345678901234567890123456789012345678901234567890 23456789',
+ BEGIN OF lc_msg_d,
+ v1 TYPE sy-msgv1 VALUE '01234567890123456789012345678901234567890123456789',
+ v2 TYPE sy-msgv2 VALUE '0 23456789',
+ v3 TYPE sy-msgv3 VALUE '',
+ v4 TYPE sy-msgv4 VALUE '',
+ END OF lc_msg_d.
+ test_set_msg_vars( iv_text = lc_text_d
+ is_msg = lc_msg_d ).
+ ENDMETHOD.
+ METHOD test_set_msg_e.
+ CONSTANTS:
+ lc_text_e TYPE string VALUE '012345678901234567890123456789012345678901234567890123456789',
+ BEGIN OF lc_msg_e,
+ v1 TYPE sy-msgv1 VALUE '01234567890123456789012345678901234567890123456789',
+ v2 TYPE sy-msgv2 VALUE '0123456789',
+ v3 TYPE sy-msgv3 VALUE '',
+ v4 TYPE sy-msgv4 VALUE '',
+ END OF lc_msg_e.
+ test_set_msg_vars( iv_text = lc_text_e
+ is_msg = lc_msg_e ).
+ ENDMETHOD.
+ METHOD test_set_msg_z.
+ CONSTANTS:
+ lc_text_x TYPE string VALUE `Here is a very long text more than 200 characters and we have to invent `,
+ lc_text_y TYPE string VALUE `a nice story about abapGit to fill this long message. abapGit is simply `,
+ lc_text_z TYPE string VALUE `the greatest! #abapGit #awesome #community #opensource`,
+ BEGIN OF lc_msg_z,
+ v1 TYPE sy-msgv1 VALUE `Here is a very long text more than 200 characters`,
+ v2 TYPE sy-msgv2 VALUE ` and we have to invent a nice story about abapGit`,
+ v3 TYPE sy-msgv3 VALUE ` to fill this long message. abapGit is simply the`,
+ v4 TYPE sy-msgv4 VALUE ` greatest! #abapGit #awesome #community`,
+ END OF lc_msg_z.
+ test_set_msg_vars( iv_text = lc_text_x && lc_text_y && lc_text_z
+ is_msg = lc_msg_z ).
+ ENDMETHOD.
+ METHOD test_set_msg_vars.
+
+ zcl_abapgit_message_helper=>set_msg_vars_for_clike( iv_text ).
+
+ cl_abap_unit_assert=>assert_equals( act = sy-msgv1
+ exp = is_msg-v1 ).
+ cl_abap_unit_assert=>assert_equals( act = sy-msgv2
+ exp = is_msg-v2 ).
+ cl_abap_unit_assert=>assert_equals( act = sy-msgv3
+ exp = is_msg-v3 ).
+ cl_abap_unit_assert=>assert_equals( act = sy-msgv4
+ exp = is_msg-v4 ).
+
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/zcl_abapgit_message_helper.clas.xml b/src/zcl_abapgit_message_helper.clas.xml
index 51944e6f2..45b589c54 100644
--- a/src/zcl_abapgit_message_helper.clas.xml
+++ b/src/zcl_abapgit_message_helper.clas.xml
@@ -10,6 +10,7 @@
X
X
X
+ X