An int* must not be used to change some enum. As workaround a char* can be used. Index: dvb-apps/util/szap/azap.c =================================================================== --- dvb-apps.orig/util/szap/azap.c +++ dvb-apps/util/szap/azap.c @@ -149,13 +149,14 @@ int try_parse_int(int fd, int *val, cons } +/** param is a four byte memory location */ static -int try_parse_param(int fd, const Param * plist, int list_size, int *param, +int try_parse_param(int fd, const Param * plist, int list_size, char *param, const char *pname) { int err; - err = parse_param(fd, plist, list_size, param); + err = parse_param(fd, plist, list_size, (int*)param); if (err) ERROR("error while parsing %s (%s)", pname, @@ -189,7 +190,7 @@ int parse(const char *fname, const char if ((err = try_parse_param(fd, modulation_list, LIST_SIZE(modulation_list), - (int *) &frontend->u.vsb.modulation, + (char *) &frontend->u.vsb.modulation, "modulation"))) return -4; Index: dvb-apps/util/szap/tzap.c =================================================================== --- dvb-apps.orig/util/szap/tzap.c +++ dvb-apps/util/szap/tzap.c @@ -226,13 +226,14 @@ int try_parse_int(int fd, int *val, cons } +/** param is a four byte memory location */ static -int try_parse_param(int fd, const Param * plist, int list_size, int *param, +int try_parse_param(int fd, const Param * plist, int list_size, char *param, const char *pname) { int err; - err = parse_param(fd, plist, list_size, param); + err = parse_param(fd, plist, list_size, (int*)param); if (err) ERROR("error while parsing %s (%s)", pname, @@ -285,24 +286,24 @@ int parse(const char *fname, const char if ((err = try_parse_param(fd, inversion_list, LIST_SIZE(inversion_list), - (int *) &frontend->inversion, + (char *) &frontend->inversion, "inversion"))) return -4; if ((err = try_parse_param(fd, bw_list, LIST_SIZE(bw_list), - (int *) &frontend->u.ofdm.bandwidth, + (char *) &frontend->u.ofdm.bandwidth, "bandwidth"))) return -5; if ((err = try_parse_param(fd, fec_list, LIST_SIZE(fec_list), - (int *) &frontend->u.ofdm.code_rate_HP, + (char *) &frontend->u.ofdm.code_rate_HP, "code_rate_HP"))) return -6; if (check_fec(&frontend->u.ofdm.code_rate_HP)) return -6; if ((err = try_parse_param(fd, fec_list, LIST_SIZE(fec_list), - (int *) &frontend->u.ofdm.code_rate_LP, + (char *) &frontend->u.ofdm.code_rate_LP, "code_rate_LP"))) return -7; if (check_fec(&frontend->u.ofdm.code_rate_LP)) @@ -310,25 +311,25 @@ int parse(const char *fname, const char if ((err = try_parse_param(fd, constellation_list, LIST_SIZE(constellation_list), - (int *) &frontend->u.ofdm.constellation, + (char *) &frontend->u.ofdm.constellation, "constellation"))) return -8; if ((err = try_parse_param(fd, transmissionmode_list, LIST_SIZE(transmissionmode_list), - (int *) &frontend->u.ofdm. + (char *) &frontend->u.ofdm. transmission_mode, "transmission_mode"))) return -9; if ((err = try_parse_param(fd, guard_list, LIST_SIZE(guard_list), - (int *) &frontend->u.ofdm. + (char *) &frontend->u.ofdm. guard_interval, "guard_interval"))) return -10; if ((err = try_parse_param(fd, hierarchy_list, LIST_SIZE(hierarchy_list), - (int *) &frontend->u.ofdm. + (char *) &frontend->u.ofdm. hierarchy_information, "hierarchy_information"))) return -11; -- (o_ Ludwig Nussel //\ SUSE LINUX Products GmbH, Development V_/_ http://www.suse.de/