ScalpiEditor

Diff
Login

Diff

Differences From Artifact [179024c8b2]:

To Artifact [26c35e03e6]:


2849
2850
2851
2852
2853
2854
2855
2856
2857

2858

2859
2860

2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881

2882
2883
2884
2885
2886
2887
2888

2889
2890
2891
2892


2893


2894
2895

2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912

2913
2914
2915
2916
2917
2918
2919
2920
2921


2922
2923

2924

2925

2926
2927
2928












2929
2930

2931
2932
2933
2934
2935
2936
2937
                    ) {
                        size_t hex_pos = data_len << 1;
                        for (size_t data_pos = 0; data_pos < data_len; data_pos++) {
                            hex_pos -= 2;
                            __Hex_fromByte__(&hex[hex_pos], data[data_pos]);
                        }
                    }
                    
            // AP

                // pack

                    // # __FormatsAp_packNibble__
                    size_t __FormatsAp_packNibble__(char* buffer, char data) {

                        if (data <= 16) {
                            *buffer = 'A' + data;
                        }
                        return 1;
                    }
                    // # __FormatsAp_packByte__
                    size_t __FormatsAp_packByte__(
                        char* buffer,
                        char byte
                    ) {
                        size_t writed = 0;
                        writed += __FormatsAp_packNibble__(&buffer[writed], (byte & 0xF0) >> 4);
                        writed += __FormatsAp_packNibble__(&buffer[writed], byte & 0x0F);
                        return writed;
                    }
                    // # __FormatsAp_packBytes_calculateLen__
                    size_t __FormatsAp_packBytes_calculateLen__(size_t len) {
                        return len * 2;
                    }
                    // # __FormatsAp_packBytes__
                    size_t __FormatsAp_packBytes__(

                        char*    buffer, 
                        char*    data, 
                        size_t   len
                    ) {
                        size_t writed = 0;
                        for(size_t pos = 0; pos < len; pos++) {
                            writed += __FormatsAp_packByte__(&buffer[writed], data[pos]);

                        }
                        return writed;
                    }
                    // # __FormatsAp_writeToBuffer__


                    size_t __FormatsAp_writeToBuffer__(char buffer[], const char data[], size_t len) {


                        size_t writed = 0;
                        for(size_t pos = 0; pos < len; pos++) {

                            writed += __FormatsAp_packByte__(&buffer[writed], data[pos]);
                        }
                        return writed;
                    }
                // parse
                    // # formats_AP_parseNibble
                        size_t formats_AP_parseNibble(char* buffer, char data) {
                            if (data >= 'A' && data <= 'P') {
                                *buffer = data - 'A';
                            } else if (data >= 'a' && data <= 'p') {
                                *buffer = data - 'a';
                            } else {
                                *buffer = 0;
                            }
                            return 1;
                        }
                    // # formats_AP_parseByteToBuffer

                        size_t formats_AP_parseByteToBuffer(char out_buffer[], const char* data) {
                            char buffer[2];
                            size_t writed = 0;
                            writed += formats_AP_parseNibble(&buffer[writed], data[0]);
                            writed += formats_AP_parseNibble(&buffer[writed], data[1]);
                            *out_buffer = (buffer[0] << 4) | buffer[1];
                            return 1;
                        }
                    // # formats_AP_parseToBuffer


                        size_t formats_AP_parseToBuffer(char buffer[], const char *ap, size_t ap_len) {
                            size_t writed = 0;

                            size_t readed = 0;

                            while(readed < ap_len) {

                                writed += formats_AP_parseByteToBuffer(&buffer[writed], &ap[readed]);
                                readed += 2;
                            }












                            return writed;
                        }

            // # __u64FromTextDec__ atoi atou
                uint64_t
                __u64FromTextDec__(
                    const char  *bytes, // expected bytes only with numbers from '0' to '9'
                    size_t      len     // expected > 0; expected <= __u64FromTextDec_maxLen__
                ) { 
                    uint64_t result          = 0;







<

>
|
>
|
|
>

|

|

|
|
|
|

<
|
|
<

<
<
<
<
|
|
>
|
<
|


|
|
>

<

|
>
>
|
>
>
|
|
>
|

<

|
|
|
|
|
|
|
<
<
|
|
|
|
>
|
|
<
|
|
<
|
|
|
>
>
|
|
>
|
>
|
>
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
|

>







2849
2850
2851
2852
2853
2854
2855

2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872

2873
2874

2875




2876
2877
2878
2879

2880
2881
2882
2883
2884
2885
2886

2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898

2899
2900
2901
2902
2903
2904
2905
2906


2907
2908
2909
2910
2911
2912
2913

2914
2915

2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
                    ) {
                        size_t hex_pos = data_len << 1;
                        for (size_t data_pos = 0; data_pos < data_len; data_pos++) {
                            hex_pos -= 2;
                            __Hex_fromByte__(&hex[hex_pos], data[data_pos]);
                        }
                    }

            // AP
                // its hex like but use from 'a' to 'p' values for symbols
                
                // # __Ap_fromNibble__
                    uint8_t __Ap_fromNibble__(
                        char data
                    ) {
                        if (data <= 16) {
                            return 'A' + data;
                        }
                        return 0;
                    }
                // # __Ap_fromByte__
                    void __Ap_fromByte__(
                        char  *buffer, // expected len >= 2
                        char  byte
                    ) {

                        buffer[0] = __Ap_fromNibble__((byte & 0xF0) >> 4);
                        buffer[1] = __Ap_fromNibble__(byte & 0x0F);

                    }




                // # __Ap_fromBytes__
                    void __Ap_fromBytes__(
                        char        *buffer, // expected len >= data_len << 1
                        const char  *data, 

                        size_t      data_len
                    ) {
                        size_t writed = 0;
                        for(size_t pos = 0; pos < data_len; pos++) {
                            __Ap_fromByte__(&buffer[writed], data[pos]);
                                writed += 2;
                        }

                    }
                // # __Ap_fromBytesReversed__
                    void __Ap_fromBytesReversed__(
                        char        *buffer, // expected len >= data_len << 1
                        const char  *data, 
                        size_t      data_len
                    ) {
                        size_t writed = data_len << 1;
                        for (size_t readed = 0; readed < data_len; readed++) {
                            writed -= 2;
                            __Ap_fromByte__(&buffer[writed], data[readed]);
                        }

                    }
                
                // # __Nibble_fromAp__
                    uint8_t __Nibble_fromAp__(char data) {
                        if (data >= 'A' && data <= 'P') { 
                            return data - 'A';
                        } else if (data >= 'a' && data <= 'p') {
                            return data - 'a';


                        } 
                        return 0;
                    }
                // # __Byte_fromAp__
                    uint8_t __Byte_fromAp__(
                        const char* data // expected len >= 2
                    ) {

                        char fo = __Nibble_fromAp__(data[0]);
                        char of = __Nibble_fromAp__(data[1]);

                        return (fo << 4) | of;
                    }
                // # __Bytes_fromAp__
                    void __Bytes_fromAp__(
                        char       *buffer, // expected len >= ap_len >> 1
                        const char *ap,
                        size_t     ap_len
                    ) {
                        size_t readed = 0;
                        size_t writed = 0;
                        while(readed < ap_len) {
                            buffer[writed] = __Byte_fromAp__(&ap[readed]);
                                writed += 1;
                            readed += 2;
                        }
                    }
                // # __Bytes_fromApReversed__
                    void __Bytes_fromApReversed__(
                        char       *buffer, // expected len >= ap_len >> 1
                        const char *ap,
                        size_t     ap_len   // expected >= 2, expected odd
                    ) {
                        size_t ap_pos = ap_len;
                        size_t writed = 0;
                        while (ap_pos > 0) {
                            ap_pos -= 2; // garanty ap_pos < ap_len
                            buffer[writed] = __Byte_fromAp__(&ap[ap_pos]);
                                writed += 1;
                        }
                    }
            // # __u64FromTextDec__ atoi atou
                uint64_t
                __u64FromTextDec__(
                    const char  *bytes, // expected bytes only with numbers from '0' to '9'
                    size_t      len     // expected > 0; expected <= __u64FromTextDec_maxLen__
                ) { 
                    uint64_t result          = 0;