Don't treat the Win32 user name like a gecos field, and when extracting a
authorMatthias Clasen <maclas@gmx.de>
Wed, 21 Jan 2004 23:41:46 +0000 (23:41 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Wed, 21 Jan 2004 23:41:46 +0000 (23:41 +0000)
Thu Jan 22 00:41:34 2004  Matthias Clasen  <maclas@gmx.de>

* glib/gutils.c (g_get_any_init): Don't treat the Win32
user name like a gecos field, and when extracting a real
name from a gecos field, replace '&' by the capitalized
user name (a traditional passwd feature).
(#118973, reported by Soeren Boll Overgaard)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib/gutils.c

index f0d9d0e..0a06bf8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Thu Jan 22 00:41:34 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * glib/gutils.c (g_get_any_init): Don't treat the Win32
+       user name like a gecos field, and when extracting a real
+       name from a gecos field, replace '&' by the capitalized
+       user name (a traditional passwd feature).  
+       (#118973, reported by Soeren Boll Overgaard)
+
 Tue Jan 20 22:31:22 2004  Matthias Clasen  <maclas@gmx.de>
 
        * NEWS: Start of 2.3.2 section.
index f0d9d0e..0a06bf8 100644 (file)
@@ -1,3 +1,11 @@
+Thu Jan 22 00:41:34 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * glib/gutils.c (g_get_any_init): Don't treat the Win32
+       user name like a gecos field, and when extracting a real
+       name from a gecos field, replace '&' by the capitalized
+       user name (a traditional passwd feature).  
+       (#118973, reported by Soeren Boll Overgaard)
+
 Tue Jan 20 22:31:22 2004  Matthias Clasen  <maclas@gmx.de>
 
        * NEWS: Start of 2.3.2 section.
index f0d9d0e..0a06bf8 100644 (file)
@@ -1,3 +1,11 @@
+Thu Jan 22 00:41:34 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * glib/gutils.c (g_get_any_init): Don't treat the Win32
+       user name like a gecos field, and when extracting a real
+       name from a gecos field, replace '&' by the capitalized
+       user name (a traditional passwd feature).  
+       (#118973, reported by Soeren Boll Overgaard)
+
 Tue Jan 20 22:31:22 2004  Matthias Clasen  <maclas@gmx.de>
 
        * NEWS: Start of 2.3.2 section.
index f0d9d0e..0a06bf8 100644 (file)
@@ -1,3 +1,11 @@
+Thu Jan 22 00:41:34 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * glib/gutils.c (g_get_any_init): Don't treat the Win32
+       user name like a gecos field, and when extracting a real
+       name from a gecos field, replace '&' by the capitalized
+       user name (a traditional passwd feature).  
+       (#118973, reported by Soeren Boll Overgaard)
+
 Tue Jan 20 22:31:22 2004  Matthias Clasen  <maclas@gmx.de>
 
        * NEWS: Start of 2.3.2 section.
index f0d9d0e..0a06bf8 100644 (file)
@@ -1,3 +1,11 @@
+Thu Jan 22 00:41:34 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * glib/gutils.c (g_get_any_init): Don't treat the Win32
+       user name like a gecos field, and when extracting a real
+       name from a gecos field, replace '&' by the capitalized
+       user name (a traditional passwd feature).  
+       (#118973, reported by Soeren Boll Overgaard)
+
 Tue Jan 20 22:31:22 2004  Matthias Clasen  <maclas@gmx.de>
 
        * NEWS: Start of 2.3.2 section.
index f0d9d0e..0a06bf8 100644 (file)
@@ -1,3 +1,11 @@
+Thu Jan 22 00:41:34 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * glib/gutils.c (g_get_any_init): Don't treat the Win32
+       user name like a gecos field, and when extracting a real
+       name from a gecos field, replace '&' by the capitalized
+       user name (a traditional passwd feature).  
+       (#118973, reported by Soeren Boll Overgaard)
+
 Tue Jan 20 22:31:22 2004  Matthias Clasen  <maclas@gmx.de>
 
        * NEWS: Start of 2.3.2 section.
index 570eab9..f791005 100644 (file)
@@ -957,8 +957,19 @@ g_get_any_init (void)
          }
        if (pw)
          {
-           g_user_name = g_strdup (pw->pw_name);
-           g_real_name = g_strdup (pw->pw_gecos);
+           gchar **gecos_fields;
+           gchar **name_parts;
+
+           g_user_name = g_strdup (pw->pw_name);
+
+           /* split the gecos field and substitute '&' */
+           gecos_fields = g_strsplit (pw->pw_gecos, ",", 0);
+           name_parts = g_strsplit (gecos_fields[0], "&", 0);
+           pw->pw_name[0] = g_ascii_toupper (pw->pw_name[0]);
+           g_real_name = g_strjoinv (pw->pw_name, name_parts);
+           g_strfreev (gecos_fields);
+           g_strfreev (name_parts);
+
            if (!g_home_dir)
              g_home_dir = g_strdup (pw->pw_dir);
          }
@@ -993,20 +1004,6 @@ g_get_any_init (void)
        g_user_name = g_strdup ("somebody");
       if (!g_real_name)
        g_real_name = g_strdup ("Unknown");
-      else
-       {
-         gchar *p;
-
-         for (p = g_real_name; *p; p++)
-           if (*p == ',')
-             {
-               *p = 0;
-               p = g_strdup (g_real_name);
-               g_free (g_real_name);
-               g_real_name = p;
-               break;
-             }
-       }
     }
 }