Esempio n. 1
0
void StringsListEdit (void)
{
    STRING *p, *q;

  AGAIN_P:
    for (p = pStringsList; p != NULL; p = p -> pNext)
    {
        if(p->nUserNum != IS_IN_TABLE)
        {
        if (p -> nRecognized  == 0  &&
            p -> yBottom - p -> yTop + 1 < pCurrentBlock -> nAverageHeight)
        {
            if (p == pStringsList)
                {
                  StringRemove (p);
                  goto AGAIN_P;
                }
            else if (p == pStringsListEnd)
                {
                   StringRemove (p);
                   break;
                }
            else
                {
                    p = p -> pPrev;
                    StringRemove (p -> pNext);
                 }
        }
        }

      AGAIN_Q:
        for (q = p -> pNext; q != NULL; q = q -> pNext)
        {
            if (StringIncludes (p, q))
            {
                if (q -> xLeft < p -> xLeft)
                    p -> xLeft = q -> xLeft;

                if (q -> xRight > q -> xRight)
                    p -> xRight = q -> xRight;
                StringRemove (q);
                goto AGAIN_Q;
            }
        }
    }
}
Esempio n. 2
0
void StringsRemoveTrash (void)
{
    STRING *pString;
    STRING *pNext;

    pString = pStringsList;

    while (pString != NULL)
    {
        pNext = pString -> pNext;

        if (StringIsTrash (pString))
            StringRemove (pString);

        pString = pNext;
    }
}
Esempio n. 3
0
strresult_t StringNRemove(string_t * ap_this, u32_t a_at, u32_t a_size)
{
    return StringRemove(ap_this,a_at,a_at+a_size-1);
}