1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
/************************************************************************/
/* */
/* Manage list overrides. */
/* */
/************************************************************************/
# include "tedConfig.h"
# include <stdlib.h>
# include <string.h>
# include <stdio.h>
# include <appDebugon.h>
# include "docListOverride.h"
/************************************************************************/
/* */
/* Individual list overrides. */
/* */
/************************************************************************/
void docInitListOverride( ListOverride * lo )
{
int i;
lo->loListID= -1;
lo->loIndex= 0;
lo->loListIndex= -1;
lo->loOverrideCount= 0;
lo->loLevelCount= 0;
for ( i= 0; i < DLmaxLEVELS; i++ )
{ docInitListOverrideLevel( &(lo->loLevels[i]) ); }
return;
}
void docCleanListOverride( ListOverride * lo )
{
int i;
for ( i= 0; i < lo->loLevelCount; i++ )
{ docCleanListOverrideLevel( &(lo->loLevels[i]) ); }
return;
}
int docCopyListOverride( ListOverride * to,
const ListOverride * from,
const int * fontMap,
const int * colorMap )
{
int rval= 0;
int i;
ListOverrideLevel levels[DLmaxLEVELS];
for ( i= 0; i < DLmaxLEVELS; i++ )
{ docInitListOverrideLevel( &(levels[i]) ); }
for ( i= 0; i < from->loLevelCount; i++ )
{
if ( docCopyListOverrideLevel( &(levels[i]), &(from->loLevels[i]),
fontMap, colorMap ) )
{ LDEB(i); rval= -1; goto ready; }
}
for ( i= 0; i < to->loLevelCount; i++ )
{
docCleanListOverrideLevel( &(to->loLevels[i]) );
/* Not needed because of assignment below
docInitListOverrideLevel( &(to->loLevels[i]) );
*/
}
*to= *from;
for ( i= 0; i < to->loLevelCount; i++ )
{
to->loLevels[i]= levels[i];
docInitListOverrideLevel( &(levels[i]) );
}
ready:
for ( i= 0; i < DLmaxLEVELS; i++ )
{ docCleanListOverrideLevel( &(levels[i]) ); }
return rval;
}
int docListOverrideAddLevel( ListOverride * lo,
const ListOverrideLevel * lol,
const int * fontMap,
const int * colorMap )
{
if ( lo->loLevelCount < 0 || lo->loLevelCount >= DLmaxLEVELS )
{ LLDEB(lo->loLevelCount,DLmaxLEVELS); return -1; }
if ( docCopyListOverrideLevel( &(lo->loLevels[lo->loLevelCount]), lol,
fontMap, colorMap ) )
{ LDEB(lo->loLevelCount); return -1; }
lo->loLevelCount++;
return 0;
}
|