unprintables; change subscript checking to a warning (it's c after all)
SCCS-vsn: old/dbx/c.c 5.2
-static char sccsid[] = "@(#)c.c 5.1 (Berkeley) %G%";
+static char sccsid[] = "@(#)c.c 5.2 (Berkeley) %G%";
#endif not lint
static char rcsid[] = "$Header: c.c,v 1.5 84/12/26 10:38:23 linton Exp $";
#endif not lint
static char rcsid[] = "$Header: c.c,v 1.5 84/12/26 10:38:23 linton Exp $";
register Symbol t;
register Address a;
integer i, len;
register Symbol t;
register Address a;
integer i, len;
switch (s->class) {
case CONST:
switch (s->class) {
case CONST:
t == t_char->type
) {
len = size(s);
t == t_char->type
) {
len = size(s);
- sp -= len;
- if (s->language == primlang) {
- printf("%.*s", len, sp);
- } else {
- printf("\"%.*s\"", len, sp);
+ str = (String) (sp -= len);
+ if (s->language != primlang) {
+ putchar('"');
+ }
+ while (len > 0) {
+ printchar(*str++);
+ len--;
+ }
+ if (s->language != primlang) {
+ putchar('"');
}
} else {
printarray(s);
}
} else {
printarray(s);
lb = s->symvalue.rangev.lower;
ub = s->symvalue.rangev.upper;
if (i < lb or i > ub) {
lb = s->symvalue.rangev.lower;
ub = s->symvalue.rangev.upper;
if (i < lb or i > ub) {
- error("subscript out of range");
+ warning("subscript out of range");
}
push(long, base + (i - lb) * size(t->type));
}
}
push(long, base + (i - lb) * size(t->type));
}