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> 39 #include <sys/types.h> 80 pd->langDomain=strdup(p);
92 pd->version=strdup(p);
98 pd->shortDescr=strdup(p);
101 pd->longDescr=strdup(p);
110 assert(pd->refCount);
111 if (pd->refCount==1) {
118 free(pd->shortDescr);
121 free(pd->langDomain);
137 assert(pd->refCount);
156 np->fileName=strdup(s);
169 np->langDomain=strdup(s);
172 np->shortDescr=strdup(s);
175 np->author=strdup(s);
178 np->version=strdup(s);
181 np->longDescr=strdup(s);
182 np->isActive=pd->isActive;
192 __attribute__((unused))
void *user_data)
329 if (
fmt && strcasecmp(
fmt, s)==0) {
348 #ifndef NO_DEPRECATED_SYMBOLS 388 #endif // ifndef NO_DEPRECATED_SYMBOLS 405 pd->fileName=strdup(s);
459 unsigned int pathLen;
472 "Path \"%s\" is not available",
482 if (strcmp(nbuffer,
".") &&
483 strcmp(nbuffer,
"..")) {
486 nlen=strlen(nbuffer);
488 if (strcasecmp(nbuffer+nlen-4,
".xml")==0) {
502 if (!S_ISDIR(st.st_mode)) {
554 else if (strcasecmp(ft, type)!=0) {
575 "Ignoring file \"%s\" (bad/missing type)",
581 "File \"%s\" does not contain a plugin " GWENHYWFAR_API const char * fmt
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
GWENHYWFAR_API void GWEN_Directory_free(GWEN_DIRECTORY *d)
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
#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
int GWEN_PluginDescription__GetLongDescrByFormat(const GWEN_PLUGIN_DESCRIPTION *pd, const char *s, GWEN_BUFFER *buf)
#define DBG_MEM_INC(o, attach)
uint32_t GWEN_Buffer_GetUsedBytes(const GWEN_BUFFER *bf)
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
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)
#define DBG_NOTICE(dbg_logger, format, args...)
const char * GWEN_PluginDescription_GetFileName(const GWEN_PLUGIN_DESCRIPTION *pd)
#define GWEN_FREE_OBJECT(varname)
GWENHYWFAR_API int GWEN_Directory_Close(GWEN_DIRECTORY *d)
GWENHYWFAR_API int GWEN_XML_ReadFile(GWEN_XMLNODE *n, const char *filepath, uint32_t flags)
void GWEN_PluginDescription_Attach(GWEN_PLUGIN_DESCRIPTION *pd)
#define DBG_WARN(dbg_logger, format, args...)
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)
GWEN_XMLNODE * GWEN_XMLNode_new(GWEN_XMLNODE_TYPE t, const char *data)
GWENHYWFAR_API GWEN_DIRECTORY * GWEN_Directory_new(void)
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)
struct GWEN_DIRECTORY GWEN_DIRECTORY
const char * GWEN_PluginDescription_GetVersion(const GWEN_PLUGIN_DESCRIPTION *pd)
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()
#define GWEN_NEW_OBJECT(typ, varname)
void GWEN_PluginDescription_List2_PushBack(GWEN_PLUGIN_DESCRIPTION_LIST2 *l, GWEN_PLUGIN_DESCRIPTION *p)
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)
#define DBG_DEBUG(dbg_logger, format, args...)
unsigned int GWEN_PluginDescription_List2_GetSize(GWEN_PLUGIN_DESCRIPTION_LIST2 *l)
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_dup(const GWEN_PLUGIN_DESCRIPTION *pd)
int GWEN_LoadPluginDescrsByType(const char *path, const char *type, GWEN_PLUGIN_DESCRIPTION_LIST2 *pdl)
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_List2_freeAll_cb(GWEN_PLUGIN_DESCRIPTION *pd, __attribute__((unused)) void *user_data)
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)
GWEN_PLUGIN_DESCRIPTION * GWEN_PluginDescription_new(GWEN_XMLNODE *node)
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
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)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
void GWEN_PluginDescription_SetIsActive(GWEN_PLUGIN_DESCRIPTION *pd, int i)
int GWEN_Buffer_Crop(GWEN_BUFFER *bf, uint32_t pos, uint32_t l)
GWEN_XMLNODE * GWEN_PluginDescription_GetXmlNode(const GWEN_PLUGIN_DESCRIPTION *pd)
#define DBG_ERROR(dbg_logger, format, args...)
#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)
#define GWEN_DIR_SEPARATOR
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)
#define DBG_INFO(dbg_logger, format, args...)
int GWEN_PluginDescription__GetLocalizedLongDescrByFormat(const GWEN_PLUGIN_DESCRIPTION *pd, const char *s, const char *lang, GWEN_BUFFER *buf)
#define GWEN_LIST_INIT(t, element)
#define GWEN_XML_FLAGS_HANDLE_HEADERS
#define GWEN_LIST_FUNCTIONS(t, pr)
GWENHYWFAR_API int GWEN_Directory_Read(GWEN_DIRECTORY *d, char *buffer, unsigned int len)
GWEN_STRINGLIST * GWEN_I18N_GetCurrentLocaleList(void)
#define GWEN_LIST_FINI(t, element)
struct GWEN__XMLNODE GWEN_XMLNODE
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
GWENHYWFAR_API int GWEN_Directory_Open(GWEN_DIRECTORY *d, const char *n)