CoreFW  Diff

Differences From Artifact [0544ff8a52]:

To Artifact [a4028e5ce6]:


23
24
25
26
27
28
29

30
31
32
33
34

35
36
37
38
39
40
41
23
24
25
26
27
28
29
30
31
32
33
34

35
36
37
38
39
40
41
42







+




-
+







 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#include <stdio.h>

#include "object.h"
#include "refpool.h"
#include "string.h"
#include "array.h"
#include "map.h"

void
static void
print_map(CFWMap *map)
{
	cfw_map_iter_t iter;

	cfw_map_iter(map, &iter);
	cfw_map_iter_next(&iter);

53
54
55
56
57
58
59
60

61

62
63
64
65
66
67

68
69
70
71
72




73
74
75

76
77
78

79
80

81
82

83

84
85


86
87
88


89
90

91
92
93
94





95
96
97
98
99
100



101
102
103
104

105
106
107

108
109
110
111
54
55
56
57
58
59
60

61
62
63
64
65
66



67
68




69
70
71
72

73

74
75
76

77
78

79
80

81
82
83


84
85

86

87
88
89

90

91


92
93
94
95
96
97
98
99



100
101
102
103
104
105

106
107
108

109

110
111
112







-
+

+



-
-
-
+

-
-
-
-
+
+
+
+
-

-
+


-
+

-
+

-
+

+
-
-
+
+
-

-
+
+

-
+
-

-
-
+
+
+
+
+



-
-
-
+
+
+



-
+


-
+
-




	fputs("}\n", stdout);
}

int
main()
{
	CFWString *s[3];
	CFWRefPool *p;
	CFWArray *a;
	CFWString *s, *s2;
	CFWMap *m;
	size_t i;

	s[0] = cfw_new(cfw_string, "Hallo");
	s[1] = cfw_new(cfw_string, " Welt");
	s[2] = cfw_new(cfw_string, "!");
	p = cfw_new(cfw_refpool);

	a = cfw_new(cfw_array, s[0], s[1], s[2], NULL);

	cfw_unref(s[0]);
	cfw_unref(s[1]);
	a = cfw_new_p(cfw_array,
	    cfw_new_p(cfw_string, "Hallo"),
	    cfw_new_p(cfw_string, " Welt"),
	    cfw_new_p(cfw_string, "!"), NULL);
	cfw_unref(s[2]);

	s[0] = cfw_new(cfw_string, NULL);
	s = cfw_new(cfw_string, NULL);

	for (i = 0; i < cfw_array_size(a); i++)
		cfw_string_append(s[0], cfw_array_get(a, i));
		cfw_string_append(s, cfw_array_get(a, i));

	cfw_unref(a);
	cfw_unref(p);

	puts(cfw_string_c(s[0]));
	puts(cfw_string_c(s));

	p = cfw_new(cfw_refpool);
	s[1] = cfw_new(cfw_string, "ll");
	printf("%zd\n", cfw_string_find(s[0], s[1], cfw_range_all));
	s2 = cfw_new_p(cfw_string, "ll");
	printf("%zd\n", cfw_string_find(s, s2, cfw_range_all));
	cfw_unref(s[1]);

	cfw_unref(s[0]);
	cfw_unref(p);
	cfw_unref(s);

	s[0] = cfw_new(cfw_string, "Hallo");
	p = cfw_new(cfw_refpool);
	s[1] = cfw_new(cfw_string, "Welt!");

	m = cfw_new(cfw_map, s[0], s[1], NULL);
	cfw_unref(s[1]);
	m = cfw_new_p(cfw_map,
	    cfw_new_p(cfw_string, "Hallo"),
	    cfw_new_p(cfw_string, "Welt!"),
	    cfw_new_p(cfw_string, "Test"),
	    cfw_new_p(cfw_string, "success!"), NULL);

	print_map(m);

	s[1] = cfw_new(cfw_string, "Test");
	cfw_map_set(m, s[0], s[1]);
	cfw_unref(s[1]);
	cfw_map_set(m,
	    cfw_new_p(cfw_string, "Hallo"),
	    cfw_new_p(cfw_string, "Test"));

	print_map(m);

	cfw_map_set(m, s[0], NULL);
	cfw_map_set(m, cfw_new_p(cfw_string, "Hallo"), NULL);
	print_map(m);

	cfw_unref(s[0]);
	cfw_unref(p);
	cfw_unref(m);

	return 0;
}