• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Long SubString bug?

Status
Not open for further replies.
Level 13
Joined
Nov 7, 2014
Messages
571
It seems that taking a substring of a string longer than 1020 (or 1024 in 1.26?) characters/bytes rounds to the end of the string (returns the whole string).

JASS:
function long_substring_length_bug takes nothing returns nothing
    local string s = ""

    set s = s + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" // 100
    set s = s + "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" // 100
    set s = s + "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" // 100
    set s = s + "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" // 100
    set s = s + "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" // 100
    set s = s + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" // 100
    set s = s + "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG" // 100
    set s = s + "HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH" // 100
    set s = s + "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII" // 100
    set s = s + "JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ" // 100
    set s = s + "KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK" // 100
    // set s = s + "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL" // 100
    // set s = s + "012345678901234567890" // 21

    call BJDebugMsg("StringLength(s): " + I2S(StringLength(s)))
    call BJDebugMsg("StringLength(SubString(s, 0, 1019)): " + I2S(StringLength(SubString(s, 0, 1019))))
    call BJDebugMsg("StringLength(SubString(s, 0, 1020)): " + I2S(StringLength(SubString(s, 0, 1020))))
    call BJDebugMsg("StringLength(SubString(s, 0, 1021)): " + I2S(StringLength(SubString(s, 0, 1021))))
    call BJDebugMsg("StringLength(SubString(s, 0, 1022)): " + I2S(StringLength(SubString(s, 0, 1022))))
    call BJDebugMsg("StringLength(SubString(s, 0, 1023)): " + I2S(StringLength(SubString(s, 0, 1023))))
    call BJDebugMsg("StringLength(SubString(s, 0, 1024)): " + I2S(StringLength(SubString(s, 0, 1024))))
    call BJDebugMsg("StringLength(SubString(s, 0, 1025)): " + I2S(StringLength(SubString(s, 0, 1025))))
    call BJDebugMsg("StringLength(SubString(s, 0, 1050)): " + I2S(StringLength(SubString(s, 0, 1050))))
endfunction
 
Status
Not open for further replies.
Top