@@ -18,7 +18,7 @@ static void free_up_dictionary(char **dictionary) {
18
18
dictionary = NULL ;
19
19
}
20
20
21
- static int data_length (char * * dic , const char * data ) {
21
+ static int data_length (char * * dic , const unsigned char * data ) {
22
22
int i = -1 , len = 0 ;
23
23
24
24
while (data [++ i ]) {
@@ -28,16 +28,18 @@ static int data_length(char **dic, const char *data) {
28
28
return len ;
29
29
}
30
30
31
- static char * encode (char * * dic , const char * data ) {
32
- char * encoded_data = calloc (data_length (dic , data ), sizeof (char ));
31
+ static unsigned char * encode (char * * dic , const unsigned char * data ) {
32
+ unsigned char * encoded_data =
33
+ calloc (data_length (dic , data ), sizeof (unsigned char ));
33
34
34
35
for (int i = 0 ; data [i ] != '\0' ; i ++ ) {
35
36
strcat ((char * )encoded_data , dic [(int )data [i ]]);
36
37
}
37
38
return encoded_data ;
38
39
}
39
40
40
- static void compress_byte (unsigned char * byte , char * encoded , int * j , int i ) {
41
+ static void compress_byte (unsigned char * byte , unsigned char * encoded , int * j ,
42
+ int i ) {
41
43
unsigned char mask = 1 ;
42
44
43
45
if (encoded [i ] == '1' ) {
@@ -52,7 +54,7 @@ static void add_compressed_byte(char *compressed, int *k, unsigned char byte) {
52
54
(* k )++ ;
53
55
}
54
56
55
- static unsigned int compress (char * encoded , char * compressed ) {
57
+ static unsigned int compress (unsigned char * encoded , char * compressed ) {
56
58
int i , j = 7 , k = 0 ;
57
59
unsigned char byte = 0 ;
58
60
@@ -71,14 +73,15 @@ static unsigned int compress(char *encoded, char *compressed) {
71
73
}
72
74
73
75
void compress_data (aux_t * aux ) {
74
- char * data_to_be_compressed ;
76
+ unsigned char * data_to_be_compressed ;
77
+
75
78
if (!strcmp ("--file" , aux -> argv [1 ]) && aux -> argv [2 ]) {
76
79
data_to_be_compressed = file_to_str (aux -> argv [2 ]);
77
80
} else {
78
- data_to_be_compressed = merge_input (aux -> argc , aux -> argv );
81
+ data_to_be_compressed = ( unsigned char * ) merge_input (aux -> argc , aux -> argv );
79
82
}
80
83
list_t * freq_table = new_freq_table (data_to_be_compressed );
81
- aux -> data_length = strlen (data_to_be_compressed );
84
+ aux -> data_length = strlen (( char * ) data_to_be_compressed );
82
85
83
86
aux -> huff_tree = new_huff_tree (freq_table );
84
87
int tree_height = huff_tree_height (aux -> huff_tree );
0 commit comments