gint num_strings = values[i].data.d_int32; gchar **array = (gchar **) values[i + 1].data.d_stringarray; pointer list = sc->NIL; pointer string; #if 0 return_val = sc->vptr->cons (sc, list, return_val); set_safe_foreign (sc, return_val); #endif for (j = 0; j < num_strings; j++) { if (array[j]) { string = sc->vptr->mk_string (sc, array[j]); } else { string = sc->vptr->mk_string (sc, ""); } list = sc->vptr->cons (sc, string, list); } // list = sc->vptr->reverse (sc, list); return_val = sc->vptr->cons (sc, list, return_val); }