From 4b060ca43c9605be2fdb219a379f8a17c33b0d98 Mon Sep 17 00:00:00 2001
From: Ryan Lortie <desrt@desrt.ca>
Date: Thu, 9 Jun 2011 11:36:59 -0400
Subject: [PATCH] Stop using G_CONST_RETURN in Pango

Upstream: 4c7807daee7189f48

G_CONST_RETURN is headed for deprecation (as per bug #644611).  Stop
using it in Pango.

https://bugzilla.gnome.org/show_bug.cgi?id=652202

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
 modules/hebrew/hebrew-shaper.c |    2 +-
 pango/fonts.c                  |    6 +++---
 pango/pango-attributes.c       |    2 +-
 pango/pango-attributes.h       |    2 +-
 pango/pango-context.c          |    2 +-
 pango/pango-context.h          |    6 +++---
 pango/pango-font.h             |    6 +++---
 pango/pango-fontmap.c          |    2 +-
 pango/pango-language.c         |    6 +++---
 pango/pango-language.h         |    6 +++---
 pango/pango-layout.c           |    4 ++--
 pango/pango-layout.h           |    2 +-
 pango/pango-ot-ruleset.c       |    2 +-
 pango/pango-renderer.c         |    2 +-
 pango/pango-renderer.h         |    2 +-
 pango/pango-script.c           |    8 ++++----
 pango/pango-script.h           |   12 ++++++------
 pango/pango-utils.c            |    4 ++--
 pango/pango-utils.h            |   12 ++++++------
 pango/pangocairo-context.c     |    4 ++--
 pango/pangoft2.c               |    2 +-
 pango/pangox-fontmap.c         |    4 ++--
 22 files changed, 49 insertions(+), 49 deletions(-)

diff --git a/modules/hebrew/hebrew-shaper.c b/modules/hebrew/hebrew-shaper.c
index 8aa3638..db3055b 100644
--- a/modules/hebrew/hebrew-shaper.c
+++ b/modules/hebrew/hebrew-shaper.c
@@ -167,7 +167,7 @@ static const gboolean compose_table[4][4] = {
 #define	is_composible(cur_wc, nxt_wc)	(compose_table[char_type_table[ucs2iso8859_8 (cur_wc)]]\
 						      [char_type_table[ucs2iso8859_8 (nxt_wc)]])
 
-G_CONST_RETURN char *
+const char *
 hebrew_shaper_get_next_cluster(const char      *text,
 			       gint		length,
 			       gunichar        *cluster,
diff --git a/pango/fonts.c b/pango/fonts.c
index ab5397a..d9de7de 100644
--- a/pango/fonts.c
+++ b/pango/fonts.c
@@ -165,7 +165,7 @@ pango_font_description_set_family_static (PangoFontDescription *desc,
  *               %NULL if not previously set.  This has the same life-time
  *               as the font description itself and should not be freed.
  **/
-G_CONST_RETURN char *
+const char *
 pango_font_description_get_family (const PangoFontDescription *desc)
 {
   g_return_val_if_fail (desc != NULL, NULL);
@@ -1927,7 +1927,7 @@ pango_font_family_init (PangoFontFamily *family G_GNUC_UNUSED)
  * Return value: the name of the family. This string is owned
  *   by the family object and must not be modified or freed.
  **/
-G_CONST_RETURN char *
+const char *
 pango_font_family_get_name (PangoFontFamily  *family)
 {
   g_return_val_if_fail (PANGO_IS_FONT_FAMILY (family), NULL);
@@ -2060,7 +2060,7 @@ pango_font_face_is_synthesized (PangoFontFace  *face)
  * Return value: the face name for the face. This string is
  *   owned by the face object and must not be modified or freed.
  **/
-G_CONST_RETURN char *
+const char *
 pango_font_face_get_face_name (PangoFontFace *face)
 {
   g_return_val_if_fail (PANGO_IS_FONT_FACE (face), NULL);
diff --git a/pango/pango-attributes.c b/pango/pango-attributes.c
index 28c11de..373fba1 100644
--- a/pango/pango-attributes.c
+++ b/pango/pango-attributes.c
@@ -97,7 +97,7 @@ pango_attr_type_register (const gchar *name)
  *
  * Since: 1.22
  **/
-G_CONST_RETURN char *
+const char *
 pango_attr_type_get_name (PangoAttrType type)
 {
   const char *result = NULL;
diff --git a/pango/pango-attributes.h b/pango/pango-attributes.h
index 866e35d..59f97a3 100644
--- a/pango/pango-attributes.h
+++ b/pango/pango-attributes.h
@@ -180,7 +180,7 @@ struct _PangoAttrFontDesc
 };
 
 PangoAttrType         pango_attr_type_register (const gchar        *name);
-G_CONST_RETURN char * pango_attr_type_get_name (PangoAttrType       type) G_GNUC_CONST;
+const char *          pango_attr_type_get_name (PangoAttrType       type) G_GNUC_CONST;
 
 void             pango_attribute_init        (PangoAttribute       *attr,
 					      const PangoAttrClass *klass);
diff --git a/pango/pango-context.c b/pango/pango-context.c
index 6ec0b56..3c9442a 100644
--- a/pango/pango-context.c
+++ b/pango/pango-context.c
@@ -188,7 +188,7 @@ pango_context_set_matrix (PangoContext       *context,
  *
  * Since: 1.6
  **/
-G_CONST_RETURN PangoMatrix *
+const PangoMatrix *
 pango_context_get_matrix (PangoContext *context)
 {
   g_return_val_if_fail (PANGO_IS_CONTEXT (context), NULL);
diff --git a/pango/pango-context.h b/pango/pango-context.h
index d8c3cb8..d85928a 100644
--- a/pango/pango-context.h
+++ b/pango/pango-context.h
@@ -84,9 +84,9 @@ void                      pango_context_set_gravity_hint     (PangoContext
 							      PangoGravityHint            hint);
 PangoGravityHint          pango_context_get_gravity_hint     (PangoContext               *context);
 
-void                        pango_context_set_matrix (PangoContext      *context,
-						      const PangoMatrix *matrix);
-G_CONST_RETURN PangoMatrix *pango_context_get_matrix (PangoContext      *context);
+void                      pango_context_set_matrix           (PangoContext      *context,
+						              const PangoMatrix *matrix);
+const PangoMatrix *       pango_context_get_matrix           (PangoContext      *context);
 
 /* Break a string of Unicode characters into segments with
  * consistent shaping/language engine and bidrectional level.
diff --git a/pango/pango-font.h b/pango/pango-font.h
index b5b2cf1..eea27b4 100644
--- a/pango/pango-font.h
+++ b/pango/pango-font.h
@@ -117,7 +117,7 @@ void                 pango_font_description_set_family        (PangoFontDescript
 							       const char           *family);
 void                 pango_font_description_set_family_static (PangoFontDescription *desc,
 							       const char           *family);
-G_CONST_RETURN char *pango_font_description_get_family        (const PangoFontDescription *desc) G_GNUC_PURE;
+const char          *pango_font_description_get_family        (const PangoFontDescription *desc) G_GNUC_PURE;
 void                 pango_font_description_set_style         (PangoFontDescription *desc,
 							       PangoStyle            style);
 PangoStyle           pango_font_description_get_style         (const PangoFontDescription *desc) G_GNUC_PURE;
@@ -212,7 +212,7 @@ GType      pango_font_family_get_type       (void) G_GNUC_CONST;
 void                 pango_font_family_list_faces (PangoFontFamily  *family,
 						   PangoFontFace  ***faces,
 						   int              *n_faces);
-G_CONST_RETURN char *pango_font_family_get_name   (PangoFontFamily  *family) G_GNUC_PURE;
+const char *pango_font_family_get_name   (PangoFontFamily  *family) G_GNUC_PURE;
 gboolean   pango_font_family_is_monospace         (PangoFontFamily  *family) G_GNUC_PURE;
 
 #ifdef PANGO_ENABLE_BACKEND
@@ -261,7 +261,7 @@ struct _PangoFontFamilyClass
 GType      pango_font_face_get_type       (void) G_GNUC_CONST;
 
 PangoFontDescription *pango_font_face_describe       (PangoFontFace  *face);
-G_CONST_RETURN char  *pango_font_face_get_face_name  (PangoFontFace  *face) G_GNUC_PURE;
+const char           *pango_font_face_get_face_name  (PangoFontFace  *face) G_GNUC_PURE;
 void                  pango_font_face_list_sizes     (PangoFontFace  *face,
 						      int           **sizes,
 						      int            *n_sizes);
diff --git a/pango/pango-fontmap.c b/pango/pango-fontmap.c
index 13f4263..78b1692 100644
--- a/pango/pango-fontmap.c
+++ b/pango/pango-fontmap.c
@@ -290,7 +290,7 @@ pango_font_map_real_load_fontset (PangoFontMap               *fontmap,
  *
  * Since: 1.4
  **/
-G_CONST_RETURN char *
+const char *
 pango_font_map_get_shape_engine_type (PangoFontMap *fontmap)
 {
   g_return_val_if_fail (PANGO_IS_FONT_MAP (fontmap), NULL);
diff --git a/pango/pango-language.c b/pango/pango-language.c
index bfde308..2bb294e 100644
--- a/pango/pango-language.c
+++ b/pango/pango-language.c
@@ -319,7 +319,7 @@ pango_language_from_string (const char *language)
  * Returns: a string representing the language tag.  This is owned by
  *          Pango and should not be freed.
  */
-G_CONST_RETURN char *
+const char *
 (pango_language_to_string) (PangoLanguage *language)
 {
   return pango_language_to_string (language);
@@ -531,7 +531,7 @@ static const LangInfo lang_texts[] = {
  * Return value: the sample string. This value is owned by Pango
  *   and should not be freed.
  **/
-G_CONST_RETURN char *
+const char *
 pango_language_get_sample_string (PangoLanguage *language)
 {
   const LangInfo *lang_info;
@@ -592,7 +592,7 @@ pango_language_get_sample_string (PangoLanguage *language)
  
  * Since: 1.22
  **/
-G_CONST_RETURN PangoScript *
+const PangoScript *
 pango_language_get_scripts (PangoLanguage *language,
 			    int           *num_scripts)
 {
diff --git a/pango/pango-language.h b/pango/pango-language.h
index 37cdc16..31660ca 100644
--- a/pango/pango-language.h
+++ b/pango/pango-language.h
@@ -34,11 +34,11 @@ typedef struct _PangoLanguage PangoLanguage;
 GType          pango_language_get_type    (void) G_GNUC_CONST;
 PangoLanguage *pango_language_from_string (const char *language);
 
-G_CONST_RETURN char *pango_language_to_string   (PangoLanguage *language) G_GNUC_CONST;
+const char    *pango_language_to_string   (PangoLanguage *language) G_GNUC_CONST;
 /* For back compat.  Will have to keep indefinitely. */
 #define pango_language_to_string(language) ((const char *)language)
 
-G_CONST_RETURN char *pango_language_get_sample_string (PangoLanguage *language) G_GNUC_CONST;
+const char    *pango_language_get_sample_string (PangoLanguage *language) G_GNUC_CONST;
 PangoLanguage *pango_language_get_default (void) G_GNUC_CONST;
 
 gboolean      pango_language_matches  (PangoLanguage *language,
@@ -48,7 +48,7 @@ gboolean      pango_language_matches  (PangoLanguage *language,
 
 gboolean		    pango_language_includes_script (PangoLanguage *language,
 							    PangoScript    script) G_GNUC_PURE;
-G_CONST_RETURN PangoScript *pango_language_get_scripts	   (PangoLanguage *language,
+const PangoScript          *pango_language_get_scripts	   (PangoLanguage *language,
 							    int           *num_scripts);
 
 G_END_DECLS
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index 12f9dee..2dc0c17 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -677,7 +677,7 @@ pango_layout_set_font_description (PangoLayout                 *layout,
  *
  * Since: 1.8
  **/
-G_CONST_RETURN PangoFontDescription *
+const PangoFontDescription *
 pango_layout_get_font_description (PangoLayout *layout)
 {
   g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
@@ -1087,7 +1087,7 @@ pango_layout_set_text (PangoLayout *layout,
  *
  * Return value: the text in the @layout.
  **/
-G_CONST_RETURN char*
+const char*
 pango_layout_get_text (PangoLayout *layout)
 {
   g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
diff --git a/pango/pango-layout.h b/pango/pango-layout.h
index 3b769ff..d786dc6 100644
--- a/pango/pango-layout.h
+++ b/pango/pango-layout.h
@@ -116,7 +116,7 @@ void           pango_layout_set_markup_with_accel (PangoLayout    *layout,
 void           pango_layout_set_font_description (PangoLayout                *layout,
 						  const PangoFontDescription *desc);
 
-G_CONST_RETURN PangoFontDescription *pango_layout_get_font_description (PangoLayout *layout);
+const PangoFontDescription *pango_layout_get_font_description (PangoLayout *layout);
 
 void           pango_layout_set_width            (PangoLayout                *layout,
 						  int                         width);
diff --git a/pango/pango-ot-ruleset.c b/pango/pango-ot-ruleset.c
index b5e2795..8fe7b72 100644
--- a/pango/pango-ot-ruleset.c
+++ b/pango/pango-ot-ruleset.c
@@ -107,7 +107,7 @@ pango_ot_ruleset_finalize (GObject *object)
  *
  * Since: 1.18
  **/
-G_CONST_RETURN PangoOTRuleset *
+const PangoOTRuleset *
 pango_ot_ruleset_get_for_description (PangoOTInfo                     *info,
 				      const PangoOTRulesetDescription *desc)
 {
diff --git a/pango/pango-renderer.c b/pango/pango-renderer.c
index db75446..a1fea5e 100644
--- a/pango/pango-renderer.c
+++ b/pango/pango-renderer.c
@@ -1352,7 +1352,7 @@ pango_renderer_set_matrix (PangoRenderer     *renderer,
  *
  * Since: 1.8
  **/
-G_CONST_RETURN PangoMatrix *
+const PangoMatrix *
 pango_renderer_get_matrix (PangoRenderer *renderer)
 {
   g_return_val_if_fail (PANGO_IS_RENDERER (renderer), NULL);
diff --git a/pango/pango-renderer.h b/pango/pango-renderer.h
index 354127b..5410a9f 100644
--- a/pango/pango-renderer.h
+++ b/pango/pango-renderer.h
@@ -249,7 +249,7 @@ PangoColor *pango_renderer_get_color (PangoRenderer    *renderer,
 
 void                        pango_renderer_set_matrix (PangoRenderer     *renderer,
 						       const PangoMatrix *matrix);
-G_CONST_RETURN PangoMatrix *pango_renderer_get_matrix (PangoRenderer     *renderer);
+const PangoMatrix          *pango_renderer_get_matrix (PangoRenderer     *renderer);
 
 PangoLayout     *pango_renderer_get_layout      (PangoRenderer     *renderer);
 PangoLayoutLine *pango_renderer_get_layout_line (PangoRenderer     *renderer);
diff --git a/pango/pango-script.c b/pango/pango-script.c
index 605e46e..1d57a69 100644
--- a/pango/pango-script.c
+++ b/pango/pango-script.c
@@ -164,10 +164,10 @@ pango_script_iter_free (PangoScriptIter *iter)
  * Since: 1.4
  **/
 void
-pango_script_iter_get_range (PangoScriptIter      *iter,
-			     G_CONST_RETURN char **start,
-			     G_CONST_RETURN char **end,
-			     PangoScript          *script)
+pango_script_iter_get_range (PangoScriptIter  *iter,
+                             const char      **start,
+                             const char      **end,
+                             PangoScript      *script)
 {
   if (start)
     *start = iter->script_start;
diff --git a/pango/pango-script.h b/pango/pango-script.h
index 32ef737..ef5f698 100644
--- a/pango/pango-script.h
+++ b/pango/pango-script.h
@@ -128,12 +128,12 @@ PangoScript pango_script_for_unichar         (gunichar             ch) G_GNUC_CO
 
 PangoScriptIter *pango_script_iter_new       (const char          *text,
 					      int                  length);
-void             pango_script_iter_get_range (PangoScriptIter      *iter,
-					      G_CONST_RETURN char **start,
-					      G_CONST_RETURN char **end,
-					      PangoScript          *script);
-gboolean         pango_script_iter_next      (PangoScriptIter      *iter);
-void             pango_script_iter_free      (PangoScriptIter      *iter);
+void             pango_script_iter_get_range (PangoScriptIter     *iter,
+                                              const char         **start,
+                                              const char         **end,
+                                              PangoScript         *script);
+gboolean         pango_script_iter_next      (PangoScriptIter     *iter);
+void             pango_script_iter_free      (PangoScriptIter     *iter);
 
 #include <pango/pango-language.h>
 
diff --git a/pango/pango-utils.c b/pango/pango-utils.c
index 100dbc7..71deeef 100644
--- a/pango/pango-utils.c
+++ b/pango/pango-utils.c
@@ -689,7 +689,7 @@ DllMain (HINSTANCE hinstDLL,
  * Return value: the Pango sysconf directory. The returned string should
  * not be freed.
  */
-G_CONST_RETURN char *
+const char *
 pango_get_sysconf_subdirectory (void)
 {
 #ifdef G_OS_WIN32
@@ -718,7 +718,7 @@ pango_get_sysconf_subdirectory (void)
  * Return value: the Pango lib directory. The returned string should
  * not be freed.
  */
-G_CONST_RETURN char *
+const char *
 pango_get_lib_subdirectory (void)
 {
 #ifdef G_OS_WIN32
diff --git a/pango/pango-utils.h b/pango/pango-utils.h
index 41a8bbb..f86c662 100644
--- a/pango/pango-utils.h
+++ b/pango/pango-utils.h
@@ -82,13 +82,13 @@ gboolean pango_parse_stretch (const char   *str,
  * stored in the registry). The returned string should not be
  * g_free'd.
  */
-G_CONST_RETURN char *   pango_get_sysconf_subdirectory (void) G_GNUC_PURE;
+const char *   pango_get_sysconf_subdirectory (void) G_GNUC_PURE;
 
 /* Ditto for LIBDIR/pango. On Win32, use the same Pango
  * installation directory. This returned string should not be
  * g_free'd either.
  */
-G_CONST_RETURN char *   pango_get_lib_subdirectory (void) G_GNUC_PURE;
+const char *   pango_get_lib_subdirectory (void) G_GNUC_PURE;
 
 #endif /* PANGO_ENABLE_BACKEND */
 
@@ -131,12 +131,12 @@ gboolean pango_is_zero_width (gunichar ch) G_GNUC_CONST;
 int pango_version (void) G_GNUC_CONST;
 
 /* Return run-time Pango version as an string */
-G_CONST_RETURN char * pango_version_string (void) G_GNUC_CONST;
+const char * pango_version_string (void) G_GNUC_CONST;
 
 /* Check that run-time Pango is as new as required */
-G_CONST_RETURN char * pango_version_check (int required_major,
-					   int required_minor,
-					   int required_micro) G_GNUC_CONST;
+const char * pango_version_check (int required_major,
+                                  int required_minor,
+                                  int required_micro) G_GNUC_CONST;
 
 G_END_DECLS
 
diff --git a/pango/pangocairo-context.c b/pango/pangocairo-context.c
index 69432f0..f61e839 100644
--- a/pango/pangocairo-context.c
+++ b/pango/pangocairo-context.c
@@ -260,7 +260,7 @@ pango_cairo_context_set_font_options (PangoContext               *context,
  *
  * Since: 1.10
  **/
-G_CONST_RETURN cairo_font_options_t *
+const cairo_font_options_t *
 pango_cairo_context_get_font_options (PangoContext *context)
 {
   PangoCairoContextInfo *info;
@@ -286,7 +286,7 @@ pango_cairo_context_get_font_options (PangoContext *context)
  * Return value: the combined set of font options. This value is owned
  * by the context and must not be modified or freed.
  **/
-G_CONST_RETURN cairo_font_options_t *
+const cairo_font_options_t *
 _pango_cairo_context_get_merged_font_options (PangoContext *context)
 {
   PangoCairoContextInfo *info = get_context_info (context, TRUE);
diff --git a/pango/pangoft2.c b/pango/pangoft2.c
index f4a3864..b41c468 100644
--- a/pango/pangoft2.c
+++ b/pango/pangoft2.c
@@ -520,7 +520,7 @@ ft_error_compare (const void *pkey,
   return ((ft_error_description *) pkey)->code - ((ft_error_description *) pbase)->code;
 }
 
-G_CONST_RETURN char *
+const char *
 _pango_ft2_ft_strerror (FT_Error error)
 {
 #undef __FTERRORS_H__
diff --git a/pango/pangox-fontmap.c b/pango/pangox-fontmap.c
index 6d5e547..3f5343f 100644
--- a/pango/pangox-fontmap.c
+++ b/pango/pangox-fontmap.c
@@ -1441,7 +1441,7 @@ pango_x_fontmap_atom_from_name (PangoFontMap *fontmap,
 }
 
 
-G_CONST_RETURN char *
+const char *
 pango_x_fontmap_name_from_atom (PangoFontMap *fontmap,
 				Atom          atom)
 {
@@ -1645,7 +1645,7 @@ pango_x_family_list_faces (PangoFontFamily  *family,
     }
 }
 
-static G_CONST_RETURN char *
+static const char *
 pango_x_family_get_name (PangoFontFamily  *family)
 {
   PangoXFamily *xfamily = PANGO_X_FAMILY (family);
-- 
1.7.8.3

