Merge branch 'issue-316'
This commit is contained in:
		
						commit
						03e1ef1753
					
				|  | @ -489,7 +489,7 @@ pic_str_string_ref(pic_state *pic) | ||||||
|   static pic_value                                                      \ |   static pic_value                                                      \ | ||||||
|   pic_str_string_##name(pic_state *pic)                                 \ |   pic_str_string_##name(pic_state *pic)                                 \ | ||||||
|   {                                                                     \ |   {                                                                     \ | ||||||
|     int argc, i;                                                     \ |     int argc, i;                                                        \ | ||||||
|     pic_value *argv;                                                    \ |     pic_value *argv;                                                    \ | ||||||
|                                                                         \ |                                                                         \ | ||||||
|     pic_get_args(pic, "*", &argc, &argv);                               \ |     pic_get_args(pic, "*", &argc, &argv);                               \ | ||||||
|  | @ -500,10 +500,10 @@ pic_str_string_ref(pic_state *pic) | ||||||
|                                                                         \ |                                                                         \ | ||||||
|     for (i = 1; i < argc; ++i) {                                        \ |     for (i = 1; i < argc; ++i) {                                        \ | ||||||
|       if (! pic_str_p(argv[i])) {                                       \ |       if (! pic_str_p(argv[i])) {                                       \ | ||||||
| 	return pic_false_value();                                       \ |         return pic_false_value();                                       \ | ||||||
|       }                                                                 \ |       }                                                                 \ | ||||||
|       if (! (pic_str_cmp(pic, pic_str_ptr(argv[i-1]), pic_str_ptr(argv[i])) op 0)) { \ |       if (! (pic_str_cmp(pic, pic_str_ptr(argv[i-1]), pic_str_ptr(argv[i])) op 0)) { \ | ||||||
| 	return pic_false_value();                                       \ |         return pic_false_value();                                       \ | ||||||
|       }                                                                 \ |       }                                                                 \ | ||||||
|     }                                                                   \ |     }                                                                   \ | ||||||
|     return pic_true_value();                                            \ |     return pic_true_value();                                            \ | ||||||
|  | @ -519,17 +519,22 @@ static pic_value | ||||||
| pic_str_string_copy(pic_state *pic) | pic_str_string_copy(pic_state *pic) | ||||||
| { | { | ||||||
|   pic_str *str; |   pic_str *str; | ||||||
|   int n, start, end; |   int n, start, end, len; | ||||||
| 
 | 
 | ||||||
|   n = pic_get_args(pic, "s|ii", &str, &start, &end); |   n = pic_get_args(pic, "s|ii", &str, &start, &end); | ||||||
| 
 | 
 | ||||||
|  |   len = pic_str_len(str); | ||||||
|  | 
 | ||||||
|   switch (n) { |   switch (n) { | ||||||
|   case 1: |   case 1: | ||||||
|     start = 0; |     start = 0; | ||||||
|   case 2: |   case 2: | ||||||
|     end = pic_str_len(str); |     end = len; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   if (start < 0 || end > len || end < start) | ||||||
|  |     pic_errorf(pic, "string-copy: invalid index"); | ||||||
|  | 
 | ||||||
|   return pic_obj_value(pic_str_sub(pic, str, start, end)); |   return pic_obj_value(pic_str_sub(pic, str, start, end)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Yuichi Nishiwaki
						Yuichi Nishiwaki