aboutsummaryrefslogtreecommitdiff
path: root/x11-toolkits
diff options
context:
space:
mode:
authorPietro Cerutti <gahr@FreeBSD.org>2013-09-18 16:01:48 +0000
committerPietro Cerutti <gahr@FreeBSD.org>2013-09-18 16:01:48 +0000
commitd6ea979eb3316b002357427a97ced6a3d50d350a (patch)
tree88479872a85f0aebb3b1999c239ac2369e0ddb30 /x11-toolkits
parentedd57cebeb4cbec05f4d088a60c66dfd7373a21a (diff)
downloadports-d6ea979eb3316b002357427a97ced6a3d50d350a.tar.gz
ports-d6ea979eb3316b002357427a97ced6a3d50d350a.zip
- Update to 1.7.42
Changes: * Added class FXVariant, and supporting classes FXVariantMap and FXVariantArray. The FXVariant class can store basic types like bool, int, or float, but also arrays of variants, or maps of variants. Thus, FXVariant can be used to store an arbitrarily complex tree-like data structure. * Problems in Windows version of fxcpuid.cpp fixed. * Fix cased from (__m128) to _mm_castsi128_ps() intrinsic for portability. * Fix compare operation in FXSize.h. * Added fxstrlcpy() and fxstrlcat() for safe string copy and string concatenation. * Added __noreturn macro for flagging non-returning functions like fxerror(). This may help compilers generate better code for places where these functions are called. * Removed fxsleep(), obsoleted by FXThread::sleep() and FXThread::wkaeat(). * Allow out-of-source builds of FOX on configure-based systems. * Force end-of-string in value returned by gethostname(). * Fix introduced bugs in FXHash and FXDict. * Added swapElms() to FXElement.h. Also added templated swap(). * Added internal function memswap(). * Don't include intrinsics header files unless target architecture is x86 or x86-64. * Updated build on Fedora 18 for Raspberry Pi. - Add two local files with patches to mute compiler warnings and fix potential stack buffer overflow bugs (already reported upstream)
Notes
Notes: svn path=/head/; revision=327565
Diffstat (limited to 'x11-toolkits')
-rw-r--r--x11-toolkits/fox17/Makefile2
-rw-r--r--x11-toolkits/fox17/distinfo4
-rw-r--r--x11-toolkits/fox17/files/patch-bugs256
-rw-r--r--x11-toolkits/fox17/files/patch-warnings181
-rw-r--r--x11-toolkits/fox17/pkg-plist7
5 files changed, 445 insertions, 5 deletions
diff --git a/x11-toolkits/fox17/Makefile b/x11-toolkits/fox17/Makefile
index 51b19e57b1eb..09782372bc0f 100644
--- a/x11-toolkits/fox17/Makefile
+++ b/x11-toolkits/fox17/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= fox
-PORTVERSION= 1.7.41
+PORTVERSION= 1.7.42
PORTREVISION= 1
CATEGORIES= x11-toolkits
MASTER_SITES= http://ftp.fox-toolkit.org/pub/ \
diff --git a/x11-toolkits/fox17/distinfo b/x11-toolkits/fox17/distinfo
index dc77697e95d0..352ae3e6d04a 100644
--- a/x11-toolkits/fox17/distinfo
+++ b/x11-toolkits/fox17/distinfo
@@ -1,2 +1,2 @@
-SHA256 (fox-1.7.41.tar.gz) = 1c23d9d7f2f9f4b2a51db6acdd447315ae8352563453edf223f4a51b6a0e52f4
-SIZE (fox-1.7.41.tar.gz) = 5053794
+SHA256 (fox-1.7.42.tar.gz) = 5e7a69c64ecfc704c130ea890385256c568fadbb472f91d8256f576b6d87ecf4
+SIZE (fox-1.7.42.tar.gz) = 5062065
diff --git a/x11-toolkits/fox17/files/patch-bugs b/x11-toolkits/fox17/files/patch-bugs
new file mode 100644
index 000000000000..e8a0002ce7e8
--- /dev/null
+++ b/x11-toolkits/fox17/files/patch-bugs
@@ -0,0 +1,256 @@
+--- lib/fxxpmio.cpp.orig 2013-09-18 16:02:08.000000000 +0200
++++ lib/fxxpmio.cpp 2013-09-18 16:07:33.000000000 +0200
+@@ -128,13 +128,14 @@
+ FXchar lookuptable[1024][8],name[100],word[100],flag,best;
+ FXColor colortable[16384],*pix,color;
+ const FXchar *src,*line;
+- FXint i,j,ncolors,cpp,c;
++ FXint i,j,ncolors,cpp,c,nchar;
+
+ // Null out
+ data=NULL;
+ width=0;
+ height=0;
+ color=0;
++ nchar=0;
+
+ // NULL pointer passed in
+ if(!pixels) return false;
+@@ -172,7 +173,7 @@
+ flag=word[0];
+ name[0]=0;
+ while(nextword(src,word) && !iskey(word)){
+- strncat(name,word,sizeof(name));
++ nchar += snprintf(name+nchar,sizeof(name)-nchar,"%s",word);
+ }
+ if(flag<best){ // c < g < m < s
+ color=colorFromName(name);
+@@ -227,13 +228,14 @@
+ FXchar lookuptable[1024][8],line[100],name[100],word[100],flag,best,ch;
+ FXColor colortable[16384],*pix,color;
+ const FXchar *src;
+- FXint i,j,ncolors,cpp,c;
++ FXint i,j,ncolors,cpp,c,nchar;
+
+ // Null out
+ data=NULL;
+ width=0;
+ height=0;
+ color=0;
++ nchar=0;
+
+ // Read header line
+ readline(store,name,sizeof(name));
+@@ -269,7 +271,7 @@
+ flag=word[0];
+ name[0]=0;
+ while(nextword(src,word) && !iskey(word)){
+- strncat(name,word,sizeof(name));
++ nchar += snprintf(name+nchar,sizeof(name)-nchar,"%s",word);
+ }
+ if(flag<best){ // c < g < m < s
+ color=colorFromName(name);
+--- lib/FXFont.cpp.orig 2013-09-18 15:42:34.000000000 +0200
++++ lib/FXFont.cpp 2013-09-18 15:47:14.000000000 +0200
+@@ -2180,6 +2180,7 @@
+ FXString family;
+ FXString foundry;
+ double points;
++ size_t famlen;
+
+ fonts=NULL;
+ numfonts=0;
+@@ -2243,11 +2244,10 @@
+ // Get full face name
+ fullname[0]=0;
+ if(FcPatternGetString(p,FC_FAMILY,0,&fam)==FcResultMatch){
++ famlen = strlen((const char *)fam);
+ strncpy(fullname,(const char*)fam,sizeof(fullname));
+ if(FcPatternGetString(p,FC_FOUNDRY,0,&fdy)==FcResultMatch){
+- strncat(fullname," [",sizeof(fullname));
+- strncat(fullname,(const char*)fdy,sizeof(fullname));
+- strncat(fullname,"]",sizeof(fullname));
++ snprintf(fullname+famlen, sizeof(fullname)-famlen, " [%s]", (const char *)fdy);
+ }
+ }
+
+--- lib/FXApp.cpp.orig 2013-09-18 15:31:42.000000000 +0200
++++ lib/FXApp.cpp 2013-09-18 15:33:59.000000000 +0200
+@@ -1495,8 +1495,7 @@
+ if(XSupportsLocale()){
+ FXchar mods[100]="";
+ if(inputmethod[0]){
+- strncpy(mods,"@im=",sizeof(mods));
+- strncat(mods,inputmethod,sizeof(mods));
++ snprintf(mods, sizeof(mods), "@im=%s", inputmethod);
+ }
+ if(!XSetLocaleModifiers(mods)){
+ if(!XSetLocaleModifiers("")){
+--- tests/minheritance.cpp.orig 2013-09-18 16:26:29.000000000 +0200
++++ tests/minheritance.cpp 2013-09-18 16:27:36.000000000 +0200
+@@ -161,7 +161,7 @@
+ /*******************************************************************************/
+
+ Base1::Base1(){
+- FXTRACE((100,"Base1::Base1 at %08p\n",this));
++ FXTRACE((100,"Base1::Base1 at %p\n",this));
+ a=1;
+ }
+
+@@ -180,12 +180,12 @@
+ FXIMPLEMENT(Base2,FXObject,Base2Map,ARRAYNUMBER(Base2Map))
+
+ Base2::Base2(){
+- FXTRACE((100,"Base2::Base2 at %08p\n",this));
++ FXTRACE((100,"Base2::Base2 at %p\n",this));
+ b=2;
+ }
+
+ long Base2::onCmdBase2(FXObject*,FXSelector,void*){
+- FXTRACE((100,"Base2::onCmdBase2 at %08p b=%d\n",this,b));
++ FXTRACE((100,"Base2::onCmdBase2 at %p b=%d\n",this,b));
+ return 1;
+ }
+
+@@ -198,7 +198,7 @@
+
+
+ Base3::Base3(){
+- FXTRACE((100,"Base3::Base3 at %08p\n",this));
++ FXTRACE((100,"Base3::Base3 at %p\n",this));
+ c=3;
+ }
+
+@@ -219,12 +219,12 @@
+ FXIMPLEMENT(TwoBaseOne,Base2,TwoBaseOneMap,ARRAYNUMBER(TwoBaseOneMap))
+
+ TwoBaseOne::TwoBaseOne(){
+- FXTRACE((100,"TwoBaseOne::TwoBaseOne at %08p\n",this));
++ FXTRACE((100,"TwoBaseOne::TwoBaseOne at %p\n",this));
+ d=4;
+ }
+
+ long TwoBaseOne::onCmdTwoBaseOne(FXObject*,FXSelector,void*){
+- FXTRACE((100,"TwoBaseOne::onCmdTwoBaseOne at %08p d=%d\n",this,d));
++ FXTRACE((100,"TwoBaseOne::onCmdTwoBaseOne at %p d=%d\n",this,d));
+ return 1;
+ }
+
+@@ -242,12 +242,12 @@
+ FXIMPLEMENT(TwoBaseTwo,Base2,TwoBaseTwoMap,ARRAYNUMBER(TwoBaseTwoMap))
+
+ TwoBaseTwo::TwoBaseTwo(){
+- FXTRACE((100,"TwoBaseTwo::TwoBaseTwo at %08p\n",this));
++ FXTRACE((100,"TwoBaseTwo::TwoBaseTwo at %p\n",this));
+ e=4;
+ }
+
+ long TwoBaseTwo::onCmdTwoBaseTwo(FXObject*,FXSelector,void*){
+- FXTRACE((100,"TwoBaseTwo::onCmdTwoBaseTwo at %08p e=%d\n",this,e));
++ FXTRACE((100,"TwoBaseTwo::onCmdTwoBaseTwo at %p e=%d\n",this,e));
+ return 1;
+ }
+
+@@ -268,12 +268,12 @@
+ FXIMPLEMENT(ThreeBase,TwoBaseOne,ThreeBaseMap,ARRAYNUMBER(ThreeBaseMap))
+
+ ThreeBase::ThreeBase(){
+- FXTRACE((100,"ThreeBase::ThreeBase at %08p\n",this));
++ FXTRACE((100,"ThreeBase::ThreeBase at %p\n",this));
+ f=5;
+ }
+
+ long ThreeBase::onCmdThreeBase(FXObject*,FXSelector,void*){
+- FXTRACE((100,"ThreeBase::onCmdThreeBase at %08p f=%d\n",this,f));
++ FXTRACE((100,"ThreeBase::onCmdThreeBase at %p f=%d\n",this,f));
+ return 1;
+ }
+
+--- lib/FXDebugTarget.cpp.orig 2013-09-18 15:36:13.000000000 +0200
++++ lib/FXDebugTarget.cpp 2013-09-18 15:40:25.000000000 +0200
+@@ -169,7 +169,7 @@
+ FXuint msid=FXSELID(sel);
+ FXASSERT(ARRAYNUMBER(messageTypeName)==SEL_LAST);
+ if(sender!=lastsender || sel!=lastsel){
+- fxmessage("\nTYPE:%-23s ID:%-5d SENDER: %-15s PTR: 0x%08p #%-4d",type<SEL_LAST?messageTypeName[type]:"ILLEGAL",msid,sender?sender->getClassName():"NULL",ptr,1);
++ fxmessage("\nTYPE:%-23s ID:%-5d SENDER: %-15s PTR: %p #%-4d",type<SEL_LAST?messageTypeName[type]:"ILLEGAL",msid,sender?sender->getClassName():"NULL",ptr,1);
+ lastsender=sender;
+ lastsel=sel;
+ count=1;
+--- tests/thread.cpp.orig 2013-09-18 16:13:12.000000000 +0200
++++ tests/thread.cpp 2013-09-18 16:20:51.000000000 +0200
+@@ -61,7 +61,7 @@
+ // Generate jobs
+ FXint Producer::run(){
+ FXint job=0;
+- fxmessage("producer start on cpus: %llb\n",affinity());
++ fxmessage("producer start on cpus: %lx\n",affinity());
+ FXuint seed=1013904223u;
+ for(FXint g=0; g<groups; ++g){
+ for(FXint c=0; c<count; c++){
+--- adie/FindInFiles.cpp.orig 2013-09-18 16:55:45.000000000 +0200
++++ adie/FindInFiles.cpp 2013-09-18 16:57:42.000000000 +0200
+@@ -434,7 +434,7 @@
+
+ // File list double clicked
+ long FindInFiles::onCmdFileDblClicked(FXObject*,FXSelector,void* ptr){
+- FXint index=(FXint)(FXival)ptr;
++ index=(FXint)(FXival)ptr;
+ return 1;
+ }
+
+--- tests/parallel.cpp.orig 2013-09-18 16:31:08.000000000 +0200
++++ tests/parallel.cpp 2013-09-18 16:55:25.000000000 +0200
+@@ -146,6 +145,7 @@
+ FXuint njobs=0;
+ FXuint test=2;
+ FXuint wait=0;
++ char *endptr;
+
+ // Grab a few arguments
+ for(FXint arg=1; arg<argc; ++arg){
+@@ -155,18 +155,18 @@
+ }
+ else if(strcmp(argv[arg],"--threads")==0){
+ if(++arg>=argc){ fxmessage("Missing threads number argument.\n"); exit(1); }
+- nthreads=strtoul(argv[arg],NULL,0);
+- if(nthreads<0){ fxmessage("Value for threads (%d) too small.\n",nthreads); exit(1); }
++ nthreads=strtoul(argv[arg],&endptr,0);
++ if(*endptr!='\0'){ fxmessage("Value for threads (%d) too small.\n",nthreads); exit(1); }
+ }
+ else if(strcmp(argv[arg],"--minimum")==0){
+ if(++arg>=argc){ fxmessage("Missing threads number argument.\n"); exit(1); }
+- minimum=strtoul(argv[arg],NULL,0);
+- if(minimum<0){ fxmessage("Value for minimum number of threads (%d) too small.\n",minimum); exit(1); }
++ minimum=strtoul(argv[arg],&endptr,0);
++ if(*endptr!='\0'){ fxmessage("Value for minimum number of threads (%d) too small.\n",minimum); exit(1); }
+ }
+ else if(strcmp(argv[arg],"--maximum")==0){
+ if(++arg>=argc){ fxmessage("Missing threads number argument.\n"); exit(1); }
+- maximum=strtoul(argv[arg],NULL,0);
+- if(maximum<0){ fxmessage("Value for maximum number of threads (%d) too small.\n",minimum); exit(1); }
++ maximum=strtoul(argv[arg],&endptr,0);
++ if(*endptr!='\0'){ fxmessage("Value for maximum number of threads (%d) too small.\n",minimum); exit(1); }
+ }
+ else if(strcmp(argv[arg],"--size")==0){
+ if(++arg>=argc){ fxmessage("Missing size argument.\n"); exit(1); }
+@@ -176,8 +176,8 @@
+ }
+ else if(strcmp(argv[arg],"--jobs")==0){
+ if(++arg>=argc){ fxmessage("Missing jobs count argument.\n"); exit(1); }
+- njobs=strtoul(argv[arg],NULL,0);
+- if(njobs<0){ fxmessage("Value for njobs (%d) too small.\n",njobs); exit(1); }
++ njobs=strtoul(argv[arg],&endptr,0);
++ if(*endptr!='\0'){ fxmessage("Value for njobs (%d) too small.\n",njobs); exit(1); }
+ }
+ else if(strcmp(argv[arg],"-W")==0 || strcmp(argv[arg],"--wait")==0){
+ wait=1;
+@@ -198,7 +198,7 @@
+ }
+ }
+
+- fxmessage("main thread %p\n",FXThread::current());
++ fxmessage("main thread %lx\n",FXThread::current());
+
+ nthreads=minimum;
+
diff --git a/x11-toolkits/fox17/files/patch-warnings b/x11-toolkits/fox17/files/patch-warnings
new file mode 100644
index 000000000000..f6fafb06e86c
--- /dev/null
+++ b/x11-toolkits/fox17/files/patch-warnings
@@ -0,0 +1,181 @@
+--- include/fxdefs.h.orig 2013-09-18 15:26:29.000000000 +0200
++++ include/fxdefs.h 2013-09-18 15:26:48.000000000 +0200
+@@ -131,7 +131,7 @@
+
+
+ // Restrict aliasing on pointers
+-#if defined(__GNUC__)
++#if defined(__GNUC__) && !defined(__restrict)
+ #define __restrict __restrict__
+ #else
+ #define __restrict
+--- lib/FXFileList.cpp.orig 2013-09-18 15:41:48.000000000 +0200
++++ lib/FXFileList.cpp 2013-09-18 15:42:11.000000000 +0200
+@@ -1474,7 +1474,7 @@
+ }
+
+ // Update item information
+- label.format("%s\t%s\t%lld\t%s\t%s\t%s\t%s\t%s",name.text(),extension.text(),newitem->size,modtm.text(),usrid.text(),grpid.text(),attrs.text(),lnknm.text());
++ label.format("%s\t%s\t%lld\t%s\t%s\t%s\t%s\t%s",name.text(),extension.text(),static_cast<long long>(newitem->size),modtm.text(),usrid.text(),grpid.text(),attrs.text(),lnknm.text());
+
+ // New label
+ newitem->setText(label);
+--- pathfinder/PathFinder.cpp.orig 2013-09-18 16:59:43.000000000 +0200
++++ pathfinder/PathFinder.cpp 2013-09-18 17:10:58.000000000 +0200
+@@ -1051,7 +1051,7 @@
+ selectedModeBits[15]+=FXBIT(mode,15); // SVTX
+ selectedSpace+=size;
+ selectedCount+=1;
+- FXTRACE((10,"selected : %3d %7lld [%3d %7lld] %s\n",index,size,selectedCount,selectedSpace,filelist->getItemFilename(index).text()));
++ FXTRACE((10,"selected : %3d %7lld [%3d %7lld] %s\n",index,static_cast<long long>(size),selectedCount,static_cast<long long>(selectedSpace),filelist->getItemFilename(index).text()));
+ return 1;
+ }
+
+@@ -1075,7 +1075,7 @@
+ selectedModeBits[15]-=FXBIT(mode,15); // SVTX
+ selectedSpace-=size;
+ selectedCount-=1;
+- FXTRACE((10,"deselected: %3d %7lld [%3d %7lld] %s\n",index,size,selectedCount,selectedSpace,filelist->getItemFilename(index).text()));
++ FXTRACE((10,"deselected: %3d %7lld [%3d %7lld] %s\n",index,static_cast<long long>(size),selectedCount,static_cast<long long>(selectedSpace),filelist->getItemFilename(index).text()));
+ return 1;
+ }
+
+@@ -1088,7 +1088,7 @@
+ }
+ totalSpace+=filelist->getItemSize(index);
+ totalCount+=1;
+- FXTRACE((10,"inserted : %3d %7lld [%3d %7lld] %s\n",index,filelist->getItemSize(index),totalCount,totalSpace,filelist->getItemFilename(index).text()));
++ FXTRACE((10,"inserted : %3d %7lld [%3d %7lld] %s\n",index,static_cast<long long>(filelist->getItemSize(index)),totalCount,static_cast<long long>(totalSpace),filelist->getItemFilename(index).text()));
+ return 1;
+ }
+
+@@ -1101,7 +1101,7 @@
+ }
+ totalSpace-=filelist->getItemSize(index);
+ totalCount-=1;
+- FXTRACE((10,"deleted : %3d %7lld [%3d %7lld] %s\n",index,filelist->getItemSize(index),totalCount,totalSpace,filelist->getItemFilename(index).text()));
++ FXTRACE((10,"deleted : %3d %7lld [%3d %7lld] %s\n",index,static_cast<long long>(filelist->getItemSize(index)),totalCount,static_cast<long long>(totalSpace),filelist->getItemFilename(index).text()));
+ return 1;
+ }
+
+@@ -1368,15 +1368,15 @@
+ info.format(tr("File \"%s\" -> \"%s\"."),filelist->getItemFilename(currentitem).text(),filelist->getItemText(currentitem).section('\t',7).text());
+ }
+ else{
+- info.format(tr("File \"%s\" [%s] (%lld bytes)."),filelist->getItemFilename(currentitem).text(),filelist->getItemText(currentitem).section('\t',1).text(),filelist->getItemSize(currentitem));
++ info.format(tr("File \"%s\" [%s] (%lld bytes)."),filelist->getItemFilename(currentitem).text(),filelist->getItemText(currentitem).section('\t',1).text(),static_cast<long long>(filelist->getItemSize(currentitem)));
+ }
+ }
+ }
+ else if(1<=selectedCount){
+- info.format(tr("Selected %d items (%lld bytes)."),selectedCount,selectedSpace);
++ info.format(tr("Selected %d items (%lld bytes)."),selectedCount,static_cast<long long>(selectedSpace));
+ }
+ else{
+- info.format(tr("Total %d items (%lld bytes)."),totalCount,totalSpace);
++ info.format(tr("Total %d items (%lld bytes)."),totalCount,static_cast<long long>(totalSpace));
+ }
+ sender->handle(this,FXSEL(SEL_COMMAND,ID_SETSTRINGVALUE),(void*)&info);
+ return 1;
+--- tests/parallel.cpp.orig 2013-09-18 16:31:08.000000000 +0200
++++ tests/parallel.cpp 2013-09-18 16:55:25.000000000 +0200
+@@ -60,8 +59,8 @@
+ fxmessage("%p: npull=%ld\n",self(),npull);
+ fxmessage("%p: ncros=%ld\n",self(),ncros);
+ fxmessage("%p: niter=%ld\n",self(),niter);
+- fxmessage("%p: avg=%lld\n",self(),tot/npush);
+- fxmessage("%p: ticks=%lld (%.16lfs) tick/push=%.2lf push/s=%.2lf\n",self(),tot,FXdouble(tot)*0.33333333333333E-9,FXdouble(tot)/FXdouble(npush),FXdouble(npush)/(FXdouble(tot)*0.33333333333333E-9));
++ fxmessage("%p: avg=%lld\n",self(),static_cast<long long>(tot/npush));
++ fxmessage("%p: ticks=%lld (%.16lfs) tick/push=%.2lf push/s=%.2lf\n",self(),static_cast<long long>(tot),FXdouble(tot)*0.33333333333333E-9,FXdouble(tot)/FXdouble(npush),FXdouble(npush)/(FXdouble(tot)*0.33333333333333E-9));
+ return 0;
+ }
+
+@@ -70,18 +69,18 @@
+ // Churn cpu for a random while, then return
+ void churn(){
+ FXRandom random(fxgetticks());
+- fxmessage("Churn start th %p core %d/%d\n",FXThread::current(),FXThread::processor(),FXThread::processors());
++ fxmessage("Churn start th %08lx core %d/%d\n",FXThread::current(),FXThread::processor(),FXThread::processors());
+ while(random.randDouble()<0.99999999){ }
+- fxmessage("Churn done th %p code %d/%d\n",FXThread::current(),FXThread::processor(),FXThread::processors());
++ fxmessage("Churn done th %08lx code %d/%d\n",FXThread::current(),FXThread::processor(),FXThread::processors());
+ }
+
+
+ // Loop through index range
+ void looping(FXint i){
+ FXRandom random(fxgetticks());
+- fxmessage("Looping %03d start th %p\n",i,FXThread::current());
++ fxmessage("Looping %03d start th %08lx\n",i,FXThread::current());
+ while(random.randDouble()<0.9999999){ }
+- fxmessage("Looping %03d done th %p\n",i,FXThread::current());
++ fxmessage("Looping %03d done th %08lx\n",i,FXThread::current());
+ }
+
+
+@@ -278,7 +278,7 @@
+
+ fxmessage("running: %d!\n",pool.getRunningThreads());
+
+- fxmessage("main thread %p\n",FXThread::current());
++ fxmessage("main thread %lx\n",FXThread::current());
+
+
+ // 8-way parallelism if you got the cores
+--- tests/codecs.cpp.orig 2013-09-18 17:56:47.000000000 +0200
++++ tests/codecs.cpp 2013-09-18 16:26:21.000000000 +0200
+@@ -44,7 +44,7 @@
+ // Test roundtrip for codec
+ void roundtriptest(FXTextCodec *codec){
+ FXchar dst[32],src[32];
+- FXint c,n,i,j;
++ FXint i,j;
+ FXwchar wc;
+ printf("Roundtrip test for: %s..\n",codec->name());
+ for(i=0; i<256; i++){
+@@ -61,8 +61,7 @@
+ // Test utf8 roundtrip for codec
+ void utf8roundtriptest(FXTextCodec *codec){
+ FXchar dst[32],src[32];
+- FXint c,n,i,j;
+- FXwchar wc;
++ FXint n,i,j;
+ printf("UTF8 Roundtrip test for: %s..\n",codec->name());
+ for(i=0; i<256; i++){
+ src[0]=i;
+@@ -100,7 +99,7 @@
+ if(w1!=w2 || m!=4 || n!=1) printf("%06X: Problem: %06X\n",w1,w2);
+ }
+ end=fxgetticks();
+- printf("4-Byte case: %lld ticks/character\n",(end-beg)/(0x110000-0x10000));
++ printf("4-Byte case: %lld ticks/character\n",static_cast<long long>((end-beg)/(0x110000-0x10000)));
+
+ // Test utf for codes of 3 bytes
+ beg=fxgetticks();
+@@ -110,7 +109,7 @@
+ if(w1!=w2 || m!=3 || n!=1) printf("%06X: Problem: %06X\n",w1,w2);
+ }
+ end=fxgetticks();
+- printf("3-Byte case: %lld ticks/character\n",(end-beg)/(0x10000-0x800));
++ printf("3-Byte case: %lld ticks/character\n",static_cast<long long>((end-beg)/(0x10000-0x800)));
+
+ // Test utf for codes of 2 bytes
+ beg=fxgetticks();
+@@ -120,7 +119,7 @@
+ if(w1!=w2 || m!=2 || n!=1) printf("%06X: Problem: %06X\n",w1,w2);
+ }
+ end=fxgetticks();
+- printf("2-Byte case: %lld ticks/character\n",(end-beg)/(0x800-0x80));
++ printf("2-Byte case: %lld ticks/character\n",static_cast<long long>((end-beg)/(0x800-0x80)));
+
+ // Test utf for codes of 1 byte
+ beg=fxgetticks();
+@@ -130,7 +129,7 @@
+ if(w1!=w2 || m!=1 || n!=1) printf("%06X: Problem: %06X\n",w1,w2);
+ }
+ end=fxgetticks();
+- printf("1-Byte case: %lld ticks/character\n",(end-beg)/0x80);
++ printf("1-Byte case: %lld ticks/character\n",static_cast<long long>((end-beg)/0x80));
+
+ /*
+
diff --git a/x11-toolkits/fox17/pkg-plist b/x11-toolkits/fox17/pkg-plist
index c7d945b3fd82..a4f97817ef99 100644
--- a/x11-toolkits/fox17/pkg-plist
+++ b/x11-toolkits/fox17/pkg-plist
@@ -179,8 +179,8 @@ include/fox-%%MAJORVER%%/FXJPGIcon.h
include/fox-%%MAJORVER%%/FXJPGImage.h
include/fox-%%MAJORVER%%/FXKOI8RCodec.h
include/fox-%%MAJORVER%%/FXKnob.h
-include/fox-%%MAJORVER%%/FXLabel.h
include/fox-%%MAJORVER%%/FXLFQueue.h
+include/fox-%%MAJORVER%%/FXLabel.h
include/fox-%%MAJORVER%%/FXList.h
include/fox-%%MAJORVER%%/FXListBox.h
include/fox-%%MAJORVER%%/FXLocale.h
@@ -214,7 +214,6 @@ include/fox-%%MAJORVER%%/FXMutex.h
include/fox-%%MAJORVER%%/FXObject.h
include/fox-%%MAJORVER%%/FXObjectList.h
include/fox-%%MAJORVER%%/FXOptionMenu.h
-include/fox-%%MAJORVER%%/FXParallel.h
include/fox-%%MAJORVER%%/FXPCXIcon.h
include/fox-%%MAJORVER%%/FXPCXImage.h
include/fox-%%MAJORVER%%/FXPNGIcon.h
@@ -222,6 +221,7 @@ include/fox-%%MAJORVER%%/FXPNGImage.h
include/fox-%%MAJORVER%%/FXPPMIcon.h
include/fox-%%MAJORVER%%/FXPPMImage.h
include/fox-%%MAJORVER%%/FXPacker.h
+include/fox-%%MAJORVER%%/FXParallel.h
include/fox-%%MAJORVER%%/FXPath.h
include/fox-%%MAJORVER%%/FXPicker.h
include/fox-%%MAJORVER%%/FXPipe.h
@@ -318,6 +318,9 @@ include/fox-%%MAJORVER%%/FXUTF16Codec.h
include/fox-%%MAJORVER%%/FXUTF32Codec.h
include/fox-%%MAJORVER%%/FXUTF8Codec.h
include/fox-%%MAJORVER%%/FXUndoList.h
+include/fox-%%MAJORVER%%/FXVariant.h
+include/fox-%%MAJORVER%%/FXVariantArray.h
+include/fox-%%MAJORVER%%/FXVariantMap.h
include/fox-%%MAJORVER%%/FXVec2d.h
include/fox-%%MAJORVER%%/FXVec2f.h
include/fox-%%MAJORVER%%/FXVec3d.h