int main (int argc, char *argv[]) { if (argc < 2) return 0; u_int64_t size; char *prg = ctr_internal_readf (argv[1], &size); char *t = transform (prg, size); printf ("%s\n", t); free (t); free (prg); return 0; }
/** * [File] include * * Includes the file as a piece of executable code. */ ctr_object* ctr_file_include(ctr_object* myself, ctr_argument* argumentList) { ctr_object* path = ctr_internal_object_find_property(myself, ctr_build_string("path",4), 0); ctr_tnode* parsedCode; ctr_size vlen; char* pathString; char* prg; if (path == NULL) return myself; vlen = path->value.svalue->vlen; pathString = malloc(vlen + 1); memcpy(pathString, path->value.svalue->value, vlen); memcpy(pathString+vlen,"\0",1); prg = ctr_internal_readf(pathString); free(pathString); parsedCode = ctr_dparse_parse(prg); ctr_cwlk_run(parsedCode); return myself; }
/** * [File] include * * Includes the file as a piece of executable code. */ ctr_object* ctr_file_include(ctr_object* myself, ctr_argument* argumentList) { ctr_object* path = ctr_internal_object_find_property(myself, ctr_build_string_from_cstring( "path" ), 0); ctr_tnode* parsedCode; ctr_size vlen; char* pathString; char* prg; uint64_t program_size = 0; if (path == NULL) return myself; vlen = path->value.svalue->vlen; pathString = ctr_heap_allocate_tracked(sizeof(char)*(vlen+1)); //needed until end, pathString appears in stracktrace memcpy(pathString, path->value.svalue->value, vlen); memcpy(pathString+vlen,"\0",1); prg = ctr_internal_readf(pathString, &program_size); parsedCode = ctr_cparse_parse(prg, pathString); ctr_heap_free( prg ); ctr_cwlk_subprogram++; ctr_cwlk_run(parsedCode); ctr_cwlk_subprogram--; return myself; }