(root)/
glib-2.79.0/
glib/
gpathbuf.h
       1  /* gpathbuf.h: A mutable path builder
       2   *
       3   * SPDX-FileCopyrightText: 2023  Emmanuele Bassi
       4   * SPDX-License-Identifier: LGPL-2.1-or-later
       5   */
       6  
       7  #pragma once
       8  
       9  #if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
      10  #error "Only <glib.h> can be included directly."
      11  #endif
      12  
      13  #include <glib/gtypes.h>
      14  
      15  G_BEGIN_DECLS
      16  
      17  typedef struct _GPathBuf  GPathBuf;
      18  
      19  struct _GPathBuf
      20  {
      21    /*< private >*/
      22    gpointer dummy[8];
      23  };
      24  
      25  /**
      26   * G_PATH_BUF_INIT:
      27   *
      28   * Initializes a #GPathBuf on the stack.
      29   *
      30   * A stack-allocated `GPathBuf` must be initialized if it is used
      31   * together with g_auto() to avoid warnings and crashes if the
      32   * function returns before calling g_path_buf_init().
      33   *
      34   * |[<!-- language="C" -->
      35   *   g_auto (GPathBuf) buf = G_PATH_BUF_INIT;
      36   * ]|
      37   *
      38   * Since: 2.76
      39   */
      40  #define G_PATH_BUF_INIT { { NULL, } } \
      41    GLIB_AVAILABLE_MACRO_IN_2_76
      42  
      43  GLIB_AVAILABLE_IN_2_76
      44  GPathBuf *    g_path_buf_new            (void);
      45  GLIB_AVAILABLE_IN_2_76
      46  GPathBuf *    g_path_buf_new_from_path  (const char *path);
      47  GLIB_AVAILABLE_IN_2_76
      48  GPathBuf *    g_path_buf_init           (GPathBuf   *buf);
      49  GLIB_AVAILABLE_IN_2_76
      50  GPathBuf *    g_path_buf_init_from_path (GPathBuf   *buf,
      51                                           const char *path);
      52  GLIB_AVAILABLE_IN_2_76
      53  void          g_path_buf_clear          (GPathBuf   *buf);
      54  GLIB_AVAILABLE_IN_2_76
      55  char *        g_path_buf_clear_to_path  (GPathBuf   *buf) G_GNUC_WARN_UNUSED_RESULT;
      56  GLIB_AVAILABLE_IN_2_76
      57  void          g_path_buf_free           (GPathBuf   *buf);
      58  GLIB_AVAILABLE_IN_2_76
      59  char *        g_path_buf_free_to_path   (GPathBuf   *buf) G_GNUC_WARN_UNUSED_RESULT;
      60  GLIB_AVAILABLE_IN_2_76
      61  GPathBuf *    g_path_buf_copy           (GPathBuf   *buf);
      62  
      63  GLIB_AVAILABLE_IN_2_76
      64  GPathBuf *    g_path_buf_push           (GPathBuf   *buf,
      65                                           const char *path);
      66  GLIB_AVAILABLE_IN_2_76
      67  gboolean      g_path_buf_pop            (GPathBuf   *buf);
      68  
      69  GLIB_AVAILABLE_IN_2_76
      70  gboolean      g_path_buf_set_filename   (GPathBuf   *buf,
      71                                           const char *file_name);
      72  GLIB_AVAILABLE_IN_2_76
      73  gboolean      g_path_buf_set_extension  (GPathBuf   *buf,
      74                                           const char *extension);
      75  
      76  GLIB_AVAILABLE_IN_2_76
      77  char *        g_path_buf_to_path        (GPathBuf   *buf) G_GNUC_WARN_UNUSED_RESULT;
      78  
      79  GLIB_AVAILABLE_IN_2_76
      80  gboolean      g_path_buf_equal          (gconstpointer v1,
      81                                           gconstpointer v2);
      82  
      83  G_END_DECLS