… | |
… | |
4248 | len = ivalue (x); |
4248 | len = ivalue (x); |
4249 | |
4249 | |
4250 | if (cdr (args) != NIL) |
4250 | if (cdr (args) != NIL) |
4251 | fill = charvalue (cadr (args)); |
4251 | fill = charvalue (cadr (args)); |
4252 | |
4252 | |
4253 | s_return (mk_empty_string (SCHEME_A_ len, (char) fill)); |
4253 | s_return (mk_empty_string (SCHEME_A_ len, fill)); |
4254 | } |
4254 | } |
4255 | |
4255 | |
4256 | case OP_STRLEN: /* string-length */ |
4256 | case OP_STRLEN: /* string-length */ |
4257 | s_return (mk_integer (SCHEME_A_ strlength (x))); |
4257 | s_return (mk_integer (SCHEME_A_ strlength (x))); |
4258 | |
4258 | |
… | |
… | |
4266 | index = ivalue (cadr (args)); |
4266 | index = ivalue (cadr (args)); |
4267 | |
4267 | |
4268 | if (index >= strlength (x)) |
4268 | if (index >= strlength (x)) |
4269 | Error_1 ("string-ref: out of bounds:", cadr (args)); |
4269 | Error_1 ("string-ref: out of bounds:", cadr (args)); |
4270 | |
4270 | |
4271 | s_return (mk_character (SCHEME_A_ ((unsigned char *) str)[index])); |
4271 | s_return (mk_character (SCHEME_A_ ((unsigned char *)str)[index])); |
4272 | } |
4272 | } |
4273 | |
4273 | |
4274 | case OP_STRSET: /* string-set! */ |
4274 | case OP_STRSET: /* string-set! */ |
4275 | { |
4275 | { |
4276 | char *str; |
4276 | char *str; |
… | |
… | |
4287 | if (index >= strlength (x)) |
4287 | if (index >= strlength (x)) |
4288 | Error_1 ("string-set!: out of bounds:", cadr (args)); |
4288 | Error_1 ("string-set!: out of bounds:", cadr (args)); |
4289 | |
4289 | |
4290 | c = charvalue (caddr (args)); |
4290 | c = charvalue (caddr (args)); |
4291 | |
4291 | |
4292 | str[index] = (char)c; |
4292 | str[index] = c; |
4293 | s_return (car (args)); |
4293 | s_return (car (args)); |
4294 | } |
4294 | } |
4295 | |
4295 | |
4296 | case OP_STRAPPEND: /* string-append */ |
4296 | case OP_STRAPPEND: /* string-append */ |
4297 | { |
4297 | { |
… | |
… | |
5830 | { |
5830 | { |
5831 | dump_stack_reset (SCHEME_A); |
5831 | dump_stack_reset (SCHEME_A); |
5832 | SCHEME_V->envir = SCHEME_V->global_env; |
5832 | SCHEME_V->envir = SCHEME_V->global_env; |
5833 | SCHEME_V->file_i = 0; |
5833 | SCHEME_V->file_i = 0; |
5834 | SCHEME_V->load_stack[0].kind = port_input | port_string; |
5834 | SCHEME_V->load_stack[0].kind = port_input | port_string; |
5835 | SCHEME_V->load_stack[0].rep.string.start = (char *) cmd; /* This func respects const */ |
5835 | SCHEME_V->load_stack[0].rep.string.start = (char *)cmd; /* This func respects const */ |
5836 | SCHEME_V->load_stack[0].rep.string.past_the_end = (char *) cmd + strlen (cmd); |
5836 | SCHEME_V->load_stack[0].rep.string.past_the_end = (char *)cmd + strlen (cmd); |
5837 | SCHEME_V->load_stack[0].rep.string.curr = (char *) cmd; |
5837 | SCHEME_V->load_stack[0].rep.string.curr = (char *)cmd; |
5838 | #if USE_PORTS |
5838 | #if USE_PORTS |
5839 | SCHEME_V->loadport = mk_port (SCHEME_A_ SCHEME_V->load_stack); |
5839 | SCHEME_V->loadport = mk_port (SCHEME_A_ SCHEME_V->load_stack); |
5840 | #endif |
5840 | #endif |
5841 | SCHEME_V->retcode = 0; |
5841 | SCHEME_V->retcode = 0; |
5842 | SCHEME_V->interactive_repl = 0; |
5842 | SCHEME_V->interactive_repl = 0; |