[commit] r1380 - in trunk/Paradigms/MetaGME/MetaInterpreter: . Rep

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Thu Jun 23 15:35:05 CDT 2011


Author: ksmyth
Date: Thu Jun 23 15:35:05 2011
New Revision: 1380

Log:
Escape XML entities in Comment, Author, etc. Set starting dir for CFileDialog. GetErrorInfo if registering xmp fails

Modified:
   trunk/Paradigms/MetaGME/MetaInterpreter/BON2Component.cpp
   trunk/Paradigms/MetaGME/MetaInterpreter/Rep/Dumper.cpp

Modified: trunk/Paradigms/MetaGME/MetaInterpreter/BON2Component.cpp
==============================================================================
--- trunk/Paradigms/MetaGME/MetaInterpreter/BON2Component.cpp	Tue Jun 21 12:40:04 2011	(r1379)
+++ trunk/Paradigms/MetaGME/MetaInterpreter/BON2Component.cpp	Thu Jun 23 15:35:05 2011	(r1380)
@@ -164,17 +164,13 @@
 void Component::initMembers( Project& project)
 {
 	m_projectName = project->getName();
-	m_dir = "";
 
-	if ( global_vars.silent_mode)
-	{
-		CComPtr<IMgaProject> mgaProject = project->getProjectI().p;
-		CComBSTR    connString;
-		BONCOMTHROW(mgaProject->get_ProjectConnStr(&connString));
-		std::string path = Util::Copy( connString);
-		int e = path.rfind('\\');
-		if( e != std::string::npos && path.substr(0, 4) == "MGA=") m_dir = path.substr(4, e-3); // cut leading "MGA=" , preserve tailing '\\'
-	}
+	CComPtr<IMgaProject> mgaProject = project->getProjectI().p;
+	CComBSTR    connString;
+	BONCOMTHROW(mgaProject->get_ProjectConnStr(&connString));
+	std::string path = Util::Copy( connString);
+	int e = path.rfind('\\');
+	if( e != std::string::npos && path.substr(0, 4) == "MGA=") m_dir = path.substr(4, e-3); // cut leading "MGA=" , preserve tailing '\\'
 
 	m_entities.clear();
 	//m_toBeDeletedEntities.clear();

Modified: trunk/Paradigms/MetaGME/MetaInterpreter/Rep/Dumper.cpp
==============================================================================
--- trunk/Paradigms/MetaGME/MetaInterpreter/Rep/Dumper.cpp	Tue Jun 21 12:40:04 2011	(r1379)
+++ trunk/Paradigms/MetaGME/MetaInterpreter/Rep/Dumper.cpp	Thu Jun 23 15:35:05 2011	(r1380)
@@ -10,6 +10,7 @@
 #include "Token.h"
 #include "algorithm"
 #include <afxdlgs.h>
+#include <comdef.h>
 
 #include "globals.h"
 extern Globals global_vars;
@@ -836,14 +837,14 @@
 	// root folder dump
 	std::string mmm= "<?xml version=\"1.0\"?>\n<!DOCTYPE paradigm SYSTEM \"edf.dtd\">"
 	"\n\n<paradigm "
-	"name=\"" + m_projName + "\" " +
-	(m_projVersion.empty() ? "" : "version=\"" + m_projVersion + "\" ") +
+	"name=\"" + xmlFilter(m_projName) + "\" " +
+	(m_projVersion.empty() ? "" : "version=\"" + xmlFilter(m_projVersion) + "\" ") +
 	"guid=\"" + m_projGUID + "\" " +
-	"cdate=\"" + m_projCreated + "\" " +
-	"mdate=\"" + m_projModified + "\" " +
+	"cdate=\"" + xmlFilter(m_projCreated) + "\" " +
+	"mdate=\"" + xmlFilter(m_projModified) + "\" " +
 	">\n\n" +
-	"\t<comment>" + m_projComment + "</comment>\n\n" +
-	"\t<author>" + m_projAuthor + "</author>\n\n";
+	"\t<comment>" + xmlFilter(m_projComment) + "</comment>\n\n" +
+	"\t<author>" + xmlFilter(m_projAuthor) + "</author>\n\n";
 
 	DMP( mmm); mmm = "";
 	
@@ -1666,6 +1667,8 @@
 			CFileDialog dlg(FALSE, "xmp", def_name,
 				OFN_EXPLORER | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
 				"XML Paradigm Files (*.xmp)|*.xmp|");
+			dlg.GetOFN().lpstrInitialDir = proj_path.c_str();
+
 			int dlg_res = IDOK;
 			dlg_res = dlg.DoModal();
 			if( dlg_res == IDOK) 
@@ -1757,11 +1760,22 @@
 			hr = registrar->RegisterParadigmFromData(path, NULL, REGACCESS_USER);
 		}
 		if (FAILED(hr)) {
-
+			_bstr_t error;
+			CComQIPtr<ISupportErrorInfo> supperr = registrar;
+			if (supperr) {
+				CComPtr<IErrorInfo> errorInfo;
+				if (SUCCEEDED(GetErrorInfo(0, &errorInfo))) {
+					errorInfo->GetDescription(error.GetAddress());
+					error = L"Error occurred while registering new paradigm: " + error;
+				}
+			}
+			if (error == _bstr_t()) {
+				error = L"Error occurred while registering new paradigm.";
+			}
 			if( global_vars.silent_mode)
-				TO("Error occurred while registering new paradigm.");
+				TO(error);
 			else
-				AfxMessageBox("Error occurred while registering new paradigm.", MB_ICONSTOP | MB_OK);
+				AfxMessageBox(error, MB_ICONSTOP | MB_OK);
 		}
 	}
 }


More information about the gme-commit mailing list