commit 9403daebc3a0b5cdde4635644e10f69b0cd82caf
parent 4f7c118ce98142094681530df837bfff9fcac1f6
Author: Tomas Hlavaty <tom@logand.com>
Date: Tue, 17 Jan 2012 00:19:32 +0100
moved some, mapc, find, reverse
Diffstat:
3 files changed, 31 insertions(+), 27 deletions(-)
diff --git a/unoidl2.c b/unoidl2.c
@@ -159,3 +159,30 @@ Any print(Any x) {
}
return x;
}
+
+int some(void *env, int (*fn)(void *env, Any e), Any x) {
+ for(Any y = x; NIL != y; y = cdr(y)) {
+ int z = fn(env, car(y));
+ if(z) return z;
+ }
+ return 0;
+}
+
+Any mapc(void *env, Any (*fn)(void *env, Any e), Any x) {
+ Any z = NIL;
+ for(Any y = x; NIL != y; y = cdr(y))
+ z = fn(env, car(y));
+ return z;
+}
+
+Any find(Any e, Any l, int (*eq)(Any e, Any x)) {
+ for(; NIL != l; l = cdr(l)) {
+ Any a = car(l);
+ if(eq(e, car(a))) return a;
+ }
+ return NIL;
+}
+
+Any reverse(Any x, Any a) {
+ return NIL == x ? a : reverse(cdr(x), cons(car(x), a));
+}
diff --git a/unoidl2.h b/unoidl2.h
@@ -55,3 +55,7 @@ Any caddddr(Any x);
Any cdddddr(Any x);
int equal(Any x, Any y);
Any print(Any x);
+int some(void *env, int (*fn)(void *env, Any e), Any x);
+Any mapc(void *env, Any (*fn)(void *env, Any e), Any x);
+Any find(Any e, Any l, int (*eq)(Any e, Any x));
+Any reverse(Any x, Any a);
diff --git a/unoidl2java.c b/unoidl2java.c
@@ -179,21 +179,6 @@ static void pr_slots(Any slots, Any name) {
pl(" }");
}
-static int some(void *env, int (*fn)(void *env, Any e), Any x) {
- for(Any y = x; NIL != y; y = cdr(y)) {
- int z = fn(env, car(y));
- if(z) return z;
- }
- return 0;
-}
-
-static Any mapc(void *env, Any (*fn)(void *env, Any e), Any x) {
- Any z = NIL;
- for(Any y = x; NIL != y; y = cdr(y))
- z = fn(env, car(y));
- return z;
-}
-
static Any method;
static int k;
@@ -526,20 +511,8 @@ static void pr_typedef(Any x) {
typedefs = cons(cons(cons(cadr(x), module), cadddr(x)), typedefs);
}
-static Any find(Any e, Any l, int (*eq)(Any e, Any x)) {
- for(; NIL != l; l = cdr(l)) {
- Any a = car(l);
- if(eq(e, car(a))) return a;
- }
- return NIL;
-}
-
static Any resolve_typedef(Any x) {return find(x, typedefs, equal);}
-static Any reverse(Any x, Any a) {
- return NIL == x ? a : reverse(cdr(x), cons(car(x), a));
-}
-
static void pr_relative(Any x) {
if(!use_XInterface && equal(com_sun_star_uno_XInterface, cdr(x)))
pr("java.lang.Object");