ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/microscheme/scheme.c
(Generate patch)

Comparing microscheme/scheme.c (file contents):
Revision 1.16 by root, Thu Nov 26 10:02:58 2015 UTC vs.
Revision 1.17 by root, Thu Nov 26 10:15:51 2015 UTC

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;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines