您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 
 

115 行
4.8 KiB

  1. /* GLIB - Library of useful routines for C programming
  2. * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public
  15. * License along with this library; if not, write to the
  16. * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  17. * Boston, MA 02111-1307, USA.
  18. */
  19. /*
  20. * Modified by the GLib Team and others 1997-2000. See the AUTHORS
  21. * file for a list of people on the GLib Team. See the ChangeLog
  22. * files for a list of changes. These files are distributed with
  23. * GLib at ftp://ftp.gtk.org/pub/gtk/.
  24. */
  25. #if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
  26. #error "Only <glib.h> can be included directly."
  27. #endif
  28. #ifndef __G_SLIST_H__
  29. #define __G_SLIST_H__
  30. #include <glib/gmem.h>
  31. G_BEGIN_DECLS
  32. typedef struct _GSList GSList;
  33. struct _GSList
  34. {
  35. gpointer data;
  36. GSList *next;
  37. };
  38. /* Singly linked lists
  39. */
  40. GSList* g_slist_alloc (void) G_GNUC_WARN_UNUSED_RESULT;
  41. void g_slist_free (GSList *list);
  42. void g_slist_free_1 (GSList *list);
  43. #define g_slist_free1 g_slist_free_1
  44. GSList* g_slist_append (GSList *list,
  45. gpointer data) G_GNUC_WARN_UNUSED_RESULT;
  46. GSList* g_slist_prepend (GSList *list,
  47. gpointer data) G_GNUC_WARN_UNUSED_RESULT;
  48. GSList* g_slist_insert (GSList *list,
  49. gpointer data,
  50. gint position) G_GNUC_WARN_UNUSED_RESULT;
  51. GSList* g_slist_insert_sorted (GSList *list,
  52. gpointer data,
  53. GCompareFunc func) G_GNUC_WARN_UNUSED_RESULT;
  54. GSList* g_slist_insert_sorted_with_data (GSList *list,
  55. gpointer data,
  56. GCompareDataFunc func,
  57. gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
  58. GSList* g_slist_insert_before (GSList *slist,
  59. GSList *sibling,
  60. gpointer data) G_GNUC_WARN_UNUSED_RESULT;
  61. GSList* g_slist_concat (GSList *list1,
  62. GSList *list2) G_GNUC_WARN_UNUSED_RESULT;
  63. GSList* g_slist_remove (GSList *list,
  64. gconstpointer data) G_GNUC_WARN_UNUSED_RESULT;
  65. GSList* g_slist_remove_all (GSList *list,
  66. gconstpointer data) G_GNUC_WARN_UNUSED_RESULT;
  67. GSList* g_slist_remove_link (GSList *list,
  68. GSList *link_) G_GNUC_WARN_UNUSED_RESULT;
  69. GSList* g_slist_delete_link (GSList *list,
  70. GSList *link_) G_GNUC_WARN_UNUSED_RESULT;
  71. GSList* g_slist_reverse (GSList *list) G_GNUC_WARN_UNUSED_RESULT;
  72. GSList* g_slist_copy (GSList *list) G_GNUC_WARN_UNUSED_RESULT;
  73. GSList* g_slist_nth (GSList *list,
  74. guint n);
  75. GSList* g_slist_find (GSList *list,
  76. gconstpointer data);
  77. GSList* g_slist_find_custom (GSList *list,
  78. gconstpointer data,
  79. GCompareFunc func);
  80. gint g_slist_position (GSList *list,
  81. GSList *llink);
  82. gint g_slist_index (GSList *list,
  83. gconstpointer data);
  84. GSList* g_slist_last (GSList *list);
  85. guint g_slist_length (GSList *list);
  86. void g_slist_foreach (GSList *list,
  87. GFunc func,
  88. gpointer user_data);
  89. GSList* g_slist_sort (GSList *list,
  90. GCompareFunc compare_func) G_GNUC_WARN_UNUSED_RESULT;
  91. GSList* g_slist_sort_with_data (GSList *list,
  92. GCompareDataFunc compare_func,
  93. gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
  94. gpointer g_slist_nth_data (GSList *list,
  95. guint n);
  96. #define g_slist_next(slist) ((slist) ? (((GSList *)(slist))->next) : NULL)
  97. #ifndef G_DISABLE_DEPRECATED
  98. void g_slist_push_allocator (gpointer dummy);
  99. void g_slist_pop_allocator (void);
  100. #endif
  101. G_END_DECLS
  102. #endif /* __G_SLIST_H__ */