[1842] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[PATCH 2/7] Add owl_new_av to abstract owl_list to AV*

daemon@ATHENA.MIT.EDU (David Benjamin)
Thu Oct 29 18:23:05 2009

Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
X-Original-To: nelhage@lunatique.mit.edu
From: David Benjamin <davidben@MIT.EDU>
To: barnowl-dev@mit.edu
Date: Sat, 24 Oct 2009 13:43:36 -0400
In-Reply-To: <1256406221-22905-2-git-send-email-davidben@mit.edu>

Takes a callback function to convert elements to SV*.

Signed-off-by: David Benjamin <davidben@mit.edu>
---
 perlconfig.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/perlconfig.c b/perlconfig.c
index 1662d15..5b34fe8 100644
--- a/perlconfig.c
+++ b/perlconfig.c
@@ -35,6 +35,22 @@ SV *owl_new_sv(const char * str)
   return ret;
 }
 
+AV *owl_new_av(const owl_list *l, SV *(*to_sv)(const void *))
+{
+  AV *ret;
+  int i;
+  void *element;
+
+  ret = newAV();
+
+  for(i = 0; i < owl_list_get_size(l); i++) {
+    element = owl_list_get_element(l, i);
+    av_push(ret, to_sv(element));
+  }
+
+  return ret;
+}
+
 SV *owl_perlconfig_message2hashref(const owl_message *m)
 {
   HV *h, *stash;
-- 
1.6.3.3


home help back first fref pref prev next nref lref last post