changeset 28421:c648cca864db

Use Octave functions to get and set environment variables (bug #54334). * libgui/src/resource-manager.cc (resource_manager::update_network_settings): Use Octave functions to get and set environment variables.
author Markus Mützel <markus.muetzel@gmx.de>
date Mon, 08 Jun 2020 21:59:17 +0200
parents 7987bad47033
children 02a5da73a157
files libgui/src/resource-manager.cc
diffstat 1 files changed, 20 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/resource-manager.cc	Sun Jun 07 11:27:05 2020 +0200
+++ b/libgui/src/resource-manager.cc	Mon Jun 08 21:59:17 2020 +0200
@@ -393,16 +393,16 @@
         // The proxy data from the Environment variables
         if (proxy_type_string == global_proxy_all_types.at (2))
           {
-            const int nr_of_env_vars = 6;
-            char env_vars[nr_of_env_vars][20]
-              = { "ALL_PROXY", "all_proxy",
+            const std::vector<std::string> env_vars = 
+                { "ALL_PROXY", "all_proxy",
                   "HTTP_PROXY", "http_proxy",
-                  "HTTPS_PROXY", "https_proxy"};
+                  "HTTPS_PROXY", "https_proxy" };
 
-            int count = 0;
-            while ((! proxy_url.isValid ()) && (count < nr_of_env_vars))
+            unsigned int count = 0;
+            while ((! proxy_url.isValid ()) && (count < env_vars.size ()))
               {
-                proxy_url = QUrl (QString (getenv (env_vars[count])));
+                proxy_url = QUrl (QString::fromStdString
+                                    (sys::env::getenv (env_vars[count])));
                 count++;
               }
 
@@ -424,20 +424,21 @@
           }
       }
 
-      // Set proxy for Qt framework
-      proxy.setType (proxy_type);
-      proxy.setHostName (host);
-      proxy.setPort (port);
-      proxy.setUser (user);
-      proxy.setPassword (pass);
+    // Set proxy for Qt framework
+    proxy.setType (proxy_type);
+    proxy.setHostName (host);
+    proxy.setPort (port);
+    proxy.setUser (user);
+    proxy.setPassword (pass);
 
-      QNetworkProxy::setApplicationProxy (proxy);
+    QNetworkProxy::setApplicationProxy (proxy);
 
-      // Set proxy for curl library if not based on environment variables
-      setenv ("http_proxy", proxy_url.toString ().toLocal8Bit ().data (), 1);
-      setenv ("HTTP_PROXY", proxy_url.toString ().toLocal8Bit ().data (), 1);
-      setenv ("https_proxy", proxy_url.toString ().toLocal8Bit ().data (), 1);
-      setenv ("HTTPS_PROXY", proxy_url.toString ().toLocal8Bit ().data (), 1);
+    // Set proxy for curl library if not based on environment variables
+    std::string proxy_url_str = proxy_url.toString().toStdString ();
+    sys::env::putenv ("http_proxy", proxy_url_str);
+    sys::env::putenv ("HTTP_PROXY", proxy_url_str);
+    sys::env::putenv ("https_proxy", proxy_url_str);
+    sys::env::putenv ("HTTPS_PROXY", proxy_url_str);
   }
 
   QIcon resource_manager::icon (const QString& icon_name, bool fallback)