Index: send_file.c =================================================================== --- send_file.c (revision 17464) +++ send_file.c (working copy) @@ -204,8 +204,8 @@ info = (ft_info *) xfer->data; qq_xfer_close_file(xfer); - if (info->dest_fp != NULL) { - fclose(info->dest_fp); + if (info->u.dest_fp != NULL) { + fclose(info->u.dest_fp); gaim_debug(GAIM_DEBUG_INFO, "QQ", "file closed\n"); } if (info->major_fd != 0) { Index: send_file.h =================================================================== --- send_file.h (revision 17464) +++ send_file.h (working copy) @@ -40,7 +40,7 @@ union { FILE *dest_fp; guint8 *buffer; - }; + } u; gboolean use_major; } ft_info; Index: file_trans.c =================================================================== --- file_trans.c (revision 17464) +++ file_trans.c (working copy) @@ -218,8 +218,8 @@ static int _qq_xfer_open_file(const gchar *filename, const gchar *method, GaimXfer *xfer) { ft_info *info = xfer->data; - info->dest_fp = fopen(gaim_xfer_get_local_filename(xfer), method); - if (info->dest_fp == NULL) { + info->u.dest_fp = fopen(gaim_xfer_get_local_filename(xfer), method); + if (info->u.dest_fp == NULL) { return -1; } return 0; @@ -229,22 +229,22 @@ { ft_info *info = xfer->data; - fseek(info->dest_fp, index * len, SEEK_SET); - return fread(buffer, 1, len, info->dest_fp); + fseek(info->u.dest_fp, index * len, SEEK_SET); + return fread(buffer, 1, len, info->u.dest_fp); } static gint _qq_xfer_write_file(guint8 *buffer, guint index, guint len, GaimXfer *xfer) { ft_info *info = xfer->data; - fseek(info->dest_fp, index * len, SEEK_SET); - return fwrite(buffer, 1, len, info->dest_fp); + fseek(info->u.dest_fp, index * len, SEEK_SET); + return fwrite(buffer, 1, len, info->u.dest_fp); } void qq_xfer_close_file(GaimXfer *xfer) { ft_info *info = xfer->data; - if (info->dest_fp) fclose(info->dest_fp); + if (info->u.dest_fp) fclose(info->u.dest_fp); } #endif