#include "ikarus.h" #include #include #include #include #include #include #include #include /* get_option takes pointers to argc and argv and looks for the first option matching opt. If one exists, it removes it from the argv list, updates argc, and returns a pointer to the option value. returns null if option is not found. */ char* get_option(char* opt, int argc, char** argv){ int i; for(i=1; i 0){ char* s = argv[i]; int n = strlen(s); ikp str = ik_alloc(pcb, align(n+disp_string_data+1)); ref(str, disp_string_length) = fix(n); strcpy((char*)str+disp_string_data, s); ikp p = ik_alloc(pcb, pair_size); ref(p, disp_car) = str + string_tag; ref(p, disp_cdr) = arg_list; arg_list = p+pair_tag; i--; } pcb->arg_list = arg_list; } ik_fasl_load(pcb, boot_file); /* fprintf(stderr, "collect time: %d.%03d utime, %d.%03d stime (%d collections)\n", pcb->collect_utime.tv_sec, pcb->collect_utime.tv_usec/1000, pcb->collect_stime.tv_sec, pcb->collect_stime.tv_usec/1000, pcb->collection_id ); */ ik_delete_pcb(pcb); return 0; }