]> Pileus Git - ~andy/gtk/commitdiff
docs: Move documentation to inline comments: properties
authorJavier Jardón <jjardon@gnome.org>
Mon, 15 Nov 2010 16:59:52 +0000 (17:59 +0100)
committerJavier Jardón <jjardon@gnome.org>
Mon, 15 Nov 2010 20:06:34 +0000 (21:06 +0100)
docs/reference/gdk/tmpl/.gitignore
docs/reference/gdk/tmpl/properties.sgml [deleted file]
gdk/gdkproperty.h
gdk/gdkselection.c
gdk/gdktypes.h
gdk/x11/gdkproperty-x11.c
gdk/x11/gdkselection-x11.c

index e835592bcbd4aac5ab90512ebdaf47fd33548a3e..cbc990eb2c6c912026ee4305f313d122f0a9c7b7 100644 (file)
@@ -10,6 +10,7 @@ gdktesting.sgml
 general.sgml
 keys.sgml
 pango_interaction.sgml
+properties.sgml
 pixbufs.sgml
 regions.sgml
 selections.sgml
diff --git a/docs/reference/gdk/tmpl/properties.sgml b/docs/reference/gdk/tmpl/properties.sgml
deleted file mode 100644 (file)
index 64a1b2d..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-Properties and Atoms
-
-<!-- ##### SECTION Short_Description ##### -->
-Functions to manipulate properties on windows
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-Each window under X can have any number of associated
-<firstterm>properties</firstterm> attached to it.
-Properties are arbitrary chunks of data identified by
-<firstterm>atom</firstterm>s. (An <firstterm>atom</firstterm>
-is a numeric index into a string table on the X server. They are used
-to transfer strings efficiently between clients without
-having to transfer the entire string.) A property
-has an associated type, which is also identified
-using an atom.
-</para>
-<para>
-A property has an associated <firstterm>format</firstterm>,
-an integer describing how many bits are in each unit
-of data inside the property. It must be 8, 16, or 32.
-When data is transferred between the server and client,
-if they are of different endianesses it will be byteswapped
-as necessary according to the format of the property.
-Note that on the client side, properties of format 32
-will be stored with one unit per <emphasis>long</emphasis>,
-even if a long integer has more than 32 bits on the platform.
-(This decision was apparently made for Xlib to maintain
-compatibility with programs that assumed longs were 32
-bits, at the expense of programs that knew better.)
-</para>
-<para>
-The functions in this section are used to add, remove
-and change properties on windows, to convert atoms
-to and from strings and to manipulate some types of
-data commonly stored in X window properties.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GdkAtom ##### -->
-<para>
-An opaque type representing a string as an index into a table
-of strings on the X server.
-</para>
-
-
-<!-- ##### MACRO GDK_ATOM_TO_POINTER ##### -->
-<para>
-Converts a #GdkAtom into a pointer type. 
-</para>
-
-@atom: a #GdkAtom.
-
-
-<!-- ##### MACRO GDK_POINTER_TO_ATOM ##### -->
-<para>
-Extracts a #GdkAtom from a pointer. The #GdkAtom must have been
-stored in the pointer with GDK_ATOM_TO_POINTER().
-</para>
-
-@ptr: a pointer containing a #GdkAtom.
-
-
-<!-- ##### MACRO GDK_NONE ##### -->
-<para>
-A null value for #GdkAtom, used in a similar way as <literal>None</literal>
-in the Xlib API.
-</para>
-
-
-
-<!-- ##### FUNCTION gdk_text_property_to_text_list ##### -->
-<para>
-Converts a text string from the encoding as it is stored in
-a property into an array of strings in the encoding of
-the current local. (The elements of the array represent
-the nul-separated elements of the original text string.)
-</para>
-
-@encoding: an atom representing the encoding. The most common
-           values for this are <literal>STRING</literal>,
-           or <literal>COMPOUND_TEXT</literal>. This is
-           value used as the type for the property.
-@format: the format of the property.
-@text: the text data.
-@length: the length of the property, in items.
-@list: location to store a terminated array of strings
-       in the encoding of the current locale. This
-       array should be freed using gdk_free_text_list().
-@Returns: the number of strings stored in @list, or 0,
-          if the conversion failed.
-
-
-<!-- ##### FUNCTION gdk_text_property_to_text_list_for_display ##### -->
-<para>
-
-</para>
-
-@display: 
-@encoding: 
-@format: 
-@text: 
-@length: 
-@list: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_free_text_list ##### -->
-<para>
-Frees the array of strings created by
-gdk_text_property_to_text_list().
-</para>
-
-@list: the value stored in the @list parameter by
-       a call to gdk_text_property_to_text_list().
-
-
-<!-- ##### FUNCTION gdk_text_property_to_utf8_list ##### -->
-<para>
-
-</para>
-
-@encoding: 
-@format: 
-@text: 
-@length: 
-@list: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_text_property_to_utf8_list_for_display ##### -->
-<para>
-
-</para>
-
-@display: 
-@encoding: 
-@format: 
-@text: 
-@length: 
-@list: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_string_to_compound_text ##### -->
-<para>
-Converts a string from the encoding of the current locale 
-into a form suitable for storing in a window property.
-</para>
-
-@str: a nul-terminated string.
-@encoding: location to store the encoding atom (to be used as the type for the property).
-@format: location to store the format for the property.
-@ctext: location to store newly allocated data for the property.
-@length: location to store the length of @ctext in items.
-@Returns: 0 upon sucess, non-zero upon failure.
-
-
-<!-- ##### FUNCTION gdk_string_to_compound_text_for_display ##### -->
-<para>
-
-</para>
-
-@display: 
-@str: 
-@encoding: 
-@format: 
-@ctext: 
-@length: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_free_compound_text ##### -->
-<para>
-Frees the data returned from gdk_string_to_compound_text().
-</para>
-
-@ctext: The pointer stored in @ctext from a call to gdk_string_to_compound_text().
-
-
-<!-- ##### FUNCTION gdk_utf8_to_string_target ##### -->
-<para>
-
-</para>
-
-@str: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_utf8_to_compound_text ##### -->
-<para>
-
-</para>
-
-@str: 
-@encoding: 
-@format: 
-@ctext: 
-@length: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_utf8_to_compound_text_for_display ##### -->
-<para>
-
-</para>
-
-@display: 
-@str: 
-@encoding: 
-@format: 
-@ctext: 
-@length: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_atom_intern ##### -->
-<para>
-Finds or creates an atom corresponding to a given string.
-</para>
-
-@atom_name: a string.
-@only_if_exists: if %TRUE, GDK is allowed to not create a new atom, but
-                 just return %GDK_NONE if the requested atom doesn't already
-                 exists. Currently, the flag is ignored, since checking the 
-                 existance of an atom is as expensive as creating it.
-@Returns: the atom corresponding to @atom_name.
-
-
-<!-- ##### FUNCTION gdk_atom_intern_static_string ##### -->
-<para>
-
-</para>
-
-@atom_name: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gdk_atom_name ##### -->
-<para>
-Determines the string corresponding to an atom.
-</para>
-
-@atom: a #GdkAtom.
-@Returns: a newly-allocated string containing the string
-          corresponding to @atom. When you are done
-          with the return value, you should free it 
-          using g_free().
-
-
-<!-- ##### FUNCTION gdk_property_get ##### -->
-<para>
-Retrieves a portion of the contents of a property. If the
-property does not exist, then the function returns %FALSE,
-and %GDK_NONE will be stored in @actual_property_type.
-</para>
-<note>
-<para>
-The XGetWindowProperty() function that gdk_property_get()
-uses has a very confusing and complicated set of semantics.  
-Unfortunately, gdk_property_get() makes the situation
-worse instead of better (the semantics should be considered
-undefined), and also prints warnings to stderr in cases where it
-should return a useful error to the program. You are advised to use 
-XGetWindowProperty() directly until a replacement function for 
-gdk_property_get()
-is provided. 
-</para>
-</note>
-
-@window: a #GdkWindow.
-@property: the property to retrieve.
-@type: the desired property type, or %GDK_NONE, if any type of data
-       is acceptable. If this does not match the actual
-       type, then @actual_format and @actual_length will
-       be filled in, a warning will be printed to stderr
-       and no data will be returned.
-@offset: the offset into the property at which to begin
-         retrieving data, in 4 byte units.
-@length: the length of the data to retrieve in bytes.  Data is
-         considered to be retrieved in 4 byte chunks, so @length 
-         will be rounded up to the next highest 4 byte boundary 
-         (so be careful not to pass a value that might overflow 
-          when rounded up).
-@pdelete: if %TRUE, delete the property after retrieving the
-          data.
-@actual_property_type: location to store the actual type of 
-                       the property.
-@actual_format: location to store the actual return format of the
-                data; either 8, 16 or 32 bits.
-@actual_length: location to store the length of the retrieved data, in
-                bytes.  Data returned in the 32 bit format is stored
-                in a long variable, so the actual number of 32 bit
-                elements should be be calculated via
-                @actual_length/sizeof(glong) to ensure portability to
-                64 bit systems.
-@data: location to store a pointer to the data. The retrieved
-       data should be freed with g_free() when you are finished
-       using it.
-@Returns: %TRUE if data was successfully received and stored
-          in @data, otherwise %FALSE.
-
-
-<!-- ##### FUNCTION gdk_property_change ##### -->
-<para>
-Changes the contents of a property on a window.
-</para>
-
-@window: a #GdkWindow.
-@property: the property to change.
-@type: the new type for the property. If @mode is
-       %GDK_PROP_MODE_PREPEND or %GDK_PROP_MODE_APPEND, then this 
-       must match the existing type or an error will occur.
-@format: the new format for the property. If @mode is
-         %GDK_PROP_MODE_PREPEND or %GDK_PROP_MODE_APPEND, then this 
-         must match the existing format or an error will occur.
-@mode: a value describing how the new data is to be combined
-       with the current data.
-@data: the data
-       (a <literal>guchar *</literal>
-        <literal>gushort *</literal>, or 
-        <literal>gulong *</literal>, depending on @format), cast to a 
-        <literal>guchar *</literal>.
-@nelements: the number of elements of size determined by the format,
-            contained in @data.
-
-
-<!-- ##### ENUM GdkPropMode ##### -->
-<para>
-Describes how existing data is combined with new data when
-using gdk_property_change().
-</para>
-
-@GDK_PROP_MODE_REPLACE: the new data replaces the existing data.
-@GDK_PROP_MODE_PREPEND: the new data is prepended to the existing data.
-@GDK_PROP_MODE_APPEND: the new data is appended to the existing data.
-
-<!-- ##### FUNCTION gdk_property_delete ##### -->
-<para>
-Deletes a property from a window.
-</para>
-
-@window: a #GdkWindow.
-@property: the property to delete.
-
-
index 48d5a07d6742caac2cdd0598818ab188add16bf2..4ea6f8153d40ade5169d503468f8425a9812e8ab 100644 (file)
 
 G_BEGIN_DECLS
 
+
+/**
+ * GdkPropMode:
+ * @GDK_PROP_MODE_REPLACE: the new data replaces the existing data.
+ * @GDK_PROP_MODE_PREPEND: the new data is prepended to the existing data.
+ * @GDK_PROP_MODE_APPEND: the new data is appended to the existing data.
+ *
+ * Describes how existing data is combined with new data when
+ * using gdk_property_change().
+ */
 typedef enum
 {
   GDK_PROP_MODE_REPLACE,
@@ -42,11 +52,13 @@ typedef enum
   GDK_PROP_MODE_APPEND
 } GdkPropMode;
 
+
 GdkAtom gdk_atom_intern (const gchar *atom_name,
                         gboolean     only_if_exists);
 GdkAtom gdk_atom_intern_static_string (const gchar *atom_name);
 gchar*  gdk_atom_name   (GdkAtom      atom);
 
+
 gboolean gdk_property_get    (GdkWindow     *window,
                              GdkAtom        property,
                              GdkAtom        type,
@@ -66,6 +78,7 @@ void     gdk_property_change (GdkWindow     *window,
                              gint           nelements);
 void     gdk_property_delete (GdkWindow     *window,
                              GdkAtom        property);
+
 #ifndef GDK_MULTIHEAD_SAFE
 gint gdk_text_property_to_text_list (GdkAtom        encoding,
                                     gint           format,
@@ -87,7 +100,7 @@ gint gdk_string_to_compound_text    (const gchar   *str,
                                     gint          *format,
                                     guchar       **ctext,
                                     gint          *length);
-#endif
+#endif /* GDK_MULTIHEAD_SAFE */
 
 gint gdk_text_property_to_text_list_for_display (GdkDisplay     *display,
                                                 GdkAtom         encoding,
index fc191aa74f6100f82a57dff2ae7c83c6f4d57920..0a4b428e40d81b7e3af68c5f6db60d56cd3cb29b 100644 (file)
@@ -137,6 +137,27 @@ gdk_selection_send_notify (GdkNativeWindow requestor,
                                         target, property, time);
 }
 
+/**
+ * gdk_text_property_to_text_list:
+ * @encoding: an atom representing the encoding. The most common
+ *   values for this are <literal>STRING</literal>,
+ *   or <literal>COMPOUND_TEXT</literal>. This is
+ *   value used as the type for the property.
+ * @format: the format of the property.
+ * @text: the text data.
+ * @length: the length of the property, in items.
+ * @list: location to store a terminated array of strings
+ *   in the encoding of the current locale. This
+ *   array should be freed using gdk_free_text_list().
+ *
+ * Converts a text string from the encoding as it is stored in
+ * a property into an array of strings in the encoding of
+ * the current local. (The elements of the array represent
+ * the nul-separated elements of the original text string.)
+ *
+ * Returns: the number of strings stored in @list, or 0,
+ *   if the conversion failed.
+ */
 gint
 gdk_text_property_to_text_list (GdkAtom       encoding,
                                gint          format, 
@@ -174,6 +195,20 @@ gdk_text_property_to_utf8_list (GdkAtom        encoding,
                                                     encoding, format, text, length, list);
 }
 
+/**
+ * gdk_string_to_compound_text:
+ * @str: a nul-terminated string.
+ * @encoding: location to store the encoding atom (to be used as
+ *   the type for the property).
+ * @format: location to store the format for the property.
+ * @ctext: location to store newly allocated data for the property.
+ * @length: location to store the length of @ctext in items.
+ *
+ * Converts a string from the encoding of the current locale
+ * into a form suitable for storing in a window property.
+ *
+ * Returns: 0 upon sucess, non-zero upon failure.
+ */
 gint
 gdk_string_to_compound_text (const gchar *str,
                             GdkAtom     *encoding,
index 4a18bd1bb55024039636f1939bcb9417385fab78..de5ebe27c715788e3c52fdd87d57d9c8eb40934d 100644 (file)
@@ -73,9 +73,29 @@ typedef struct _GdkPoint           GdkPoint;
  */
 typedef cairo_rectangle_int_t        GdkRectangle;
 
+/**
+ * GdkAtom:
+ *
+ * An opaque type representing a string as an index into a table
+ * of strings on the X server.
+ */
 typedef struct _GdkAtom            *GdkAtom;
 
+/**
+ * GDK_ATOM_TO_POINTER:
+ * @atom: a #GdkAtom.
+ *
+ * Converts a #GdkAtom into a pointer type.
+ */
 #define GDK_ATOM_TO_POINTER(atom) (atom)
+
+/**
+ * GDK_POINTER_TO_ATOM:
+ * @ptr: a pointer containing a #GdkAtom.
+ *
+ * Extracts a #GdkAtom from a pointer. The #GdkAtom must have been
+ * stored in the pointer with GDK_ATOM_TO_POINTER().
+ */
 #define GDK_POINTER_TO_ATOM(ptr)  ((GdkAtom)(ptr))
 
 #ifdef GDK_NATIVE_WINDOW_POINTER
@@ -85,6 +105,13 @@ typedef struct _GdkAtom            *GdkAtom;
 #endif
 
 #define _GDK_MAKE_ATOM(val) ((GdkAtom)GUINT_TO_POINTER(val))
+
+/**
+ * GDK_NONE:
+ *
+ * A null value for #GdkAtom, used in a similar way as
+ * <literal>None</literal> in the Xlib API.
+ */
 #define GDK_NONE            _GDK_MAKE_ATOM (0)
 
 #ifdef GDK_NATIVE_WINDOW_POINTER
index 4f8d51bea337f2ce8ad0233961cb2a4cb92e6799..b55cd42e5f97c6a752c550975f1fdd7d0b5a2064 100644 (file)
 #include <string.h>
 
 
+/**
+ * SECTION:properties
+ * @Short_description: Functions to manipulate properties on windows
+ * @Title: Properties and Atoms
+ *
+ * Each window under X can have any number of associated
+ * <firstterm>properties</firstterm> attached to it.
+ * Properties are arbitrary chunks of data identified by
+ * <firstterm>atom</firstterm>s. (An <firstterm>atom</firstterm>
+ * is a numeric index into a string table on the X server. They are used
+ * to transfer strings efficiently between clients without
+ * having to transfer the entire string.) A property
+ * has an associated type, which is also identified
+ * using an atom.
+ *
+ * A property has an associated <firstterm>format</firstterm>,
+ * an integer describing how many bits are in each unit
+ * of data inside the property. It must be 8, 16, or 32.
+ * When data is transferred between the server and client,
+ * if they are of different endianesses it will be byteswapped
+ * as necessary according to the format of the property.
+ * Note that on the client side, properties of format 32
+ * will be stored with one unit per <emphasis>long</emphasis>,
+ * even if a long integer has more than 32 bits on the platform.
+ * (This decision was apparently made for Xlib to maintain
+ * compatibility with programs that assumed longs were 32
+ * bits, at the expense of programs that knew better.)
+ *
+ * The functions in this section are used to add, remove
+ * and change properties on windows, to convert atoms
+ * to and from strings and to manipulate some types of
+ * data commonly stored in X window properties.
+ */
+
+
 static GPtrArray *virtual_atom_array;
 static GHashTable *virtual_atom_hash;
 
@@ -395,6 +430,18 @@ intern_atom (const gchar *atom_name,
   return result;
 }
 
+/**
+ * gdk_atom_intern:
+ * @atom_name: a string.
+ * @only_if_exists: if %TRUE, GDK is allowed to not create a new atom, but
+ *   just return %GDK_NONE if the requested atom doesn't already
+ *   exists. Currently, the flag is ignored, since checking the
+ *   existance of an atom is as expensive as creating it.
+ *
+ * Finds or creates an atom corresponding to a given string.
+ *
+ * Returns: the atom corresponding to @atom_name.
+ */
 GdkAtom
 gdk_atom_intern (const gchar *atom_name, 
                 gboolean     only_if_exists)
@@ -438,6 +485,16 @@ get_atom_name (GdkAtom atom)
     return NULL;
 }
 
+/**
+ * gdk_atom_name:
+ * @atom: a #GdkAtom.
+ *
+ * Determines the string corresponding to an atom.
+ *
+ * Returns: a newly-allocated string containing the string
+ *   corresponding to @atom. When you are done with the
+ *   return value, you should free it using g_free().
+ */
 gchar *
 gdk_atom_name (GdkAtom atom)
 {
@@ -526,6 +583,59 @@ gdk_x11_get_xatom_name (Atom xatom)
   return get_atom_name (gdk_x11_xatom_to_atom (xatom));
 }
 
+/**
+ * gdk_property_get:
+ * @window: a #GdkWindow.
+ * @property: the property to retrieve.
+ * @type: the desired property type, or %GDK_NONE, if any type of data
+ *   is acceptable. If this does not match the actual
+ *   type, then @actual_format and @actual_length will
+ *   be filled in, a warning will be printed to stderr
+ *   and no data will be returned.
+ * @offset: the offset into the property at which to begin
+ *   retrieving data, in 4 byte units.
+ * @length: the length of the data to retrieve in bytes.  Data is
+ *   considered to be retrieved in 4 byte chunks, so @length
+ *   will be rounded up to the next highest 4 byte boundary
+ *   (so be careful not to pass a value that might overflow
+ *   when rounded up).
+ * @pdelete: if %TRUE, delete the property after retrieving the
+ *   data.
+ * @actual_property_type: location to store the actual type of
+ *   the property.
+ * @actual_format: location to store the actual return format of the
+ *   data; either 8, 16 or 32 bits.
+ * @actual_length: location to store the length of the retrieved data, in
+ *   bytes.  Data returned in the 32 bit format is stored
+ *   in a long variable, so the actual number of 32 bit
+ *   elements should be be calculated via
+ *   @actual_length / sizeof(glong) to ensure portability to
+ *   64 bit systems.
+ * @data: location to store a pointer to the data. The retrieved
+ *   data should be freed with g_free() when you are finished
+ *   using it.
+ *
+ * Retrieves a portion of the contents of a property. If the
+ * property does not exist, then the function returns %FALSE,
+ * and %GDK_NONE will be stored in @actual_property_type.
+ *
+ * <note>
+ * <para>
+ * The XGetWindowProperty() function that gdk_property_get()
+ * uses has a very confusing and complicated set of semantics.
+ * Unfortunately, gdk_property_get() makes the situation
+ * worse instead of better (the semantics should be considered
+ * undefined), and also prints warnings to stderr in cases where it
+ * should return a useful error to the program. You are advised to use
+ * XGetWindowProperty() directly until a replacement function for
+ * gdk_property_get()
+ * is provided.
+ * </para>
+ * </note>
+ *
+ * Returns: %TRUE if data was successfully received and stored
+ *   in @data, otherwise %FALSE.
+ */
 gboolean
 gdk_property_get (GdkWindow   *window,
                  GdkAtom      property,
@@ -672,6 +782,26 @@ gdk_property_get (GdkWindow   *window,
   return TRUE;
 }
 
+/**
+ * gdk_property_change:
+ * @window: a #GdkWindow.
+ * @property: the property to change.
+ * @type: the new type for the property. If @mode is
+ *   %GDK_PROP_MODE_PREPEND or %GDK_PROP_MODE_APPEND, then this
+ *   must match the existing type or an error will occur.
+ * @format: the new format for the property. If @mode is
+ *   %GDK_PROP_MODE_PREPEND or %GDK_PROP_MODE_APPEND, then this
+ *   must match the existing format or an error will occur.
+ * @mode: a value describing how the new data is to be combined
+ *   with the current data.
+ * @data: the data (a <literal>guchar *</literal>
+ *   <literal>gushort *</literal>, or <literal>gulong *</literal>,
+ *   depending on @format), cast to a <literal>guchar *</literal>.
+ * @nelements: the number of elements of size determined by the format,
+ *   contained in @data.
+ *
+ * Changes the contents of a property on a window.
+ */
 void
 gdk_property_change (GdkWindow    *window,
                     GdkAtom       property,
@@ -735,6 +865,13 @@ gdk_property_change (GdkWindow    *window,
                     xtype, format, mode, (guchar *)data, nelements);
 }
 
+/**
+ * gdk_property_delete:
+ * @window: a #GdkWindow.
+ * @property: the property to delete.
+ *
+ * Deletes a property from a window.
+ */
 void
 gdk_property_delete (GdkWindow *window,
                     GdkAtom    property)
index 6d9e03ac68ffd3226876d075f5dccb09b1805835..03ec39670ecece04ba300f6c096aa54f669c7123 100644 (file)
@@ -480,6 +480,14 @@ gdk_text_property_to_text_list_for_display (GdkDisplay   *display,
     }
 }
 
+/**
+ * gdk_free_text_list:
+ * @list: the value stored in the @list parameter by
+ *   a call to gdk_text_property_to_text_list().
+ *
+ * Frees the array of strings created by
+ * gdk_text_property_to_text_list().
+ */
 void
 gdk_free_text_list (gchar **list)
 {
@@ -884,6 +892,13 @@ gdk_utf8_to_compound_text_for_display (GdkDisplay  *display,
   return result;
 }
 
+/**
+ * gdk_free_compound_text:
+ * @ctext: The pointer stored in @ctext from a call to
+ *   gdk_string_to_compound_text().
+ *
+ * Frees the data returned from gdk_string_to_compound_text().
+ */
 void gdk_free_compound_text (guchar *ctext)
 {
   if (ctext)