At Tue, 12 Oct 2021 15:42:23 +0900 (JST), Kyotaro Horiguchi 
<horikyota....@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


Reply via email to