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),