MinGW tweak: Constructs such as:

CharArray somevariable = "somestring"

...are not allowed. It seems like MSVC does not correctly check
accessibility for temporaries. Chapter 12.2 of ISO/IEC 14882:2003(E):

>  Even when the creation of the temporary object is avoided (12.8),
>  all the semantic restrictions must be respected as if the temporary
>  object was created. [Example: even if the copy constructor is not
>  called, all the semantic restrictions, such as accessibility
>  (clause 11), shall be satisfied. ]




git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3344 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/win/vncviewer/CConnOptions.cxx b/win/vncviewer/CConnOptions.cxx
index ea0941e..6069e95 100644
--- a/win/vncviewer/CConnOptions.cxx
+++ b/win/vncviewer/CConnOptions.cxx
@@ -324,7 +324,7 @@
                     _T("Storing the password is more convenient but poses a security risk."),
                     MB_YESNO | MB_DEFBUTTON2 | MB_ICONWARNING) == IDYES) {
         ObfuscatedPasswd obfPwd(password);
-        CharArray obfuscatedHex = rdr::HexOutStream::binToHexStr(obfPwd.buf, obfPwd.length);
+        CharArray obfuscatedHex(rdr::HexOutStream::binToHexStr(obfPwd.buf, obfPwd.length));
         fprintf(f, "Password=%s\n", obfuscatedHex.buf);
       }
     }
diff --git a/win/vncviewer/CConnThread.cxx b/win/vncviewer/CConnThread.cxx
index cfd2695..0767ffc 100644
--- a/win/vncviewer/CConnThread.cxx
+++ b/win/vncviewer/CConnThread.cxx
@@ -95,7 +95,7 @@
         try {
           if (isConfig) {
             // A configuration file name was specified - load it
-            CharArray filename = hostOrConfig.takeBuf();
+	    CharArray filename(hostOrConfig.takeBuf());
             options.readFromFile(filename.buf);
           } else {
             // An actual hostname (and possibly port) was specified
diff --git a/win/vncviewer/MRU.h b/win/vncviewer/MRU.h
index ae703b3..fd9bf71 100644
--- a/win/vncviewer/MRU.h
+++ b/win/vncviewer/MRU.h
@@ -48,9 +48,9 @@
           key.getBinary(_T("Order"), (void**)&order.buf, &length);
 
           for (int i=0; i<length; i++) {
-            TCharArray keyname = rdr::HexOutStream::binToHexStr(&order.buf[i], 1);
+	    TCharArray keyname(rdr::HexOutStream::binToHexStr(&order.buf[i], 1));
             try {
-              TCharArray entry = key.getString(keyname.buf);
+              TCharArray entry(key.getString(keyname.buf));
               mru.push_back(strDup(entry.buf));
             } catch (rdr::Exception) {
             }
@@ -79,9 +79,9 @@
           keycode = 0;
           bool found = false;
           for (int i=0; i<orderlen; i++) {
-            TCharArray keyname = rdr::HexOutStream::binToHexStr(&order[i], 1);
+            TCharArray keyname(rdr::HexOutStream::binToHexStr(&order[i], 1));
             try {
-              TCharArray hostname = key.getString(keyname.buf);
+              TCharArray hostname(key.getString(keyname.buf));
               if (stricmp(name, CStr(hostname.buf)) == 0) {
                 keycode = order[i];
                 found = true;
@@ -119,7 +119,7 @@
           order[i] = order[i-1];
         order[0] = keycode;
 
-        TCharArray keyname = rdr::HexOutStream::binToHexStr((char*)&keycode, 1);
+        TCharArray keyname(rdr::HexOutStream::binToHexStr((char*)&keycode, 1));
         key.setString(keyname.buf, TStr(name));
         key.setBinary(_T("Order"), order, orderlen);
       }