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