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 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "create_da.h"
#include "destroy_da.h"
#include "logger.h"
#include "str.h"
#include "dictionnary.h"
t_dictionnary *dictionnary_create()
{
t_dictionnary *d = NULL;
if ( (d=(t_dictionnary*)malloc(sizeof(t_dictionnary))) )
d=dictionnary_initialize(d);
else fprintf(logger, "generator.h::dictionnary_create -> %s\n", strerror(errno));
return d;
}
void dictionnary_destroy(t_dictionnary *d)
{
if (d)
{
if (d->numeric)
destroy_1D_c(d->numeric), d->numeric = NULL;
if (d->alpha)
destroy_1D_c(d->alpha), d->alpha = NULL;
if (d->ALPHA)
destroy_1D_c(d->ALPHA), d->ALPHA = NULL;
if (d->Alpha)
destroy_1D_c(d->Alpha), d->Alpha = NULL;
if (d->alpha_numeric)
destroy_1D_c(d->alpha_numeric), d->alpha_numeric = NULL;
if (d->ALPHA_numeric)
destroy_1D_c(d->ALPHA_numeric), d->ALPHA_numeric = NULL;
if (d->Alpha_numeric)
destroy_1D_c(d->Alpha_numeric), d->Alpha_numeric = NULL;
if (d->hexa_alpha)
destroy_1D_c(d->hexa_alpha), d->hexa_alpha = NULL;
if (d->hexa_numeric)
destroy_1D_c(d->hexa_numeric), d->hexa_numeric = NULL;
if (d->hexa)
destroy_1D_c(d->hexa), d->hexa = NULL;
if (d->ascii)
destroy_1D_c(d->ascii), d->ascii = NULL;
if (d->asciie)
destroy_1D_c(d->asciie), d->asciie = NULL;
free(d); d=NULL;
}
else fprintf(logger, "generator.h::dictionnary_destroy -> %s\n", strerror(errno));
}
t_dictionnary *dictionnary_initialize(t_dictionnary *d)
{
const char *numeric = "0123456789";
const char *alpha = "abcdefghijklmnopqrstuvwxyz";
const char *ALPHA = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const char *Alpha = str_concat(alpha,ALPHA);
const char *alpha_numeric = str_concat(alpha,numeric);
const char *ALPHA_numeric = str_concat(ALPHA,numeric);
const char *Alpha_numeric = str_concat(Alpha,numeric);
const char *hexa_alpha = "ABCDEF";
const char *hexa_numeric = str_copy(numeric);
const char *hexa = str_concat(hexa_alpha, hexa_numeric);
const char ascii[128] = {'\0','\1','\2','\3','\4','\5','\6','\7','\10','\11','\12','\13','\14','\15','\16','\17','\20','\21','\22','\23','\24','\25','\26','\27','\30','\31','\32','\33','\34','\35','\36','\37','\40','\41','\42','\43','\44','\45','\46','\47','\50','\51','\52','\53','\54','\55','\56','\57','\60','\61','\62','\63','\64','\65','\66','\67','\70','\71','\72','\73','\74','\75','\76','\77','\100','\101','\102','\103','\104','\105','\106','\107','\110','\111','\112','\113','\114','\115','\116','\117','\120','\121','\122','\123','\124','\125','\126','\127','\130','\131','\132','\133','\134','\135','\136','\137','\140','\141','\142','\143','\144','\145','\146','\147','\150','\151','\152','\153','\154','\155','\156','\157','\160','\161','\162','\163','\164','\165','\166','\167','\170','\171','\172','\173','\174','\175','\176','\177'};
const char asciie[256] = {'\0','\1','\2','\3','\4','\5','\6','\7','\10','\11','\12','\13','\14','\15','\16','\17','\20','\21','\22','\23','\24','\25','\26','\27','\30','\31','\32','\33','\34','\35','\36','\37','\40','\41','\42','\43','\44','\45','\46','\47','\50','\51','\52','\53','\54','\55','\56','\57','\60','\61','\62','\63','\64','\65','\66','\67','\70','\71','\72','\73','\74','\75','\76','\77','\100','\101','\102','\103','\104','\105','\106','\107','\110','\111','\112','\113','\114','\115','\116','\117','\120','\121','\122','\123','\124','\125','\126','\127','\130','\131','\132','\133','\134','\135','\136','\137','\140','\141','\142','\143','\144','\145','\146','\147','\150','\151','\152','\153','\154','\155','\156','\157','\160','\161','\162','\163','\164','\165','\166','\167','\170','\171','\172','\173','\174','\175','\176','\177','\200','\201','\202','\203','\204','\205','\206','\207','\210','\211','\212','\213','\214','\215','\216','\217','\220','\221','\222','\223','\224','\225','\226','\227','\230','\231','\232','\233','\234','\235','\236','\237','\240','\241','\242','\243','\244','\245','\246','\247','\250','\251','\252','\253','\254','\255','\256','\257','\260','\261','\262','\263','\264','\265','\266','\267','\270','\271','\272','\273','\274','\275','\276','\277','\300','\301','\302','\303','\304','\305','\306','\307','\310','\311','\312','\313','\314','\315','\316','\317','\320','\321','\322','\323','\324','\325','\326','\327','\330','\331','\332','\333','\334','\335','\336','\337','\340','\341','\342','\343','\344','\345','\346','\347','\350','\351','\352','\353','\354','\355','\356','\357','\360','\361','\362','\363','\364','\365','\366','\367','\370','\371','\372','\373','\374','\375','\376','\377'};
short alloc_state = 0;
if (d)
{
if ( (d->numeric = create_1D_c(str_length(numeric))) )
{
if ( (d->alpha = create_1D_c(str_length(alpha))) )
{
if ( (d->ALPHA = create_1D_c(str_length(ALPHA))) )
{
if ( (d->Alpha = create_1D_c(str_length(Alpha))) )
{
if ( (d->alpha_numeric = create_1D_c(str_length(alpha_numeric))) )
{
if ( (d->ALPHA_numeric = create_1D_c(str_length(ALPHA_numeric))) )
{
if ( (d->Alpha_numeric = create_1D_c(str_length(Alpha_numeric))) )
{
if ( (d->hexa_alpha = create_1D_c(str_length(hexa_alpha))) )
{
if ( (d->hexa_numeric = create_1D_c(str_length(hexa_numeric))) )
{
if ( (d->hexa = create_1D_c(str_length(hexa))) )
{
if ( (d->ascii = create_1D_c(128)) )
{
if ( (d->asciie = create_1D_c(256)) )
alloc_state = 1;
if (!alloc_state)
free(d->ascii), d->ascii = NULL;
}
if (!alloc_state)
free(d->hexa), d->hexa = NULL;
}
if (!alloc_state)
free(d->hexa_numeric), d->hexa_numeric = NULL;
}
if (!alloc_state)
free(d->hexa_alpha), d->hexa_alpha = NULL;
}
if (!alloc_state)
free(d->Alpha_numeric), d->Alpha_numeric = NULL;
}
if (!alloc_state)
free(d->ALPHA_numeric), d->ALPHA_numeric = NULL;
}
if (!alloc_state)
free(d->alpha_numeric), d->alpha_numeric = NULL;
}
if (!alloc_state)
free(d->Alpha), d->Alpha = NULL;
}
if (!alloc_state)
free(d->ALPHA), d->ALPHA = NULL;
}
if (!alloc_state)
free(d->alpha), d->alpha = NULL;
}
if (!alloc_state)
{free(d->numeric); d->numeric = NULL;}
}
if (!alloc_state)
free(d), d=NULL;
}
else fprintf(logger, "generator.h::dictionnary_initialize -> %s\n", strerror(errno));
if ( alloc_state )
{
strda_replace(d->numeric,numeric);
strda_replace(d->alpha,alpha);
strda_replace(d->ALPHA,ALPHA);
strda_replace(d->Alpha,Alpha);
strda_replace(d->alpha_numeric,alpha_numeric);
strda_replace(d->ALPHA_numeric,ALPHA_numeric);
strda_replace(d->Alpha_numeric,Alpha_numeric);
strda_replace(d->hexa_numeric,hexa_numeric);
strda_replace(d->hexa_alpha,hexa_alpha);
strda_replace(d->hexa,hexa);
strda_replace_tab(d->ascii,ascii,128);
strda_replace_tab(d->asciie,asciie,256);
}
return d;
} |
Partager