#include "stdwin.h"
+#define StdwinError RuntimeError /* XXX Change this later */
+
/* Window and menu object types declared here because of forward references */
typedef struct {
if (!getrectarg(args, a))
return NULL;
if (Drawing != NULL) {
- err_setstr(RuntimeError, "already drawing");
+ err_setstr(StdwinError, "already drawing");
return NULL;
}
/* Clip to text area and ignore if area is empty */
return NULL;
size = getstringsize(text);
if ((buf = NEW(char, size)) == NULL) {
- err_set(MemoryError);
- return NULL;
+ return err_nomem();
}
memcpy(buf, getstringvalue(text), size);
tesetbuf(self->t_text, buf, size); /* Becomes owner of buffer */
break;
}
if (id >= MAXNMENU) {
- err_setstr(MemoryError, "creating too many menus");
+ err_setstr(StdwinError, "creating too many menus");
return NULL;
}
menu = wmenucreate(id + IDOFFSET, getstringvalue(title));
if (!getnoarg(args))
return NULL;
if (Drawing != NULL) {
- err_setstr(RuntimeError, "already drawing");
+ err_setstr(StdwinError, "already drawing");
return NULL;
}
dp = NEWOBJ(drawingobject, &Drawingtype);
return NULL;
c = wfetchcursor(getstringvalue(str));
if (c == NULL) {
- err_setstr(RuntimeError, "no such cursor");
+ err_setstr(StdwinError, "no such cursor");
return NULL;
}
wsetwincursor(self->w_win, c);
break;
}
if (tag >= MAXNWIN) {
- err_setstr(MemoryError, "creating too many windows");
+ err_setstr(StdwinError, "creating too many windows");
return NULL;
}
wp = NEWOBJ(windowobject, &Windowtype);
if (!getnoarg(args))
return NULL;
if (Drawing != NULL) {
- err_setstr(RuntimeError, "cannot getevent() while drawing");
+ err_setstr(StdwinError, "cannot getevent() while drawing");
return NULL;
}
again:
#endif
f->f_fp = fopen(name, mode);
if (f->f_fp == NULL) {
- err_errno(RuntimeError);
+ err_errno(IOError);
DECREF(f);
return NULL;
}
if (sts == EOF) {
if (errno == 0)
errno = EIO;
- return err_errno(RuntimeError);
+ return err_errno(IOError);
}
if (sts != 0)
return newintobject((long)sts);
if (fseek(f->f_fp, offset, (int)whence) != 0) {
if (errno == 0)
errno = EIO;
- return err_errno(RuntimeError);
+ return err_errno(IOError);
}
INCREF(None);
return None;
if (offset == -1L) {
if (errno == 0)
errno = EIO;
- return err_errno(RuntimeError);
+ return err_errno(IOError);
}
return newintobject(offset);
}
if (fflush(f->f_fp) != 0) {
if (errno == 0)
errno = EIO;
- return err_errno(RuntimeError);
+ return err_errno(IOError);
}
INCREF(None);
return None;
object *args;
{
int n, n2;
- char *s;
if (f->f_fp == NULL) {
err_badarg();
return NULL;
}
f->f_softspace = 0;
errno = 0;
- n = getstringsize(args);
- s = getstringvalue(args);
- if (n > BUFSIZ) {
- fflush(f->f_fp);
- n2 = write(fileno(f->f_fp), s, n);
- fflush(f->f_fp);
- }
- else {
- n2 = fwrite(s, 1, n, f->f_fp);
- }
+ n2 = fwrite(getstringvalue(args), 1, n = getstringsize(args), f->f_fp);
if (n2 != n) {
if (errno == 0)
errno = EIO;
- err_errno(RuntimeError);
+ err_errno(IOError);
return NULL;
}
INCREF(None);
if (cmpobject(self->ob_item[i], args) == 0)
return newintobject(i);
}
- err_setstr(RuntimeError, "list.index(x): x not in list");
+ err_setstr(ValueError, "list.index(x): x not in list");
return NULL;
}
}
}
- err_setstr(RuntimeError, "list.remove(x): x not in list");
+ err_setstr(ValueError, "list.remove(x): x not in list");
return NULL;
}
prev = x;
x = (x << SHIFT) + v->ob_digit[i];
if ((x >> SHIFT) != prev) {
- err_setstr(RuntimeError,
+ err_setstr(ValueError,
"long int too long to convert");
return -1;
}
if (size_b == 0) {
if (prem != NULL)
*prem = NULL;
- err_setstr(RuntimeError, "long division by zero");
+ err_setstr(ZeroDivisionError, "long division or remainder");
return NULL;
}
if (size_a < size_b ||
if (size_b == ~0)
size_b = 0;
else if (size_b < 0) {
- err_setstr(RuntimeError, "long integer to the negative power");
+ err_setstr(ValueError, "long integer to the negative power");
return NULL;
}
if (shiftby == -1L && err_occurred())
return NULL;
if (shiftby < 0) {
- err_setstr(RuntimeError, "negative shift count");
+ err_setstr(ValueError, "negative shift count");
return NULL;
}
if (shiftby > MASK) {
- err_setstr(RuntimeError, "outrageous shift count");
+ err_setstr(ValueError, "outrageous shift count");
return NULL;
}
wordshift = shiftby / SHIFT;
if (shiftby == -1L && err_occurred())
return NULL;
if (shiftby < 0) {
- err_setstr(RuntimeError, "negative shift count");
+ err_setstr(ValueError, "negative shift count");
return NULL;
}
if (shiftby > MASK) {
- err_setstr(RuntimeError, "outrageous shift count");
+ err_setstr(ValueError, "outrageous shift count");
return NULL;
}
if (shiftby % SHIFT == 0) {
}
res = dictlookup(m->md_dict, name);
if (res == NULL)
- err_setstr(NameError, name);
+ err_setstr(AttributeError, name);
else
INCREF(res);
return res;
object *v;
{
if (strcmp(name, "__dict__") == 0 || strcmp(name, "__name__") == 0) {
- err_setstr(NameError, "can't assign to reserved member name");
+ err_setstr(TypeError, "can't assign to reserved member name");
return -1;
}
if (v == NULL)
case E_OK:
break;
case E_SYNTAX:
- err_setstr(RuntimeError, "syntax error");
+ err_setstr(ValueError, "syntax error");
break;
case E_TOKEN:
- err_setstr(RuntimeError, "illegal token");
+ err_setstr(ValueError, "illegal token");
break;
case E_INTR:
err_set(KeyboardInterrupt);
err_set(EOFError);
break;
default:
- err_setstr(RuntimeError, "unknown input error");
+ err_setstr(SystemError, "unknown input error");
break;
}
}
switch (type) {
case EOF:
- err_setstr(RuntimeError, "EOF read where object expected");
+ err_setstr(EOFError, "EOF read where object expected");
return NULL;
case TYPE_NULL:
char *end;
n = rd_byte(fp);
if (fread(buf, 1, (int)n, fp) != n) {
- err_setstr(RuntimeError,
+ err_setstr(EOFError,
"EOF read where object expected");
return NULL;
}
errno = 0;
res = strtod(buf, &end);
if (*end != '\0') {
- err_setstr(RuntimeError, "bad float syntax");
+ err_setstr(ValueError, "bad float syntax");
return NULL;
}
if (errno != 0) {
- err_setstr(RuntimeError,
+ err_setstr(ValueError,
"float constant too large");
return NULL;
}
if (fread(getstringvalue(v), 1, (int)n, fp) != n) {
DECREF(v);
v = NULL;
- err_setstr(RuntimeError,
+ err_setstr(EOFError,
"EOF read where object expected");
}
}
return v;
default:
- err_setstr(RuntimeError, "read unknown object");
+ err_setstr(TypeError, "read unknown object");
return NULL;
}
}
}
- err_setstr(NameError, name);
+ err_setstr(AttributeError, name);
return NULL;
}
for (l = mlist; l->name != NULL; l++) {
if (strcmp(l->name, name) == 0) {
if (l->readonly || l->type == T_STRING) {
- err_setstr(RuntimeError, "readonly attribute");
+ err_setstr(TypeError, "readonly attribute");
return -1;
}
addr += l->offset;
}
}
- err_setstr(NameError, name);
+ err_setstr(AttributeError, name);
return -1;
}