Add visibility attributes to library functions

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit 5f11552ae3)
r14.1.x
Michele Calgaro 2 months ago
parent 56e00d834e
commit 618646adfa
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -69,8 +69,13 @@
#endif
#endif
#define KVILIB_API
#define KVIRC_API
#ifdef __TDE_HAVE_GCC_VISIBILITY
#define KVILIB_API __attribute__ ((visibility("default")))
#define KVIRC_API __attribute__ ((visibility("default")))
#else
#define KVILIB_API
#define KVIRC_API
#endif
#ifndef VERSION
#define VERSION "?.?.?"

@ -37,7 +37,7 @@
#ifdef COMPILE_ix86_ASM
void *kvi_memmove(void * dst_ptr,const void *src_ptr,int len)
KVILIB_API void *kvi_memmove(void * dst_ptr,const void *src_ptr,int len)
{
__range_valid(dst_ptr);
__range_valid(src_ptr);
@ -98,7 +98,7 @@
return dst_ptr; //asm(" movl 8(%ebp),%eax"); <-- gcc will put that (AFTER THE OPTIMISATION PASS!)
}
void *kvi_memmoveodd(void * dst_ptr,const void *src_ptr,int len)
KVILIB_API void *kvi_memmoveodd(void * dst_ptr,const void *src_ptr,int len)
{
__range_valid(dst_ptr);
__range_valid(src_ptr);
@ -169,7 +169,7 @@
//
//
void *kvi_memmove(void *dst_ptr,const void *src_ptr,int len)
KVILIB_API void *kvi_memmove(void *dst_ptr,const void *src_ptr,int len)
{
__range_valid(dst_ptr);
__range_valid(src_ptr);
@ -188,7 +188,7 @@
return dst_ptr;
}
void *kvi_memmoveodd(void *dst_ptr,const void *src_ptr,int len)
KVILIB_API void *kvi_memmoveodd(void *dst_ptr,const void *src_ptr,int len)
{
__range_valid(dst_ptr);
__range_valid(src_ptr);
@ -216,7 +216,7 @@
return dst_ptr;
}
void kvi_fastmove(void *dst_ptr,const void *src_ptr,int len)
KVILIB_API void kvi_fastmove(void *dst_ptr,const void *src_ptr,int len)
{
__range_valid(dst_ptr);
__range_valid(src_ptr);
@ -226,7 +226,7 @@
while(len--)*dst++ = *src++;
}
void kvi_fastmoveodd(void *dst_ptr,const void *src_ptr,int len)
KVILIB_API void kvi_fastmoveodd(void *dst_ptr,const void *src_ptr,int len)
{
__range_valid(dst_ptr);
__range_valid(src_ptr);
@ -242,7 +242,7 @@
#endif // !COMPILE_ix86_ASM
void kvi_memset(void *dst_ptr,char c,int len)
KVILIB_API void kvi_memset(void *dst_ptr,char c,int len)
{
__range_valid(dst_ptr);
__range_valid(len >= 0);

@ -59,7 +59,7 @@
// WE WANT repnz; movsq\n"!!!
inline void kvi_fastmove(void * dst_ptr,const void *src_ptr,int len)
KVILIB_API inline void kvi_fastmove(void * dst_ptr,const void *src_ptr,int len)
{
__asm__ __volatile__(
" cld\n"
@ -77,7 +77,7 @@
);
}
inline void kvi_fastmoveodd(void * dst_ptr,const void *src_ptr,int len)
KVILIB_API inline void kvi_fastmoveodd(void * dst_ptr,const void *src_ptr,int len)
{
__asm__ __volatile__(
" cld\n"

@ -51,7 +51,7 @@ namespace KviTQString
// The global empty (and null) string
const TQString empty;
bool equalCSN(const TQString &sz1,const TQString &sz2,unsigned int len)
KVILIB_API bool equalCSN(const TQString &sz1,const TQString &sz2,unsigned int len)
{
if(len == 0)return true; // assume equal
const TQChar * c1 = sz1.unicode();
@ -71,7 +71,7 @@ namespace KviTQString
return (c1 == c1e);
}
bool equalCIN(const TQString &sz1,const TQString &sz2,unsigned int len)
KVILIB_API bool equalCIN(const TQString &sz1,const TQString &sz2,unsigned int len)
{
if(len == 0)return true; // assume equal
const TQChar * c1 = sz1.unicode();
@ -91,7 +91,7 @@ namespace KviTQString
return (c1 == c1e);
}
bool equalCSN(const TQString &sz1,const char * sz2,unsigned int len)
KVILIB_API bool equalCSN(const TQString &sz1,const char * sz2,unsigned int len)
{
if(len == 0)return true; // assume equal
const TQChar * c1 = sz1.unicode();
@ -110,7 +110,7 @@ namespace KviTQString
return (c1 == c1e);
}
bool equalCIN(const TQString &sz1,const char * sz2,unsigned int len)
KVILIB_API bool equalCIN(const TQString &sz1,const char * sz2,unsigned int len)
{
if(len == 0)return true; // assume equal
const TQChar * c1 = sz1.unicode();
@ -130,7 +130,7 @@ namespace KviTQString
}
// sz2 is assumed to be null terminated, sz1 is not!
bool equalCIN(const TQString &sz1,const TQChar *sz2,unsigned int len)
KVILIB_API bool equalCIN(const TQString &sz1,const TQChar *sz2,unsigned int len)
{
if(len == 0)return true; // assume equal
const TQChar * c1 = sz1.unicode();
@ -149,7 +149,7 @@ namespace KviTQString
return (c1 == c1e);
}
TQString makeSizeReadable(size_t bytes)
KVILIB_API TQString makeSizeReadable(size_t bytes)
{
double size = bytes;
if(size<900)
@ -173,7 +173,7 @@ namespace KviTQString
return TQString(__tr2qs("%1 TB")).arg(size,0,'f',3);
}
bool equalCS(const TQString &sz1,const TQString &sz2)
KVILIB_API bool equalCS(const TQString &sz1,const TQString &sz2)
{
if(sz1.length() != sz2.length())return false;
@ -192,7 +192,7 @@ namespace KviTQString
return (c1 == c1e);
}
bool equalCI(const TQString &sz1,const TQString &sz2)
KVILIB_API bool equalCI(const TQString &sz1,const TQString &sz2)
{
if(sz1.length() != sz2.length())return false;
@ -212,7 +212,7 @@ namespace KviTQString
}
// sz2 is assumed to be null terminated, sz1 is not!
bool equalCI(const TQString &sz1,const TQChar *sz2)
KVILIB_API bool equalCI(const TQString &sz1,const TQChar *sz2)
{
const TQChar * c1 = sz1.unicode();
const TQChar * c1e = c1 + sz1.length();
@ -229,7 +229,7 @@ namespace KviTQString
return (c1 == c1e) && (!sz2->unicode());
}
bool equalCS(const TQString &sz1,const char * sz2)
KVILIB_API bool equalCS(const TQString &sz1,const char * sz2)
{
const TQChar * c1 = sz1.unicode();
const TQChar * c1e = c1 + sz1.length();
@ -245,7 +245,7 @@ namespace KviTQString
return ((c1 == c1e) && (*sz2 == '\0'));
}
bool equalCI(const TQString &sz1,const char * sz2)
KVILIB_API bool equalCI(const TQString &sz1,const char * sz2)
{
const TQChar * c1 = sz1.unicode();
const TQChar * c1e = c1 + sz1.length();
@ -261,7 +261,7 @@ namespace KviTQString
return ((c1 == c1e) && (*sz2 == '\0'));
}
int cmpCS(const TQString &sz1,const TQString &sz2)
KVILIB_API int cmpCS(const TQString &sz1,const TQString &sz2)
{
const TQChar * c1 = sz1.unicode();
const TQChar * c2 = sz2.unicode();
@ -295,7 +295,7 @@ namespace KviTQString
return 0; // never here
}
int cmpCI(const TQString &sz1,const TQString &sz2)
KVILIB_API int cmpCI(const TQString &sz1,const TQString &sz2)
{
const TQChar * c1 = sz1.unicode();
const TQChar * c2 = sz2.unicode();
@ -328,7 +328,7 @@ namespace KviTQString
return 0; // never here
}
int cmpCIN(const TQString &sz1,const TQString &sz2,unsigned int len)
KVILIB_API int cmpCIN(const TQString &sz1,const TQString &sz2,unsigned int len)
{
if(len == 0)return 0; // assume equal
unsigned int l1 = MY_MIN(len,sz1.length());
@ -356,12 +356,12 @@ namespace KviTQString
return diff;
}
void ensureLastCharIs(TQString &szString,const TQChar &c)
KVILIB_API void ensureLastCharIs(TQString &szString,const TQChar &c)
{
if(!lastCharIs(szString,c))szString.append(c);
}
TQString getToken(TQString &szString,const TQChar &sep)
KVILIB_API TQString getToken(TQString &szString,const TQChar &sep)
{
unsigned int i=0;
while(i < szString.length())
@ -387,7 +387,7 @@ namespace KviTQString
return ret;
}
void stripRightWhiteSpace(TQString &s)
KVILIB_API void stripRightWhiteSpace(TQString &s)
{
unsigned int iRemove = 0;
while(iRemove < s.length())
@ -398,7 +398,7 @@ namespace KviTQString
if(iRemove > 0)s.remove(s.length() - iRemove,iRemove);
}
void stripRight(TQString &s,const TQChar &c)
KVILIB_API void stripRight(TQString &s,const TQChar &c)
{
unsigned int iRemove = 0;
while(iRemove < s.length())
@ -409,7 +409,7 @@ namespace KviTQString
if(iRemove > 0)s.remove(s.length() - iRemove,iRemove);
}
void stripLeft(TQString &s,const TQChar &c)
KVILIB_API void stripLeft(TQString &s,const TQChar &c)
{
unsigned int iRemove = 0;
while(iRemove < s.length())
@ -422,53 +422,53 @@ namespace KviTQString
if(iRemove > 0)s.remove(0,iRemove);
}
void detach(TQString &sz)
KVILIB_API void detach(TQString &sz)
{
sz.setLength(sz.length());
}
const TQChar * nullTerminatedArray(const TQString &sz)
KVILIB_API const TQChar * nullTerminatedArray(const TQString &sz)
{
//sz.setLength(sz.length()); // detach!
return (const TQChar *)sz.ucs2(); // MAY BE NULL!
}
void appendNumber(TQString &s,double dReal)
KVILIB_API void appendNumber(TQString &s,double dReal)
{
char buffer[512];
::sprintf(buffer,"%f",dReal);
s.append(buffer);
}
void appendNumber(TQString &s,int iInteger)
KVILIB_API void appendNumber(TQString &s,int iInteger)
{
char buffer[64];
::sprintf(buffer,"%d",iInteger);
s.append(buffer);
}
void appendNumber(TQString &s,kvi_i64_t iInteger)
KVILIB_API void appendNumber(TQString &s,kvi_i64_t iInteger)
{
char buffer[64];
::sprintf(buffer,"%ld",iInteger);
s.append(buffer);
}
void appendNumber(TQString &s,kvi_u64_t uInteger)
KVILIB_API void appendNumber(TQString &s,kvi_u64_t uInteger)
{
char buffer[64];
::sprintf(buffer,"%lu",uInteger);
s.append(buffer);
}
void appendNumber(TQString &s,unsigned int uInteger)
KVILIB_API void appendNumber(TQString &s,unsigned int uInteger)
{
char buffer[64];
::sprintf(buffer,"%u",uInteger);
s.append(buffer);
}
void vsprintf(TQString &s,const TQString &szFmt,kvi_va_list list)
KVILIB_API void vsprintf(TQString &s,const TQString &szFmt,kvi_va_list list)
{
#define MEMINCREMENT 32
@ -690,7 +690,7 @@ namespace KviTQString
}
TQString & sprintf(TQString &s,const TQString &szFmt,...)
KVILIB_API TQString & sprintf(TQString &s,const TQString &szFmt,...)
{
kvi_va_list list;
kvi_va_start_by_reference(list,szFmt);
@ -700,7 +700,7 @@ namespace KviTQString
return s;
}
void appendFormatted(TQString &s,const TQString &szFmt,...)
KVILIB_API void appendFormatted(TQString &s,const TQString &szFmt,...)
{
TQString tmp;
kvi_va_list list;
@ -711,7 +711,7 @@ namespace KviTQString
s.append(tmp);
}
bool matchWildExpressionsCI(const TQString &szM1,const TQString &szM2)
KVILIB_API bool matchWildExpressionsCI(const TQString &szM1,const TQString &szM2)
{
//Matches two regular expressions containging wildcards (* and ?)
@ -804,7 +804,7 @@ namespace KviTQString
return (!(m2->unicode())); //m1 surely finished , so for the match , m2 must be finished too
}
bool matchStringCI(const TQString &szExp,const TQString &szStr,bool bIsRegExp,bool bExact)
KVILIB_API bool matchStringCI(const TQString &szExp,const TQString &szStr,bool bIsRegExp,bool bExact)
{
TQString szWildcard;
TQChar* ptr=(TQChar*)szExp.ucs2();
@ -826,7 +826,7 @@ namespace KviTQString
return re.search(szStr) != -1;
}
bool matchStringCS(const TQString &szExp,const TQString &szStr,bool bIsRegExp,bool bExact)
KVILIB_API bool matchStringCS(const TQString &szExp,const TQString &szStr,bool bIsRegExp,bool bExact)
{
TQString szWildcard;
TQChar* ptr=(TQChar*)szExp.ucs2();
@ -848,21 +848,21 @@ namespace KviTQString
return re.search(szStr) != -1;
}
void cutFromFirst(TQString &s,const TQChar &c,bool bIncluded)
KVILIB_API void cutFromFirst(TQString &s,const TQChar &c,bool bIncluded)
{
int idx = s.find(c);
if(idx == -1)return;
s.truncate(bIncluded ? idx : idx + 1);
}
void cutFromLast(TQString &s,const TQChar &c,bool bIncluded)
KVILIB_API void cutFromLast(TQString &s,const TQChar &c,bool bIncluded)
{
int idx = s.findRev(c);
if(idx == -1)return;
s.truncate(bIncluded ? idx : idx + 1);
}
void cutToFirst(TQString &s,const TQChar &c,bool bIncluded,bool bClearIfNotFound)
KVILIB_API void cutToFirst(TQString &s,const TQChar &c,bool bIncluded,bool bClearIfNotFound)
{
int idx = s.find(c);
if(idx == -1)
@ -873,7 +873,7 @@ namespace KviTQString
s.remove(0,bIncluded ? idx + 1 : idx);
}
void cutToLast(TQString &s,const TQChar &c,bool bIncluded,bool bClearIfNotFound)
KVILIB_API void cutToLast(TQString &s,const TQChar &c,bool bIncluded,bool bClearIfNotFound)
{
int idx = s.findRev(c);
if(idx == -1)
@ -884,21 +884,21 @@ namespace KviTQString
s.remove(0,bIncluded ? idx + 1 : idx);
}
void cutFromFirst(TQString &s,const TQString &c,bool bIncluded)
KVILIB_API void cutFromFirst(TQString &s,const TQString &c,bool bIncluded)
{
int idx = s.find(c);
if(idx == -1)return;
s.truncate(bIncluded ? idx : idx + c.length());
}
void cutFromLast(TQString &s,const TQString &c,bool bIncluded)
KVILIB_API void cutFromLast(TQString &s,const TQString &c,bool bIncluded)
{
int idx = s.findRev(c);
if(idx == -1)return;
s.truncate(bIncluded ? idx : idx + c.length());
}
void cutToFirst(TQString &s,const TQString &c,bool bIncluded,bool bClearIfNotFound)
KVILIB_API void cutToFirst(TQString &s,const TQString &c,bool bIncluded,bool bClearIfNotFound)
{
int idx = s.find(c);
if(idx == -1)
@ -909,7 +909,7 @@ namespace KviTQString
s.remove(0,bIncluded ? idx + c.length() : idx);
}
void cutToLast(TQString &s,const TQString &c,bool bIncluded,bool bClearIfNotFound)
KVILIB_API void cutToLast(TQString &s,const TQString &c,bool bIncluded,bool bClearIfNotFound)
{
int idx = s.findRev(c);
if(idx == -1)
@ -920,7 +920,7 @@ namespace KviTQString
s.remove(0,bIncluded ? idx + c.length() : idx);
}
TQString upperISO88591(const TQString &szSrc)
KVILIB_API TQString upperISO88591(const TQString &szSrc)
{
const TQChar * c = nullTerminatedArray(szSrc);
if(!c)
@ -946,7 +946,7 @@ namespace KviTQString
return ret;
}
TQString lowerISO88591(const TQString &szSrc)
KVILIB_API TQString lowerISO88591(const TQString &szSrc)
{
const TQChar * c = nullTerminatedArray(szSrc);
if(!c)
@ -973,7 +973,7 @@ namespace KviTQString
return ret;
}
void transliterate(TQString &s,const TQString &szToFind,const TQString &szReplacement)
KVILIB_API void transliterate(TQString &s,const TQString &szToFind,const TQString &szReplacement)
{
int i=0;
int il = MY_MIN(szToFind.length(),szReplacement.length());
@ -992,7 +992,7 @@ namespace KviTQString
static char hexdigits[16] = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' };
void bufferToHex(TQString &szRetBuffer,const unsigned char * buffer,unsigned int len)
KVILIB_API void bufferToHex(TQString &szRetBuffer,const unsigned char * buffer,unsigned int len)
{
szRetBuffer.setLength(len * 2);
unsigned int i=0;

@ -51,7 +51,7 @@ public:
void removeProperty(const char * name){ m_pPropertyDict->remove(name); };
};
typedef KVILIB_API KviPointerList<KviRegisteredChannel> KviRegisteredChannelList;
typedef KviPointerList<KviRegisteredChannel> KviRegisteredChannelList;
class KVILIB_API KviRegisteredChannelDataBase
{

@ -1,3 +1,6 @@
#ifndef _KVI_TAL_POPUPMENU_H_
#define _KVI_TAL_POPUPMENU_H_
//=============================================================================
//
// File : kvi_tal_popupmenu.cpp
@ -27,3 +30,4 @@
#include "kvi_tal_popupmenu_qt3.moc"
#endif // _KVI_TAL_POPUPMENU_H_

@ -64,6 +64,8 @@
#endif //!COMPILE_ON_WINDOWS
};
KVIRC_API bool kvi_sendIpcMessage(const char * message);
#endif //!COMPILE_NO_IPC

@ -32,7 +32,7 @@
#include "kvi_kvs_variant.h"
#include "kvi_heapobject.h"
typedef KVIRC_API KviPointerHashTableIterator<TQString,KviKvsVariant> KviKvsHashIterator;
typedef KviPointerHashTableIterator<TQString,KviKvsVariant> KviKvsHashIterator;
// This class must not have virtual funcitons nor destructor
// Otherwise it will happily crash on windows when it is

@ -42,14 +42,16 @@
#ifdef COMPILE_ON_WINDOWS
#define KVIMODULEEXPORT extern "C" __declspec(dllexport)
#define KVIMODULEEXPORTDATA KVIMODULEEXPORT
#define KVIMODULEEXPORTFUNC KVIMODULEEXPORT
#define KVIMODULEEXPORT __declspec(dllexport)
#else
#define KVIMODULEEXPORT extern "C"
#define KVIMODULEEXPORTDATA
#define KVIMODULEEXPORTFUNC KVIMODULEEXPORT
#ifdef __TDE_HAVE_GCC_VISIBILITY
#define KVIMODULEEXPORT KVIRC_API
#else
#define KVIMODULEEXPORT
#endif
#endif
#define KVIMODULEEXPORTDATA KVIMODULEEXPORT
#define KVIMODULEEXPORTFUNC KVIMODULEEXPORT
class KviModule;
@ -112,18 +114,21 @@ typedef struct _KviModuleInfo
#define KVIRC_MODULE(_szModuleName,_szVersion,_szCopyright,_szDescription,_init_routine,_can_unload,_ctrl_routine,_cleanup_routine) \
\
KVIMODULEEXPORTDATA KviModuleInfo KVIrc_module_info= \
extern "C" \
{ \
KVI_VERSION, \
_szModuleName, \
_szVersion, \
_szCopyright, \
_szDescription, \
_init_routine, \
_can_unload, \
_ctrl_routine, \
_cleanup_routine \
};
KVIMODULEEXPORTDATA KviModuleInfo KVIrc_module_info= \
{ \
KVI_VERSION, \
_szModuleName, \
_szVersion, \
_szCopyright, \
_szDescription, \
_init_routine, \
_can_unload, \
_ctrl_routine, \
_cleanup_routine \
}; \
}
// old type parsing procedures

@ -1132,7 +1132,7 @@ static dccParseProcEntry dccParseProcTable[KVI_NUM_KNOWN_DCC_TYPES]=
// We want C linkage on this one: we want to be able to dlsym() it with a simple name
// FIXME: Is this portable enough ? Or is better to have a table entry ?
KVIMODULEEXPORTFUNC void dccModuleCtcpDccParseRoutine(KviDccRequest *dcc)
extern "C" KVIMODULEEXPORTFUNC void dccModuleCtcpDccParseRoutine(KviDccRequest *dcc)
{
dcc->szType.toUpper();

@ -83,12 +83,12 @@ KVIRC_MODULE(
// We want C linkage on this one: we want to be able to dlsym() it with a simple name
// FIXME: Is this portable enough ? Or is better to have a table entry ?
KVIMODULEEXPORTFUNC KviScriptEditor * editor_module_createScriptEditor(TQWidget * par)
extern "C" KVIMODULEEXPORTFUNC KviScriptEditor * editor_module_createScriptEditor(TQWidget * par)
{
return new KviScriptEditorImplementation(par);
}
KVIMODULEEXPORTFUNC void editor_module_destroyScriptEditor(KviScriptEditor * e)
extern "C" KVIMODULEEXPORTFUNC void editor_module_destroyScriptEditor(KviScriptEditor * e)
{
delete ((KviScriptEditorImplementation *)e);
}

@ -355,7 +355,7 @@ static bool mircimport_module_can_unload(KviModule * m)
}
/*
KVIMODULEEXPORTFUNC KviIrcServerImport * mircimport_module_createIrcServerImport(const char *filterName)
extern "C" KVIMODULEEXPORTFUNC KviIrcServerImport * mircimport_module_createIrcServerImport(const char *filterName)
{
if(kvi_strEqualCI(filterName,__tr("Import from servers.ini")))
{

@ -53,7 +53,7 @@ TQString szMircIni;
// this is called by KviApp when no local kvirc directory has been found
// we have nothing to rely on yet... (settings have not been loaded yet)
KVIMODULEEXPORTFUNC bool setup_begin()
extern "C" KVIMODULEEXPORTFUNC bool setup_begin()
{
// FIXME: try to guess the user's .kvirc directory
// and the preferred nickname from a previous installation
@ -69,7 +69,7 @@ KVIMODULEEXPORTFUNC bool setup_begin()
// all the subsystems are up and running (we even have a nice console
// to write on if needed).
// all the options are loaded.
KVIMODULEEXPORTFUNC void setup_finish()
extern "C" KVIMODULEEXPORTFUNC void setup_finish()
{
if(bNeedToApplyDefaults)
{

Loading…
Cancel
Save