[Super-tux-commit] supertux/src lispreader.cpp,1.10,1.11
Brought to you by:
wkendrick
From: Ingo R. <gr...@us...> - 2004-03-26 15:28:28
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17866 Modified Files: lispreader.cpp Log Message: - added some error checking, so that we get more usefull error messages than asserts Index: lispreader.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/lispreader.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- lispreader.cpp 25 Mar 2004 11:36:05 -0000 1.10 +++ lispreader.cpp 26 Mar 2004 15:17:10 -0000 1.11 @@ -26,7 +26,7 @@ #include <ctype.h> #include <stdlib.h> #include <string.h> - +#include "setup.h" #include "lispreader.h" #define TOKEN_ERROR -1 @@ -1041,6 +1041,8 @@ lisp_object_t* obj = search_for (name); if (obj) { + if (!lisp_integer_p(lisp_car(obj))) + st_abort("LispReader expected type integer at token: ", name); *i = lisp_integer(lisp_car(obj)); return true; } @@ -1066,6 +1068,8 @@ lisp_object_t* obj = search_for (name); if (obj) { + if (!lisp_real_p(lisp_car(obj)) && !lisp_integer_p(lisp_car(obj))) + st_abort("LispReader expected type real at token: ", name); *f = lisp_real(lisp_car(obj)); return true; } @@ -1080,6 +1084,8 @@ { while(!lisp_nil_p(obj)) { + if (!lisp_string_p(lisp_car(obj))) + st_abort("LispReader expected type string at token: ", name); vec->push_back(lisp_string(lisp_car(obj))); obj = lisp_cdr(obj); } @@ -1096,6 +1102,8 @@ { while(!lisp_nil_p(obj)) { + if (!lisp_integer_p(lisp_car(obj))) + st_abort("LispReader expected type integer at token: ", name); vec->push_back(lisp_integer(lisp_car(obj))); obj = lisp_cdr(obj); } @@ -1126,7 +1134,8 @@ lisp_object_t* obj = search_for (name); if (obj) { - + if (!lisp_string_p(lisp_car(obj))) + st_abort("LispReader expected type string at token: ", name); *str = lisp_string(lisp_car(obj)); return true; } @@ -1139,6 +1148,8 @@ lisp_object_t* obj = search_for (name); if (obj) { + if (!lisp_boolean_p(lisp_car(obj))) + st_abort("LispReader expected type bool at token: ", name); *b = lisp_boolean(lisp_car(obj)); return true; } |