This seems to be a typo, I think the original variable name was mean to be isedge or is_edge. Perhaps this check would be simpler to understand and would not create local variable if it were like this? if (*end == *start) return S_FALSE; Regards, Indrek