Update of /cvsroot/arcem/arcem/arch
In directory vz-cvs-4.sog:/tmp/cvs-serv13637/arch

Modified Files:
        ArcemConfig.c ArcemConfig.h ControlPane.h Version.h armarc.c 
        fdc1772.c filecommon.c hdc63463.c i2c.c paldisplaydev.c 
        stddisplaydev.c 
Log Message:
* Add ControlPane_Error() function to allow errors to be reported in a 
platform-specific way.
* Replace numerous fprintf(stderr,"Foo"); exit(1); calls with calls to 
ControlPane_Error()
RISC OS specific changes:
* Add support for running in 32bpp modes (e.g. for Raspberry Pi)
* Allow tweak menu keys to be configured
* Fix stdout redirection preventing tweak menu from being visible!



Index: paldisplaydev.c
===================================================================
RCS file: /cvsroot/arcem/arcem/arch/paldisplaydev.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- paldisplaydev.c     12 May 2012 17:34:51 -0000      1.3
+++ paldisplaydev.c     21 Oct 2012 16:59:32 -0000      1.4
@@ -1041,8 +1041,7 @@
     EventQ_Remove(state,idx);
   else
   {
-    fprintf(stderr,"Couldn't find PDD_Name(EventFunc)!\n");
-    exit(EXIT_FAILURE);
+    ControlPane_Error(EXIT_FAILURE,"Couldn't find PDD_Name(EventFunc)!\n");
   }
   free(state->Display);
   state->Display = NULL;

Index: hdc63463.c
===================================================================
RCS file: /cvsroot/arcem/arcem/arch/hdc63463.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- hdc63463.c  12 May 2012 17:34:51 -0000      1.15
+++ hdc63463.c  21 Oct 2012 16:59:32 -0000      1.16
@@ -28,6 +28,7 @@
 #include "dbugsys.h"
 #include "hdc63463.h"
 #include "ArcemConfig.h"
+#include "ControlPane.h"
 
 struct HDCReadDataStr {
   uint8_t US,PHA,LCAH,LCAL,LHA,LSA,SCNTH,SCNTL;
@@ -444,9 +445,8 @@
     dbug("SetFilePtr: drive=%d head=%u cyl=%u sec=%u\n", drive, head, cyl, 
sect);
 
     if (drive < 0 || drive > DIM(hArcemConfig.aST506DiskShapes)) {
-        fprintf(stderr, "SetFilePtr: drive %d out of range 0..%d\n",
+        ControlPane_Error(1,"SetFilePtr: drive %d out of range 0..%d\n",
             drive, (int) DIM(hArcemConfig.aST506DiskShapes));
-        exit(1);
     }
 
     disc = hArcemConfig.aST506DiskShapes + drive;
@@ -1300,8 +1300,7 @@
   char *fillbuffer; /* A buffer which holds a block of data to write */
 
   if (fillbuffer=malloc(8192),fillbuffer==NULL) {
-    fprintf(stderr,"HDC:WriteFormat_DoNextBufferFull: Couldn't allocate memory 
for fillbuffer\n");
-    exit(1);
+    ControlPane_Error(1,"HDC:WriteFormat_DoNextBufferFull: Couldn't allocate 
memory for fillbuffer\n");
   }
 
   memset(fillbuffer,0x4e,8192);

Index: fdc1772.c
===================================================================
RCS file: /cvsroot/arcem/arcem/arch/fdc1772.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- fdc1772.c   12 May 2012 17:34:51 -0000      1.33
+++ fdc1772.c   21 Oct 2012 16:59:32 -0000      1.34
@@ -1048,9 +1048,8 @@
 static void efseek(FILE *fp, int32_t offset, int whence)
 {
   if (fseek(fp, offset, whence)) {
-    fprintf(stderr, "efseek(%p, %ld, %d) failed.\n", fp, (long int) offset,
+    ControlPane_Error(1,"efseek(%p, %ld, %d) failed.\n", fp, (long int) offset,
             whence);
-    exit(1);
   }
 
   return;

Index: ArcemConfig.c
===================================================================
RCS file: /cvsroot/arcem/arcem/arch/ArcemConfig.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- ArcemConfig.c       12 May 2012 17:34:51 -0000      1.9
+++ ArcemConfig.c       21 Oct 2012 16:59:32 -0000      1.10
@@ -18,6 +18,7 @@
 
 #include "ArcemConfig.h"
 #include "Version.h"
+#include "ControlPane.h"
 
 #ifdef AMIGA
 #include <workbench/startup.h>
@@ -49,8 +50,7 @@
   hArcemConfig.sRomImageName = arcemconfig_StringDuplicate("ROM");
   // If we've run out of memory this early, something is very wrong
   if(NULL == hArcemConfig.sRomImageName) {
-    fprintf(stderr, "Failed to allocate memory for initial configuration. 
Please free up more memory.\n");
-    exit(EXIT_FAILURE);
+    ControlPane_Error(EXIT_FAILURE,"Failed to allocate memory for initial 
configuration. Please free up more memory.\n");
   }
 
 #if defined(EXTNROM_SUPPORT)
@@ -58,8 +58,7 @@
   hArcemConfig.sEXTNDirectory = arcemconfig_StringDuplicate("extnrom");
   // If we've run out of memory this early, something is very wrong
   if(NULL == hArcemConfig.sEXTNDirectory) {
-    fprintf(stderr, "Failed to allocate memory for initial configuration. 
Please free up more memory.\n");
-    exit(EXIT_FAILURE);
+    ControlPane_Error(EXIT_FAILURE,"Failed to allocate memory for initial 
configuration. Please free up more memory.\n");
   }
 #endif /* EXTNROM_SUPPORT */
 
@@ -72,8 +71,7 @@
 #endif
   // If we've run out of memory this early, something is very wrong
   if(NULL == hArcemConfig.sHostFSDirectory) {
-    fprintf(stderr, "Failed to allocate memory for initial configuration. 
Please free up more memory.\n");
-    exit(EXIT_FAILURE);
+    ControlPane_Error(EXIT_FAILURE,"Failed to allocate memory for initial 
configuration. Please free up more memory.\n");
   }
 
 #endif /* HOSTFS_SUPPORT */
@@ -92,6 +90,8 @@
   hArcemConfig.iMinResY = 0;
   hArcemConfig.iLCDResX = 0;
   hArcemConfig.iLCDResY = 0;
+  hArcemConfig.iTweakMenuKey1 = 104; /* Left windows key */
+  hArcemConfig.iTweakMenuKey2 = 105; /* Right windows key */
 #endif
 }
 
@@ -127,7 +127,7 @@
     "  --processor <value> - Set the emulated CPU\n"
     "     Where value is one of 'ARM2', 'ARM250', 'ARM3'\n"
 #if defined(SYSTEM_riscos_single)
-    "  --display <mode> - Select display driver, 'pal' or '16bpp'\n"
+    "  --display <mode> - Select display driver, 'pal' or 'std'\n"
     "  --rbswap - Swap red & blue in 16bpp mode (e.g. for Iyonix with GeForce 
FX)\n"
     "  --noaspect - Disable aspect ratio correction\n"
     "  --noupscale - Disable upscaling\n"
@@ -135,6 +135,7 @@
     "  --minres <x> <y> - Specify dimensions of smallest screen mode to use\n"
     "  --lcdres <x> <y> - Specify native resolution of your monitor (to avoid 
using\n"
     "     modes that won't scale well on an LCD)\n"
+    "  --menukeys <a> <b> - Specify which key numbers open the tweak menu\n"
 #endif /* SYSTEM_riscos_single */
     ;
 
@@ -182,9 +183,7 @@
         iArgument += 2;
       } else {
         // No argument following the --rom option
-        fprintf(stderr, "No argument following the --rom option\n");
-
-        exit(EXIT_FAILURE);
+        ControlPane_Error(EXIT_FAILURE,"No argument following the --rom 
option\n");
       }
     }
 #if defined(EXTNROM_SUPPORT)
@@ -203,9 +202,7 @@
         iArgument += 2;
       } else {
         // No argument following the --extnromdir option
-        fprintf(stderr, "No argument following the --extnromdir option\n");
-
-        exit(EXIT_FAILURE);
+        ControlPane_Error(EXIT_FAILURE,"No argument following the --extnromdir 
option\n");
       }
     }
 #endif /* EXTNROM_SUPPORT */
@@ -225,9 +222,7 @@
         iArgument += 2;
       } else {
         // No argument following the --hostfsdir option
-        fprintf(stderr, "No argument following the --hostfsdir option\n");
-
-        exit(EXIT_FAILURE);
+        ControlPane_Error(EXIT_FAILURE,"No argument following the --hostfsdir 
option\n");
       }
     }
 #endif /* HOSTFS_SUPPORT */
@@ -274,16 +269,12 @@
           iArgument += 2;
         }
         else {
-          fprintf(stderr, "Unrecognised value to the --memory option\n");
-
-          exit(EXIT_FAILURE);
+          ControlPane_Error(EXIT_FAILURE,"Unrecognised value to the --memory 
option\n");
         }
 
       } else {
         // No argument following the --memory option
-        fprintf(stderr, "No argument following the --memory option\n");
-
-        exit(EXIT_FAILURE);
+        ControlPane_Error(EXIT_FAILURE,"No argument following the --memory 
option\n");
       }
     }
     else if(0 == strcmp("--processor", argv[iArgument])) {
@@ -304,15 +295,11 @@
           iArgument += 2;
         }
         else {
-          fprintf(stderr, "Unrecognised value to the --processor option\n");
-
-          exit(EXIT_FAILURE);
+          ControlPane_Error(EXIT_FAILURE,"Unrecognised value to the 
--processor option\n");
         }
       } else {
         // No argument following the --processor option
-        fprintf(stderr, "No argument following the --processor option\n");
-
-        exit(EXIT_FAILURE);
+        ControlPane_Error(EXIT_FAILURE,"No argument following the --processor 
option\n");
       }
     }
 #if defined(SYSTEM_riscos_single)
@@ -322,17 +309,15 @@
           hArcemConfig.eDisplayDriver = DisplayDriver_Palettised;
           iArgument += 2;
         }
-        else if(0 == strcmp("16bpp", argv[iArgument + 1])) {
+        else if(0 == strcmp("std", argv[iArgument + 1])) {
           hArcemConfig.eDisplayDriver = DisplayDriver_Standard;
           iArgument += 2;
         }
         else {
-          fprintf(stderr, "Unrecognised value to the --display option\n");
-          exit(EXIT_FAILURE);
+          ControlPane_Error(EXIT_FAILURE,"Unrecognised value to the --display 
option\n");
         }
       } else {
-        fprintf(stderr, "No argument following the --display option\n");
-        exit(EXIT_FAILURE);
+        ControlPane_Error(EXIT_FAILURE,"No argument following the --display 
option\n");
       }
     } else if(0 == strcmp("--rbswap",argv[iArgument])) {
       hArcemConfig.bRedBlueSwap = true;
@@ -352,8 +337,7 @@
         hArcemConfig.iMinResY = atoi(argv[iArgument+2]);
         iArgument += 3;
       } else {
-        fprintf(stderr, "Not enough arguments following the --minres 
option\n");
-        exit(EXIT_FAILURE);
+        ControlPane_Error(EXIT_FAILURE,"Not enough arguments following the 
--minres option\n");
       }
     } else if(0 == strcmp("--lcdres",argv[iArgument])) {
       if(iArgument+2 < argc) {
@@ -361,15 +345,20 @@
         hArcemConfig.iLCDResY = atoi(argv[iArgument+2]);
         iArgument += 3;
       } else {
-        fprintf(stderr, "Not enough arguments following the --lcdres 
option\n");
-        exit(EXIT_FAILURE);
+        ControlPane_Error(EXIT_FAILURE,"Not enough arguments following the 
--lcdres option\n");
+      }
+    } else if(0 == strcmp("--menukeys",argv[iArgument])) {
+      if(iArgument+2 < argc) {
+        hArcemConfig.iTweakMenuKey1 = atoi(argv[iArgument+1]);
+        hArcemConfig.iTweakMenuKey2 = atoi(argv[iArgument+2]);
+        iArgument += 3;
+      } else {
+        ControlPane_Error(EXIT_FAILURE,"Not enough arguments following the 
--menukeys option\n");
       }
     }
 #endif /* SYSTEM_riscos_single */
     else {
-      fprintf(stderr, "Unrecognised option '%s', try --help\n", 
argv[iArgument]);
-
-      exit(EXIT_FAILURE);
+      ControlPane_Error(EXIT_FAILURE,"Unrecognised option '%s', try --help\n", 
argv[iArgument]);
     }
   }
 }

Index: filecommon.c
===================================================================
RCS file: /cvsroot/arcem/arcem/arch/filecommon.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- filecommon.c        21 Jul 2012 01:01:11 -0000      1.4
+++ filecommon.c        21 Oct 2012 16:59:32 -0000      1.5
@@ -16,6 +16,7 @@
 #include "armarc.h"
 #include "filecalls.h"
 #include "displaydev.h"
+#include "ControlPane.h"
 
 #define USE_FILEBUFFER
 
@@ -37,9 +38,8 @@
   if (buffer_size_needed > buffer_size) {
     buffer = realloc(buffer, buffer_size_needed);
     if (!buffer) {
-      fprintf(stderr, "filecommon could not increase buffer size to %u 
bytes\n",
+      ControlPane_Error(EXIT_FAILURE,"filecommon could not increase buffer 
size to %u bytes\n",
               (ARMword) buffer_size_needed);
-      exit(EXIT_FAILURE);
     }
     buffer_size = buffer_size_needed;
   }

Index: Version.h
===================================================================
RCS file: /cvsroot/arcem/arcem/arch/Version.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- Version.h   11 Dec 2005 23:56:32 -0000      1.7
+++ Version.h   21 Oct 2012 16:59:32 -0000      1.8
@@ -1 +1 @@
-static const char Version[] = "Version 1.10 (11/12/2005) + CVS";
+static const char Version[] = "Version 1.50 alpha (21/10/2012) + CVS";

Index: i2c.c
===================================================================
RCS file: /cvsroot/arcem/arcem/arch/i2c.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- i2c.c       21 Jul 2012 01:01:11 -0000      1.15
+++ i2c.c       21 Oct 2012 16:59:32 -0000      1.16
@@ -14,6 +14,7 @@
 #include "i2c.h"
 
 #include "dbugsys.h"
+#include "ControlPane.h"
 
 /*
 static const char *I2CStateNameTrans[] = {"Idle",
@@ -162,27 +163,22 @@
   int loop,dest;
   unsigned char val;
   FILE *OutFile;
+  const char *filename;
 
 #ifdef __riscos__
-  OutFile = fopen("<ArcEm$Dir>.hexcmos", "w");
-  if (OutFile == NULL) {
-    fprintf(stderr,"SaveCMOS: Could not open CMOS file for writing\n");
-    return;
-  }
+  filename = "<ArcEm$Dir>.hexcmos";
 #else
+  filename = "hexcmos";
+#endif
+
 #ifdef MACOSX
-  {
-      chdir(arcemDir);
-      OutFile = fopen("hexcmos","w");
-  }
-#else
-  OutFile = fopen("hexcmos","w");
+  chdir(arcemDir);
 #endif
+
+  OutFile = fopen(filename,"w");
   if (OutFile == NULL) {
-    fprintf(stderr,"SaveCMOS: Could not open (hexcmos.updated) CMOS settings 
file\n");
-    exit(1);
+    ControlPane_Error(1,"SaveCMOS: Could not open CMOS settings file (%s)\n", 
filename);
   };
-#endif
 
   for (loop = 0; loop < 240; loop++) {
     dest = loop + 64;
@@ -446,9 +442,8 @@
     for (byte = 0; byte < 240; byte++) {
         if (fp) {
             if (fscanf(fp, "%x\n", &val) != 1) {
-                fprintf(stderr, "arcem: failed to read value %d of %s\n",
+                ControlPane_Error(1,"arcem: failed to read CMOS value %d of 
%s\n",
                     byte, path);
-                exit(1);
             }
         } else {
             val = CMOSDefaults[byte];

Index: ControlPane.h
===================================================================
RCS file: /cvsroot/arcem/arcem/arch/ControlPane.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- ControlPane.h       21 Dec 2004 22:08:09 -0000      1.5
+++ ControlPane.h       21 Oct 2012 16:59:32 -0000      1.6
@@ -13,4 +13,7 @@
 void ControlPane_Event(ARMul_State *state, XEvent *e);
 #endif
 
+/* Report an error and exit */
+void ControlPane_Error(int code,const char *fmt,...);
+
 #endif

Index: armarc.c
===================================================================
RCS file: /cvsroot/arcem/arcem/arch/armarc.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -d -r1.40 -r1.41
--- armarc.c    21 Jul 2012 01:01:11 -0000      1.40
+++ armarc.c    21 Oct 2012 16:59:32 -0000      1.41
@@ -31,12 +31,12 @@
 #include "sound.h"
 #include "displaydev.h"
 #include "filecalls.h"
+#include "ControlPane.h"
 
 
 #ifdef MACOSX
 #include <unistd.h>
 extern char arcemDir[256];
-void arcem_exit(char* msg);
 #endif
 
 /* Page size flags */
@@ -198,7 +198,7 @@
 #if defined(EXTNROM_SUPPORT)
   uint32_t extnrom_entry_count;
 #endif
-  uint32_t initmemsize;
+  uint32_t initmemsize = 0;
   
   MEMC.DRAMPageSize = MEMC_PAGESIZE_3_32K;
   switch(hArcemConfig.eMemSize) {
@@ -244,8 +244,7 @@
       break;
 
     default:
-      fprintf(stderr, "Unsupported memory size");
-      exit(EXIT_FAILURE);
+      ControlPane_Error(EXIT_FAILURE,"Unsupported memory size");
   }
 
   dbug("Reading config file....\n");
@@ -271,15 +270,10 @@
   {
     chdir(arcemDir);
   }
+#endif
   if (ROMFile = fopen(hArcemConfig.sRomImageName, "rb"), ROMFile == NULL) {
-    arcem_exit("Couldn't open ROM file");
-  }
-#else
-  if (ROMFile = fopen(hArcemConfig.sRomImageName, "rb"), ROMFile == NULL) {
-    fprintf(stderr, "Couldn't open ROM file\n");
-    exit(2);
+    ControlPane_Error(2,"Couldn't open ROM file");
   }
-#endif
 
   /* Find the rom file size */
   fseek(ROMFile, 0l, SEEK_END);
@@ -288,8 +282,7 @@
   MEMC.ROMHighMask = MEMC.ROMHighSize-1;
 
   if(MEMC.ROMHighSize & MEMC.ROMHighMask) {
-    fprintf(stderr,"ROM High isn't power of 2 in size\n");
-    exit(3);
+    ControlPane_Error(3,"ROM High isn't power of 2 in size\n");
   }
 
   fseek(ROMFile, 0l, SEEK_SET);
@@ -308,8 +301,7 @@
   MEMC.ROMRAMChunk = calloc(RAMChunkSize+MEMC.ROMHighSize+extnrom_size+256,1);
   MEMC.EmuFuncChunk = 
calloc(RAMChunkSize+MEMC.ROMHighSize+extnrom_size+256,sizeof(FastMapUInt)/4);
   if((MEMC.ROMRAMChunk == NULL) || (MEMC.EmuFuncChunk == NULL)) {
-    fprintf(stderr,"Couldn't allocate ROMRAMChunk/EmuFuncChunk\n");
-    exit(3);
+    ControlPane_Error(3,"Couldn't allocate ROMRAMChunk/EmuFuncChunk\n");
   }
 #ifdef FASTMAP_64
   /* On 64bit systems, ROMRAMChunk needs shifting to account for the shift 
that occurs in FastMap_Phy2Func */
@@ -334,8 +326,7 @@
     MEMC.ROMLowMask = MEMC.ROMLowSize-1;
   
     if(MEMC.ROMLowSize & MEMC.ROMLowMask) {
-      fprintf(stderr,"ROM Low isn't power of 2 in size\n");
-      exit(3);
+      ControlPane_Error(3,"ROM Low isn't power of 2 in size\n");
     }
 
     /* calloc() now used to ensure that Extension ROM space is zero'ed */
@@ -355,14 +346,12 @@
 
   if (DisplayDev_Init(state)) {
     /* There was an error of some sort - it will already have been reported */
-    fprintf(stderr, "Could not initialise display - exiting\n");
-    exit(EXIT_FAILURE);
+    ControlPane_Error(EXIT_FAILURE,"Could not initialise display - exiting\n");
   }
 
   if (Sound_Init(state)) {
     /* There was an error of some sort - it will already have been reported */
-    fprintf(stderr, "Could not initialise sound output - exiting\n");
-    exit(EXIT_FAILURE);
+    ControlPane_Error(EXIT_FAILURE,"Could not initialise sound output - 
exiting\n");
   }
 
   for (i = 0; i < 512 * 1024 / UPDATEBLOCKSIZE; i++) {

Index: stddisplaydev.c
===================================================================
RCS file: /cvsroot/arcem/arcem/arch/stddisplaydev.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- stddisplaydev.c     30 Jul 2012 21:26:24 -0000      1.5
+++ stddisplaydev.c     21 Oct 2012 16:59:32 -0000      1.6
@@ -1647,7 +1647,7 @@
   }
 }
 
-static const SDD_Name(RowFunc) RowFuncs[2][4] = {
+static const SDD_Name(RowFunc) SDD_Name(RowFuncs)[2][4] = {
  { /* 1X horizontal scaling */
    SDD_Name(RowFunc1bpp1X),
    SDD_Name(RowFunc2bpp1X),
@@ -1719,7 +1719,7 @@
   }
 
   drow = SDD_Name(Host_BeginRow)(state,hoststart++,HD.XOffset);
-  rf = &RowFuncs[HD.XScale-1][(DC.VIDC_CR&0xc)>>2];
+  rf = &SDD_Name(RowFuncs)[HD.XScale-1][(DC.VIDC_CR&0xc)>>2];
   if(hoststart == hostend)
   {
     if((*rf)(state,row,drow,rowflags | ROWFUNC_UPDATEFLAGS))
@@ -1751,7 +1751,7 @@
   }
 }
 
-static const SDD_Name(RowFuncNoFlags) RowFuncsNoFlags[2][4] = {
+static const SDD_Name(RowFuncNoFlags) SDD_Name(RowFuncsNoFlags)[2][4] = {
  { /* 1X horizontal scaling */
    SDD_Name(RowFunc1bpp1XNoFlags),
    SDD_Name(RowFunc2bpp1XNoFlags),
@@ -1810,7 +1810,7 @@
 
   /* Display area */
 
-  rf = &RowFuncsNoFlags[HD.XScale-1][(DC.VIDC_CR&0xc)>>2];
+  rf = &SDD_Name(RowFuncsNoFlags)[HD.XScale-1][(DC.VIDC_CR&0xc)>>2];
   /* Remember current Vptr */
   Vptr = DC.Vptr;
   do
@@ -2451,8 +2451,7 @@
     EventQ_Remove(state,idx);
   else
   {
-    fprintf(stderr,"Couldn't find SDD event func!\n");
-    exit(EXIT_FAILURE);
+    ControlPane_Error(EXIT_FAILURE,"Couldn't find SDD event func!\n");
   }
   free(state->Display);
   state->Display = NULL;

Index: ArcemConfig.h
===================================================================
RCS file: /cvsroot/arcem/arcem/arch/ArcemConfig.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- ArcemConfig.h       12 May 2012 17:34:51 -0000      1.6
+++ ArcemConfig.h       21 Oct 2012 16:59:32 -0000      1.7
@@ -87,6 +87,7 @@
   bool bNoLowColour; /* Disable 1/2/4bpp modes */
   int iMinResX,iMinResY;
   int iLCDResX,iLCDResY;
+  int iTweakMenuKey1,iTweakMenuKey2;
 #endif
 
 } ArcemConfig;


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
-- 
arcem-cvs mailing list
arcem-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/arcem-cvs

Reply via email to