source: libcaca/trunk/ruby/common.h @ 4369

Last change on this file since 4369 was 4369, checked in by Sam Hocevar, 10 years ago

Add the copyright unit test and update copyright information everywhere.

  • Property svn:eol-style set to native
File size: 2.4 KB
Line 
1/*
2 *  libcaca Ruby bindings
3 *  Copyright (c) 2007-2010 Pascal Terjan <pterjan@linuxfr.org>
4 *
5 *  This library is free software. It comes without any warranty, to
6 *  the extent permitted by applicable law. You can redistribute it
7 *  and/or modify it under the terms of the Do What The Fuck You Want
8 *  To Public License, Version 2, as published by Sam Hocevar. See
9 *  http://sam.zoy.org/wtfpl/COPYING for more details.
10 */
11
12#ifndef __COMMON_H__
13#define __COMMON_H__
14
15#define _SELF  (DATA_PTR(self))
16
17#define get_singleton_double_list(x)                      \
18static VALUE x##_list(void)                     \
19{                                               \
20    VALUE ary, ary2;                            \
21    char const* const* list;                    \
22                                                \
23    list = caca_get_##x##_list();              \
24    ary = rb_ary_new();                         \
25    while (*list != NULL)                       \
26    {                                           \
27        ary2 = rb_ary_new();                    \
28        rb_ary_push(ary2, rb_str_new2(*list));  \
29        list++;                                 \
30        rb_ary_push(ary2, rb_str_new2(*list));  \
31        list++;                                 \
32        rb_ary_push(ary, ary2);                 \
33    }                                           \
34                                                \
35    return ary;                                 \
36}
37
38#define get_double_list(x)                      \
39static VALUE x##_list(VALUE self)               \
40{                                               \
41    VALUE ary, ary2;                            \
42    char const* const* list;                    \
43                                                \
44    list = caca_get_##x##_list(_SELF);         \
45    ary = rb_ary_new();                         \
46    while (*list != NULL)                       \
47    {                                           \
48        ary2 = rb_ary_new();                    \
49        rb_ary_push(ary2, rb_str_new2(*list));  \
50        list++;                                 \
51        rb_ary_push(ary2, rb_str_new2(*list));  \
52        list++;                                 \
53        rb_ary_push(ary, ary2);                 \
54    }                                           \
55                                                \
56    return ary;                                 \
57}
58
59#endif
Note: See TracBrowser for help on using the repository browser.