mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
* Fix for issue #1044 * Change of local variable names * fix of bad indentation * Update src/objects/zcl_abapgit_objects_files.clas.abap Co-Authored-By: Lars Hvam <larshp@hotmail.com> * Update zcl_abapgit_objects_files.clas.abap * Also always add BOM in abapgit.xml file * Update zcl_abapgit_dot_abapgit.clas.abap * Update zcl_abapgit_objects_files.clas.abap * Update zcl_abapgit_convert.clas.abap * Update zcl_abapgit_convert.clas.abap Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
985d569f30
commit
9285dd29b3
|
@ -173,7 +173,6 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION.
|
||||||
DATA: lv_xml TYPE string,
|
DATA: lv_xml TYPE string,
|
||||||
ls_file TYPE zif_abapgit_definitions=>ty_file.
|
ls_file TYPE zif_abapgit_definitions=>ty_file.
|
||||||
|
|
||||||
|
|
||||||
lv_xml = io_xml->render( iv_normalize = iv_normalize
|
lv_xml = io_xml->render( iv_normalize = iv_normalize
|
||||||
is_metadata = is_metadata ).
|
is_metadata = is_metadata ).
|
||||||
ls_file-path = '/'.
|
ls_file-path = '/'.
|
||||||
|
@ -187,13 +186,11 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION.
|
||||||
WITH '<?xml version="1.0" encoding="utf-8"?>'.
|
WITH '<?xml version="1.0" encoding="utf-8"?>'.
|
||||||
ASSERT sy-subrc = 0.
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
ls_file-data = zcl_abapgit_convert=>string_to_xstring_utf8( lv_xml ).
|
ls_file-data = zcl_abapgit_convert=>string_to_xstring_utf8_bom( lv_xml ).
|
||||||
|
|
||||||
APPEND ls_file TO mt_files.
|
APPEND ls_file TO mt_files.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
ms_item = is_item.
|
ms_item = is_item.
|
||||||
mv_path = iv_path.
|
mv_path = iv_path.
|
||||||
|
|
|
@ -21,9 +21,14 @@ CLASS zcl_abapgit_convert DEFINITION
|
||||||
VALUE(rv_xstring) TYPE xstring .
|
VALUE(rv_xstring) TYPE xstring .
|
||||||
CLASS-METHODS xstring_to_string_utf8
|
CLASS-METHODS xstring_to_string_utf8
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_data TYPE xstring
|
!iv_data TYPE xsequence
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_string) TYPE string .
|
VALUE(rv_string) TYPE string .
|
||||||
|
CLASS-METHODS string_to_xstring_utf8_bom
|
||||||
|
IMPORTING
|
||||||
|
!iv_string TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_xstring) TYPE xstring .
|
||||||
CLASS-METHODS xstring_to_int
|
CLASS-METHODS xstring_to_int
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_xstring TYPE xstring
|
!iv_xstring TYPE xstring
|
||||||
|
@ -231,6 +236,28 @@ CLASS ZCL_ABAPGIT_CONVERT IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD string_to_xstring_utf8_bom.
|
||||||
|
|
||||||
|
DATA: lv_hex TYPE x LENGTH 1 VALUE '23',
|
||||||
|
lv_hex_bom TYPE x LENGTH 3 VALUE 'EFBBBF'.
|
||||||
|
|
||||||
|
rv_xstring = string_to_xstring_utf8( iv_string ).
|
||||||
|
|
||||||
|
"unicode systems always add the byte order mark to the xml, while non-unicode does not
|
||||||
|
"in class ZCL_ABAPGIT_XML~TO_XML byte order mark was added to XML as #
|
||||||
|
"In non-unicode systems zcl_abapgit_convert=>xstring_to_string_utf8( cl_abap_char_utilities=>byte_order_mark_utf8 )
|
||||||
|
"has result # as HEX 23 and not HEX EFBBBF.
|
||||||
|
"So we have to remove 23 first and add EFBBBF after to serialized string
|
||||||
|
IF rv_xstring(3) <> cl_abap_char_utilities=>byte_order_mark_utf8
|
||||||
|
AND rv_xstring(1) = lv_hex.
|
||||||
|
REPLACE FIRST OCCURRENCE
|
||||||
|
OF lv_hex IN rv_xstring WITH lv_hex_bom IN BYTE MODE.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD xstring_to_bintab.
|
METHOD xstring_to_bintab.
|
||||||
|
|
||||||
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
||||||
|
|
|
@ -172,6 +172,7 @@ CLASS zcl_abapgit_xml IMPLEMENTATION.
|
||||||
|
|
||||||
DATA: li_ostream TYPE REF TO if_ixml_ostream,
|
DATA: li_ostream TYPE REF TO if_ixml_ostream,
|
||||||
li_renderer TYPE REF TO if_ixml_renderer,
|
li_renderer TYPE REF TO if_ixml_renderer,
|
||||||
|
lv_mark TYPE string,
|
||||||
li_streamfactory TYPE REF TO if_ixml_stream_factory.
|
li_streamfactory TYPE REF TO if_ixml_stream_factory.
|
||||||
|
|
||||||
|
|
||||||
|
@ -185,5 +186,12 @@ CLASS zcl_abapgit_xml IMPLEMENTATION.
|
||||||
|
|
||||||
li_renderer->render( ).
|
li_renderer->render( ).
|
||||||
|
|
||||||
|
"unicode systems always add the byte order mark to the xml, while non-unicode does not
|
||||||
|
"this code will always add the byte order mark if it is not in the xml
|
||||||
|
lv_mark = zcl_abapgit_convert=>xstring_to_string_utf8( cl_abap_char_utilities=>byte_order_mark_utf8 ).
|
||||||
|
IF rv_xml(1) <> lv_mark.
|
||||||
|
CONCATENATE lv_mark rv_xml INTO rv_xml.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -260,11 +260,19 @@ CLASS ZCL_ABAPGIT_DOT_ABAPGIT IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD serialize.
|
METHOD serialize.
|
||||||
|
|
||||||
DATA: lv_xml TYPE string.
|
DATA: lv_xml TYPE string,
|
||||||
|
lv_mark TYPE string.
|
||||||
|
|
||||||
lv_xml = to_xml( ms_data ).
|
lv_xml = to_xml( ms_data ).
|
||||||
|
|
||||||
rv_xstr = zcl_abapgit_convert=>string_to_xstring_utf8( lv_xml ).
|
"unicode systems always add the byte order mark to the xml, while non-unicode does not
|
||||||
|
"this code will always add the byte order mark if it is not in the xml
|
||||||
|
lv_mark = zcl_abapgit_convert=>xstring_to_string_utf8( cl_abap_char_utilities=>byte_order_mark_utf8 ).
|
||||||
|
IF lv_xml(1) <> lv_mark.
|
||||||
|
CONCATENATE lv_mark lv_xml INTO lv_xml.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
rv_xstr = zcl_abapgit_convert=>string_to_xstring_utf8_bom( lv_xml ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user