*/
#include <glibconfig.h>
+/* Define some mathematical constants that aren't available
+ * symbolically in some strict ISO C implementations.
+ */
+#define G_E 2.7182818284590452354E0
+#define G_LN2 6.9314718055994530942E-1
+#define G_LN10 2.3025850929940456840E0
+#define G_PI 3.14159265358979323846E0
+#define G_PI_2 1.57079632679489661923E0
+#define G_PI_4 0.78539816339744830962E0
+#define G_SQRT2 1.4142135623730950488E0
+
/* include varargs functions for assertment macros
*/
#include <stdarg.h>
#define G_STRINGIFY(macro_or_string) G_STRINGIFY_ARG (macro_or_string)
#define G_STRINGIFY_ARG(contents) #contents
+/* provide a string identifying the current code position */
+#ifdef __GNUC__
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) ":" __PRETTY_FUNCTION__ "()"
+#else
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+
+
/* Count the number of elements in an array. The array must be defined
* as such; using this with a dynamically allocated array will give
* incorrect results.
* fields through their offsets.
*/
#define G_STRUCT_OFFSET(struct_type, member) \
- ((gulong) ((gchar*) &((struct_type*) 0)->member))
+ ((glong) ((guint8*) &((struct_type*) 0)->member))
#define G_STRUCT_MEMBER_P(struct_p, struct_offset) \
- ((gpointer) ((gchar*) (struct_p) + (gulong) (struct_offset)))
+ ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
#define G_STRUCT_MEMBER(member_type, struct_p, struct_offset) \
(*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset)))
typedef long glong;
typedef int gint;
typedef gint gboolean;
+typedef gchar* gstring;
typedef unsigned char guchar;
typedef unsigned short gushort;
GSList* g_slist_insert_sorted (GSList *list,
gpointer data,
GCompareFunc func);
+GSList* g_slist_insert_before (GSList *slist,
+ GSList *sibling,
+ gpointer data);
GSList* g_slist_concat (GSList *list1,
GSList *list2);
GSList* g_slist_remove (GSList *list,
gchar* g_strdelimit (gchar *string,
const gchar *delimiters,
gchar new_delimiter);
+gchar* g_strcanon (gchar *string,
+ const gchar *valid_chars,
+ gchar subsitutor);
gdouble g_strtod (const gchar *nptr,
gchar **endptr);
gchar* g_strerror (gint errnum);
gint g_strncasecmp (const gchar *s1,
const gchar *s2,
guint n);
-void g_strdown (gchar *string);
-void g_strup (gchar *string);
-void g_strreverse (gchar *string);
+gchar* g_strdown (gchar *string);
+gchar* g_strup (gchar *string);
+gchar* g_strreverse (gchar *string);
/* removes leading spaces */
gchar* g_strchug (gchar *string);
/* removes trailing spaces */
gchar* g_dirname (const gchar *file_name);
gchar* g_get_current_dir (void);
+/* Get the codeset for the current locale */
+gchar * g_get_codeset (void);
+
/* return the environment string for the variable. The returned memory
* must not be freed. */
gchar* g_getenv (const gchar *variable);
GString* g_string_assign (GString *string,
const gchar *rval);
GString* g_string_truncate (GString *string,
- gint len);
+ guint len);
GString* g_string_insert_len (GString *string,
gint pos,
const gchar *val,
/* Character sets */
#define G_CSET_A_2_Z "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#define G_CSET_a_2_z "abcdefghijklmnopqrstuvwxyz"
+#define G_CSET_DIGITS "0123456789"
#define G_CSET_LATINC "\300\301\302\303\304\305\306"\
"\307\310\311\312\313\314\315\316\317\320"\
"\321\322\323\324\325\326"\
/* Stop all currently unused threads, but leave the limit untouched */
void g_thread_pool_stop_unused_threads (void);
+#include <gunicode.h>
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
-
#endif /* __G_LIB_H__ */