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);