X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=opcode.pl;h=59b039b23fbdb0222721aab57c3d0f8e31a33c02;hb=706de38c2aa2b981f7071fda099501bf2cc8caeb;hp=e6f2292580378332e625ea77751e8b449bb5ca3d;hpb=b89fed5ff1fc43a68f98ebc06fd23230eb6697a8;p=p5sagit%2Fp5-mst-13.2.git diff --git a/opcode.pl b/opcode.pl index e6f2292..59b039b 100755 --- a/opcode.pl +++ b/opcode.pl @@ -298,6 +298,7 @@ sub tab { # ref not OK (RETPUSHNO) # trans not OK (dTARG; TARG = sv_newmortal();) # ucfirst etc not OK: TMP arg processed inplace +# quotemeta not OK (unsafe when TARG == arg) # each repeat not OK too due to array context # pack split - unknown whether they are safe # sprintf: is calling do_sprintf(TARG,...) which can act on TARG @@ -314,6 +315,7 @@ sub tab { # readline - unknown whether it is safe # match subst not OK (dTARG) # grepwhile not OK (not always setting) +# join not OK (unsafe when TARG == arg) # Suspicious wrt "additional mode of failure": concat (dealt with # in ck_sassign()), join (same). @@ -377,7 +379,7 @@ bless bless ck_fun s@ S S? backtick quoted execution (``, qx) ck_null t% # glob defaults its first arg to $_ -glob glob ck_glob t@ S? S? +glob glob ck_glob t@ S? readline ck_null t% rcatline append I/O operator ck_null t% @@ -506,7 +508,7 @@ ucfirst ucfirst ck_fun_locale fstu% S? lcfirst lcfirst ck_fun_locale fstu% S? uc uc ck_fun_locale fstu% S? lc lc ck_fun_locale fstu% S? -quotemeta quotemeta ck_fun fsTu% S? +quotemeta quotemeta ck_fun fstu% S? # Arrays. @@ -531,7 +533,7 @@ hslice hash slice ck_null m@ H L unpack unpack ck_fun @ S S pack pack ck_fun mst@ S L split split ck_split t@ S S S -join join ck_join msT@ S L +join join ck_join mst@ S L # List operators. @@ -707,7 +709,7 @@ rename rename ck_fun isT@ S S link link ck_fun isT@ S S symlink symlink ck_fun isT@ S S readlink readlink ck_fun stu% S? -mkdir mkdir ck_fun isT@ S S +mkdir mkdir ck_fun isT@ S S? rmdir rmdir ck_fun isTu% S? # Directory calls.