#include "glifos.h" #include "imag0.h" #include "imag.h" #include "lista.h" void quitadeArboles (tglifo glifo) { tvent ventana = glifo->venDeGlifo; // tvent ventanaBase = ventana->venBase; tvent ventanaBase ; tglifo glifoBase = glifo->glifBase; // ventana = glifo->venDeGlifo; // ventanaBase = ventana->venBase; // glifoBase = glifo->glifBase; // // quita glifo de glifoBase eliminaNGlifodelista(glifoBase->listaGlifos, nodolglifoDeGlifo(glifo)); // quita ventana de ventanaBase if (ventana != 0L) { ventanaBase = ventana->venBase; // eliminaItemdelista (ventanaBase->lvint, (tpgen) ventana); } // se puede aņadir glifo a lista de artefactos de glifo_columna // se puede aņadir ventana a lista de artefactos de ventana_columna } void quitaUnArtefacto (tglifo glifo) { tvent ventana; // tglifo glifoBase; if (glifo->tipo == glifArtf) { // printf ("==>1\n"); ventana = glifo->venDeGlifo; if (ventana->tx * ventana->ty == 0) { // describeGlifo(glifo,0); // glifoBase = glifo->glifBase; // describeGlifo(glifoBase,1); // describeVentana(glifoBase->venDeGlifo,1); quitadeArboles (glifo); // y ventana, y ... } } } void quitaUnaPalabraVacia (tglifo glifo) { if (glifo->tipo == glifCompPal) { if (listadglifoVacia (glifo->listaGlifos)) quitadeArboles (glifo); // ... glifo_palabra si no hay mas } } void quitaEspaciosBlancosdeSobra (tglifo glifo) { tglifo glPrimero, glAnteultimo; if (glifo->tipo == glifCompLin) { glPrimero = glifo->listaGlifos->primero->aglifo; if (glPrimero->tipo == glifBlan) eliminaNGlifodelista(glifo->listaGlifos, glifo->listaGlifos->primero); if (glifo->listaGlifos->ultimo->anterior != 0L) { glAnteultimo = glifo->listaGlifos->ultimo->anterior->aglifo; if (glAnteultimo->tipo == glifBlan) eliminaNGlifodelista(glifo->listaGlifos, glifo->listaGlifos->ultimo->anterior); } } } void quitaLineaVacia (tglifo glifo) { tglifo glPrimero; if (glifo->tipo == glifCompLin) { glPrimero = glifo->listaGlifos->primero->aglifo; if (glPrimero->tipo == glifClin){ eliminaNGlifodelista(glifo->listaGlifos, glifo->listaGlifos->primero); quitadeArboles (glifo); } } } void quitaArtefactos (tglifo glifoColumnaP) { aplicaGtRFn (glifoColumnaP, glifArtf, quitaUnArtefacto); aplicaGtRFn (glifoColumnaP, glifCompPal, quitaUnaPalabraVacia); aplicaGtRFn (glifoColumnaP, glifCompLin, quitaEspaciosBlancosdeSobra); aplicaGtRFn (glifoColumnaP, glifCompLin, quitaLineaVacia); }