diff --git a/abaplint.json b/abaplint.json index 374a4de76..21bc261b0 100644 --- a/abaplint.json +++ b/abaplint.json @@ -81,7 +81,7 @@ "abapdoc": false, "check_ddic": true, "check_include": true, - "form_no_dash": false, + "form_no_dash": true, "allowed_object_types": { "allowed": [ "PROG", @@ -228,6 +228,7 @@ "move": true, "divide": true, "requested": true, + "setExtended": true, "occurs": true }, "parser_error": {}, @@ -265,7 +266,7 @@ "start_at_tab": true, "superclass_final": true, "tabl_enhancement_category": true, - "type_form_parameters": false, + "type_form_parameters": true, "unreachable_code": true, "use_new": true, "when_others_last": true, diff --git a/src/zlib/zcl_abapgit_zlib.clas.abap b/src/zlib/zcl_abapgit_zlib.clas.abap index 66ea6a354..4af931edb 100644 --- a/src/zlib/zcl_abapgit_zlib.clas.abap +++ b/src/zlib/zcl_abapgit_zlib.clas.abap @@ -16,6 +16,7 @@ CLASS zcl_abapgit_zlib DEFINITION RETURNING VALUE(rs_data) TYPE ty_decompress . + PROTECTED SECTION. PRIVATE SECTION. CONSTANTS: c_maxdcodes TYPE i VALUE 30. @@ -53,7 +54,7 @@ ENDCLASS. -CLASS zcl_abapgit_zlib IMPLEMENTATION. +CLASS ZCL_ABAPGIT_ZLIB IMPLEMENTATION. METHOD copy_out. @@ -108,6 +109,28 @@ CLASS zcl_abapgit_zlib IMPLEMENTATION. ENDMETHOD. + METHOD decode_loop. + + DATA lv_x TYPE x. + DATA lv_symbol TYPE i. + + DO. + lv_symbol = decode( go_lencode ). + + IF lv_symbol < 256. + lv_x = zcl_abapgit_zlib_convert=>int_to_hex( lv_symbol ). + CONCATENATE gv_out lv_x INTO gv_out IN BYTE MODE. + ELSEIF lv_symbol = 256. + EXIT. + ELSE. + copy_out( read_pair( lv_symbol ) ). + ENDIF. + + ENDDO. + + ENDMETHOD. + + METHOD decompress. DATA: lv_x TYPE x LENGTH 1, @@ -285,72 +308,67 @@ CLASS zcl_abapgit_zlib IMPLEMENTATION. METHOD map_distance. - DEFINE _distance. - rv_distance = go_stream->take_int( &1 ). - rv_distance = rv_distance + &2. - END-OF-DEFINITION. - CASE iv_code. WHEN 0. - _distance 0 1. + rv_distance = go_stream->take_int( 0 ) + 1. WHEN 1. - _distance 0 2. + rv_distance = go_stream->take_int( 0 ) + 2. WHEN 2. - _distance 0 3. + rv_distance = go_stream->take_int( 0 ) + 3. WHEN 3. - _distance 0 4. + rv_distance = go_stream->take_int( 0 ) + 4. WHEN 4. - _distance 1 5. + rv_distance = go_stream->take_int( 1 ) + 5. WHEN 5. - _distance 1 7. + rv_distance = go_stream->take_int( 1 ) + 7. WHEN 6. - _distance 2 9. + rv_distance = go_stream->take_int( 2 ) + 9. WHEN 7. - _distance 2 13. + rv_distance = go_stream->take_int( 2 ) + 13. WHEN 8. - _distance 3 17. + rv_distance = go_stream->take_int( 3 ) + 17. WHEN 9. - _distance 3 25. + rv_distance = go_stream->take_int( 3 ) + 25. WHEN 10. - _distance 4 33. + rv_distance = go_stream->take_int( 4 ) + 33. WHEN 11. - _distance 4 49. + rv_distance = go_stream->take_int( 4 ) + 49. WHEN 12. - _distance 5 65. + rv_distance = go_stream->take_int( 5 ) + 65. WHEN 13. - _distance 5 97. + rv_distance = go_stream->take_int( 5 ) + 97. WHEN 14. - _distance 6 129. + rv_distance = go_stream->take_int( 6 ) + 129. WHEN 15. - _distance 6 193. + rv_distance = go_stream->take_int( 6 ) + 193. WHEN 16. - _distance 7 257. + rv_distance = go_stream->take_int( 7 ) + 257. WHEN 17. - _distance 7 385. + rv_distance = go_stream->take_int( 7 ) + 385. WHEN 18. - _distance 8 513. + rv_distance = go_stream->take_int( 8 ) + 513. WHEN 19. - _distance 8 769. + rv_distance = go_stream->take_int( 8 ) + 769. WHEN 20. - _distance 9 1025. + rv_distance = go_stream->take_int( 9 ) + 1025. WHEN 21. - _distance 9 1537. + rv_distance = go_stream->take_int( 9 ) + 1537. WHEN 22. - _distance 10 2049. + rv_distance = go_stream->take_int( 10 ) + 2049. WHEN 23. - _distance 10 3073. + rv_distance = go_stream->take_int( 10 ) + 3073. WHEN 24. - _distance 11 4097. + rv_distance = go_stream->take_int( 11 ) + 4097. WHEN 25. - _distance 11 6145. + rv_distance = go_stream->take_int( 11 ) + 6145. WHEN 26. - _distance 12 8193. + rv_distance = go_stream->take_int( 12 ) + 8193. WHEN 27. - _distance 12 12289. + rv_distance = go_stream->take_int( 12 ) + 12289. WHEN 28. - _distance 13 16385. + rv_distance = go_stream->take_int( 13 ) + 16385. WHEN 29. - _distance 13 24577. + rv_distance = go_stream->take_int( 13 ) + 24577. WHEN OTHERS. ASSERT 1 = 0. ENDCASE. @@ -360,70 +378,65 @@ CLASS zcl_abapgit_zlib IMPLEMENTATION. METHOD map_length. - DEFINE _length. - rv_length = go_stream->take_int( &1 ). - rv_length = rv_length + &2. - END-OF-DEFINITION. - CASE iv_code. WHEN 257. - _length 0 3. + rv_length = go_stream->take_int( 0 ) + 3. WHEN 258. - _length 0 4. + rv_length = go_stream->take_int( 0 ) + 4. WHEN 259. - _length 0 5. + rv_length = go_stream->take_int( 0 ) + 5. WHEN 260. - _length 0 6. + rv_length = go_stream->take_int( 0 ) + 6. WHEN 261. - _length 0 7. + rv_length = go_stream->take_int( 0 ) + 7. WHEN 262. - _length 0 8. + rv_length = go_stream->take_int( 0 ) + 8. WHEN 263. - _length 0 9. + rv_length = go_stream->take_int( 0 ) + 9. WHEN 264. - _length 0 10. + rv_length = go_stream->take_int( 0 ) + 10. WHEN 265. - _length 1 11. + rv_length = go_stream->take_int( 1 ) + 11. WHEN 266. - _length 1 13. + rv_length = go_stream->take_int( 1 ) + 13. WHEN 267. - _length 1 15. + rv_length = go_stream->take_int( 1 ) + 15. WHEN 268. - _length 1 17. + rv_length = go_stream->take_int( 1 ) + 17. WHEN 269. - _length 2 19. + rv_length = go_stream->take_int( 2 ) + 19. WHEN 270. - _length 2 23. + rv_length = go_stream->take_int( 2 ) + 23. WHEN 271. - _length 2 27. + rv_length = go_stream->take_int( 2 ) + 27. WHEN 272. - _length 2 31. + rv_length = go_stream->take_int( 2 ) + 31. WHEN 273. - _length 3 35. + rv_length = go_stream->take_int( 3 ) + 35. WHEN 274. - _length 3 43. + rv_length = go_stream->take_int( 3 ) + 43. WHEN 275. - _length 3 51. + rv_length = go_stream->take_int( 3 ) + 51. WHEN 276. - _length 3 59. + rv_length = go_stream->take_int( 3 ) + 59. WHEN 277. - _length 4 67. + rv_length = go_stream->take_int( 4 ) + 67. WHEN 278. - _length 4 83. + rv_length = go_stream->take_int( 4 ) + 83. WHEN 279. - _length 4 99. + rv_length = go_stream->take_int( 4 ) + 99. WHEN 280. - _length 4 115. + rv_length = go_stream->take_int( 4 ) + 115. WHEN 281. - _length 5 131. + rv_length = go_stream->take_int( 5 ) + 131. WHEN 282. - _length 5 163. + rv_length = go_stream->take_int( 5 ) + 163. WHEN 283. - _length 5 195. + rv_length = go_stream->take_int( 5 ) + 195. WHEN 284. - _length 5 227. + rv_length = go_stream->take_int( 5 ) + 227. WHEN 285. - _length 0 258. + rv_length = go_stream->take_int( 0 ) + 258. WHEN OTHERS. ASSERT 1 = 0. ENDCASE. @@ -431,18 +444,6 @@ CLASS zcl_abapgit_zlib IMPLEMENTATION. ENDMETHOD. - METHOD read_pair. - - DATA: lv_symbol TYPE i. - - - rs_pair-length = map_length( iv_length ). - - lv_symbol = decode( go_distcode ). - rs_pair-distance = map_distance( lv_symbol ). - - ENDMETHOD. - METHOD not_compressed. DATA: lv_len TYPE i, @@ -458,26 +459,15 @@ CLASS zcl_abapgit_zlib IMPLEMENTATION. ENDMETHOD. - METHOD decode_loop. + METHOD read_pair. - DATA lv_x TYPE x. - DATA lv_symbol TYPE i. + DATA: lv_symbol TYPE i. - DO. - lv_symbol = decode( go_lencode ). - IF lv_symbol < 256. - lv_x = zcl_abapgit_zlib_convert=>int_to_hex( lv_symbol ). - CONCATENATE gv_out lv_x INTO gv_out IN BYTE MODE. - ELSEIF lv_symbol = 256. - EXIT. - ELSE. - copy_out( read_pair( lv_symbol ) ). - ENDIF. + rs_pair-length = map_length( iv_length ). - ENDDO. + lv_symbol = decode( go_distcode ). + rs_pair-distance = map_distance( lv_symbol ). ENDMETHOD. - ENDCLASS. - diff --git a/src/zlib/zcl_abapgit_zlib.clas.testclasses.abap b/src/zlib/zcl_abapgit_zlib.clas.testclasses.abap index cc27805e7..d510af851 100644 --- a/src/zlib/zcl_abapgit_zlib.clas.testclasses.abap +++ b/src/zlib/zcl_abapgit_zlib.clas.testclasses.abap @@ -55,77 +55,73 @@ CLASS ltcl_zlib IMPLEMENTATION. lv_decoded TYPE xstring, lv_hex TYPE xstring. - DEFINE _hex. - lv_hex = &1. - CONCATENATE lv_compressed lv_hex INTO lv_compressed IN BYTE MODE. - END-OF-DEFINITION. - _hex '75555D6FE246147DF7AFB8521F1610A0AA8F911A'. - _hex 'C9C1A6B5969034711A352FCE605FF074CD8C3B33'. - _hex '86657FFD9E191302DBEC8B857DBFCFB9F7F00BED'. - _hex '2BD1EC8A52ABB5DC448FF13D3DF38A92836A8DA6'. - _hex 'F806EFF1E26FEACD9D114E9B288A46A34C59279A'. - _hex '66348A46946D5B6D1CB99A49AFFEE5D2595A1BBD'. - _hex '25D56D36EC682D1BA64E556CA8118EADA38D7464'. - _hex 'B8616161B0526D087517D9F23392C5A5933BB811'. - _hex 'B29FA7846966D81B9E13126DDBC85238A9156A69'. - _hex '432F68B298DDDDDEE3B19C677FF81613DEEAD0DF'. - _hex '8771EF61497A7B87ECE9572E3BA4F7639CE53FB3'. - _hex '9C8370EE42831FCB0F7DB7B5501B26ABB77C848F'. - _hex '76A2E9D892501559B163383D70233A55D6FD00BE'. - _hex '938BC44E93E5BEA532A4B301FC27CB186C427155'. - _hex '013F812A7A1D32A010B850ACC086469DC3F9875A'. - _hex '3878A3BE2719ECA9CA37D2B3FB16358111483E27'. - _hex '451EDF2C52D408442B273DF27ECCB38C3EBC15D6'. - _hex '861CC73E02FFBE1D6DE4462AD104239A09B12B34'. - _hex '045E3DE35239366B51326DD9D51A88B02BFC2686'. - _hex '44538AA2D7D757B1126DD4E8A2DCB6FD77FA9D08'. - _hex '1B5BB85ADAC9357E942D462ABE217040C36994CD'. - _hex 'E9DC7D725D0B5B08BF528C153F4E094FCA1E295B'. - _hex '6679162FA61152FE1055864DBB889846E932C9E6'. - _hex 'D3284AE23CF6FEA709B017CEE8A6C182E7FFDCA7'. - _hex 'F490CE29BFA36F725F4A3F124DFD0C1FB9FF7F1A'. - _hex 'B92EDFA7F949D8E4FA02AB4118E0049D8708E54E'. - _hex 'EFB00218801981CD396E05875D7580442BB2252B'. - _hex '61A4B657E0F98D88A77B4C9816C94D317FB8BB3D'. - _hex '1E94A7F404207E9D26BEF81E489E505973F985E4'. - _hex '3ADC52D919E317D21EACE32D494B07DD19AA78C7'. - _hex '8D6EB7EFA629E5609558D9CE604B9DDFD7177262'. - _hex 'D5F89B31908AB6C21656B497AEF62D40B07CCF82'. - _hex 'F0599056CD015B4509EF8EB5CE978868F6673AFB'. - _hex '0CCB048DC88ACA963E25A34F3D3213CA8D5036C8'. - _hex 'D8DEE0FA41E52C14B80A906988823966B5BE8817'. - _hex '09770A6985AB077FC5E32C1F3FE5E3FB6438262B'. - _hex 'B72DFA79F709117E160CE88CC44841235F72DCD4'. - _hex 'E86DCA3DCABCA945E10E2D83CC5F7FA3C1F3454F'. - _hex '43AF6E4BED7A11B8F5870C593EE0A6B9BDFA998E'. - _hex 'D1E081FFEBA4017E5E300396FE0E4F087F8CEA90'. - _hex '560C7F26D329E5FD7B09F0D8F7FF0614B7AD9789'. - _hex '75B0AC21664755F6FF003D4947C74123BF304DA0'. - _hex 'FCA536204077CA8D69DD41E72D0E8ED598F86BC9'. - _hex '0D9E9E8861E01CCAB1626ABB55236D8DDE012316'. - _hex '558082338D26C5DEA4A986AA92D215440566DFAE'. - _hex '9F75FEB49CE5D9DDB24817E96DBACC1F7B176C2E'. - _hex '86F14BF21DD2B86583A502789C33343030333151'. - _hex '284A4D4CC94DD5CB4D61E8F9CF526533B9F99E89'. - _hex 'F5DD0E11137B1563BF8D9300E5B40D39B801789C'. - _hex '0BCBCF4CD15308CFCCC951484A554849CD492D49'. - _hex '050A700100650107AFB643789C5D524B8FDA3010'. - _hex 'BEFB578C38ED4AD1F621F5D29B49CC6235C49163'. - _hex '96720C8921AE428C62A768FF7D6702BBDB564242'. - _hex 'F3F85EE398CEC2461AC85D638760E1018B47C652'. - _hex '7F791DDDA98BF0D03CC2D7CF5FBE81AEBBA9077E'. - _hex 'AD47CB5869C7B30BC1F9015C80CE8EF6F00AA7B1'. - _hex '1EA26D13388ED6823F42D3D5E3C926103DD4C32B'. - _hex '5CEC1810E00FB176831B4E5043833A0C37638734'. - _hex 'C11F23D1E3720B7508BE7135F241EB9BE96C8758'. - _hex '47D23BBADE067888687C51DD118BC759A4B575CF'. - _hex 'DC00347B1BC1D5C5CE4F11461BE2E81AE248C00D'. - _hex '4D3FB5E4E16DDCBBB3BB2B107C0E1F18924E0113'. - _hex '90CF04CEBE7547FAB773ACCB74E85DE812681D51'. - _hex '1FA688CD40CDF99609E5F8E44708B6EF193238F4'. - _hex '3D67FD7037EF90F50B1D34DE4F14A873EDFCF9DF'. - _hex '242EB0E3340E2869674CEBF164B3E22FDB44EAD0'. + lv_compressed = |75555D6FE246147DF7AFB8521F1610A0AA8F911A| && + |C9C1A6B5969034711A352FCE605FF074CD8C3B33| && + |86657FFD9E191302DBEC8B857DBFCFB9F7F00BED| && + |2BD1EC8A52ABB5DC448FF13D3DF38A92836A8DA6| && + |F806EFF1E26FEACD9D114E9B288A46A34C59279A| && + |66348A46946D5B6D1CB99A49AFFEE5D2595A1BBD| && + |25D56D36EC682D1BA64E556CA8118EADA38D7464| && + |B8616161B0526D087517D9F23392C5A5933BB811| && + |B29FA7846966D81B9E13126DDBC85238A9156A69| && + |432F68B298DDDDDEE3B19C677FF81613DEEAD0DF| && + |8771EF61497A7B87ECE9572E3BA4F7639CE53FB3| && + |9C8370EE42831FCB0F7DB7B5501B26ABB77C848F| && + |76A2E9D892501559B163383D70233A55D6FD00BE| && + |938BC44E93E5BEA532A4B301FC27CB186C427155| && + |013F812A7A1D32A010B850ACC086469DC3F9875A| && + |3878A3BE2719ECA9CA37D2B3FB16358111483E27| && + |451EDF2C52D408442B273DF27ECCB38C3EBC15D6| && + |861CC73E02FFBE1D6DE4462AD104239A09B12B34| && + |045E3DE35239366B51326DD9D51A88B02BFC2686| && + |44538AA2D7D757B1126DD4E8A2DCB6FD77FA9D08| && + |1B5BB85ADAC9357E942D462ABE217040C36994CD| && + |E9DC7D725D0B5B08BF528C153F4E094FCA1E295B| && + |6679162FA61152FE1055864DBB889846E932C9E6| && + |D3284AE23CF6FEA709B017CEE8A6C182E7FFDCA7| && + |F490CE29BFA36F725F4A3F124DFD0C1FB9FF7F1A| && + |B92EDFA7F949D8E4FA02AB4118E0049D8708E54E| && + |EFB00218801981CD396E05875D7580442BB2252B| && + |61A4B657E0F98D88A77B4C9816C94D317FB8BB3D| && + |1E94A7F404207E9D26BEF81E489E505973F985E4| && + |3ADC52D919E317D21EACE32D494B07DD19AA78C7| && + |8D6EB7EFA629E5609558D9CE604B9DDFD7177262| && + |D5F89B31908AB6C21656B497AEF62D40B07CCF82| && + |F0599056CD015B4509EF8EB5CE978868F6673AFB| && + |0CCB048DC88ACA963E25A34F3D3213CA8D5036C8| && + |D8DEE0FA41E52C14B80A906988823966B5BE8817| && + |09770A6985AB077FC5E32C1F3FE5E3FB6438262B| && + |B72DFA79F709117E160CE88CC44841235F72DCD4| && + |E86DCA3DCABCA945E10E2D83CC5F7FA3C1F3454F| && + |43AF6E4BED7A11B8F5870C593EE0A6B9BDFA998E| && + |D1E081FFEBA4017E5E300396FE0E4F087F8CEA90| && + |560C7F26D329E5FD7B09F0D8F7FF0614B7AD9789| && + |75B0AC21664755F6FF003D4947C74123BF304DA0| && + |FCA536204077CA8D69DD41E72D0E8ED598F86BC9| && + |0D9E9E8861E01CCAB1626ABB55236D8DDE012316| && + |558082338D26C5DEA4A986AA92D215440566DFAE| && + |9F75FEB49CE5D9DDB24817E96DBACC1F7B176C2E| && + |86F14BF21DD2B86583A502789C33343030333151| && + |284A4D4CC94DD5CB4D61E8F9CF526533B9F99E89| && + |F5DD0E11137B1563BF8D9300E5B40D39B801789C| && + |0BCBCF4CD15308CFCCC951484A554849CD492D49| && + |050A700100650107AFB643789C5D524B8FDA3010| && + |BEFB578C38ED4AD1F621F5D29B49CC6235C49163| && + |96720C8921AE428C62A768FF7D6702BBDB564242| && + |F3F85EE398CEC2461AC85D638760E1018B47C652| && + |7F791DDDA98BF0D03CC2D7CF5FBE81AEBBA9077E| && + |AD47CB5869C7B30BC1F9015C80CE8EF6F00AA7B1| && + |1EA26D13388ED6823F42D3D5E3C926103DD4C32B| && + |5CEC1810E00FB176831B4E5043833A0C37638734| && + |C11F23D1E3720B7508BE7135F241EB9BE96C8758| && + |47D23BBADE067888687C51DD118BC759A4B575CF| && + |DC00347B1BC1D5C5CE4F11461BE2E81AE248C00D| && + |4D3FB5E4E16DDCBBB3BB2B107C0E1F18924E0113| && + |90CF04CEBE7547FAB773ACCB74E85DE812681D51| && + |1FA688CD40CDF99609E5F8E44708B6EF193238F4| && + |3D67FD7037EF90F50B1D34DE4F14A873EDFCF9DF| && + |242EB0E3340E2869674CEBF164B3E22FDB44EAD0|. lv_decoded = zcl_abapgit_convert=>string_to_xstring_utf8( |# wdalv_config\nSAP Web Dynpro ABAP ALV |