186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project#include "EXTERN.h" 286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project#include "perl.h" 386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project#include "XSUB.h" 486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project#include "ClearSilver.h" 686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project/* #define DEBUG_MODE 1 886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project */ 986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 1086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projecttypedef struct { 1186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project HDF* hdf; 1286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project NEOERR* err; 1386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project} perlHDF; 1486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 1586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projecttypedef struct { 1686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CSPARSE* cs; 1786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project NEOERR* err; 1886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project} perlCS; 1986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 2086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projecttypedef perlHDF* ClearSilver__HDF; 2186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projecttypedef perlCS* ClearSilver__CS; 2286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 2386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectstatic char* g_sort_func_name; 2486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 2586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectstatic void debug(char* fmt, ...) 2686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project{ 2786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project#ifdef DEBUG_MODE 2886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project va_list argp; 2986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project va_start(argp, fmt); 3086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project vprintf(fmt, argp); 3186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project va_end(argp); 3286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project#endif 3386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project} 3486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 3586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectstatic NEOERR *output (void *ctx, char *s) 3686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project{ 3786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project sv_catpv((SV*)ctx, s); 3886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 3986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project return STATUS_OK; 4086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project} 4186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 4286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectstatic int sortFunction(const void* in_a, const void* in_b) 4386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project{ 4486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project HDF** hdf_a; 4586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project HDF** hdf_b; 4686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project perlHDF a, b; 4786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project SV* sv_a; 4886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project SV* sv_b; 4986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project int count; 5086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project int ret; 5186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 5286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project dSP; 5386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 5486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf_a = (HDF**)in_a; 5586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf_b = (HDF**)in_b; 5686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 5786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project /* convert to a type Perl can access */ 5886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project a.hdf = *hdf_a; 5986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project a.err = STATUS_OK; 6086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project b.hdf = *hdf_b; 6186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project b.err = STATUS_OK; 6286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 6386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ENTER; 6486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project SAVETMPS; 6586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 6686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PUSHMARK(SP); 6786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project sv_a = sv_newmortal(); 6886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project sv_setref_pv(sv_a, "ClearSilver::HDF", (void*)&a); 6986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 7086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project sv_b = sv_newmortal(); 7186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project sv_setref_pv(sv_b, "ClearSilver::HDF", (void*)&b); 7286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 7386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project XPUSHs(sv_a); 7486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project XPUSHs(sv_b); 7586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 7686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PUTBACK; 7786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 7886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project count = call_pv(g_sort_func_name, G_SCALAR); 7986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 8086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project SPAGAIN; 8186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 8286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (count != 1) 8386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project croak("Big trouble\n"); 8486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 8586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PUTBACK; 8686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 8786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ret = POPi; 8886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 8986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project FREETMPS; 9086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project LEAVE; 9186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 9286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project return ret; 9386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project} 9486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 9586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 9686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 9786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 9886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 9986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source ProjectMODULE = ClearSilver PACKAGE = ClearSilver::HDF PREFIX = perlhdf_ 10086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 10186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source ProjectClearSilver::HDF 10286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_new(self) 10386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* self 10486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PREINIT: 10586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver__HDF hdf; 10686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 10786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project debug("%s\n", self); 10886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf = (ClearSilver__HDF)malloc(sizeof(perlHDF)); 10986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (!hdf) { 11086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = NULL; 11186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } else { 11286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf->err = hdf_init(&(hdf->hdf)); 11386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = hdf; 11486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 11586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 11686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 11786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 11886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectvoid 11986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_DESTROY(hdf) 12086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf; 12186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 12286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project debug("hdf_DESTROY:%x\n", hdf); 12386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf_destroy(&(hdf->hdf)); 12486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 12586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 12686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectint 12786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_setValue(hdf, key, value) 12886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf 12986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* key 13086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* value 13186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 13286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf->err = hdf_set_value(hdf->hdf, key, value); 13386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (hdf->err == STATUS_OK) { 13486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 0; 13586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } else { 13686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 1; 13786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 13886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 13986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 14086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 14186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 14286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectchar* 14386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_getValue(hdf, key, default_value) 14486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf 14586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* key 14686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* default_value 14786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 14886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = hdf_get_value(hdf->hdf, key, default_value); 14986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 15086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 15186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 15286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 15386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectint 15486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_copy(hdf, name, src); 15586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf 15686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* name 15786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF src 15886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 15986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf->err = hdf_copy(hdf->hdf, name, src->hdf); 16086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (hdf->err == STATUS_OK) { 16186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 0; 16286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } else { 16386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 1; 16486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 16586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 16686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 16786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 16886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectint 16986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_readFile(hdf, filename) 17086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf 17186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* filename 17286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 17386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf->err = hdf_read_file(hdf->hdf, filename); 17486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (hdf->err == STATUS_OK) { 17586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 1; 17686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } else { 17786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 0; 17886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 17986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 18086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 18186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 18286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectint 18386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_writeFile(hdf, filename) 18486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf 18586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* filename 18686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 18786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf->err = hdf_write_file(hdf->hdf, filename); 18886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (hdf->err == STATUS_OK) { 18986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 1; 19086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } else { 19186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 0; 19286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 19386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 19486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 19586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 19686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source ProjectClearSilver::HDF 19786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_getObj(hdf, name) 19886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf; 19986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* name 20086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PREINIT: 20186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project HDF* tmp_hdf; 20286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project perlHDF* perlhdf; 20386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 20486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project do { 20586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project tmp_hdf = hdf_get_obj(hdf->hdf, name); 20686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (!tmp_hdf) { 20786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = NULL; 20886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project break; 20986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 21086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project perlhdf = (perlHDF*)malloc(sizeof(perlHDF)); 21186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (!perlhdf) { 21286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = NULL; 21386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project break; 21486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 21586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project perlhdf->hdf = tmp_hdf; 21686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project perlhdf->err = STATUS_OK; 21786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = perlhdf; 21886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } while (0); 21986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 22086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 22186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 22286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source ProjectClearSilver::HDF 22386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_objChild(hdf) 22486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf; 22586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PREINIT: 22686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project HDF* tmp_hdf; 22786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project perlHDF* child; 22886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 22986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project do { 23086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project tmp_hdf = hdf_obj_child(hdf->hdf); 23186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (!tmp_hdf) { 23286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = NULL; 23386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project break; 23486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 23586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project child = (perlHDF*)malloc(sizeof(perlHDF)); 23686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (!child) { 23786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = NULL; 23886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project break; 23986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 24086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project child->hdf = tmp_hdf; 24186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project child->err = STATUS_OK; 24286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = child; 24386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } while (0); 24486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 24586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 24686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 24786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 24886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source ProjectClearSilver::HDF 24986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_getChild(hdf, name) 25086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf; 25186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* name; 25286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PREINIT: 25386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project HDF* tmp_hdf; 25486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project perlHDF* child; 25586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 25686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project do { 25786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project tmp_hdf = hdf_get_child(hdf->hdf, name); 25886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (!tmp_hdf) { 25986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = NULL; 26086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project break; 26186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 26286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project child = (perlHDF*)malloc(sizeof(perlHDF)); 26386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (!child) { 26486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = NULL; 26586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project break; 26686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 26786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project child->hdf = tmp_hdf; 26886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project child->err = STATUS_OK; 26986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = child; 27086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } while (0); 27186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 27286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 27386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 27486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectchar* 27586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_objValue(hdf) 27686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf; 27786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 27886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = hdf_obj_value(hdf->hdf); 27986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 28086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 28186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 28286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectchar* 28386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_objName(hdf) 28486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf; 28586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 28686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = hdf_obj_name(hdf->hdf); 28786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 28886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 28986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 29086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source ProjectClearSilver::HDF 29186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_objNext(hdf) 29286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf; 29386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PREINIT: 29486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project HDF* tmp_hdf; 29586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project perlHDF* next; 29686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 29786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project do { 29886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project tmp_hdf = hdf_obj_next(hdf->hdf); 29986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (!tmp_hdf) { 30086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = NULL; 30186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project break; 30286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 30386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project next = (perlHDF*)malloc(sizeof(perlHDF)); 30486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (!next) { 30586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = NULL; 30686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project break; 30786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 30886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project next->hdf = tmp_hdf; 30986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project next->err = STATUS_OK; 31086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = next; 31186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } while (0); 31286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 31386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 31486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 31586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectint 31686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_sortObj(hdf, func_name) 31786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf; 31886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* func_name; 31986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PREINIT: 32086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project NEOERR* err; 32186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 32286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project g_sort_func_name = func_name; 32386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project err = hdf_sort_obj(hdf->hdf, sortFunction); 32486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 0; 32586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 32686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 32786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 32886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 32986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectint 33086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_setSymlink(hdf, src, dest) 33186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf; 33286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* src; 33386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* dest; 33486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PREINIT: 33586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project NEOERR* err; 33686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 33786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project err = hdf_set_symlink (hdf->hdf, src, dest); 33886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (err == STATUS_OK) { 33986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 1; 34086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } else { 34186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 0; 34286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 34386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 34486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 34586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 34686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 34786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectint 34886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlhdf_removeTree(hdf, name) 34986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf; 35086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* name; 35186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PREINIT: 35286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project NEOERR* err; 35386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 35486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project err = hdf_remove_tree(hdf->hdf, name); 35586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (err == STATUS_OK) { 35686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 1; 35786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } else { 35886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 0; 35986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 36086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 36186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 36286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 36386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 36486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source ProjectMODULE = ClearSilver PACKAGE = ClearSilver::CS PREFIX = perlcs_ 36586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 36686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source ProjectClearSilver::CS 36786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlcs_new(self, hdf) 36886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* self 36986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::HDF hdf; 37086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PREINIT: 37186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project perlCS* cs; 37286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 37386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project cs = (perlCS*)malloc(sizeof(perlCS)); 37486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (!cs) { 37586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = NULL; 37686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } else { 37786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project cs->err = cs_init(&(cs->cs), hdf->hdf); 37886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (cs->err == STATUS_OK) { 37986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project cs->err = cgi_register_strfuncs(cs->cs); 38086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 38186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = cs; 38286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 38386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 38486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 38586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 38686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectvoid 38786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlcs_DESTROY(cs) 38886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::CS cs; 38986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 39086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project debug("perlcs_DESTROY() is called\n"); 39186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project cs_destroy(&(cs->cs)); 39286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 39386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectvoid 39486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlcs_displayError(cs) 39586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::CS cs; 39686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 39786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project nerr_log_error(cs->err); 39886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 39986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectchar * 40086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlcs_render(cs) 40186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::CS cs 40286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 40386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 40486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project SV *str = newSV(0); 40586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project cs->err = cs_render(cs->cs, str, output); 40686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (cs->err == STATUS_OK) { 40786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ST(0) = sv_2mortal(str); 40886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } else { 40986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project SvREFCNT_dec(str); 41086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ST(0) = &PL_sv_undef; 41186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 41286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project XSRETURN(1); 41386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 41486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 41586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectint 41686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlcs_parseFile(cs, cs_file) 41786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::CS cs 41886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* cs_file 41986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 42086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project do { 42186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project cs->err = cs_parse_file(cs->cs, cs_file); 42286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (cs->err != STATUS_OK) { 42386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project cs->err = nerr_pass(cs->err); 42486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 0; 42586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project break; 42686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 42786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 1; 42886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } while (0); 42986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 43086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 43186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 43286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectint 43386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectperlcs_parseString(cs, in_str) 43486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ClearSilver::CS cs 43586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* in_str 43686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project PREINIT: 43786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char* cs_str; 43886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project int len; 43986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CODE: 44086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project do { 44186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project len = strlen(in_str); 44286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project cs_str = (char *)malloc(len); 44386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (!cs_str) { 44486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 0; 44586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project break; 44686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 44786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project strcpy(cs_str, in_str); 44886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project cs->err = cs_parse_string(cs->cs, cs_str, len); 44986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (cs->err != STATUS_OK) 45086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 0; 45186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL = 1; 45286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } while (0); 45386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project OUTPUT: 45486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project RETVAL 45586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 45686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 45786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 458