summaryrefslogtreecommitdiff
path: root/ext/-test-/num2int/num2int.c
blob: be4c265895c78fb11032e831d202f7cc39c61a19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <ruby.h>

static VALUE
test_num2short(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%d", NUM2SHORT(num));
    return rb_str_new_cstr(buf);
}

static VALUE
test_num2ushort(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%u", NUM2USHORT(num));
    return rb_str_new_cstr(buf);
}

static VALUE
test_num2int(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%d", NUM2INT(num));
    return rb_str_new_cstr(buf);
}

static VALUE
test_num2uint(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%u", NUM2UINT(num));
    return rb_str_new_cstr(buf);
}

static VALUE
test_num2long(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%ld", NUM2LONG(num));
    return rb_str_new_cstr(buf);
}

static VALUE
test_num2ulong(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%lu", NUM2ULONG(num));
    return rb_str_new_cstr(buf);
}

#ifdef HAVE_LONG_LONG
static VALUE
test_num2ll(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%"PRI_LL_PREFIX"d", NUM2LL(num));
    return rb_str_new_cstr(buf);
}

static VALUE
test_num2ull(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%"PRI_LL_PREFIX"u", NUM2ULL(num));
    return rb_str_new_cstr(buf);
}
#endif

static VALUE
test_fix2short(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%d", FIX2SHORT(num));
    return rb_str_new_cstr(buf);
}

static VALUE
test_fix2int(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%d", FIX2INT(num));
    return rb_str_new_cstr(buf);
}

static VALUE
test_fix2uint(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%u", FIX2UINT(num));
    return rb_str_new_cstr(buf);
}

static VALUE
test_fix2long(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%ld", FIX2LONG(num));
    return rb_str_new_cstr(buf);
}

static VALUE
test_fix2ulong(VALUE obj, VALUE num)
{
    char buf[128];
    sprintf(buf, "%lu", FIX2ULONG(num));
    return rb_str_new_cstr(buf);
}

void
Init_num2int(void)
{
    rb_define_global_function("NUM2SHORT", test_num2short, 1);
    rb_define_global_function("NUM2USHORT", test_num2ushort, 1);

    rb_define_global_function("NUM2INT", test_num2int, 1);
    rb_define_global_function("NUM2UINT", test_num2uint, 1);

    rb_define_global_function("NUM2LONG", test_num2long, 1);
    rb_define_global_function("NUM2ULONG", test_num2ulong, 1);

#ifdef HAVE_LONG_LONG
    rb_define_global_function("NUM2LL", test_num2ll, 1);
    rb_define_global_function("NUM2ULL", test_num2ull, 1);
#endif

    rb_define_global_function("FIX2SHORT", test_fix2short, 1);

    rb_define_global_function("FIX2INT", test_fix2int, 1);
    rb_define_global_function("FIX2UINT", test_fix2uint, 1);

    rb_define_global_function("FIX2LONG", test_fix2long, 1);
    rb_define_global_function("FIX2ULONG", test_fix2ulong, 1);
}