mirror of
https://github.com/pocketpy/pocketpy
synced 2025-11-09 21:20:17 +00:00
check the size of fillchar passed to str methods (ljust, rjust)
This commit is contained in:
parent
cb15db1f0e
commit
db9d6349b1
@ -734,6 +734,7 @@ void init_builtins(VM* _vm) {
|
||||
int delta = width - self.u8_length();
|
||||
if(delta <= 0) return args[0];
|
||||
const Str& fillchar = CAST(Str&, args[2]);
|
||||
if (fillchar.size != 1) vm->TypeError("The fill character must be exactly one character long");
|
||||
SStream ss;
|
||||
ss << self;
|
||||
for(int i=0; i<delta; i++) ss << fillchar;
|
||||
@ -747,6 +748,7 @@ void init_builtins(VM* _vm) {
|
||||
int delta = width - self.u8_length();
|
||||
if(delta <= 0) return args[0];
|
||||
const Str& fillchar = CAST(Str&, args[2]);
|
||||
if (fillchar.size != 1) vm->TypeError("The fill character must be exactly one character long");
|
||||
SStream ss;
|
||||
for(int i=0; i<delta; i++) ss << fillchar;
|
||||
ss << self;
|
||||
|
||||
@ -157,8 +157,18 @@ assert b[5:2:-2] == [',', 'l']
|
||||
a = '123'
|
||||
assert a.rjust(5) == ' 123'
|
||||
assert a.rjust(5, '0') == '00123'
|
||||
try:
|
||||
a.rjust(5, '00')
|
||||
exit(1)
|
||||
except TypeError:
|
||||
pass
|
||||
assert a.ljust(5) == '123 '
|
||||
assert a.ljust(5, '0') == '12300'
|
||||
try:
|
||||
a.ljust(5, '00')
|
||||
exit(1)
|
||||
except TypeError:
|
||||
pass
|
||||
|
||||
assert '\x30\x31\x32' == '012'
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user