source: trunk/third/libxml2/triostr.h @ 18210

Revision 18210, 7.8 KB checked in by ghudson, 21 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18209, which included commits to RCS files with non-trunk default branches.
Line 
1/*************************************************************************
2 *
3 * $Id: triostr.h,v 1.1.1.2 2002-12-26 06:43:06 ghudson Exp $
4 *
5 * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
6 *
7 * Permission to use, copy, modify, and distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
12 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
13 * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
14 * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
15 *
16 ************************************************************************/
17
18#ifndef TRIO_TRIOSTR_H
19#define TRIO_TRIOSTR_H
20
21#include <assert.h>
22#include <stdlib.h>
23#include <string.h>
24#include <time.h>
25#include "triodef.h"
26#include "triop.h"
27
28enum {
29  TRIO_HASH_NONE = 0,
30  TRIO_HASH_PLAIN,
31  TRIO_HASH_TWOSIGNED
32};
33
34#if !defined(TRIO_STRING_PUBLIC)
35# if !defined(TRIO_PUBLIC)
36#  define TRIO_PUBLIC
37# endif
38# define TRIO_STRING_PUBLIC TRIO_PUBLIC
39#endif
40
41/*************************************************************************
42 * String functions
43 */
44
45TRIO_STRING_PUBLIC int trio_append TRIO_PROTO((char *target, const char *source));
46TRIO_STRING_PUBLIC int trio_append_max TRIO_PROTO((char *target, size_t max, const char *source));
47TRIO_STRING_PUBLIC int trio_contains TRIO_PROTO((const char *string, const char *substring));
48TRIO_STRING_PUBLIC int trio_copy TRIO_PROTO((char *target, const char *source));
49TRIO_STRING_PUBLIC int trio_copy_max TRIO_PROTO((char *target, size_t max, const char *source));
50TRIO_STRING_PUBLIC char *trio_create TRIO_PROTO((size_t size));
51TRIO_STRING_PUBLIC void trio_destroy TRIO_PROTO((char *string));
52TRIO_STRING_PUBLIC char *trio_duplicate TRIO_PROTO((const char *source));
53TRIO_STRING_PUBLIC char *trio_duplicate_max TRIO_PROTO((const char *source, size_t max));
54TRIO_STRING_PUBLIC int trio_equal TRIO_PROTO((const char *first, const char *second));
55TRIO_STRING_PUBLIC int trio_equal_case TRIO_PROTO((const char *first, const char *second));
56TRIO_STRING_PUBLIC int trio_equal_case_max TRIO_PROTO((const char *first, size_t max, const char *second));
57TRIO_STRING_PUBLIC int trio_equal_locale TRIO_PROTO((const char *first, const char *second));
58TRIO_STRING_PUBLIC int trio_equal_max TRIO_PROTO((const char *first, size_t max, const char *second));
59TRIO_STRING_PUBLIC TRIO_CONST char *trio_error TRIO_PROTO((int));
60TRIO_STRING_PUBLIC size_t trio_format_date_max TRIO_PROTO((char *target, size_t max, const char *format, const struct tm *datetime));
61TRIO_STRING_PUBLIC unsigned long trio_hash TRIO_PROTO((const char *string, int type));
62TRIO_STRING_PUBLIC char *trio_index TRIO_PROTO((const char *string, int character));
63TRIO_STRING_PUBLIC char *trio_index_last TRIO_PROTO((const char *string, int character));
64TRIO_STRING_PUBLIC size_t trio_length TRIO_PROTO((const char *string));
65TRIO_STRING_PUBLIC int trio_lower TRIO_PROTO((char *target));
66TRIO_STRING_PUBLIC int trio_match TRIO_PROTO((const char *string, const char *pattern));
67TRIO_STRING_PUBLIC int trio_match_case TRIO_PROTO((const char *string, const char *pattern));
68TRIO_STRING_PUBLIC size_t trio_span_function TRIO_PROTO((char *target, const char *source, int (*Function) TRIO_PROTO((int))));
69TRIO_STRING_PUBLIC char *trio_substring TRIO_PROTO((const char *string, const char *substring));
70TRIO_STRING_PUBLIC char *trio_substring_max TRIO_PROTO((const char *string, size_t max, const char *substring));
71TRIO_STRING_PUBLIC double trio_to_double TRIO_PROTO((const char *source, char **endp));
72TRIO_STRING_PUBLIC float trio_to_float TRIO_PROTO((const char *source, char **endp));
73TRIO_STRING_PUBLIC trio_long_double_t trio_to_long_double TRIO_PROTO((const char *source, char **endp));
74TRIO_STRING_PUBLIC long trio_to_long TRIO_PROTO((const char *source, char **endp, int base));
75TRIO_STRING_PUBLIC unsigned long trio_to_unsigned_long TRIO_PROTO((const char *source, char **endp, int base));
76TRIO_STRING_PUBLIC char *trio_tokenize TRIO_PROTO((char *string, const char *delimiters));
77TRIO_STRING_PUBLIC int trio_upper TRIO_PROTO((char *target));
78
79/*************************************************************************
80 * Dynamic string functions
81 */
82
83/*
84 * Opaque type for dynamic strings
85 */
86typedef struct _trio_string_t trio_string_t;
87
88TRIO_STRING_PUBLIC trio_string_t *trio_string_create TRIO_PROTO((int initial_size));
89TRIO_STRING_PUBLIC void trio_string_destroy TRIO_PROTO((trio_string_t *self));
90TRIO_STRING_PUBLIC char *trio_string_get TRIO_PROTO((trio_string_t *self, int offset));
91TRIO_STRING_PUBLIC void trio_xstring_set TRIO_PROTO((trio_string_t *self, char *buffer));
92TRIO_STRING_PUBLIC char *trio_string_extract TRIO_PROTO((trio_string_t *self));
93TRIO_STRING_PUBLIC int trio_string_size TRIO_PROTO((trio_string_t *self));
94TRIO_STRING_PUBLIC void trio_string_terminate TRIO_PROTO((trio_string_t *self));
95
96TRIO_STRING_PUBLIC int trio_string_append TRIO_PROTO((trio_string_t *self, trio_string_t *other));
97TRIO_STRING_PUBLIC int trio_string_contains TRIO_PROTO((trio_string_t *self, trio_string_t *other));
98TRIO_STRING_PUBLIC int trio_string_copy TRIO_PROTO((trio_string_t *self, trio_string_t *other));
99TRIO_STRING_PUBLIC trio_string_t *trio_string_duplicate TRIO_PROTO((trio_string_t *other));
100TRIO_STRING_PUBLIC int trio_string_equal TRIO_PROTO((trio_string_t *self, trio_string_t *other));
101TRIO_STRING_PUBLIC int trio_string_equal_max TRIO_PROTO((trio_string_t *self, size_t max, trio_string_t *second));
102TRIO_STRING_PUBLIC int trio_string_equal_case TRIO_PROTO((trio_string_t *self, trio_string_t *other));
103TRIO_STRING_PUBLIC int trio_string_equal_case_max TRIO_PROTO((trio_string_t *self, size_t max, trio_string_t *other));
104TRIO_STRING_PUBLIC size_t trio_string_format_date_max TRIO_PROTO((trio_string_t *self, size_t max, const char *format, const struct tm *datetime));
105TRIO_STRING_PUBLIC char *trio_string_index TRIO_PROTO((trio_string_t *self, int character));
106TRIO_STRING_PUBLIC char *trio_string_index_last TRIO_PROTO((trio_string_t *self, int character));
107TRIO_STRING_PUBLIC int trio_string_length TRIO_PROTO((trio_string_t *self));
108TRIO_STRING_PUBLIC int trio_string_lower TRIO_PROTO((trio_string_t *self));
109TRIO_STRING_PUBLIC int trio_string_match TRIO_PROTO((trio_string_t *self, trio_string_t *other));
110TRIO_STRING_PUBLIC int trio_string_match_case TRIO_PROTO((trio_string_t *self, trio_string_t *other));
111TRIO_STRING_PUBLIC char *trio_string_substring TRIO_PROTO((trio_string_t *self, trio_string_t *other));
112TRIO_STRING_PUBLIC int trio_string_upper TRIO_PROTO((trio_string_t *self));
113
114TRIO_STRING_PUBLIC int trio_xstring_append_char TRIO_PROTO((trio_string_t *self, char character));
115TRIO_STRING_PUBLIC int trio_xstring_append TRIO_PROTO((trio_string_t *self, const char *other));
116TRIO_STRING_PUBLIC int trio_xstring_contains TRIO_PROTO((trio_string_t *self, const char *other));
117TRIO_STRING_PUBLIC int trio_xstring_copy TRIO_PROTO((trio_string_t *self, const char *other));
118TRIO_STRING_PUBLIC trio_string_t *trio_xstring_duplicate TRIO_PROTO((const char *other));
119TRIO_STRING_PUBLIC int trio_xstring_equal TRIO_PROTO((trio_string_t *self, const char *other));
120TRIO_STRING_PUBLIC int trio_xstring_equal_max TRIO_PROTO((trio_string_t *self, size_t max, const char *other));
121TRIO_STRING_PUBLIC int trio_xstring_equal_case TRIO_PROTO((trio_string_t *self, const char *other));
122TRIO_STRING_PUBLIC int trio_xstring_equal_case_max TRIO_PROTO((trio_string_t *self, size_t max, const char *other));
123TRIO_STRING_PUBLIC int trio_xstring_match TRIO_PROTO((trio_string_t *self, const char *other));
124TRIO_STRING_PUBLIC int trio_xstring_match_case TRIO_PROTO((trio_string_t *self, const char *other));
125TRIO_STRING_PUBLIC char *trio_xstring_substring TRIO_PROTO((trio_string_t *self, const char *other));
126
127#endif /* TRIO_TRIOSTR_H */
Note: See TracBrowser for help on using the repository browser.