mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 10:12:06 +00:00
Position -1 is the last character of a string
Position 0 is invalid, which matches with STRIN/STRRIN returning 0 on failure.
This commit is contained in:
@@ -11,7 +11,7 @@ S EQUS "XBold<NULL>ABC"
|
||||
assert CHARLEN("{S}") == 6
|
||||
println CHARSUB("{S}", 2)
|
||||
assert !STRCMP(CHARSUB("{S}", 2), "Bold")
|
||||
assert CHARSUB("{S}", -4) == CHARSUB("{S}", CHARLEN("{S}") - 4)
|
||||
assert CHARSUB("{S}", -5) == CHARSUB("{S}", CHARLEN("{S}") + 1 - 5)
|
||||
assert CHARSUB("{S}", 2) == "Bold" && "Bold" == $88
|
||||
assert CHARSUB("{S}", 1) == $58 ; ASCII "X"
|
||||
db "{S}"
|
||||
@@ -21,7 +21,7 @@ S EQUS "XBold<NULL>ABC"
|
||||
assert CHARLEN("{S}") == 14
|
||||
println CHARSUB("{S}", 2)
|
||||
assert !STRCMP(CHARSUB("{S}", 2), "B")
|
||||
assert CHARSUB("{S}", -4) == CHARSUB("{S}", CHARLEN("{S}") - 4)
|
||||
assert CHARSUB("{S}", -5) == CHARSUB("{S}", CHARLEN("{S}") + 1 - 5)
|
||||
assert CHARSUB("{S}", 2) == "B" && "B" == $42 ; ASCII "B"
|
||||
assert CHARSUB("{S}", 1) == $58 ; ASCII "X"
|
||||
db "{S}"
|
||||
|
||||
@@ -7,18 +7,19 @@ ENDM
|
||||
xstrsub "ABC", 1, 1
|
||||
xstrsub "ABC", 2, 1
|
||||
xstrsub "ABC", 3, 1
|
||||
xstrsub "ABC", -3, 1
|
||||
xstrsub "ABC", -2, 1
|
||||
xstrsub "ABC", -1, 1
|
||||
xstrsub "ABC", 0, 1
|
||||
xstrsub "ABC", 2
|
||||
xstrsub "ABC", -1
|
||||
xstrsub "ABC", 0
|
||||
xstrsub "ABC", -2
|
||||
xstrsub "ABC", 5
|
||||
xstrsub "ABC", -5
|
||||
xstrsub "ABC", 1, 2
|
||||
xstrsub "ABC", 2, 2
|
||||
xstrsub "ABC", 2, 32
|
||||
xstrsub "ABC", 2, 300
|
||||
xstrsub "ABC", -3, 300
|
||||
xstrsub "ABC", -4, 300
|
||||
xstrsub "ABC", 4, 0
|
||||
xstrsub "ABC", 5, 0
|
||||
xstrsub "ABC", 4, 1
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
warning: strsub.asm(15) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Position 5 is past the end of the string
|
||||
warning: strsub.asm(14) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Position starts at 1
|
||||
warning: strsub.asm(16) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Position starts at 1
|
||||
warning: strsub.asm(19) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Length too big: 32
|
||||
warning: strsub.asm(20) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Length too big: 300
|
||||
warning: strsub.asm(21) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Position starts at 1
|
||||
warning: strsub.asm(21) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Length too big: 300
|
||||
warning: strsub.asm(23) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Position 5 is past the end of the string
|
||||
warning: strsub.asm(17) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Position starts at 1
|
||||
warning: strsub.asm(20) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Length too big: 32
|
||||
warning: strsub.asm(21) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Length too big: 300
|
||||
warning: strsub.asm(22) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Position starts at 1
|
||||
warning: strsub.asm(22) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Length too big: 300
|
||||
warning: strsub.asm(24) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Position 5 is past the end of the string
|
||||
warning: strsub.asm(25) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Length too big: 1
|
||||
warning: strsub.asm(27) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
warning: strsub.asm(28) -> strsub.asm::xstrsub(4): [-Wbuiltin-args]
|
||||
STRSUB: Length too big: 10
|
||||
|
||||
@@ -5,6 +5,7 @@ A
|
||||
B
|
||||
C
|
||||
BC
|
||||
ABC
|
||||
BC
|
||||
|
||||
ABC
|
||||
|
||||
Reference in New Issue
Block a user