Skip to content

Commit f2ed251

Browse files
committed
rewriting functions
1 parent 9b03b94 commit f2ed251

3 files changed

Lines changed: 46 additions & 154 deletions

File tree

src/libltfs/arch/filename_handling.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ char * _generate_target_file_name(const char *prefix, const char *extension, int
208208
target = NULL;
209209

210210
if (suffix) {
211-
arch_vsprintf_auto( suffix_string, "~%d", suffix );
211+
arch_sprintf_auto( suffix_string, "~%d", suffix );
212212

213213
prefix_length = prefix ? _utf8_strlen(prefix) : 0;
214214
extension_length = extension ? _utf8_strlen(extension) : 0;

src/libltfs/arch/ltfs_arch_ops.h

Lines changed: 44 additions & 152 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,15 @@ extern "C" {
6767
#include <process.h>
6868
#include <time.h>
6969
#include <libxml/xmlmemory.h>
70+
71+
#define arch_safe_free(memobject) \
72+
do { \
73+
if(memobject) \
74+
{ \
75+
free(memobject); \
76+
memobject = NULL; \
77+
} \
78+
}while(0)
7079

7180
inline void arch_strcpy_limited(char* dest, const char* src, int count)
7281
{
@@ -81,12 +90,6 @@ extern "C" {
8190
}
8291
}
8392

84-
inline void arch_safe_free(void* ptr)
85-
{
86-
if (!ptr) return;
87-
free(ptr);
88-
ptr = NULL;
89-
}
9093

9194

9295
#ifdef _MSC_VER
@@ -105,99 +108,44 @@ extern "C" {
105108
#define INVALID_KEY UINT_MAX
106109

107110

108-
inline int arch_vsprintf(char* buffer, size_t bufferCount, const char* fmt, ...)
109-
{
110-
va_list args;
111-
va_start(args, fmt);
112-
int res = vsprintf_s(buffer, bufferCount, fmt, args);
113-
va_end(args);
114-
return res;
115-
}
111+
#define arch_vsprintf(buffer,bufferCount, fmt, ...) vsprintf_s((buffer), (bufferCount), (fmt), __VA_ARGS__)
116112

117-
inline int arch_vsprintf_auto(char* buffer, const char* fmt, ...)
118-
{
119-
va_list args;
120-
va_start(args, fmt);
121-
int res = arch_vsprintf(buffer, sizeof(buffer), fmt, args);
122-
va_end(args);
123-
return res;
124-
}
113+
#define arch_sprintf(buffer, bufferCount, fmt, ...) sprintf_s((buffer), (bufferCount), (fmt), __VA_ARGS__)
125114

115+
#define arch_sscanf( buffer, fmt, ...) sscanf_s((buffer),(fmt), __VA_ARGS__)
116+
117+
#define arch_open(pFileDescriptor,pFileName, openFlag,shareFlag, permission) _sopen_s(pFileDescriptor, pFileName, openFlag, shareFlag, permission);
118+
119+
#define arch_fopen(file, mode, file_ptr) fopen_s(&(file_ptr), file, mode)
120+
121+
#define arch_ctime(buffer, timeptr) ctime_s(buffer, sizeof(buffer), timeptr)
122+
123+
#define arch_getenv( buffer, varname) do { size_t len; _dupenv_s(&(buffer), &(len), varname); } while (0)
126124

127-
inline int arch_sscanf(char* buffer, const char* fmt, ...)
128-
{
129-
va_list args;
130-
va_start(args, fmt);
131-
int res = sscanf_s(buffer, fmt, args);
132-
va_end(args);
133-
return res;
134-
}
135125

136126
inline void arch_strcpy(char* dest, size_t bufferCount, const char* src)
137127
{
138128
strcpy_s(dest, bufferCount, src);
139129
}
140130

141-
inline void arch_strcpy_auto(char* dest, const char* src)
142-
{
143-
arch_strcpy(dest, sizeof(dest), src);
144-
}
145131

146132
inline void arch_strncpy(char* dest, const char* src, size_t sizeInBytes, size_t maxCount)
147133
{
148134
strncpy_s(dest, sizeInBytes, src, maxCount);
149135
}
150136

151-
inline void arch_strncpy_auto(char* dest, const char* src, size_t destSize)
152-
{
153-
arch_strncpy(dest, src, destSize, destSize);
154-
}
155137

156138
inline void arch_strcat(char* dest, size_t sizeInBytes, const char* src)
157139
{
158140
strcat_s(dest, sizeInBytes, src);
159141
}
160142

161143

162-
inline void arch_strcat_auto(char* dest, const char* src)
163-
{
164-
arch_strcat(dest, sizeof(dest), src);
165-
}
166-
167-
168-
inline int arch_sprintf(char* buffer, size_t bufferCount, const char* fmt, ...)
169-
{
170-
va_list args;
171-
va_start(args, fmt);
172-
int res = sprintf_s(buffer, bufferCount, fmt, args);
173-
va_end(args);
174-
return res;
175-
}
176-
177-
inline int arch_sprintf_auto(char* buffer, const char* fmt, ...)
178-
{
179-
va_list args;
180-
va_start(args, fmt);
181-
int res = arch_sprintf(buffer, sizeof(buffer), fmt, args);
182-
va_end(args);
183-
return res;
184-
}
185-
186-
inline void arch_open(int* pFileDescriptor, char* pFileName, int openFlag, int shareFlag, int permission)
187-
{
188-
_sopen_s(pFileDescriptor, pFileName, openFlag, shareFlag, permission);
189-
}
190-
191144
inline char* arch_strtok(char* string, const char* delimiter, char** context)
192145
{
193146
return strtok_s(string, delimiter, context);
194147
}
195148

196-
inline void arch_fopen(const char* file, const char* mode, FILE* filePtr)
197-
{
198-
fopen_s(&(filePtr), file, mode);
199-
}
200-
201149
inline int arch_unlink(const char* filename)
202150
{
203151
return _unlink(filename);
@@ -233,21 +181,11 @@ extern "C" {
233181
return _getpid();
234182
}
235183

236-
inline void arch_getenv(char* buffer, const char* varname)
237-
{
238-
size_t len;
239-
_dupenv_s(&(buffer), &(len), varname);
240-
}
241-
242184
inline int arch_access(const char* filename, int mode)
243185
{
244186
return _access(filename, mode);
245187
}
246188

247-
inline void arch_ctime(char* const buffer, const time_t* timeptr)
248-
{
249-
ctime_s(buffer, sizeof(buffer), timeptr);
250-
}
251189

252190
inline void arch_xmlfree(void* ptr)
253191
{
@@ -264,87 +202,41 @@ extern "C" {
264202
#define PERMISSION_WRITE 0222
265203
#define INVALID_KEY (-1U)
266204

267-
inline int arch_vsprintf(char* buffer, size_t unused, const char* fmt, ...)
268-
{
269-
va_list args;
270-
va_start(args, fmt);
271-
int res = vsprintf(buffer, fmt, args);
272-
va_end(args);
273-
return res;
274-
}
205+
#define arch_vsprintf(buffer,unused, fmt, ...) vsprintf((buffer), (fmt), __VA_ARGS__)
206+
207+
#define arch_sprintf(buffer,unused, fmt, ...) sprintf((buffer), (fmt), __VA_ARGS__)
208+
209+
#define arch_sscanf( buffer, fmt, ...) sscanf((buffer),(fmt), __VA_ARGS__)
210+
211+
#define arch_open( pFileDescriptor, pFileName, openFlag, shareFlag, unused) do{ *pFileDescriptor = open(pFileName, openFlag, shareFlag); }while(0)
212+
213+
#define arch_fopen( file, mode, filePtr) do {filePtr = fopen(file, mode);}while(0)
214+
215+
#define arch_ctime(buffer,timeptr) do { buffer = ctime(timeptr); } while (0)
216+
217+
#define arch_getenv(buffer,varname) do { buffer = getenv(varname); } while (0)
275218

276-
inline int arch_vsprintf_auto(char* buffer, const char* fmt, ...)
277-
{
278-
va_list args;
279-
va_start(args, fmt);
280-
int res = arch_sprintf(buffer, 0, fmt, args);
281-
va_end(args);
282-
return res;
283-
}
284219

285-
inline int arch_sscanf(char* buffer, const char* fmt, ...)
286-
{
287-
va_list args;
288-
va_start(args, fmt);
289-
int res = sscanf(buffer, fmt, args);
290-
va_end(args);
291-
return res;
292-
}
293220
inline void arch_strcpy(char* dest, size_t unused, const char* src)
294221
{
295222
strcpy(dest, src);
296223
}
297224

298-
inline void arch_strcpy_auto(char* dest, const char* src)
299-
{
300-
arch_strcpy(dest, 0, src);
301-
}
302-
303225
inline void arch_strncpy(char* dest, const char* src, size_t unused, size_t count)
304226
{
305227
strncpy(dest, src, count);
306228
}
307229

308-
inline void arch_strncpy_auto(char* dest, const char* src, size_t destSize)
309-
{
310-
arch_strncpy(dest, src, destSize, 0);
311-
}
312-
313230
inline void arch_strcat(char* dest, size_t unused, const char* src)
314231
{
315232
strcat(dest, src);
316233
}
317234

318-
inline void arch_strcat_auto(char* dest, const char* src)
319-
{
320-
arch_strcat(dest, 0, src);
321-
}
322-
323-
324-
inline int arch_sprintf(char* buffer, size_t unused, const char* fmt, ...)
325-
{
326-
va_list args;
327-
va_start(args, fmt);
328-
int res = sprintf(buffer, fmt, args);
329-
va_end(args);
330-
return res;
331-
}
332-
333-
inline void arch_open(int* pFileDescriptor, char* pFileName, int openFlag, int shareFlag, int unused)
334-
{
335-
*pFileDescriptor = open(pFileName, openFlag, shareFlag);
336-
}
337-
338235
inline char* arch_strtok(char* string, const char* delimiter, char** unused)
339236
{
340237
return strtok(string, delimiter);
341238
}
342239

343-
inline void arch_fopen(const char* file, const char* mode, FILE* filePtr)
344-
{
345-
filePtr = fopen(file, mode);
346-
}
347-
348240
inline int arch_unlink(const char* filename)
349241
{
350242
return unlink(filename);
@@ -380,21 +272,11 @@ extern "C" {
380272
return getpid();
381273
}
382274

383-
384-
inline void arch_getenv(char* buffer, const char* varname)
385-
{
386-
buffer = getenv(varname);
387-
}
388-
389275
inline int arch_access(const char* filename, int mode)
390276
{
391277
return access(filename, mode);
392278
}
393-
394-
inline void arch_ctime(char* const buffer, const time_t* timeptr)
395-
{
396-
ctime_r(buffer, timeptr);
397-
}
279+
398280

399281
inline void arch_xmlfree(void* ptr)
400282
{
@@ -403,6 +285,16 @@ extern "C" {
403285

404286
#endif /* _MSC_VER */
405287

288+
/* These needs to be declared at the end to avoid redefinition and to avoid code replication */
289+
#define arch_vsprintf_auto( buffer, fmt, ...) arch_vsprintf(buffer,sizeof(buffer),fmt,__VA_ARGS__)
290+
291+
#define arch_strcpy_auto(dest, src) arch_strcpy(dest, sizeof(dest), src);
292+
293+
#define arch_strncpy_auto(dest, src, destSize) arch_strncpy(dest, src, destSize, destSize);
294+
295+
#define arch_strcat_auto(dest,src) arch_strcat(dest, sizeof(dest), src);
296+
297+
#define arch_sprintf_auto(buffer, fmt, ...) arch_sprintf(buffer,sizeof(buffer),fmt, __VA_ARGS__)
406298

407299
#ifdef __cplusplus
408300
}

src/libltfs/xml_writer_libltfs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ static int encode_entry_name(char **new_name, const char *name)
120120
}
121121

122122
while (count < i - prev) {
123-
arch_vsprintf_auto(buf_encode, "%02X", name[prev+count] & 0xFF);
123+
arch_sprintf_auto(buf_encode, "%02X", name[prev+count] & 0xFF);
124124
tmp_name[j] = '%';
125125
tmp_name[j+1] = buf_encode[0];
126126
tmp_name[j+2] = buf_encode[1];

0 commit comments

Comments
 (0)