Branch: Tag:

1998-04-28

1998-04-28 23:54:21 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Improved index out of range error-messages.

Rev: src/array.c:1.36

19:   #include "gc.h"   #include "main.h"    - RCSID("$Id: array.c,v 1.35 1998/04/27 22:33:17 hubbe Exp $"); + RCSID("$Id: array.c,v 1.36 1998/04/28 23:54:21 grubba Exp $");      struct array empty_array=   {
161:    case T_INT:    i=ind->u.integer;    if(i<0) i+=a->size; -  if(i<0 || i>=a->size) error("Index out of range.\n"); +  if(i<0 || i>=a->size) { +  if (a->size) { +  error("Index %d is out of range 0 - %d.\n", i, a->size-1); +  } else { +  error("Attempt to index the empty array with %d.\n", i); +  } +  }    array_index_no_free(s,a,i);    break;   
218:    error("Index is not an integer.\n");    i=ind->u.integer;    if(i<0) i+=a->size; -  if(i<0 || i>=a->size) error("Index out of range.\n"); +  if(i<0 || i>=a->size) { +  if (a->size) { +  error("Index %d is out of range 0 - %d.\n", i, a->size-1); +  } else { +  error("Attempt to index the empty array with %d.\n", i); +  } +  }    array_set_index(a,i,s);   }   
887:    error("Index is not an integer.\n");    i=ind->u.integer;    if(i<0) i+=a->size; -  if(i<0 || i>=a->size) error("Index out of range.\n"); +  if(i<0 || i>=a->size) { +  if (a->size) { +  error("Index %d is out of range 0 - %d.\n", i, a->size-1); +  } else { +  error("Attempt to index the empty array with %d.\n", i); +  } +  }    return low_array_get_item_ptr(a,i,t);   }