GSM_Error GSM_SaveBackupFile(char *FileName, GSM_Backup *backup, GSM_BackupFormat Format) { if (Format == GSM_Backup_Auto || Format == GSM_Backup_AutoUnicode) { Format = GSM_GuessBackupFormat(FileName, Format == GSM_Backup_AutoUnicode); } switch (Format) { case GSM_Backup_LMB: return SaveLMB(FileName,backup); case GSM_Backup_VCalendar: return SaveVCalendar(FileName,backup); case GSM_Backup_VCard: return SaveVCard(FileName,backup); case GSM_Backup_LDIF: return SaveLDIF(FileName,backup); case GSM_Backup_ICS: return SaveICS(FileName,backup); case GSM_Backup_Gammu: return SaveBackup(FileName,backup, FALSE); case GSM_Backup_GammuUCS2: return SaveBackup(FileName,backup, TRUE); case GSM_Backup_VNote: return SaveVNT(FileName,backup); default: return ERR_FILENOTSUPPORTED; } }
MimeInfo *tnef_parse_vcard(TNEFStruct tnef) { MimeInfo *sub_info = NULL; gchar *tmpfilename = NULL; FILE *fp = get_tmpfile_in_dir(get_mime_tmp_dir(), &tmpfilename); struct stat statbuf; gboolean result = FALSE; if (!fp) { g_free(tmpfilename); return NULL; } sub_info = procmime_mimeinfo_new(); sub_info->content = MIMECONTENT_FILE; sub_info->data.filename = tmpfilename; sub_info->type = MIMETYPE_TEXT; sub_info->subtype = g_strdup("x-vcard"); g_hash_table_insert(sub_info->typeparameters, g_strdup("filename"), g_strdup("contact.vcf")); result = SaveVCard(fp, tnef); fclose(fp); g_stat(tmpfilename, &statbuf); sub_info->tmp = TRUE; sub_info->length = statbuf.st_size; sub_info->encoding_type = ENC_BINARY; if (!result) { claws_unlink(tmpfilename); procmime_mimeinfo_free_all(sub_info); return tnef_broken_mimeinfo(_("Failed to parse VCard data.")); } return sub_info; }