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