Imported Upstream version 2.61.2
[platform/upstream/glib.git] / glib / gstring.h
index 9cd64de..e1b2e7f 100644 (file)
@@ -4,7 +4,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -12,9 +12,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
  * GLib at ftp://ftp.gtk.org/pub/gtk/.
  */
 
-#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
-#error "Only <glib.h> can be included directly."
-#endif
-
 #ifndef __G_STRING_H__
 #define __G_STRING_H__
 
+#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
+#error "Only <glib.h> can be included directly."
+#endif
+
 #include <glib/gtypes.h>
 #include <glib/gunicode.h>
+#include <glib/gbytes.h>
 #include <glib/gutils.h>  /* for G_CAN_INLINE */
 
 G_BEGIN_DECLS
 
 typedef struct _GString         GString;
-typedef struct _GStringChunk    GStringChunk;
 
-/**
- * GString:
- * @str: points to the character data. It may move as text is added.
- *   The @str field is null-terminated and so
- *   can be used as an ordinary C string.
- * @len: contains the length of the string, not including the
- *   terminating nul byte.
- * @allocated_len: the number of bytes that can be stored in the
- *   string before it needs to be reallocated. May be larger than @len.
- *
- * The #GString struct contains the public fields of a #GString.
- */
 struct _GString
 {
   gchar  *str;
@@ -59,92 +45,111 @@ struct _GString
   gsize allocated_len;
 };
 
-/* String Chunks
- */
-GStringChunk* g_string_chunk_new           (gsize size);
-void          g_string_chunk_free          (GStringChunk *chunk);
-void          g_string_chunk_clear         (GStringChunk *chunk);
-gchar*        g_string_chunk_insert        (GStringChunk *chunk,
-                                            const gchar  *string);
-gchar*        g_string_chunk_insert_len    (GStringChunk *chunk,
-                                            const gchar  *string,
-                                            gssize        len);
-gchar*        g_string_chunk_insert_const  (GStringChunk *chunk,
-                                            const gchar  *string);
-
-
-/* Strings
- */
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_new               (const gchar     *init);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_new_len           (const gchar     *init,
                                          gssize           len);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_sized_new         (gsize            dfl_size);
+GLIB_AVAILABLE_IN_ALL
 gchar*       g_string_free              (GString         *string,
                                          gboolean         free_segment);
+GLIB_AVAILABLE_IN_2_34
+GBytes*      g_string_free_to_bytes     (GString         *string);
+GLIB_AVAILABLE_IN_ALL
 gboolean     g_string_equal             (const GString   *v,
                                          const GString   *v2);
+GLIB_AVAILABLE_IN_ALL
 guint        g_string_hash              (const GString   *str);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_assign            (GString         *string,
                                          const gchar     *rval);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_truncate          (GString         *string,
                                          gsize            len);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_set_size          (GString         *string,
                                          gsize            len);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_insert_len        (GString         *string,
                                          gssize           pos,
                                          const gchar     *val,
                                          gssize           len);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_append            (GString         *string,
                                          const gchar     *val);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_append_len        (GString         *string,
                                          const gchar     *val,
                                          gssize           len);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_append_c          (GString         *string,
                                          gchar            c);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_append_unichar    (GString         *string,
                                          gunichar         wc);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_prepend           (GString         *string,
                                          const gchar     *val);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_prepend_c         (GString         *string,
                                          gchar            c);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_prepend_unichar   (GString         *string,
                                          gunichar         wc);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_prepend_len       (GString         *string,
                                          const gchar     *val,
                                          gssize           len);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_insert            (GString         *string,
                                          gssize           pos,
                                          const gchar     *val);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_insert_c          (GString         *string,
                                          gssize           pos,
                                          gchar            c);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_insert_unichar    (GString         *string,
                                          gssize           pos,
                                          gunichar         wc);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_overwrite         (GString         *string,
                                          gsize            pos,
                                          const gchar     *val);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_overwrite_len     (GString         *string,
                                          gsize            pos,
                                          const gchar     *val,
                                          gssize           len);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_erase             (GString         *string,
                                          gssize           pos,
                                          gssize           len);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_ascii_down        (GString         *string);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_ascii_up          (GString         *string);
+GLIB_AVAILABLE_IN_ALL
 void         g_string_vprintf           (GString         *string,
                                          const gchar     *format,
-                                         va_list          args);
+                                         va_list          args)
+                                         G_GNUC_PRINTF(2, 0);
+GLIB_AVAILABLE_IN_ALL
 void         g_string_printf            (GString         *string,
                                          const gchar     *format,
                                          ...) G_GNUC_PRINTF (2, 3);
+GLIB_AVAILABLE_IN_ALL
 void         g_string_append_vprintf    (GString         *string,
                                          const gchar     *format,
-                                         va_list          args);
+                                         va_list          args)
+                                         G_GNUC_PRINTF(2, 0);
+GLIB_AVAILABLE_IN_ALL
 void         g_string_append_printf     (GString         *string,
                                          const gchar     *format,
                                          ...) G_GNUC_PRINTF (2, 3);
+GLIB_AVAILABLE_IN_ALL
 GString*     g_string_append_uri_escaped (GString         *string,
                                           const gchar     *unescaped,
                                           const gchar     *reserved_chars_allowed,
@@ -169,15 +174,13 @@ g_string_append_c_inline (GString *gstring,
 #endif /* G_CAN_INLINE */
 
 
-#ifndef G_DISABLE_DEPRECATED
-
-GString* g_string_down (GString *string);
-GString* g_string_up   (GString *string);
-
-#define  g_string_sprintf  g_string_printf
-#define  g_string_sprintfa g_string_append_printf
+GLIB_DEPRECATED
+GString *g_string_down (GString *string);
+GLIB_DEPRECATED
+GString *g_string_up   (GString *string);
 
-#endif /* G_DISABLE_DEPRECATED */
+#define  g_string_sprintf  g_string_printf GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_string_printf)
+#define  g_string_sprintfa g_string_append_printf GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_string_append_printf)
 
 G_END_DECLS