FireBirdLib - Topfield TMS PVR TAP Programming Library
INIOpenFile.c
Go to the documentation of this file.
1#include <string.h>
2#include <stdlib.h>
3#include "FBLib_ini.h"
4#include "libFireBird.h"
5
6char *INIBuffer = NULL, *INICommentBuffer = NULL;
7dword BufferSize = 0;
8
9INILOCATION INIOpenFile(char *FileName, char *AppName)
10{
11 TRACEENTER();
12
13 TYPE_File *f;
14 dword flen, ret = 0;
15 INILOCATION INILocation;
16
18 INILocation = INILocateFile(FileName, AppName);
19
20 if(INILocation == INILOCATION_NotFound)
21 {
23 BufferSize = 512;
24 if(!(INIBuffer = TAP_MemAlloc(BufferSize)))
25 {
26 TRACEEXIT();
28 }
29
30 memset(INIBuffer, 0, BufferSize);
31
32 TRACEEXIT();
34 }
35
36 f = TAP_Hdd_Fopen(FileName);
37 if(f == NULL)
38 {
40
41 TRACEEXIT();
43 }
44
45 flen = TAP_Hdd_Flen(f);
46 BufferSize = (((flen >> 9) + 2) << 9);
47
48 INIBuffer = TAP_MemAlloc(BufferSize);
49 if(INIBuffer)
50 {
51 memset(INIBuffer, 0, BufferSize);
52 ret = TAP_Hdd_Fread(INIBuffer, flen, 1, f);
53 flen = strlen(INIBuffer);
54 if (flen && (INIBuffer[flen - 1] != '\x0d' && INIBuffer[flen - 1] != '\x0a'))
55 strcat(INIBuffer, "\x0d\x0a");
56 }
57 TAP_Hdd_Fclose(f);
58
59 if(INIBuffer && !flen)
60 {
61 strcat(INIBuffer, "\x0d\x0a");
62 ret = 1;
63 }
64
66
67 TRACEEXIT();
68 return (INIBuffer && (ret > 0) ? INILocation : INILOCATION_NotFound);
69}
INILOCATION INILocateFile(char *FileName, char *AppName)
Definition: INILocateFile.c:7
dword BufferSize
Definition: INIOpenFile.c:7
char * INIBuffer
Definition: INIOpenFile.c:6
char * INICommentBuffer
Definition: INIOpenFile.c:6
INILOCATION INIOpenFile(char *FileName, char *AppName)
Definition: INIOpenFile.c:9
bool HDD_TAP_PushDir(void)
#define TRACEEXIT()
Definition: libFireBird.h:1244
INILOCATION
Definition: libFireBird.h:2000
@ INILOCATION_NotFound
Definition: libFireBird.h:2001
@ INILOCATION_NewFile
Definition: libFireBird.h:2002
#define TRACEENTER()
Definition: libFireBird.h:1243
bool HDD_TAP_PopDir(void)
Definition: HDD_TAP_PopDir.c:3