]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxrc/wxrc.cpp
Correct decoding of 4-byte integers in png2c script.
[wxWidgets.git] / utils / wxrc / wxrc.cpp
index 7f9abc5aa7bdcfc2d388c5fb67be6dd79292d120..9e580866c3f10880346955cb7e9e15df97f75b5d 100644 (file)
@@ -140,7 +140,7 @@ public:
         {
             const XRCWidgetData& w = m_wdata.Item(i);
             if( !CanBeUsedWithXRCCTRL(w.GetClass()) ) continue;
-            if( w.GetName().Length() == 0 ) continue;
+            if( w.GetName().empty() ) continue;
             file.Write(
                 wxT(" ") + w.GetClass() + wxT("* ") + w.GetName()
                 + wxT(";\n"));
@@ -155,7 +155,7 @@ public:
         {
             const XRCWidgetData& w = m_wdata.Item(i);
             if( !CanBeUsedWithXRCCTRL(w.GetClass()) ) continue;
-            if( w.GetName().Length() == 0 ) continue;
+            if( w.GetName().empty() ) continue;
             file.Write( wxT("  ")
                         + w.GetName()
                         + wxT(" = XRCCTRL(*this,\"")
@@ -586,7 +586,8 @@ static wxString FileToCppArray(wxString filename, int num)
                   wxT("Huge file not supported") );
 
     snum.Printf(wxT("%i"), num);
-    output.Printf(wxT("static size_t xml_res_size_") + snum + wxT(" = %i;\n"), lng);
+    output.Printf(wxT("static size_t xml_res_size_") + snum + wxT(" = %lu;\n"),
+                  static_cast<unsigned long>(lng));
     output += wxT("static unsigned char xml_res_file_") + snum + wxT("[] = {\n");
     // we cannot use string literals because MSVC is dumb wannabe compiler
     // with arbitrary limitation to 2048 strings :(
@@ -618,7 +619,7 @@ static wxString FileToCppArray(wxString filename, int num)
 void XmlResApp::MakePackageCPP(const wxArrayString& flist)
 {
     wxFFile file(parOutput, wxT("wt"));
-    size_t i;
+    unsigned i;
 
     if (flagVerbose)
         wxPrintf(wxT("creating C++ source file ") + parOutput +  wxT("...\n"));
@@ -688,7 +689,7 @@ void XmlResApp::MakePackageCPP(const wxArrayString& flist)
 #endif // wxUSE_MIMETYPE
 
         s.Printf("    XRC_ADD_FILE(wxT(\"XRC_resource/" + flist[i] +
-                 "\"), xml_res_file_%i, xml_res_size_%i, wxT(\"%s\"));\n",
+                 "\"), xml_res_file_%u, xml_res_size_%u, wxT(\"%s\"));\n",
                  i, i, mime.c_str());
         file.Write(s);
     }
@@ -706,16 +707,17 @@ void XmlResApp::MakePackageCPP(const wxArrayString& flist)
 
 void XmlResApp::GenCPPHeader()
 {
-    wxString fileSpec = ((parOutput.BeforeLast('.')).AfterLast('/')).AfterLast('\\');
-    wxString heaFileName = fileSpec + wxT(".h");
+    // Generate the output header in the same directory as the source file.
+    wxFileName headerName(parOutput);
+    headerName.SetExt("h");
 
-    wxFFile file(heaFileName, wxT("wt"));
+    wxFFile file(headerName.GetFullPath(), wxT("wt"));
     file.Write(
 "//\n"
 "// This file was automatically generated by wxrc, do not edit by hand.\n"
 "//\n\n"
-"#ifndef __"  + fileSpec + "_h__\n"
-"#define __"  + fileSpec + "_h__\n"
+"#ifndef __"  + headerName.GetName() + "_h__\n"
+"#define __"  + headerName.GetName() + "_h__\n"
 );
     for(size_t i=0;i<aXRCWndClassData.GetCount();++i){
                 aXRCWndClassData.Item(i).GenerateHeaderCode(file);
@@ -779,7 +781,7 @@ static wxString FileToPythonArray(wxString filename, int num)
 void XmlResApp::MakePackagePython(const wxArrayString& flist)
 {
     wxFFile file(parOutput, wxT("wt"));
-    size_t i;
+    unsigned i;
 
     if (flagVerbose)
         wxPrintf(wxT("creating Python source file ") + parOutput +  wxT("...\n"));
@@ -818,7 +820,7 @@ void XmlResApp::MakePackagePython(const wxArrayString& flist)
     {
         wxString s;
         s.Printf("    wx.MemoryFSHandler.AddFile('XRC_resource/" + flist[i] +
-                 "', xml_res_file_%i)\n", i);
+                 "', xml_res_file_%u)\n", i);
         file.Write(s);
     }
     for (i = 0; i < parFiles.GetCount(); i++)
@@ -844,9 +846,12 @@ void XmlResApp::OutputGettext()
 
     for (ExtractedStrings::const_iterator i = str.begin(); i != str.end(); ++i)
     {
+        const wxFileName filename(i->filename);
+
         wxString s;
+        s.Printf("#line %d \"%s\"\n",
+                 i->lineNo, filename.GetFullPath(wxPATH_UNIX));
 
-        s.Printf("#line %d \"%s\"\n", i->lineNo, i->filename);
         fout.Write(s);
         fout.Write("_(\"" + i->str + "\");\n");
     }