static void send_files (NautilusSendto *nst) { GString *mailto; char *cmd; if (nst->num_dirs > 0) { char *zip; zip = pack_files (nst->file_list); g_list_free_full (nst->file_list, g_free); nst->file_list = g_list_append (NULL, zip); } mailto = g_string_new (""); switch (nst->type) { case MAILER_BALSA: get_balsa_mailto (nst, mailto, nst->file_list); break; case MAILER_SYLPHEED: get_sylpheed_mailto (mailto, nst->file_list); break; case MAILER_THUNDERBIRD: get_thunderbird_mailto (mailto, nst->file_list); break; case MAILER_EVO: default: get_evo_mailto (mailto, nst->file_list); } #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" cmd = g_strdup_printf (nst->mail_cmd, mailto->str); g_string_free (mailto, TRUE); #pragma GCC diagnostic pop g_debug ("Mailer type: %d", nst->type); g_debug ("Command: %s", cmd); /* FIXME: collect errors from this call */ g_spawn_command_line_async (cmd, NULL); g_free (cmd); }
w_int32_t pack_main(w_int32_t argc,char **argv) { w_err_t err; pack_info_s *pkinfo = &pack_info; wind_notice("boot pack start.\r\n"); WIND_ASSERT_RETURN(argc >= 2,W_ERR_INVALID); pack_info_init(); err = get_cfginfo(argv[1],databuff,sizeof(databuff)); WIND_ASSERT_RETURN(err == W_ERR_OK,-1); err = parse_file(databuff,&pack_info); WIND_ASSERT_RETURN(err == W_ERR_OK,-1); sort_input_file(); err = check_file_space(); WIND_ASSERT_TODO_RETURN(err == W_ERR_OK,release_file_buff(),err); err = read_bin_files(); WIND_ASSERT_TODO_RETURN(err == W_ERR_OK,release_file_buff(),err); err = pack_files(&pack_info); WIND_ASSERT_TODO_RETURN(err == W_ERR_OK,release_file_buff(),-1); release_file_buff(); system("pause"); return 0; }