At Tue, 12 Oct 2021 15:42:23 +0900 (JST), Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote in
> If we code as the following:
...
> A. "^-?[0-9]+.*" : same to the current
> B. "^[^0-9-].*" : same to the current
> C. "^-[^0-9].*" : padding = 0, p doesn't advance.
> D. "^-" : padding = 0, p doesn't advance.
One possible cause of a difference in behavior is character class
handling including multibyte characters of isdigit and strtol. If
isdigit accepts '一' as a digit (some platforms might do this) , and
strtol doesn't (I believe it is universal behavior), '%一0p' is
converted to '%' and the pointer moves onto '一'. But I don't think we
need to do something for such a crazy specification.
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center