changeset 102:4bac4535ea7f

Corrected handling of unicode arguments, especially filenames
author joachim99
date Thu, 02 Sep 2010 20:27:45 +0000
parents 8463601a34a7
children 1b9430d5cf2b
files kdiff3/src-QT4/kreplacements/kreplacements.cpp
diffstat 1 files changed, 8 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/kdiff3/src-QT4/kreplacements/kreplacements.cpp	Sat Jul 31 21:17:57 2010 +0000
+++ b/kdiff3/src-QT4/kreplacements/kreplacements.cpp	Thu Sep 02 20:27:45 2010 +0000
@@ -912,7 +912,7 @@
 };
 static QList<KCmdLineOptionsItem> s_options;
 
-static std::vector<QCStringList> s_vOption;
+static std::vector<QStringList> s_vOption;
 static std::vector<QString> s_vArg;
 
 KCmdLineOptions& KCmdLineOptions::add( const QString& name, const QString& description )
@@ -1035,14 +1035,15 @@
       ++i;
    }
 
+   QStringList args = QCoreApplication::arguments();
    // First find the option "-config" or "--config" to allow loading of options
    QString configFileName;
-   for( i=1; i<s_argc-1; ++i )
+   for( i=1; i<args.size()-1; ++i )
    {
-      QString arg = s_argv[i];
+      QString arg = args[i];
       if ( arg == "-config" || arg == "--config" )
       {
-         configFileName = s_argv[i+1];
+         configFileName = args[i+1];
       }
    }
    m_config.readConfigFile(configFileName);
@@ -1054,9 +1055,9 @@
 
    s_vOption.resize(nofOptions);
 
-   for( i=1; i<s_argc; ++i )
+   for( i=1; i<args.size(); ++i )
    {
-      QString arg = s_argv[i];
+      QString arg = args[i];
       if ( arg[0]=='-' )  // An option
       {
          if ( ignorableCmdLineOptions.contains( arg +";") )
@@ -1079,7 +1080,7 @@
                   optName = s_options[j].name;
                   pos = optName.indexOf( ' ' );
                }
-               if (pos!=-1){ ++i; s_vOption[j].append( s_argv[i] ); } //use param
+               if (pos!=-1){ ++i; s_vOption[j].append( args[i] ); } //use param
                else        { s_vOption[j].append("1"); }           //set state
                break;
             }