[Xfce4-commits] r30087 - terminal/trunk/terminal

Nick Schermer nick at xfce.org
Sat Jun 27 21:26:16 CEST 2009


Author: nick
Date: 2009-06-27 19:26:16 +0000 (Sat, 27 Jun 2009)
New Revision: 30087

Modified:
   terminal/trunk/terminal/terminal-screen.c
Log:
Use the environ variables from glib for compatibility.


Modified: terminal/trunk/terminal/terminal-screen.c
===================================================================
--- terminal/trunk/terminal/terminal-screen.c	2009-06-27 19:25:56 UTC (rev 30086)
+++ terminal/trunk/terminal/terminal-screen.c	2009-06-27 19:26:16 UTC (rev 30087)
@@ -153,7 +153,7 @@
 
 
 
-G_DEFINE_TYPE (TerminalScreen, terminal_screen, GTK_TYPE_HBOX);
+G_DEFINE_TYPE (TerminalScreen, terminal_screen, GTK_TYPE_HBOX)
 
 
 
@@ -506,37 +506,37 @@
 static gchar**
 terminal_screen_get_child_environment (TerminalScreen *screen)
 {
-  extern gchar **environ;
   GtkWidget     *toplevel;
   gchar         *display_name;
   gchar        **result;
   gchar        **p;
   gchar         *term;
   guint          n;
+  gchar        **env;
+  const gchar   *value;
 
-  /* count env vars that are set */
-  for (p = environ; *p != NULL; ++p);
+  /* get all the environ variables */
+  env = g_listenv ();
 
-  n = p - environ;
+  n = g_strv_length (env);
   result = g_new (gchar *, n + 1 + 4);
 
   for (n = 0, p = environ; *p != NULL; ++p)
     {
-      if ((strncmp (*p, "COLUMNS=", 8) == 0)
-          || (strncmp (*p, "LINES=", 6) == 0)
-          || (strncmp (*p, "WINDOWID=", 9) == 0)
-          || (strncmp (*p, "TERM=", 5) == 0)
-          || (strncmp (*p, "GNOME_DESKTOP_ICON=", 19) == 0)
-          || (strncmp (*p, "COLORTERM=", 10) == 0)
-          || (strncmp (*p, "DISPLAY=", 8) == 0))
-        {
-          /* nothing: do not copy */
-        }
-      else
-        {
-          result[n] = g_strdup (*p);
-          ++n;
-        }
+      /* do not copy the following variables */
+      if (strcmp (*p, "COLUMNS") == 0
+          || strcmp (*p, "LINES") == 0
+          || strcmp (*p, "WINDOWID") == 0
+          || strcmp (*p, "TERM") == 0
+          || strcmp (*p, "GNOME_DESKTOP_ICON") == 0
+          || strcmp (*p, "COLORTERM") == 0
+          || strcmp (*p, "DISPLAY") == 0)
+        continue;
+
+      /* copy the variable */
+      value = g_getenv (*p);
+      if (G_LIKELY (value != NULL))
+        result[n++] = g_strconcat (*p, "=", value, NULL);
     }
 
   result[n++] = g_strdup ("COLORTERM=Terminal");
@@ -1349,7 +1349,7 @@
                 {
                   g_free (screen->working_directory);
                   screen->working_directory = g_get_current_dir ();
-                  if (chdir (cwd) == 0);
+                  if (chdir (cwd) == 0) {};
                 }
 
               g_free (cwd);




More information about the Xfce4-commits mailing list