34 #include <gwenhywfar/text.h> 35 #include <gwenhywfar/debug.h> 36 #include <gwenhywfar/stringlist.h> 37 #include <gwenhywfar/dbio_be.h> 38 #include <gwenhywfar/syncio_file.h> 39 #include <gwenhywfar/fastbuffer.h> 44 #include <sys/types.h> 57 # define PRI_SIZET PRIu64 59 # define PRI_SIZET PRIu32 62 # define PRI_SIZET "zd" 86 while (*g && (
unsigned char)(*g)<33)
94 while (*s && (
unsigned char)(*s)<33)
98 while ((
unsigned char)(*s)>31 && i && *s!=
']' && *s!=
'#') {
116 DBG_DEBUG(0,
"Group \"%s\" is not available", name);
123 while (*s && (
unsigned char)(*s)<33)
127 while ((
unsigned char)(*s)>31 && i-- && *s!=
'=' && *s!=
'#') {
142 if ((
unsigned char)(name[i])<33)
151 if (name[i-1]==
'"' &&
158 if ((
unsigned char)(*s)<31 || *s==
'#') {
171 DBG_ERROR(0,
"Variable name must not be empty");
182 while ((
unsigned char)(*s)>31) {
186 while (*s && (
unsigned char)(*s)<33)
208 while (*s && (
unsigned char)(*s)<33)
213 i=GWEN_DBIO_OLDDB_MAXVALUE_LEN-1;
214 while ((
unsigned char)(*s)>31 && i) {
230 else if (*s==
'#' && !(quotes&1))
232 else if (*s==
',' && !(quotes&1))
242 DBG_ERROR(0,
"Value is too long (limit is %d chars)",
243 GWEN_DBIO_OLDDB_MAXVALUE_LEN-1);
248 DBG_ERROR(0,
"Unbalanced quotation marks");
253 DBG_WARN(0,
"Backslash at the end of the line");
262 if ((
unsigned char)(vp[i])<33)
331 DBG_ERROR(0,
"Error in input stream (line %d)", ln);
392 dbio=
GWEN_DBIO_new(
"OldDb",
"Imports and exports Old OpenHBCI data");
403 const char *fileName)
int GWEN_DBIO_OldDb_Export(GWEN_UNUSED GWEN_DBIO *dbio, GWEN_UNUSED GWEN_SYNCIO *sio, GWEN_UNUSED GWEN_DB_NODE *data, GWEN_UNUSED GWEN_DB_NODE *cfg, GWEN_UNUSED uint32_t flags)
struct GWEN_PLUGIN_MANAGER GWEN_PLUGIN_MANAGER
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
int GWEN_SyncIo_Connect(GWEN_SYNCIO *sio)
struct GWEN_DB_NODE GWEN_DB_NODE
struct GWEN_PLUGIN GWEN_PLUGIN
GWEN_DBIO * GWEN_DBIO_new(const char *name, const char *descr)
GWEN_DB_NODE * GWEN_DBIO_OldDb__ParseLine(GWEN_DB_NODE *root, GWEN_DB_NODE *group, const char *s, uint32_t mode)
void GWEN_DB_Group_free(GWEN_DB_NODE *n)
uint32_t GWEN_Buffer_GetUsedBytes(const GWEN_BUFFER *bf)
#define GWEN_SYNCIO_FILE_FLAGS_READ
GWEN_DBIO_CHECKFILE_RESULT GWEN_DBIO_OldDb_CheckFile(GWEN_DBIO *dbio, const char *fname)
int GWEN_FastBuffer_ReadLineToBuffer(GWEN_FAST_BUFFER *fb, GWEN_BUFFER *buf)
#define DBG_VERBOUS(dbg_logger, format, args...)
void GWEN_DBIO_SetCheckFileFn(GWEN_DBIO *dbio, GWEN_DBIO_CHECKFILEFN f)
void GWEN_FastBuffer_free(GWEN_FAST_BUFFER *fb)
#define DBG_WARN(dbg_logger, format, args...)
#define DBG_ERROR_ERR(dbg_logger, dbg_err)
void GWEN_DBIO_SetImportFn(GWEN_DBIO *dbio, GWEN_DBIO_IMPORTFN f)
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
#define GWEN_ERROR_BAD_DATA
int GWEN_DBIO_OldDb_Import(GWEN_UNUSED GWEN_DBIO *dbio, GWEN_SYNCIO *sio, GWEN_DB_NODE *data, GWEN_UNUSED GWEN_DB_NODE *cfg, uint32_t flags)
struct GWEN_SYNCIO GWEN_SYNCIO
GWEN_DBIO * GWEN_DBIO_OldDb_Factory(GWEN_UNUSED GWEN_PLUGIN *pl)
#define DBG_DEBUG(dbg_logger, format, args...)
#define GWEN_ERROR_GENERIC
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
GWEN_DB_NODE * GWEN_DB_GetGroup(GWEN_DB_NODE *n, uint32_t flags, const char *path)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
void GWEN_SyncIo_free(GWEN_SYNCIO *sio)
void GWEN_SyncIo_AddFlags(GWEN_SYNCIO *sio, uint32_t fl)
void GWEN_DBIO_Plugin_SetFactoryFn(GWEN_PLUGIN *pl, GWEN_DBIO_PLUGIN_FACTORYFN f)
#define DBG_ERROR(dbg_logger, format, args...)
struct GWEN_DBIO GWEN_DBIO
int GWEN_SyncIo_Disconnect(GWEN_SYNCIO *sio)
void GWEN_DBIO_SetExportFn(GWEN_DBIO *dbio, GWEN_DBIO_EXPORTFN f)
GWEN_PLUGIN * dbio_olddb_factory(GWEN_PLUGIN_MANAGER *pm, const char *modName, const char *fileName)
int GWEN_DB_SetCharValue(GWEN_DB_NODE *n, uint32_t flags, const char *path, const char *val)
GWEN_DBIO_CHECKFILE_RESULT
#define DBG_INFO(dbg_logger, format, args...)
GWEN_DB_NODE * GWEN_DB_Group_new(const char *name)
GWENHYWFAR_API GWEN_SYNCIO * GWEN_SyncIo_File_new(const char *path, GWEN_SYNCIO_FILE_CREATIONMODE cm)
GWEN_FAST_BUFFER * GWEN_FastBuffer_new(uint32_t bsize, GWEN_SYNCIO *io)
#define GWEN_DB_FLAGS_DEFAULT
GWEN_PLUGIN * GWEN_DBIO_Plugin_new(GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)