diff --git a/byte/byte_rchr.c b/byte/byte_rchr.c index ceeed9d..06a465b 100644 --- a/byte/byte_rchr.c +++ b/byte/byte_rchr.c @@ -7,10 +7,10 @@ unsigned long byte_rchr(const void* haystack,unsigned long len,char needle) { register const char* s=haystack; register const char* t=s+len; for (;;) { - --t; if (s>=t) break; if (*t==c) return t-s; - --t; if (s>=t) break; if (*t==c) return t-s; - --t; if (s>=t) break; if (*t==c) return t-s; - --t; if (s>=t) break; if (*t==c) return t-s; + --t; if (s>t) break; if (*t==c) return t-s; + --t; if (s>t) break; if (*t==c) return t-s; + --t; if (s>t) break; if (*t==c) return t-s; + --t; if (s>t) break; if (*t==c) return t-s; } return len; } diff --git a/t.c b/t.c index 5d43b34..ab5db67 100644 --- a/t.c +++ b/t.c @@ -29,6 +29,7 @@ int main(int argc,char* argv[]) { assert(byte_rchr(buf,len,'/')==8); assert(byte_rchr(buf,len,'@')==len); assert(byte_rchr(buf,len,'h')==len-1); + printf("%d\n",byte_rchr("x",1,'x')); #if 0 char buf[IP6_FMT+100]; int i;