rem: if (tb) tPtr->tpos = 0;
context: removeSelection(Text *tPtr){    TextBlock *tb = NULL;    Bool first = False;    if (!(tb = tPtr->firstTextBlock))        return False;    while (tb) {        if (tb->selected) {             if(!first && !tb->graphic) {                 WMReleaseFont(tPtr->dFont);                tPtr->dFont = WMRetainFont(tb->d.font);                first = True;            }            if ( (tb->s_end - tb->s_begin == tb->used) || tb->graphic) {                 tPtr->currentTextBlock = tb;                WMDestroyTextBlock(tPtr, WMRemoveTextBlock(tPtr));                tb = tPtr->currentTextBlock;                if (tb)                    tPtr->tpos = 0;                continue;            } else if (tb->s_end <= tb->used) {                memmove(&(tb->text[tb->s_begin]),                    &(tb->text[tb->s_end]), tb->used - tb->s_end);                tb->used -= (tb->s_end - tb->s_begin);                tb->selected = False;                tPtr->tpos = tb->s_begin;            }                        }         tb = tb->next;    }    return True;} 