Спасибо,что откликнулся.Не затруднит ли тебя, для чайника ,на пальцах, явно указать ,где следует сделать дополнение?
Вот ругань:
src/parsetables.c: In function `parse_table`:
src/parsetables.c: 34: warning: dereferencing `void *` pointer
src/parsetables.c: 34: request for member `_flags` in something not a structure
А вот parsetables.c :
---------------------------
#include "asrecod.h"
short hex_to_dec(char *hex_string)
{
int i = 0;
unsigned char current_digit = 0;
short result = 0;
for (i = strlen(hex_string) - 1; i >= 0; i--) {
if ((hex_string[i] >= 0x30) && (hex_string[i] <= 0x39))
current_digit = hex_string[i] - 0x30;
else if ((hex_string[i] >= 0x61) && (hex_string[i] <= 0x66))
current_digit = hex_string[i] - 0x61 + 0x0a;
else if ((hex_string[i] >= 0x41) && (hex_string[i] <= 0x46))
current_digit = hex_string[i] - 0x41 + 0x0a;
else {
strcat(strcat
(strcpy
(error_string,
"error while parsing one of table files: `"),
hex_string), "' is not a hex number");
fatal_error(NOT_A_HEX);
}
result = result + current_digit * pow(16, strlen(hex_string) - 1 - i);
}
return (result);
}
void **parse_tables(FILE *src_table_file, FILE *dest_table_file, int mode)
{
int i;
short (*src_to_unicode)[256];
char (*unicode_to_dest)[65536];
void **ret_arr;
src_to_unicode = mal(512);
unicode_to_dest = mal(65536);
for (i = 0; i < 128; i++)
(*src_to_unicode)[i] = i;
for (i = 128; i < 256; i++)
(*src_to_unicode)[i] = '?';
memset(unicode_to_dest, '?', 65536);
for (i = 0; i < 128; i++)
(*unicode_to_dest)[i] = i;
if ((mode != FROM_UNI) && (mode != FROM_UTF8))
parse_table(1, src_to_unicode, src_table_file);
if ((mode != TO_UNI) && (mode != TO_UTF8))
parse_table(0, unicode_to_dest, dest_table_file);
if (mode == ONEBYTE) {
for (i = 0; i < 128; i++)
src_to_dest[i] = i;
for (i = 128; i < 256; i++)
src_to_dest[i] = (*unicode_to_dest)[(*src_to_unicode)[i]];
}
/*
if (mode == ONEBYTE) {
free(src_to_unicode);
free(unicode_to_dest);
return NULL;
}
*/
ret_arr = mal(2 * sizeof(void *));
ret_arr[0] = src_to_unicode;
ret_arr[1] = unicode_to_dest;
return ret_arr;
}
-----------------------------
Вот вроде 34 стр.
while (!feof(table_file)) {
string = fgets(current_string, MAX_STR_LEN, table_file);
Если можно покажи мне явно,как прописать.
Спасибо.
> Кстати, в Makefile вхождения koi8-u на koi8-r поменял? Или для тебя >украинский родной?
Поменял сразу же.Я чес.слово не ленивый.Makefile/README/INSTALL всегда первым делом читаю.
>С языком C не совсем не дружим?
Совсем не дружим.Я не более чем любопытствующий чайник.Просто ради интереса поставил месяца два назад FreeBSD ,-страшно понравилось.
Вот теперь колупаюсь.
Ещё раз спасибо.Поставилось без проблем(после изм-я).Прекрасно работает.