29 #define DISABLE_DEBUGLOG 32 #include "plugindescr_p.h" 34 #include <gwenhywfar/buffer.h> 35 #include <gwenhywfar/debug.h> 36 #include <gwenhywfar/directory.h> 37 #include <gwenhywfar/i18n.h> 88 pd->langDomain=strdup(p);
100 pd->version=strdup(p);
103 pd->author=strdup(p);
106 pd->shortDescr=strdup(p);
109 pd->longDescr=strdup(p);
118 assert(pd->refCount);
119 if (pd->refCount==1) {
126 free(pd->shortDescr);
129 free(pd->langDomain);
145 assert(pd->refCount);
164 np->fileName=strdup(s);
177 np->langDomain=strdup(s);
180 np->shortDescr=strdup(s);
183 np->author=strdup(s);
186 np->version=strdup(s);
189 np->longDescr=strdup(s);
190 np->isActive=pd->isActive;
248 pd->name=s?strdup(s):
NULL;
265 pd->type=s?strdup(s):
NULL;
281 free(pd->shortDescr);
282 pd->shortDescr=s?strdup(s):
NULL;
299 pd->author=s?strdup(s):
NULL;
316 pd->version=s?strdup(s):
NULL;
333 pd->longDescr=s?strdup(s):
NULL;
367 #ifndef NO_DEPRECATED_SYMBOLS 382 if (
fmt && strcasecmp(
fmt, s)==0) {
436 #endif // ifndef NO_DEPRECATED_SYMBOLS 453 pd->fileName=strdup(s);
519 unsigned int pathLen;
522 if (folder && *folder) {
529 const char *fileName;
533 if (fileName && *fileName) {
540 "Adding loaded plugin description %s/%s (%s)",
578 if (!pluginDescrNode)
579 pluginDescrNode=fileNode;
592 else if (strcasecmp(ft, pluginType)!=0) {
GWENHYWFAR_API const char * fmt
#define DBG_ERROR(dbg_logger, format,...)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
void GWEN_PluginDescription_SetAuthor(GWEN_PLUGIN_DESCRIPTION *pd, const char *s)
#define GWEN_LIST2_FUNCTIONS(t, pr)
GWENHYWFAR_API int GWEN_XMLNode_toBuffer(const GWEN_XMLNODE *n, GWEN_BUFFER *buf, uint32_t flags)
#define GWEN_XML_FLAGS_DEFAULT
#define DBG_MEM_INC(o, attach)
#define DBG_DEBUG(dbg_logger, format,...)
#define GWEN_DIR_SEPARATOR_S
uint32_t GWEN_Buffer_GetUsedBytes(const GWEN_BUFFER *bf)
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
#define DBG_NOTICE(dbg_logger, format,...)
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_fromXml(GWEN_XMLNODE *node)
const char * GWEN_PluginDescription_GetPath(const GWEN_PLUGIN_DESCRIPTION *pd)
struct GWEN_PLUGIN_DESCRIPTION GWEN_PLUGIN_DESCRIPTION
const char * GWEN_PluginDescription_GetType(const GWEN_PLUGIN_DESCRIPTION *pd)
GWEN_XMLNODE * GWEN_XMLNode_FindNextTag(const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
const char * GWEN_PluginDescription_GetLongDescr(const GWEN_PLUGIN_DESCRIPTION *pd)
const char * GWEN_PluginDescription_GetFileName(const GWEN_PLUGIN_DESCRIPTION *pd)
#define GWEN_FREE_OBJECT(varname)
void GWEN_PluginDescription_SetType(GWEN_PLUGIN_DESCRIPTION *pd, const char *s)
GWENHYWFAR_API int GWEN_XML_ReadFile(GWEN_XMLNODE *n, const char *filepath, uint32_t flags)
void GWEN_PluginDescription_Attach(GWEN_PLUGIN_DESCRIPTION *pd)
int GWEN_PluginDescription_GetLongDescrByFormat(const GWEN_PLUGIN_DESCRIPTION *pd, const char *s, GWEN_BUFFER *buf)
void GWEN_PluginDescription_List2_freeAll(GWEN_PLUGIN_DESCRIPTION_LIST2 *pdl)
void GWEN_PluginDescription_SetName(GWEN_PLUGIN_DESCRIPTION *pd, const char *s)
static int _getLongDescrByFormat(const GWEN_PLUGIN_DESCRIPTION *pd, const char *s, GWEN_BUFFER *buf)
GWEN_XMLNODE * GWEN_XMLNode_new(GWEN_XMLNODE_TYPE t, const char *data)
GWEN_PLUGIN_DESCRIPTION_LIST2 * GWEN_LoadPluginDescrs(const char *path)
void GWEN_PluginDescription_SetPath(GWEN_PLUGIN_DESCRIPTION *pd, const char *s)
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_List2_ForEach(GWEN_PLUGIN_DESCRIPTION_LIST2 *list, GWEN_PLUGIN_DESCRIPTION_LIST2_FOREACH func, void *user_data)
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
GWEN_STRINGLISTENTRY * GWEN_StringList_FirstEntry(const GWEN_STRINGLIST *sl)
const char * GWEN_StringListEntry_Data(const GWEN_STRINGLISTENTRY *se)
const char * GWEN_PluginDescription_GetVersion(const GWEN_PLUGIN_DESCRIPTION *pd)
#define DBG_WARN(dbg_logger, format,...)
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
GWEN_XMLNODE * GWEN_XMLNode_FindFirstTag(const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
GWEN_PLUGIN_DESCRIPTION_LIST2 * GWEN_PluginDescription_List2_new()
int GWEN_LoadPluginDescrsByType(const char *folder, const char *pluginType, GWEN_PLUGIN_DESCRIPTION_LIST2 *pdl)
#define GWEN_NEW_OBJECT(typ, varname)
static GWEN_XMLNODE * _getLocalOrMainPluginNode(GWEN_XMLNODE *pluginDescrNode)
void GWEN_PluginDescription_List2_PushBack(GWEN_PLUGIN_DESCRIPTION_LIST2 *l, GWEN_PLUGIN_DESCRIPTION *p)
static int _getLocalizedLongDescrByFormat(const GWEN_PLUGIN_DESCRIPTION *pd, const char *s, const char *lang, GWEN_BUFFER *buf)
void GWEN_PluginDescription_SetFileName(GWEN_PLUGIN_DESCRIPTION *pd, const char *s)
const char * GWEN_XMLNode_GetCharValue(const GWEN_XMLNODE *n, const char *name, const char *defValue)
unsigned int GWEN_PluginDescription_List2_GetSize(GWEN_PLUGIN_DESCRIPTION_LIST2 *l)
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_dup(const GWEN_PLUGIN_DESCRIPTION *pd)
void GWEN_PluginDescription_List2_free(GWEN_PLUGIN_DESCRIPTION_LIST2 *l)
void GWEN_PluginDescription_free(GWEN_PLUGIN_DESCRIPTION *pd)
#define GWEN_XML_FLAGS_TOLERANT_ENDTAGS
const char * GWEN_PluginDescription_GetShortDescr(const GWEN_PLUGIN_DESCRIPTION *pd)
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
#define GWEN_ERROR_GENERIC
const char * GWEN_PluginDescription_GetAuthor(const GWEN_PLUGIN_DESCRIPTION *pd)
struct GWEN_PLUGIN_DESCRIPTION_LIST2 GWEN_PLUGIN_DESCRIPTION_LIST2
void GWEN_Buffer_free(GWEN_BUFFER *bf)
void GWEN_XMLNode_free(GWEN_XMLNODE *n)
void GWEN_PluginDescription_SetShortDescr(GWEN_PLUGIN_DESCRIPTION *pd, const char *s)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
void GWEN_PluginDescription_SetIsActive(GWEN_PLUGIN_DESCRIPTION *pd, int i)
void GWEN_PluginDescription_SetVersion(GWEN_PLUGIN_DESCRIPTION *pd, const char *s)
int GWEN_Buffer_Crop(GWEN_BUFFER *bf, uint32_t pos, uint32_t l)
GWEN_XMLNODE * GWEN_PluginDescription_GetXmlNode(const GWEN_PLUGIN_DESCRIPTION *pd)
static GWEN_PLUGIN_DESCRIPTION * _readPluginDescriptionFromFile(const char *folder, const char *fullFileName, const char *pluginType)
unsigned int GWEN_StringList_Count(const GWEN_STRINGLIST *sl)
#define GWEN_XML_FLAGS_HANDLE_OPEN_HTMLTAGS
int GWEN_Buffer_SetPos(GWEN_BUFFER *bf, uint32_t i)
int GWEN_PluginDescription_IsActive(const GWEN_PLUGIN_DESCRIPTION *pd)
GWEN_STRINGLISTENTRY * GWEN_StringListEntry_Next(const GWEN_STRINGLISTENTRY *se)
const char * GWEN_PluginDescription_GetName(const GWEN_PLUGIN_DESCRIPTION *pd)
const char * GWEN_I18N_Translate(const char *txtdom, const char *text)
GWEN_XMLNODE * GWEN_XMLNode_dup(const GWEN_XMLNODE *n)
static GWEN_PLUGIN_DESCRIPTION * _pdList2_freeAll_cb(GWEN_PLUGIN_DESCRIPTION *pd, void *)
#define GWEN_LIST_INIT(t, element)
#define GWEN_XML_FLAGS_HANDLE_HEADERS
GWENHYWFAR_API int GWEN_Directory_GetFileEntries(const char *folder, GWEN_STRINGLIST *sl, const char *mask)
#define GWEN_LIST_FUNCTIONS(t, pr)
#define DBG_INFO(dbg_logger, format,...)
GWEN_STRINGLIST * GWEN_I18N_GetCurrentLocaleList(void)
void GWEN_PluginDescription_SetLongDescr(GWEN_PLUGIN_DESCRIPTION *pd, const char *s)
GWEN_STRINGLIST * GWEN_StringList_new(void)
#define GWEN_LIST_FINI(t, element)
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_new(void)
struct GWEN__XMLNODE GWEN_XMLNODE
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)