summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org>2009-03-10 13:34:09 +0000
committerJorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org>2009-03-10 13:34:09 +0000
commit1b03a516c6bcbb20e614634059524a17c0ace66e (patch)
tree977d4146a12e5c513cddb3e5ff9a11972d040f70 /kde-base/kdelibs/files
parentAdd missing test flag to IUSE. (diff)
downloadgentoo-2-1b03a516c6bcbb20e614634059524a17c0ace66e.tar.gz
gentoo-2-1b03a516c6bcbb20e614634059524a17c0ace66e.tar.bz2
gentoo-2-1b03a516c6bcbb20e614634059524a17c0ace66e.zip
Applied upstream revision 934640 that fixes upstream bug 186038 and Gentoo bug 261367.
(Portage version: 2.2_rc23/cvs/Linux x86_64)
Diffstat (limited to 'kde-base/kdelibs/files')
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.2.1-qt4.5.patch654
1 files changed, 654 insertions, 0 deletions
diff --git a/kde-base/kdelibs/files/kdelibs-4.2.1-qt4.5.patch b/kde-base/kdelibs/files/kdelibs-4.2.1-qt4.5.patch
new file mode 100644
index 000000000000..f27ed787c309
--- /dev/null
+++ b/kde-base/kdelibs/files/kdelibs-4.2.1-qt4.5.patch
@@ -0,0 +1,654 @@
+Index: branches/KDE/4.2/kdelibs/kdecore/kernel/kcmdlineargs.cpp
+===================================================================
+--- branches/KDE/4.2/kdelibs/kdecore/kernel/kcmdlineargs.cpp (revision 934639)
++++ branches/KDE/4.2/kdelibs/kdecore/kernel/kcmdlineargs.cpp (revision 934640)
+@@ -83,13 +83,13 @@
+ // Helper classes
+ //
+
+-class KCmdLineParsedOptions : public QHash<QString,QString>
++class KCmdLineParsedOptions : public QHash<QByteArray,QByteArray>
+ {
+ public:
+ KCmdLineParsedOptions() { }
+ };
+
+-class KCmdLineParsedArgs : public QList<QString>
++class KCmdLineParsedArgs : public QList<QByteArray>
+ {
+ public:
+ KCmdLineParsedArgs() { }
+@@ -112,7 +112,7 @@
+
+ class KCmdLineOptionsPrivate {
+ public:
+- QStringList names;
++ QList<QByteArray> names;
+ QList<KLocalizedString> descriptions;
+ QStringList defaults;
+ };
+@@ -143,7 +143,7 @@
+ const KLocalizedString &description,
+ const QByteArray &defaultValue)
+ {
+- d->names.append(QString::fromUtf8(name));
++ d->names.append(name);
+ d->descriptions.append(description);
+ d->defaults.append(QString::fromUtf8(defaultValue));
+ return *this;
+@@ -171,7 +171,7 @@
+ char **argv; // The original argv
+ bool parsed : 1; // Whether we have parsed the arguments since calling init
+ bool ignoreUnknown : 1; // Ignore unknown options and arguments
+- QString mCwd; // Current working directory. Important for KUnqiueApp!
++ QByteArray mCwd; // Current working directory. Important for KUnqiueApp!
+ KCmdLineArgs::StdCmdLineArgs mStdargs;
+
+ KCmdLineOptions qt_options;
+@@ -220,15 +220,15 @@
+ *
+ * +4 - no more options follow // !fork
+ */
+- static int findOption(const KCmdLineOptions &options, QString &opt,
+- QString &opt_name, QString &def, bool &enabled);
++ static int findOption(const KCmdLineOptions &options, QByteArray &opt,
++ QByteArray &opt_name, QString &def, bool &enabled);
+
+ /**
+ * @internal
+ *
+ * Checks what to do with a single option
+ */
+- static void findOption(const QString &optv, const QString &_opt,
++ static void findOption(const QByteArray &optv, const QByteArray &_opt,
+ int &i, bool _enabled, bool &moreOptions);
+
+ /**
+@@ -246,7 +246,7 @@
+ *
+ * @param id The name of the options to be removed.
+ */
+- static void removeArgs(const QString &id);
++ static void removeArgs(const QByteArray &id);
+ };
+
+ K_GLOBAL_STATIC(KCmdLineArgsStatic, s)
+@@ -336,7 +336,7 @@
+ {
+ friend class KCmdLineArgsStatic;
+ public:
+- KCmdLineArgsPrivate(const KCmdLineOptions &_options, const KLocalizedString &_name, const QString &_id)
++ KCmdLineArgsPrivate(const KCmdLineOptions &_options, const KLocalizedString &_name, const QByteArray &_id)
+ : options(_options)
+ , name(_name)
+ , id(_id)
+@@ -351,7 +351,7 @@
+ }
+ const KCmdLineOptions options;
+ const KLocalizedString name;
+- const QString id;
++ const QByteArray id;
+ KCmdLineParsedOptions *parsedOptionList;
+ KCmdLineParsedArgs *parsedArgList;
+ bool isQt;
+@@ -361,21 +361,21 @@
+ *
+ * Set a boolean option
+ */
+- void setOption(const QString &option, bool enabled);
++ void setOption(const QByteArray &option, bool enabled);
+
+ /**
+ * @internal
+ *
+ * Set a string option
+ */
+- void setOption(const QString &option, const QString &value);
++ void setOption(const QByteArray &option, const QByteArray &value);
+
+ /**
+ * @internal
+ *
+ * Add an argument
+ */
+- void addArgument(const QString &argument);
++ void addArgument(const QByteArray &argument);
+
+ /**
+ * @internal
+@@ -469,13 +469,13 @@
+
+ s->about = _about;
+ s->parsed = false;
+- s->mCwd = QDir::currentPath();
++ s->mCwd = QDir::currentPath().toLocal8Bit(); //currentPath() uses fromLocal8Bit internally apparently
+ addStdCmdLineOptions(stdargs);
+ }
+
+ QString KCmdLineArgs::cwd()
+ {
+- return s->mCwd;
++ return QString::fromLocal8Bit(s->mCwd);
+ }
+
+ QString KCmdLineArgs::appName()
+@@ -499,14 +499,11 @@
+
+ void
+ KCmdLineArgs::addCmdLineOptions( const KCmdLineOptions &options, const KLocalizedString &name,
+- const QByteArray &_id, const QByteArray &_afterId)
++ const QByteArray &id, const QByteArray &afterId)
+ {
+ if (!s->argsList)
+ s->argsList = new KCmdLineArgsList;
+
+- QString id = QString::fromUtf8(_id);
+- QString afterId = QString::fromUtf8(_afterId);
+-
+ int pos = s->argsList->count();
+ // To make sure that the named options come before unnamed.
+ if (pos > 0 && !id.isEmpty() && s->argsList->last()->d->name.isEmpty())
+@@ -527,7 +524,7 @@
+
+ Q_ASSERT( s->parsed == false ); // You must add _ALL_ cmd line options
+ // before accessing the arguments!
+- s->argsList->insert(pos, new KCmdLineArgs(options, name, id.toUtf8()));
++ s->argsList->insert(pos, new KCmdLineArgs(options, name, id));
+ }
+
+ void
+@@ -540,8 +537,7 @@
+ s->removeArgs("qt");
+ s->removeArgs("kde");
+
+- QByteArray qCwd = QFile::encodeName(s->mCwd);
+- ds << qCwd;
++ ds << s->mCwd;
+
+ uint count = s->argsList ? s->argsList->count() : 0;
+ ds << count;
+@@ -579,16 +575,15 @@
+ QByteArray qCwd;
+ ds >> qCwd;
+
+- s->mCwd = QFile::decodeName(qCwd); //FIXME: Is this proper decoding?
++ s->mCwd = qCwd;
+
+ uint count;
+ ds >> count;
+
+ while(count--)
+ {
+- QByteArray idRaw;
+- ds >> idRaw;
+- QString id = idRaw; //FIXME: What about decoding?
++ QByteArray id;
++ ds >> id;
+ Q_ASSERT( s->argsList );
+ for(args = s->argsList->begin(); args != s->argsList->end(); ++args)
+ {
+@@ -602,9 +597,8 @@
+ s->parsed = true;
+ }
+
+-KCmdLineArgs *KCmdLineArgs::parsedArgs(const QByteArray &_id)
++KCmdLineArgs *KCmdLineArgs::parsedArgs(const QByteArray &id)
+ {
+- QString id = QString::fromUtf8(_id);
+ if (!s->argsList)
+ return 0;
+ KCmdLineArgsList::Iterator args = s->argsList->begin();
+@@ -622,7 +616,7 @@
+ return 0;
+ }
+
+-void KCmdLineArgsStatic::removeArgs(const QString &id)
++void KCmdLineArgsStatic::removeArgs(const QByteArray &id)
+ {
+ if (!s->argsList)
+ return;
+@@ -646,8 +640,8 @@
+ }
+
+ int
+-KCmdLineArgsStatic::findOption(const KCmdLineOptions &options, QString &opt,
+- QString &opt_name, QString &def, bool &enabled)
++KCmdLineArgsStatic::findOption(const KCmdLineOptions &options, QByteArray &opt,
++ QByteArray &opt_name, QString &def, bool &enabled)
+ {
+ int result;
+ bool inverse;
+@@ -686,7 +680,7 @@
+ i++;
+ if (i >= options.d->names.size())
+ return result+0;
+- QString nextOption = options.d->names[i];
++ QByteArray nextOption = options.d->names[i];
+ int p = nextOption.indexOf(' ');
+ if (p > 0)
+ nextOption = nextOption.left(p);
+@@ -717,14 +711,14 @@
+ }
+
+ void
+-KCmdLineArgsStatic::findOption(const QString &optv, const QString &_opt,
++KCmdLineArgsStatic::findOption(const QByteArray &optv, const QByteArray &_opt,
+ int &i, bool _enabled, bool &moreOptions)
+ {
+ KCmdLineArgsList::Iterator args = s->argsList->begin();
+- QString opt = _opt;
+- QString opt_name;
++ QByteArray opt = _opt;
++ QByteArray opt_name;
+ QString def;
+- QString argument;
++ QByteArray argument;
+ int j = opt.indexOf('=');
+ if (j != -1)
+ {
+@@ -753,7 +747,7 @@
+ int p = 1;
+ while (true)
+ {
+- QString singleCharOption = " ";
++ QByteArray singleCharOption = " ";
+ singleCharOption[0] = optv[p];
+ args = s->argsList->begin();
+ while (args != s->argsList->end())
+@@ -800,7 +794,7 @@
+ return;
+ #endif
+ KCmdLineArgs::enable_i18n();
+- KCmdLineArgs::usageError( i18n("Unknown option '%1'.", _opt));
++ KCmdLineArgs::usageError( i18n("Unknown option '%1'.", QString::fromLocal8Bit(_opt)));
+ }
+
+ if ((result & 4) != 0)
+@@ -820,7 +814,7 @@
+ return;
+ #endif
+ KCmdLineArgs::enable_i18n();
+- KCmdLineArgs::usageError( i18n("Unknown option '%1'.", _opt));
++ KCmdLineArgs::usageError( i18n("Unknown option '%1'.", QString::fromLocal8Bit(_opt)));
+ }
+ if (argument.isEmpty())
+ {
+@@ -828,9 +822,9 @@
+ if (i >= s->argc)
+ {
+ KCmdLineArgs::enable_i18n();
+- KCmdLineArgs::usageError( i18nc("@info:shell %1 is cmdoption name","'%1' missing.", opt_name));
++ KCmdLineArgs::usageError( i18nc("@info:shell %1 is cmdoption name","'%1' missing.", QString::fromLocal8Bit(opt_name)));
+ }
+- argument = s->decodeInput(s->argv[i]);
++ argument = s->argv[i];
+ }
+ (*args)->d->setOption(opt, argument);
+ }
+@@ -849,16 +843,10 @@
+ KCmdLineArgs *appOptions = s->argsList->last();
+ if (appOptions->d->id.isEmpty())
+ {
+- const KCmdLineOptions &option = appOptions->d->options;
+- for (int i = 0; i < option.d->names.size(); i++)
++ foreach(const QByteArray& name, appOptions->d->options.d->names)
+ {
+- if (option.d->names[i].startsWith('+'))
+- allowArgs = true;
+- if ( option.d->names[i].startsWith("!+") )
+- {
+- allowArgs = true;
+- everythingAfterArgIsArgs = true;
+- }
++ everythingAfterArgIsArgs = everythingAfterArgIsArgs || name.startsWith("!+");
++ allowArgs = allowArgs || name.startsWith('+') || everythingAfterArgIsArgs;
+ }
+ }
+ for(int i = 1; i < s->argc; i++)
+@@ -869,8 +857,8 @@
+ if ((s->argv[i][0] == '-') && s->argv[i][1] && inOptions)
+ {
+ bool enabled = true;
+- QString orig = decodeInput(s->argv[i]);
+- QString option = orig.mid(1);
++ QByteArray orig = s->argv[i];
++ QByteArray option = orig.mid(1);
+ if (option.startsWith('-'))
+ {
+ option = option.mid(1);
+@@ -887,7 +875,7 @@
+ }
+ else if (option.startsWith("help-"))
+ {
+- KCmdLineArgs::usage(option.mid(5).toUtf8());
++ KCmdLineArgs::usage(option.mid(5));
+ }
+ else if ((option == "version") || (option == "v"))
+ {
+@@ -924,9 +912,8 @@
+ {
+ if (s->about->bugAddress().isEmpty() || s->about->bugAddress() == "submit@bugs.kde.org" )
+ s->printQ( i18n( "Please use http://bugs.kde.org to report bugs.\n" ) );
+- else {
++ else
+ s->printQ( i18n( "Please report bugs to %1.\n" , s->about->bugAddress()) );
+- }
+ }
+ else
+ {
+@@ -955,7 +942,7 @@
+ }
+ else
+ {
+- appOptions->d->addArgument(s->decodeInput(s->argv[i]));
++ appOptions->d->addArgument(s->argv[i]);
+ if (everythingAfterArgIsArgs)
+ inOptions = false;
+ }
+@@ -1009,7 +996,7 @@
+ if (!(s->mStdargs & KCmdLineArgs::CmdLineArgQt))
+ {
+ s_qt_argv = new char*[2];
+- s_qt_argv[0] = qstrdup(s->encodeOutput(appName()));
++ s_qt_argv[0] = qstrdup(s->argc?s->argv[0]:"");
+ s_qt_argv[1] = 0;
+
+ return s_qt_argv;
+@@ -1026,12 +1013,13 @@
+ exit(255);
+ }
+
+- s_qt_argv = new char*[ args->count() + 2 ];
+- s_qt_argv[0] = qstrdup(s->encodeOutput(appName()));
++ int count=args->count();
++ s_qt_argv = new char*[ count + 2 ];
++ s_qt_argv[0] = qstrdup(s->argc?s->argv[0]:"");
+ int i = 0;
+- for(; i < args->count(); i++)
++ for(; i < count; i++)
+ {
+- s_qt_argv[i+1] = qstrdup(s->encodeOutput(args->arg(i)));
++ s_qt_argv[i+1] = qstrdup(args->d->parsedArgList->at(i));
+ }
+ s_qt_argv[i+1] = 0;
+
+@@ -1110,7 +1098,7 @@
+ const KCmdLineOptions &option = appOptions->d->options;
+ for (int i = 0; i < option.d->names.size(); i++)
+ {
+- QString opt_name = option.d->names[i];
++ QByteArray opt_name = option.d->names[i];
+ if (opt_name.startsWith('+'))
+ usage = usage + (opt_name.mid(1)) + ' ';
+ else if ( opt_name.startsWith("!+") )
+@@ -1129,7 +1117,7 @@
+ {
+ if (!(*args)->d->name.isEmpty() && !(*args)->d->id.isEmpty())
+ {
+- QString option = QString("--help-%1").arg((*args)->d->id);
++ QString option = QString("--help-%1").arg(QString::fromLatin1((*args)->d->id));
+ QString desc = i18n("Show %1 specific options", (*args)->d->name.toString());
+
+ s->printQ(optionFormatString.arg(option, -25).arg(desc));
+@@ -1169,7 +1157,7 @@
+ while (args != s->argsList->end())
+ {
+ const KCmdLineOptions &option = (*args)->d->options;
+- QString opt;
++ QByteArray opt;
+
+ for (int i = 0; i < option.d->names.size(); i++)
+ {
+@@ -1214,7 +1202,7 @@
+ description = dl.first();
+ dl.erase( dl.begin() );
+ }
+- QString name = option.d->names[i];
++ QByteArray name = option.d->names[i];
+ if (name.startsWith('!'))
+ name = name.mid(1);
+
+@@ -1229,7 +1217,7 @@
+ name = name.mid(1);
+ if (name.startsWith('[') && name.endsWith(']'))
+ name = name.mid(1, name.length()-2);
+- s->printQ(optionFormatString.arg(name, -25).arg(description));
++ s->printQ(optionFormatString.arg(QString::fromLocal8Bit(name), -25).arg(description));
+ }
+ else
+ {
+@@ -1259,7 +1247,7 @@
+ s->printQ(optionFormatStringDef.arg(QString( opt ), -25)
+ .arg(description, option.d->defaults[i]));
+ }
+- opt = "";
++ opt.clear();
+ }
+ }
+ for(QStringList::Iterator it = dl.begin();
+@@ -1309,24 +1297,21 @@
+ void
+ KCmdLineArgs::setCwd( const QByteArray &cwd )
+ {
+- s->mCwd = QString::fromUtf8(cwd);
++ s->mCwd = cwd;
+ }
+
+ void
+ KCmdLineArgs::clear()
+ {
+- delete d->parsedArgList;
+- d->parsedArgList = 0;
+- delete d->parsedOptionList;
+- d->parsedOptionList = 0;
++ delete d->parsedArgList; d->parsedArgList = 0;
++ delete d->parsedOptionList; d->parsedOptionList = 0;
+ }
+
+ void
+ KCmdLineArgs::reset()
+ {
+ if ( s->argsList ) {
+- delete s->argsList;
+- s->argsList = 0;
++ delete s->argsList; s->argsList = 0;
+ }
+ s->parsed = false;
+ }
+@@ -1356,23 +1341,21 @@
+
+ if (parsedOptionList->count() == 0)
+ {
+- delete parsedOptionList;
+- parsedOptionList = 0;
++ delete parsedOptionList; parsedOptionList = 0;
+ }
+ if (parsedArgList->count() == 0)
+ {
+- delete parsedArgList;
+- parsedArgList = 0;
++ delete parsedArgList; parsedArgList = 0;
+ }
+ }
+
+ void
+-KCmdLineArgsPrivate::setOption(const QString &opt, bool enabled)
++KCmdLineArgsPrivate::setOption(const QByteArray &opt, bool enabled)
+ {
+ if (isQt)
+ {
+ // Qt does it own parsing.
+- QString argString = "-";
++ QByteArray argString = "-";
+ if( !enabled )
+ argString += "no";
+ argString += opt;
+@@ -1383,18 +1366,18 @@
+ }
+
+ if (enabled)
+- parsedOptionList->insert( opt, QString::fromUtf8("t") );
++ parsedOptionList->insert( opt, "t" );
+ else
+- parsedOptionList->insert( opt, QString::fromUtf8("f") );
++ parsedOptionList->insert( opt, "f" );
+ }
+
+ void
+-KCmdLineArgsPrivate::setOption(const QString &opt, const QString &value)
++KCmdLineArgsPrivate::setOption(const QByteArray &opt, const QByteArray &value)
+ {
+ if (isQt)
+ {
+ // Qt does it's own parsing.
+- QString argString = "-";
++ QByteArray argString = "-";
+ argString += opt;
+ addArgument(argString);
+ addArgument(value);
+@@ -1403,7 +1386,7 @@
+ // Hack coming up!
+ if (argString == "-display")
+ {
+- setenv(DISPLAY, s->encodeOutput(value).data(), true);
++ setenv(DISPLAY, value.data(), true);
+ }
+ #endif
+ }
+@@ -1417,8 +1400,8 @@
+ QString
+ KCmdLineArgs::getOption(const QByteArray &_opt) const
+ {
+- QString opt = QString::fromUtf8(_opt);
+- QString value;
++ QByteArray opt = _opt;
++ QByteArray value;
+ if (d->parsedOptionList)
+ {
+ value = d->parsedOptionList->value(opt);
+@@ -1427,7 +1410,7 @@
+ return value;
+
+ // Look up the default.
+- QString opt_name;
++ QByteArray opt_name;
+ QString def;
+ bool dummy = true;
+ int result = s->findOption( d->options, opt, opt_name, def, dummy) & ~4;
+@@ -1436,7 +1419,7 @@
+ {
+ fprintf(stderr, "\n\nFAILURE (KCmdLineArgs):\n");
+ fprintf(stderr, "Application requests for getOption(\"%s\") but the \"%s\" option\n",
+- s->encodeOutput(opt).data(), s->encodeOutput(opt).data());
++ opt.data(), opt.data());
+ fprintf(stderr, "has never been specified via addCmdLineOptions( ... )\n\n");
+
+ Q_ASSERT( 0 );
+@@ -1446,20 +1429,18 @@
+ }
+
+ QStringList
+-KCmdLineArgs::getOptionList(const QByteArray &_opt) const
++KCmdLineArgs::getOptionList(const QByteArray &opt) const
+ {
+- QString opt = QString::fromUtf8(_opt);
+-
+ QStringList result;
+ if (!d->parsedOptionList)
+ return result;
+
+ while(true)
+ {
+- QString value = d->parsedOptionList->take(opt);
++ QByteArray value = d->parsedOptionList->take(opt);
+ if (value.isEmpty())
+ break;
+- result.prepend(value);
++ result.prepend(QString::fromLocal8Bit(value));
+ }
+
+ // Reinsert items in dictionary
+@@ -1469,7 +1450,7 @@
+ // So taking them out and then putting them back is the only way.
+ Q_FOREACH(const QString &str, result)
+ {
+- d->parsedOptionList->insertMulti(opt, str);
++ d->parsedOptionList->insertMulti(opt, str.toLocal8Bit());
+ }
+ return result;
+ }
+@@ -1478,8 +1459,8 @@
+ KCmdLineArgs::isSet(const QByteArray &_opt) const
+ {
+ // Look up the default.
+- QString opt = QString::fromUtf8(_opt);
+- QString opt_name;
++ QByteArray opt = _opt;
++ QByteArray opt_name;
+ QString def;
+ int result = 0;
+ KCmdLineArgsList::Iterator args = s->argsList->begin();
+@@ -1495,14 +1476,14 @@
+ {
+ fprintf(stderr, "\n\nFAILURE (KCmdLineArgs):\n");
+ fprintf(stderr, "Application requests for isSet(\"%s\") but the \"%s\" option\n",
+- s->encodeOutput(opt).data(), s->encodeOutput(opt).data());
++ opt.data(), opt.data());
+ fprintf(stderr, "has never been specified via addCmdLineOptions( ... )\n\n");
+
+ Q_ASSERT( 0 );
+ exit(255);
+ }
+
+- QString value;
++ QByteArray value;
+ if (d->parsedOptionList)
+ {
+ value = d->parsedOptionList->value(opt);
+@@ -1513,7 +1494,7 @@
+ if (result == 3)
+ return true;
+ else
+- return (value[0] == 't');
++ return (value.at(0) == 't');
+ }
+
+ if (result == 3)
+@@ -1527,9 +1508,7 @@
+ int
+ KCmdLineArgs::count() const
+ {
+- if (!d->parsedArgList)
+- return 0;
+- return d->parsedArgList->count();
++ return d->parsedArgList?d->parsedArgList->count():0;
+ }
+
+ QString
+@@ -1545,7 +1524,7 @@
+ exit(255);
+ }
+
+- return d->parsedArgList->at(n);
++ return QString::fromLocal8Bit(d->parsedArgList->at(n));
+ }
+
+ KUrl
+@@ -1575,7 +1554,7 @@
+ }
+
+ void
+-KCmdLineArgsPrivate::addArgument(const QString &argument)
++KCmdLineArgsPrivate::addArgument(const QByteArray &argument)
+ {
+ if (!parsedArgList)
+ parsedArgList = new KCmdLineParsedArgs;
+@@ -1594,7 +1573,5 @@
+ bool KCmdLineArgs::isTempFileSet()
+ {
+ KCmdLineArgs* args = KCmdLineArgs::parsedArgs( "kde-tempfile" );
+- if ( args )
+- return args->isSet( "tempfile" );
+- return false;
++ return args && args->isSet( "tempfile" );
+ }