Review Request: Fix KCmdLineArgs so that it doesn't strip the path from argv[0] but still display the appname without path where needed

George Kiagiadakis kiagiadakis.george at gmail.com
Mon Oct 19 22:14:45 BST 2009


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/1913/
-----------------------------------------------------------

Review request for kdelibs.


Summary
-------

This patch makes KCmdLineArgs to use a separate variable to hold the app name (without the path) instead of striping the path from argv[0]. The path in argv[0] might still be useful, for example for use in QCoreApplication::applicationFilePath(). In addition, when striping the path from the app name, use QDir::separator() to make it work correctly on windows.

For the reason why I am doing this, please read http://lists.kde.org/?l=kde-core-devel&m=125560663311741&w=2


Diffs
-----

  /trunk/KDE/kdelibs/kdecore/kernel/kcmdlineargs.cpp 1037603 

Diff: http://reviewboard.kde.org/r/1913/diff


Testing
-------

I have tested the patch on linux, freebsd and windows using the following testcase:

int main(int argc, char **argv)
{
    kDebug() << argv[0];

    KAboutData a("test", 0, KLocalizedString(), "0.1");
    KCmdLineArgs::init(argc, argv, &a);
    KApplication app(false);

    kDebug() << argv[0];
    kDebug() << QCoreApplication::applicationDirPath();
    kDebug() << QCoreApplication::applicationFilePath();
    kDebug() << KCmdLineArgs::appName();
}

The result is as expected on all platforms: argv[0] doesn't change, appName() returns the application's name without the path and applicationDirPath()/applicationFilePath() return correct paths.


Thanks,

George





More information about the kde-core-devel mailing list