예제 #1
0
파일: gsmback.c 프로젝트: Romppanen/gammu
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;
	}
}
예제 #2
0
파일: tnef_parse.c 프로젝트: SpOOnman/claws
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;
}