FireBirdLib - Topfield TMS PVR TAP Programming Library
INISaveFile.c
Go to the documentation of this file.
1#include <stdio.h>
2#include <string.h>
3#include "FBLib_ini.h"
4#include "libFireBird.h"
5
6bool INISaveFile(char *FileName, INILOCATION INILocation, char *AppName)
7{
9
10 TYPE_File *f;
11 dword ret;
12
13 if(INIBuffer == NULL || INILocation >= INILOCATION_NrENUMs)
14 {
15 TRACEEXIT();
16 return FALSE;
17 }
18
19 if(INILocation == INILOCATION_AtAppName && (!AppName || !AppName[0]))
20 {
21 TRACEEXIT();
22 return FALSE;
23 }
24
25 if(INILocation < INILOCATION_AtCurrentDir) INILocation = INILOCATION_AtProgramFiles;
26
28
29 //Make sure that the destination directory exists
30 //Nothing to do for INILOCATION_AtCurrentDir
31 if(INILocation == INILOCATION_AtProgramFiles || INILocation == INILOCATION_AtSettings || INILocation == INILOCATION_AtAppName)
32 {
33 if(!HDD_ChangeDir("/ProgramFiles"))
34 {
36
37 TRACEEXIT();
38 return FALSE;
39 }
40 }
41
42 if(INILocation == INILOCATION_AtSettings || INILocation == INILOCATION_AtAppName)
43 {
44 if(!TAP_Hdd_Exist("Settings")) TAP_Hdd_Create("Settings", ATTR_FOLDER);
45 if(!HDD_ChangeDir("Settings"))
46 {
48
49 TRACEEXIT();
50 return FALSE;
51 }
52 }
53
54 if(INILocation == INILOCATION_AtAppName)
55 {
56 if(!TAP_Hdd_Exist(AppName)) TAP_Hdd_Create(AppName, ATTR_FOLDER);
57 if(!HDD_ChangeDir(AppName))
58 {
60
61 TRACEEXIT();
62 return FALSE;
63 }
64 }
65
66 TAP_Hdd_Delete(FileName);
67 TAP_Hdd_Create(FileName, ATTR_NORMAL);
68 if(!(f = TAP_Hdd_Fopen(FileName)))
69 {
71
72 TRACEEXIT();
73 return FALSE;
74 }
75
76 ret = TAP_Hdd_Fwrite(INIBuffer, strlen(INIBuffer), 1, f);
77 TAP_Hdd_Fclose(f);
79
80 TRACEEXIT();
81 return (ret == 1);
82}
char * INIBuffer
Definition: INIOpenFile.c:6
bool HDD_ChangeDir(const char *Dir)
Definition: HDD_ChangeDir.c:5
bool INISaveFile(char *FileName, INILOCATION INILocation, char *AppName)
Definition: INISaveFile.c:6
bool HDD_TAP_PushDir(void)
#define TRACEEXIT()
Definition: libFireBird.h:1244
INILOCATION
Definition: libFireBird.h:2000
@ INILOCATION_AtSettings
Definition: libFireBird.h:2005
@ INILOCATION_NrENUMs
Definition: libFireBird.h:2007
@ INILOCATION_AtAppName
Definition: libFireBird.h:2004
@ INILOCATION_AtCurrentDir
Definition: libFireBird.h:2003
@ INILOCATION_AtProgramFiles
Definition: libFireBird.h:2006
#define TRACEENTER()
Definition: libFireBird.h:1243
bool HDD_TAP_PopDir(void)
Definition: HDD_TAP_PopDir.c:3