Hi all, compiling kdewallet.cpp in the Subversion 1.7.5 distribution generates the following errors with g++-4.7.x:
[QUOTE] subversion/libsvn_auth_kwallet/kwallet.cpp: In function 'svn_boolean_t kwallet_password_get(const char**, apr_hash_t*, const char*, const char*, apr_hash_t*, svn_boolean_t, apr_pool_t*)': subversion/libsvn_auth_kwallet/kwallet.cpp:207:68: error: taking address of temporary array subversion/libsvn_auth_kwallet/kwallet.cpp:217:49: error: taking address of temporary array subversion/libsvn_auth_kwallet/kwallet.cpp: In function 'svn_boolean_t kwallet_password_set(apr_hash_t*, const char*, const char*, const char*, apr_hash_t*, svn_boolean_t, apr_pool_t*)': subversion/libsvn_auth_kwallet/kwallet.cpp:277:68: error: taking address of temporary array subversion/libsvn_auth_kwallet/kwallet.cpp:287:49: error: taking address of temporary array [/QUOTE] I'm attaching a patch to correct the problem after it was reported here: https://bugs.mageia.org/show_bug.cgi?id=6717 The patch is somewhat crude, so feel free to improve it. Regards, Shlomi Fish -- ----------------------------------------------------------------- Shlomi Fish http://www.shlomifish.org/ My Aphorisms - http://www.shlomifish.org/humour.html :)-< +-- — Moses the Smiley by Shlomi Fish Please reply to list if it's a mailing list post - http://shlom.in/reply .
--- subversion-1.7.5/subversion/libsvn_auth_kwallet/kwallet.cpp.kdewallet_gpp 2010-12-30 22:46:50.000000000 +0200 +++ subversion-1.7.5/subversion/libsvn_auth_kwallet/kwallet.cpp 2012-07-07 22:56:04.406076841 +0300 @@ -204,17 +204,27 @@ if (! qApp) { int argc = 1; - app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"}); + static char * my_argv[1]; + static char my_arg1[10] = "svn"; + my_argv[0] = my_arg1; + app = new QCoreApplication(argc, my_argv); } - KCmdLineArgs::init(1, - (char *[1]) {(char *) "svn"}, + { + int argc = 1; + static char * my_argv[1]; + static char my_arg1[10] = "svn"; + my_argv[0] = my_arg1; + + KCmdLineArgs::init(1, + my_argv, get_application_name(parameters, pool), "subversion", ki18n(get_application_name(parameters, pool)), SVN_VER_NUMBER, ki18n("Version control system"), KCmdLineArgs::CmdLineArgKDE); + } KComponentData component_data(KCmdLineArgs::aboutData()); svn_boolean_t ret = FALSE; QString wallet_name = get_wallet_name(parameters); @@ -274,17 +284,26 @@ if (! qApp) { int argc = 1; - app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"}); + static char * my_argv[1]; + static char my_arg1[10] = "svn"; + my_argv[0] = my_arg1; + app = new QCoreApplication(argc, my_argv); } - KCmdLineArgs::init(1, - (char *[1]) {(char *) "svn"}, + { + int argc = 1; + static char * my_argv[1]; + static char my_arg1[10] = "svn"; + my_argv[0] = my_arg1; + KCmdLineArgs::init(argc, + my_argv, get_application_name(parameters, pool), "subversion", ki18n(get_application_name(parameters, pool)), SVN_VER_NUMBER, ki18n("Version control system"), KCmdLineArgs::CmdLineArgKDE); + } KComponentData component_data(KCmdLineArgs::aboutData()); svn_boolean_t ret = FALSE; QString q_password = QString::fromUtf8(password);