Implemented the possibility to add the user defined pixel formats.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@270 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfbplayer/EditPixelFormatDialog.h b/rfbplayer/EditPixelFormatDialog.h
index f0cdafe..7a3d3e0 100644
--- a/rfbplayer/EditPixelFormatDialog.h
+++ b/rfbplayer/EditPixelFormatDialog.h
@@ -20,6 +20,8 @@
 
 #include <rfb_win32/Dialog.h>
 
+#define MAX_STR_LEN 256
+
 class EditPixelFormatDialog : public rfb::win32::Dialog {
 public:
   EditPixelFormatDialog(PixelFormatList *_supportedPF, char *_format_name,
@@ -68,8 +70,9 @@
         ((getItemString(IDC_BLUESHIFT_EDIT))[0] == '\0')) {
       strcpy(err_msg, "Please fill the all fields in the dialog.");
     }
-    if (supportedPF->getIndexByPFName(format_name) != 
-        supportedPF->getIndexByPFName(getItemString(IDC_NAME_EDIT))) {
+    int newIndex = supportedPF->getIndexByPFName(getItemString(IDC_NAME_EDIT));
+    if ((supportedPF->getIndexByPFName(format_name) != newIndex) && 
+        (newIndex != -1)) {
       strcpy(err_msg, "The pixel format with that name is already exist.");
     }
     if (getItemInt(IDC_DEPTH_EDIT) <= 0) {
@@ -80,8 +83,7 @@
       return false;
     }
     // Fill the pixel format structure
-    strncpy(format_name, getItemString(IDC_NAME_EDIT), sizeof(format_name));
-    format_name[sizeof(format_name) - 1] = 0;
+    strCopy(format_name, getItemString(IDC_NAME_EDIT), MAX_STR_LEN);
     pf->bpp = getItemInt(IDC_BPP_COMBO);
     pf->depth = getItemInt(IDC_DEPTH_EDIT);
     pf->bigEndian = (SendMessage(GetDlgItem(handle, IDC_BIGENDIAN_COMBO),