Patch from Havoc Pennington to add functions for setting and getting a
authorOwen Taylor <otaylor@redhat.com>
Fri, 8 Nov 2002 00:51:25 +0000 (00:51 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Fri, 8 Nov 2002 00:51:25 +0000 (00:51 +0000)
Thu Nov  7 19:32:26 2002  Owen Taylor  <otaylor@redhat.com>

        * glib/gutils.[ch] (g_set/get_application_name):
        Patch from Havoc Pennington to add functions for
        setting and getting a human readable application
        name.

        * configure.in: Up to version 2.1.3, since we'll
        need to depend on last addition for GTK+.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
configure.in
docs/reference/glib/tmpl/misc_utils.sgml
glib/gutils.c
glib/gutils.h

index bf6c80082ca9833d0a52af3d0665d31c78086b56..7c65eae8454a8ea0fac10612ab624156be8d577d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Thu Nov  7 19:32:26 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/gutils.[ch] (g_set/get_application_name): 
+       Patch from Havoc Pennington to add functions for 
+       setting and getting a human readable application
+       name.
+
+       * configure.in: Up to version 2.1.3, since we'll
+       need to depend on last addition for GTK+.
+
 2002-11-06  Tor Lillqvist  <tml@iki.fi>
 
        * glib/glib.def: Add g_main_thread_init.
index bf6c80082ca9833d0a52af3d0665d31c78086b56..7c65eae8454a8ea0fac10612ab624156be8d577d 100644 (file)
@@ -1,3 +1,13 @@
+Thu Nov  7 19:32:26 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/gutils.[ch] (g_set/get_application_name): 
+       Patch from Havoc Pennington to add functions for 
+       setting and getting a human readable application
+       name.
+
+       * configure.in: Up to version 2.1.3, since we'll
+       need to depend on last addition for GTK+.
+
 2002-11-06  Tor Lillqvist  <tml@iki.fi>
 
        * glib/glib.def: Add g_main_thread_init.
index bf6c80082ca9833d0a52af3d0665d31c78086b56..7c65eae8454a8ea0fac10612ab624156be8d577d 100644 (file)
@@ -1,3 +1,13 @@
+Thu Nov  7 19:32:26 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/gutils.[ch] (g_set/get_application_name): 
+       Patch from Havoc Pennington to add functions for 
+       setting and getting a human readable application
+       name.
+
+       * configure.in: Up to version 2.1.3, since we'll
+       need to depend on last addition for GTK+.
+
 2002-11-06  Tor Lillqvist  <tml@iki.fi>
 
        * glib/glib.def: Add g_main_thread_init.
index bf6c80082ca9833d0a52af3d0665d31c78086b56..7c65eae8454a8ea0fac10612ab624156be8d577d 100644 (file)
@@ -1,3 +1,13 @@
+Thu Nov  7 19:32:26 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/gutils.[ch] (g_set/get_application_name): 
+       Patch from Havoc Pennington to add functions for 
+       setting and getting a human readable application
+       name.
+
+       * configure.in: Up to version 2.1.3, since we'll
+       need to depend on last addition for GTK+.
+
 2002-11-06  Tor Lillqvist  <tml@iki.fi>
 
        * glib/glib.def: Add g_main_thread_init.
index bf6c80082ca9833d0a52af3d0665d31c78086b56..7c65eae8454a8ea0fac10612ab624156be8d577d 100644 (file)
@@ -1,3 +1,13 @@
+Thu Nov  7 19:32:26 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/gutils.[ch] (g_set/get_application_name): 
+       Patch from Havoc Pennington to add functions for 
+       setting and getting a human readable application
+       name.
+
+       * configure.in: Up to version 2.1.3, since we'll
+       need to depend on last addition for GTK+.
+
 2002-11-06  Tor Lillqvist  <tml@iki.fi>
 
        * glib/glib.def: Add g_main_thread_init.
index bf6c80082ca9833d0a52af3d0665d31c78086b56..7c65eae8454a8ea0fac10612ab624156be8d577d 100644 (file)
@@ -1,3 +1,13 @@
+Thu Nov  7 19:32:26 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/gutils.[ch] (g_set/get_application_name): 
+       Patch from Havoc Pennington to add functions for 
+       setting and getting a human readable application
+       name.
+
+       * configure.in: Up to version 2.1.3, since we'll
+       need to depend on last addition for GTK+.
+
 2002-11-06  Tor Lillqvist  <tml@iki.fi>
 
        * glib/glib.def: Add g_main_thread_init.
index bf6c80082ca9833d0a52af3d0665d31c78086b56..7c65eae8454a8ea0fac10612ab624156be8d577d 100644 (file)
@@ -1,3 +1,13 @@
+Thu Nov  7 19:32:26 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/gutils.[ch] (g_set/get_application_name): 
+       Patch from Havoc Pennington to add functions for 
+       setting and getting a human readable application
+       name.
+
+       * configure.in: Up to version 2.1.3, since we'll
+       need to depend on last addition for GTK+.
+
 2002-11-06  Tor Lillqvist  <tml@iki.fi>
 
        * glib/glib.def: Add g_main_thread_init.
index b3cb4f286654a7a5dde002c09981872da1fb6442..ad6931ab53c6ba5a5cfbe3298d042ebeff4f688d 100644 (file)
@@ -33,7 +33,7 @@ GLIB_AC_DIVERT_BEFORE_HELP([
 #
 GLIB_MAJOR_VERSION=2
 GLIB_MINOR_VERSION=1
-GLIB_MICRO_VERSION=0
+GLIB_MICRO_VERSION=3
 GLIB_INTERFACE_AGE=0
 GLIB_BINARY_AGE=`expr 100 '*' $GLIB_MINOR_VERSION + $GLIB_MICRO_VERSION`
 GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION
index c717c9b2b6f99640dfdebad50eb60e4d2a328390..50f759a586f0dcd7f5ab7f7efd20438cad6ecc3f 100644 (file)
@@ -16,7 +16,8 @@ These are portable utility functions.
 
 <!-- ##### FUNCTION g_get_prgname ##### -->
 <para>
-Gets the name of the program.
+Gets the name of the program. This name should NOT be localized,
+contrast with g_get_application_name().
 (If you are using GDK or GTK+ the program name is set in gdk_init(), which
 is called by gtk_init(). The program name is found by taking the last
 component of <literal>argv[0]</literal>.)
@@ -27,7 +28,9 @@ component of <literal>argv[0]</literal>.)
 
 <!-- ##### FUNCTION g_set_prgname ##### -->
 <para>
-Sets the name of the program.
+Sets the name of the program. This name should NOT be localized, 
+contrast with g_set_application_name(). Note that for thread-safety
+reasons this function can only be called once.
 </para>
 
 @prgname: the name of the program.
index 1688dccf353be4fa54bea79cb65f09b4053db75c..692d387f4a6a5d753ab73769ead3e837f416a056 100644 (file)
@@ -997,6 +997,70 @@ g_set_prgname (const gchar *prgname)
   G_UNLOCK (g_prgname);
 }
 
+G_LOCK_DEFINE (g_application_name);
+static gchar *g_application_name = NULL;
+
+/**
+ * g_get_application_name:
+ * 
+ * Gets a human-readable name for the application, as set by
+ * g_set_application_name(). This name should be localized if
+ * possible, and is intended for display to the user.  Contrast with
+ * g_get_prgname(), which gets a non-localized name. If
+ * g_set_application_name() has not been called, returns the result of
+ * g_get_prgname() (which may be %NULL if g_set_prgname() has also not
+ * been called).
+ * 
+ * Return value: human-readable application name. may return %NULL
+ **/
+G_CONST_RETURN gchar*
+g_get_application_name (void)
+{
+  gchar* retval;
+
+  G_LOCK (g_application_name);
+  retval = g_application_name;
+  G_UNLOCK (g_application_name);
+
+  if (retval == NULL)
+    return g_get_prgname ();
+  
+  return retval;
+}
+
+/**
+ * g_set_application_name:
+ * @application_name: localized name of the application
+ *
+ * Sets a human-readable name for the application. This name should be
+ * localized if possible, and is intended for display to the user.
+ * Contrast with g_set_prgname(), which sets a non-localized name.
+ * g_set_prgname() will be called automatically by gtk_init(),
+ * but g_set_application_name() will not.
+ *
+ * Note that for thread safety reasons, this function can only
+ * be called once.
+ *
+ * The application name will be used in contexts such as error messages,
+ * or when displaying an application's name in the task list.
+ * 
+ **/
+void
+g_set_application_name (const gchar *application_name)
+{
+  gboolean already_set = FALSE;
+       
+  G_LOCK (g_application_name);
+  if (g_application_name)
+    already_set = TRUE;
+  else
+    g_application_name = g_strdup (application_name);
+  G_UNLOCK (g_application_name);
+
+  if (already_set)
+    g_warning ("g_set_application() name called multiple times");
+}
+
 guint
 g_direct_hash (gconstpointer v)
 {
index b3b2dcfff804da6d8aa3c84a8545f80ad852c548..b6af7030e6833a41c1fbf03f69f98a9cd72b5692 100644 (file)
@@ -113,12 +113,14 @@ G_BEGIN_DECLS
 
 /* Retrive static string info
  */
-G_CONST_RETURN gchar* g_get_user_name      (void);
-G_CONST_RETURN gchar* g_get_real_name      (void);
-G_CONST_RETURN gchar* g_get_home_dir       (void);
-G_CONST_RETURN gchar* g_get_tmp_dir        (void);
-gchar*                g_get_prgname        (void);
-void                  g_set_prgname        (const gchar *prgname);
+G_CONST_RETURN gchar* g_get_user_name        (void);
+G_CONST_RETURN gchar* g_get_real_name        (void);
+G_CONST_RETURN gchar* g_get_home_dir         (void);
+G_CONST_RETURN gchar* g_get_tmp_dir          (void);
+gchar*                g_get_prgname          (void);
+void                  g_set_prgname          (const gchar *prgname);
+G_CONST_RETURN gchar* g_get_application_name (void);
+void                  g_set_application_name (const gchar *application_name);
 
 
 typedef struct _GDebugKey      GDebugKey;