# New Ticket Created by James deBoer # Please include the string: [perl #32769] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=32769 >
Some calls to internal_exception will include a newline, others will not. The effect of this is that when some exceptions occur, parrot will exit without printing a newline, which is ugly. The fix I've attached is two-fold. First, it removes any newline passed to internal_exception. (This was a search and replace, I may have missed a few). Second, it modifies the the internal_exception function to print a newline after printing the error. - James
Index: classes/array.pmc =================================================================== RCS file: /cvs/public/parrot/classes/array.pmc,v retrieving revision 1.90 diff -u -r1.90 array.pmc --- classes/array.pmc 19 Aug 2004 13:46:12 -0000 1.90 +++ classes/array.pmc 2 Dec 2004 16:22:25 -0000 @@ -50,7 +50,7 @@ { PMC *value; if (ret == 0) - internal_exception(OUT_OF_BOUNDS, "Array index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "Array index out of bounds!"); /* XXX getting non existent value, exception or undef? * current is for perlarray */ if (ret == (void*) -1) @@ -135,7 +135,7 @@ PMC *value; if (ret == 0) - internal_exception(OUT_OF_BOUNDS, "Array index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "Array index out of bounds!"); /* assign into a sparse or not yet set value */ if (ret == (void*) -1 || *(PMC**)ret == 0) { value = undef(interp); @@ -675,7 +675,7 @@ INTVAL length; length = ((List *) PMC_data(SELF))->length; if (idx >= length || -idx > length) { - internal_exception(OUT_OF_BOUNDS, "Array index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "Array index out of bounds!"); } list_assign(INTERP, (List *) PMC_data(SELF), idx, @@ -974,7 +974,7 @@ void splice(PMC* value, INTVAL offset, INTVAL count) { if (SELF->vtable->base_type != value->vtable->base_type) - internal_exception(1, "Type mismatch in splice\n"); + internal_exception(1, "Type mismatch in splice"); list_splice(INTERP, (List*) PMC_data(SELF), value, offset, count); } Index: classes/complex.pmc =================================================================== RCS file: /cvs/public/parrot/classes/complex.pmc,v retrieving revision 1.13 diff -u -r1.13 complex.pmc --- classes/complex.pmc 29 Nov 2004 18:07:28 -0000 1.13 +++ classes/complex.pmc 2 Dec 2004 16:22:26 -0000 @@ -114,7 +114,7 @@ if( (*t != 'i' && *t != 'j') || (*(t+1) != 0) ) { /* imaginary part does not end in 'i' or 'j' */ internal_exception(INVALID_STRING_REPRESENTATION, - "Complex: malformed string\n"); + "Complex: malformed string"); first_num_length = second_num_length = 0; } /* this is useful if there is no number for the @@ -126,7 +126,7 @@ else { /* "+" or "-" not found: error */ internal_exception(INVALID_STRING_REPRESENTATION, - "Complex: malformed string\n"); + "Complex: malformed string"); first_num_length = second_num_length = 0; } } @@ -188,7 +188,7 @@ if(0 == string_equal(interp, key, real)) return &RE(self); internal_exception(KEY_NOT_FOUND, - "Complex: key is neither 'real' or 'imag'\n"); + "Complex: key is neither 'real' or 'imag'"); return NULL; } Index: classes/default.pmc =================================================================== RCS file: /cvs/public/parrot/classes/default.pmc,v retrieving revision 1.103 diff -u -r1.103 default.pmc --- classes/default.pmc 20 Nov 2004 16:57:24 -0000 1.103 +++ classes/default.pmc 2 Dec 2004 16:22:26 -0000 @@ -55,7 +55,7 @@ cant_do_method(Parrot_Interp interpreter, PMC * pmc, const char *methname) { internal_exception(ILL_INHERIT, - "%s() not implemented in class '%s'\n", methname, + "%s() not implemented in class '%s'", methname, caller(interpreter, pmc)); } Index: classes/delegate.pmc =================================================================== RCS file: /cvs/public/parrot/classes/delegate.pmc,v retrieving revision 1.33 diff -u -r1.33 delegate.pmc --- classes/delegate.pmc 28 Oct 2004 11:24:32 -0000 1.33 +++ classes/delegate.pmc 2 Dec 2004 16:22:27 -0000 @@ -87,7 +87,7 @@ if (PObj_is_object_TEST(pmc)) { class = GET_CLASS((Buffer *)PMC_data(pmc), pmc); internal_exception(METH_NOT_FOUND, - "Can't find method '%s' for object '%s'\n", + "Can't find method '%s' for object '%s'", string_to_cstring(interpreter, meth), string_to_cstring(interpreter, PMC_str_val( get_attrib_num((SLOTTYPE *)PMC_data(class), @@ -95,7 +95,7 @@ ); } else { internal_exception(METH_NOT_FOUND, - "Can't find method '%s' - erroneous PMC\n", + "Can't find method '%s' - erroneous PMC", string_to_cstring(interpreter, meth) ); } Index: classes/fixedbooleanarray.pmc =================================================================== RCS file: /cvs/public/parrot/classes/fixedbooleanarray.pmc,v retrieving revision 1.3 diff -u -r1.3 fixedbooleanarray.pmc --- classes/fixedbooleanarray.pmc 19 Oct 2004 01:14:34 -0000 1.3 +++ classes/fixedbooleanarray.pmc 2 Dec 2004 16:22:27 -0000 @@ -157,7 +157,7 @@ INTVAL *data; if (key < 0 || key >= PMC_int_val(SELF)) internal_exception(OUT_OF_BOUNDS, - "FixedBooleanArray: index out of bounds!\n"); + "FixedBooleanArray: index out of bounds!"); data = (INTVAL *)PMC_data(SELF); return data[key]; @@ -288,7 +288,7 @@ void set_integer_native (INTVAL size) { if (PMC_int_val(SELF) || size < 1) - internal_exception(OUT_OF_BOUNDS, "FixedBooleanArray: Can't resize!\n"); + internal_exception(OUT_OF_BOUNDS, "FixedBooleanArray: Can't resize!"); PMC_int_val(SELF) = size; PMC_data(SELF) = mem_sys_allocate(size * sizeof(INTVAL)); PObj_active_destroy_SET(SELF); @@ -308,7 +308,7 @@ INTVAL *data; if (key < 0 || key >= PMC_int_val(SELF)) internal_exception(OUT_OF_BOUNDS, - "FixedBooleanArray: index out of bounds!\n"); + "FixedBooleanArray: index out of bounds!"); data = (INTVAL*)PMC_data(SELF); data[key] = (value != 0); Index: classes/fixedfloatarray.pmc =================================================================== RCS file: /cvs/public/parrot/classes/fixedfloatarray.pmc,v retrieving revision 1.4 diff -u -r1.4 fixedfloatarray.pmc --- classes/fixedfloatarray.pmc 19 Oct 2004 01:14:34 -0000 1.4 +++ classes/fixedfloatarray.pmc 2 Dec 2004 16:22:27 -0000 @@ -188,7 +188,7 @@ FLOATVAL *data; if (key < 0 || key >= PMC_int_val(SELF)) internal_exception(OUT_OF_BOUNDS, - "FixedFloatArray: index out of bounds!\n"); + "FixedFloatArray: index out of bounds!"); data = (FLOATVAL *)PMC_data(SELF); return data[key]; @@ -288,7 +288,7 @@ void set_integer_native (INTVAL size) { if (PMC_int_val(SELF) || size < 1) - internal_exception(OUT_OF_BOUNDS, "FixedFloatArray: Can't resize!\n"); + internal_exception(OUT_OF_BOUNDS, "FixedFloatArray: Can't resize!"); PMC_int_val(SELF) = size; PMC_data(SELF) = mem_sys_allocate(size * sizeof(FLOATVAL)); PObj_active_destroy_SET(SELF); @@ -339,7 +339,7 @@ FLOATVAL *data; if (key < 0 || key >= PMC_int_val(SELF)) internal_exception(OUT_OF_BOUNDS, - "FixedFloatArray: index out of bounds!\n"); + "FixedFloatArray: index out of bounds!"); data = (FLOATVAL*)PMC_data(SELF); data[key] = value; Index: classes/fixedintegerarray.pmc =================================================================== RCS file: /cvs/public/parrot/classes/fixedintegerarray.pmc,v retrieving revision 1.3 diff -u -r1.3 fixedintegerarray.pmc --- classes/fixedintegerarray.pmc 19 Oct 2004 01:14:34 -0000 1.3 +++ classes/fixedintegerarray.pmc 2 Dec 2004 16:22:28 -0000 @@ -157,7 +157,7 @@ INTVAL *data; if (key < 0 || key >= PMC_int_val(SELF)) internal_exception(OUT_OF_BOUNDS, - "FixedIntegerArray: index out of bounds!\n"); + "FixedIntegerArray: index out of bounds!"); data = (INTVAL *)PMC_data(SELF); return data[key]; @@ -288,7 +288,7 @@ void set_integer_native (INTVAL size) { if (PMC_int_val(SELF) || size < 1) - internal_exception(OUT_OF_BOUNDS, "FixedIntegerArray: Can't resize!\n"); + internal_exception(OUT_OF_BOUNDS, "FixedIntegerArray: Can't resize!"); PMC_int_val(SELF) = size; PMC_data(SELF) = mem_sys_allocate(size * sizeof(INTVAL)); PObj_active_destroy_SET(SELF); @@ -308,7 +308,7 @@ INTVAL *data; if (key < 0 || key >= PMC_int_val(SELF)) internal_exception(OUT_OF_BOUNDS, - "FixedIntegerArray: index out of bounds!\n"); + "FixedIntegerArray: index out of bounds!"); data = (INTVAL*)PMC_data(SELF); data[key] = value; Index: classes/fixedpmcarray.pmc =================================================================== RCS file: /cvs/public/parrot/classes/fixedpmcarray.pmc,v retrieving revision 1.25 diff -u -r1.25 fixedpmcarray.pmc --- classes/fixedpmcarray.pmc 8 Nov 2004 10:37:49 -0000 1.25 +++ classes/fixedpmcarray.pmc 2 Dec 2004 16:22:29 -0000 @@ -422,7 +422,7 @@ PMC **data; if (key < 0 || key >= PMC_int_val(SELF)) internal_exception(OUT_OF_BOUNDS, - "FixedPMCArray: index out of bounds!\n"); + "FixedPMCArray: index out of bounds!"); data = (PMC **)PMC_data(SELF); return data[key]; @@ -458,7 +458,7 @@ PMC **data; if (PMC_int_val(SELF) && size) - internal_exception(OUT_OF_BOUNDS, "FixedPMCArray: Can't resize!\n"); + internal_exception(OUT_OF_BOUNDS, "FixedPMCArray: Can't resize!"); if (!size) return; PMC_int_val(SELF) = size; @@ -604,7 +604,7 @@ PMC **data; if (key < 0 || key >= PMC_int_val(SELF)) internal_exception(OUT_OF_BOUNDS, - "FixedPMCArray: index out of bounds!\n"); + "FixedPMCArray: index out of bounds!"); data = (PMC**)PMC_data(SELF); DOD_WRITE_BARRIER(INTERP, SELF, data[key], src); Index: classes/fixedstringarray.pmc =================================================================== RCS file: /cvs/public/parrot/classes/fixedstringarray.pmc,v retrieving revision 1.3 diff -u -r1.3 fixedstringarray.pmc --- classes/fixedstringarray.pmc 19 Oct 2004 01:14:35 -0000 1.3 +++ classes/fixedstringarray.pmc 2 Dec 2004 16:22:29 -0000 @@ -243,7 +243,7 @@ STRING **data; if (key < 0 || key >= PMC_int_val(SELF)) internal_exception(OUT_OF_BOUNDS, - "FixedStringArray: index out of bounds!\n"); + "FixedStringArray: index out of bounds!"); data = (STRING **)PMC_data(SELF); return data[key]; @@ -312,7 +312,7 @@ void set_integer_native (INTVAL size) { if (PMC_int_val(SELF) || size < 1) - internal_exception(OUT_OF_BOUNDS, "FixedStringArray: Can't resize!\n"); + internal_exception(OUT_OF_BOUNDS, "FixedStringArray: Can't resize!"); PMC_int_val(SELF) = size; PMC_data(SELF) = mem_sys_allocate_zeroed(size * sizeof(STRING*)); PObj_custom_mark_destroy_SETALL(SELF); @@ -406,7 +406,7 @@ STRING **data; if (key < 0 || key >= PMC_int_val(SELF)) internal_exception(OUT_OF_BOUNDS, - "FixedStringArray: index out of bounds!\n"); + "FixedStringArray: index out of bounds!"); data = (STRING**)PMC_data(SELF); data[key] = value; Index: classes/intlist.pmc =================================================================== RCS file: /cvs/public/parrot/classes/intlist.pmc,v retrieving revision 1.30 diff -u -r1.30 intlist.pmc --- classes/intlist.pmc 22 Aug 2004 09:15:51 -0000 1.30 +++ classes/intlist.pmc 2 Dec 2004 16:22:29 -0000 @@ -20,7 +20,7 @@ #include "parrot/parrot.h" -#define THROW_UNSUPPORTED internal_exception(INTERP_ERROR, "Operation not supported\n") +#define THROW_UNSUPPORTED internal_exception(INTERP_ERROR, "Operation not supported") pmclass IntList does array { @@ -212,7 +212,7 @@ void splice(PMC* value, INTVAL offset, INTVAL count) { if (SELF->vtable->base_type != value->vtable->base_type) - internal_exception(1, "Type mismatch in splice\n"); + internal_exception(1, "Type mismatch in splice"); list_splice(INTERP, (List*) PMC_struct_val(SELF), value, offset, count); } Index: classes/iterator.pmc =================================================================== RCS file: /cvs/public/parrot/classes/iterator.pmc,v retrieving revision 1.31 diff -u -r1.31 iterator.pmc --- classes/iterator.pmc 30 Aug 2004 13:55:27 -0000 1.31 +++ classes/iterator.pmc 2 Dec 2004 16:22:30 -0000 @@ -40,7 +40,7 @@ */ void init () { - internal_exception(1, "Iterator init without aggregate\n"); + internal_exception(1, "Iterator init without aggregate"); } /* @@ -283,7 +283,7 @@ void set_integer_native (INTVAL value) { PMC *key, *agg; if (value < ITERATE_FROM_START || value > ITERATE_FROM_END) - internal_exception(1, "Illegal set_integer on iterator\n"); + internal_exception(1, "Illegal set_integer on iterator"); /* reset iterator on aggregate */ agg = (PMC*) PMC_pmc_val(SELF); if (agg->vtable->base_type == enum_class_Slice) { Index: classes/null.pl =================================================================== RCS file: /cvs/public/parrot/classes/null.pl,v retrieving revision 1.2 diff -u -r1.2 null.pl --- classes/null.pl 29 Oct 2003 04:15:34 -0000 1.2 +++ classes/null.pl 2 Dec 2004 16:22:30 -0000 @@ -49,7 +49,7 @@ } print " $retval $methname ($args) {\n"; - print " internal_exception(NULL_REG_ACCESS, \"Fatal exception: Null PMC access (PMC::$methname)!\\n\");\n"; + print " internal_exception(NULL_REG_ACCESS, \"Fatal exception: Null PMC access (PMC::$methname)!\");\n"; if($retval ne 'void') { print " return ($retval)0;\n"; } Index: classes/parrotobject.pmc =================================================================== RCS file: /cvs/public/parrot/classes/parrotobject.pmc,v retrieving revision 1.35 diff -u -r1.35 parrotobject.pmc --- classes/parrotobject.pmc 20 Nov 2004 16:57:24 -0000 1.35 +++ classes/parrotobject.pmc 2 Dec 2004 16:22:30 -0000 @@ -62,7 +62,7 @@ */ void init() { - internal_exception(1, "Can't create new ParrotObjects\n", + internal_exception(1, "Can't create new ParrotObjects", "use the registered class instead"); } Index: classes/perlhash.pmc =================================================================== RCS file: /cvs/public/parrot/classes/perlhash.pmc,v retrieving revision 1.92 diff -u -r1.92 perlhash.pmc --- classes/perlhash.pmc 9 Sep 2004 10:47:46 -0000 1.92 +++ classes/perlhash.pmc 2 Dec 2004 16:22:31 -0000 @@ -142,7 +142,7 @@ { if (key == NULL) { internal_exception(OUT_OF_BOUNDS, - "Cannot use NULL key for PerlHash!\n"); + "Cannot use NULL key for PerlHash!"); return NULL; } return key_string(interpreter, key); Index: classes/perlint.pmc =================================================================== RCS file: /cvs/public/parrot/classes/perlint.pmc,v retrieving revision 1.83 diff -u -r1.83 perlint.pmc --- classes/perlint.pmc 22 Nov 2004 10:53:42 -0000 1.83 +++ classes/perlint.pmc 2 Dec 2004 16:22:32 -0000 @@ -525,7 +525,7 @@ */ void divide (PMC* value, PMC* dest) { MMD_PerlUndef: { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); } MMD_BigInt: { overflow_p(INTERP, SELF, value, dest, MMD_DIVIDE); @@ -536,7 +536,7 @@ FLOATVAL d; INTVAL i; if (valf == 0.0) { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); return; } d = PMC_int_val(SELF)/valf; @@ -549,7 +549,7 @@ } void floor_divide (PMC* value, PMC* dest) { MMD_PerlUndef: { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); } MMD_BigInt: { overflow_p(INTERP, SELF, value, dest, MMD_DIVIDE); @@ -977,7 +977,7 @@ */ void repeat (PMC* value, PMC* dest) { internal_exception(INVALID_OPERATION, - "repeat() not implemented in class 'PerlInt'\n"); + "repeat() not implemented in class 'PerlInt'"); } /* @@ -991,7 +991,7 @@ */ void repeat_int (INTVAL value, PMC* dest) { internal_exception(INVALID_OPERATION, - "repeat() not implemented in class 'PerlInt'\n"); + "repeat() not implemented in class 'PerlInt'"); } /* Index: classes/perlnum.pmc =================================================================== RCS file: /cvs/public/parrot/classes/perlnum.pmc,v retrieving revision 1.65 diff -u -r1.65 perlnum.pmc --- classes/perlnum.pmc 28 Sep 2004 11:23:10 -0000 1.65 +++ classes/perlnum.pmc 2 Dec 2004 16:22:33 -0000 @@ -591,7 +591,7 @@ void repeat (PMC* value, PMC* dest) { internal_exception(INVALID_OPERATION, - "repeat() not implemented in class 'PerlNum'\n"); + "repeat() not implemented in class 'PerlNum'"); } /* @@ -606,7 +606,7 @@ void repeat_int (INTVAL value, PMC* dest) { internal_exception(INVALID_OPERATION, - "repeat() not implemented in class 'PerlNum'\n"); + "repeat() not implemented in class 'PerlNum'"); } /* Index: classes/perlstring.pmc =================================================================== RCS file: /cvs/public/parrot/classes/perlstring.pmc,v retrieving revision 1.89 diff -u -r1.89 perlstring.pmc --- classes/perlstring.pmc 14 Oct 2004 09:07:07 -0000 1.89 +++ classes/perlstring.pmc 2 Dec 2004 16:22:33 -0000 @@ -440,7 +440,7 @@ } else { internal_exception(INVALID_OPERATION, - "modulus() not implemented for PerlString\n"); + "modulus() not implemented for PerlString"); } } Index: classes/perlundef.pmc =================================================================== RCS file: /cvs/public/parrot/classes/perlundef.pmc,v retrieving revision 1.42 diff -u -r1.42 perlundef.pmc --- classes/perlundef.pmc 17 Jul 2004 16:01:05 -0000 1.42 +++ classes/perlundef.pmc 2 Dec 2004 16:22:34 -0000 @@ -306,15 +306,15 @@ Parrot_warn(INTERP, PARROT_WARNINGS_UNDEF_FLAG, "Use of uninitialized value in division"); if(value->vtable == Parrot_base_vtables[enum_class_PerlUndef]) { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); } else if(value->vtable == Parrot_base_vtables[enum_class_PerlInt]) { if(VTABLE_get_integer(INTERP, value) == 0) { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); } } else if(VTABLE_get_number(INTERP, value) == 0) { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); } VTABLE_set_integer_native(INTERP, dest, 0); @@ -332,7 +332,7 @@ Parrot_warn(INTERP, PARROT_WARNINGS_UNDEF_FLAG, "Use of uninitialized value in integer division"); if(value == 0) { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); } VTABLE_set_integer_native(INTERP, dest, 0); } @@ -350,7 +350,7 @@ Parrot_warn(INTERP, PARROT_WARNINGS_UNDEF_FLAG, "Use of uninitialized value in numeric division"); if(value == 0) { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); } VTABLE_set_integer_native(INTERP, dest, 0); } @@ -367,15 +367,15 @@ Parrot_warn(INTERP, PARROT_WARNINGS_UNDEF_FLAG, "Use of uninitialized value in modulus"); if(value->vtable == Parrot_base_vtables[enum_class_PerlUndef]) { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); } else if(value->vtable == Parrot_base_vtables[enum_class_PerlInt]) { if(VTABLE_get_integer(INTERP, value) == 0) { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); } } else if(VTABLE_get_number(INTERP, value) == 0) { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); } VTABLE_set_integer_native(INTERP, dest, 0); @@ -393,7 +393,7 @@ Parrot_warn(INTERP, PARROT_WARNINGS_UNDEF_FLAG, "Use of uninitialized value in integer modulus"); if(value == 0) { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); } VTABLE_set_integer_native(INTERP, dest, 0); } @@ -411,7 +411,7 @@ Parrot_warn(INTERP, PARROT_WARNINGS_UNDEF_FLAG, "Use of uninitialized value in numeric modulus"); if(value == 0) { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); } VTABLE_set_integer_native(INTERP, dest, 0); } Index: classes/resizablebooleanarray.pmc =================================================================== RCS file: /cvs/public/parrot/classes/resizablebooleanarray.pmc,v retrieving revision 1.3 diff -u -r1.3 resizablebooleanarray.pmc --- classes/resizablebooleanarray.pmc 19 Oct 2004 01:14:35 -0000 1.3 +++ classes/resizablebooleanarray.pmc 2 Dec 2004 16:22:34 -0000 @@ -43,7 +43,7 @@ SizeBooleanData *sd; if (key < 0) internal_exception(OUT_OF_BOUNDS, - "ResizableBooleanArray: index out of bounds!\n"); + "ResizableBooleanArray: index out of bounds!"); if(key >= PMC_int_val(SELF)) DYNSELF.set_integer_native(key+1); @@ -65,7 +65,7 @@ SizeBooleanData *sd; if (key < 0) internal_exception(OUT_OF_BOUNDS, - "ResizableBooleanArray: index out of bounds!\n"); + "ResizableBooleanArray: index out of bounds!"); if(key >= PMC_int_val(SELF)) DYNSELF.set_integer_native(key+1); @@ -103,7 +103,7 @@ SizeBooleanData *sd; if (size < 0) internal_exception(OUT_OF_BOUNDS, - "ResizableBooleanArray: Can't resize!\n"); + "ResizableBooleanArray: Can't resize!"); sd = PMC_data(SELF); PMC_int_val(SELF) = size; Index: classes/resizablefloatarray.pmc =================================================================== RCS file: /cvs/public/parrot/classes/resizablefloatarray.pmc,v retrieving revision 1.5 diff -u -r1.5 resizablefloatarray.pmc --- classes/resizablefloatarray.pmc 19 Oct 2004 01:14:35 -0000 1.5 +++ classes/resizablefloatarray.pmc 2 Dec 2004 16:22:34 -0000 @@ -45,7 +45,7 @@ SizeFloatData *sd; if (key < 0) internal_exception(OUT_OF_BOUNDS, - "ResizableFloatArray: index out of bounds!\n"); + "ResizableFloatArray: index out of bounds!"); if (key >= PMC_int_val(SELF)) DYNSELF.set_integer_native(key+1); @@ -68,7 +68,7 @@ SizeFloatData *sd; if (key < 0) internal_exception(OUT_OF_BOUNDS, - "ResizableFloatArray: index out of bounds!\n"); + "ResizableFloatArray: index out of bounds!"); if(key >= PMC_int_val(SELF)) DYNSELF.set_integer_native(key+1); @@ -96,7 +96,7 @@ SizeFloatData *sd; if (size < 0) internal_exception(OUT_OF_BOUNDS, - "ResizableFloatArray: Can't resize to negative value!\n"); + "ResizableFloatArray: Can't resize to negative value!"); sd = PMC_data(SELF); PMC_int_val(SELF) = size; @@ -182,7 +182,7 @@ if (sd == NULL || size == 0) { internal_exception(OUT_OF_BOUNDS, - "ResizableFloatArray: Can't pop from an empty array!\n"); + "ResizableFloatArray: Can't pop from an empty array!"); } value = sd->data[size - 1]; Index: classes/resizableintegerarray.pmc =================================================================== RCS file: /cvs/public/parrot/classes/resizableintegerarray.pmc,v retrieving revision 1.3 diff -u -r1.3 resizableintegerarray.pmc --- classes/resizableintegerarray.pmc 19 Oct 2004 01:14:35 -0000 1.3 +++ classes/resizableintegerarray.pmc 2 Dec 2004 16:22:35 -0000 @@ -43,7 +43,7 @@ SizeIntData *sd; if (key < 0) internal_exception(OUT_OF_BOUNDS, - "ResizableIntegerArray: index out of bounds!\n"); + "ResizableIntegerArray: index out of bounds!"); if(key >= PMC_int_val(SELF)) DYNSELF.set_integer_native(key+1); @@ -65,7 +65,7 @@ SizeIntData *sd; if (key < 0) internal_exception(OUT_OF_BOUNDS, - "ResizableIntegerArray: index out of bounds!\n"); + "ResizableIntegerArray: index out of bounds!"); if(key >= PMC_int_val(SELF)) DYNSELF.set_integer_native(key+1); @@ -87,7 +87,7 @@ SizeIntData *sd; if (size < 0) internal_exception(OUT_OF_BOUNDS, - "ResizableIntegerArray: Can't resize!\n"); + "ResizableIntegerArray: Can't resize!"); sd = PMC_data(SELF); PMC_int_val(SELF) = size; Index: classes/resizablepmcarray.pmc =================================================================== RCS file: /cvs/public/parrot/classes/resizablepmcarray.pmc,v retrieving revision 1.15 diff -u -r1.15 resizablepmcarray.pmc --- classes/resizablepmcarray.pmc 19 Oct 2004 01:14:35 -0000 1.15 +++ classes/resizablepmcarray.pmc 2 Dec 2004 16:22:35 -0000 @@ -66,7 +66,7 @@ if (size < 0) internal_exception(OUT_OF_BOUNDS, - "ResizablePMCArray: Can't resize!\n"); + "ResizablePMCArray: Can't resize!"); if (!PMC_data(SELF)) { /* empty - used fixed routine */ @@ -119,7 +119,7 @@ key += PMC_int_val(SELF); if (key < 0) internal_exception(OUT_OF_BOUNDS, - "ResizablePMCArray: index out of bounds!\n"); + "ResizablePMCArray: index out of bounds!"); if (key >= PMC_int_val(SELF)) DYNSELF.set_integer_native(key+1); data = PMC_data(SELF); @@ -151,7 +151,7 @@ key += PMC_int_val(SELF); if (key < 0) internal_exception(OUT_OF_BOUNDS, - "ResizablePMCArray: index out of bounds!\n"); + "ResizablePMCArray: index out of bounds!"); if (key >= PMC_int_val(SELF)) DYNSELF.set_integer_native(key+1); data = (PMC**)PMC_data(SELF); @@ -171,7 +171,7 @@ Parrot_py_set_slice(INTERP, SELF, key, NULL); else internal_exception(OUT_OF_BOUNDS, - "ResizablePMCArray: unimplemented delete!\n"); + "ResizablePMCArray: unimplemented delete!"); } /* Index: classes/resizablestringarray.pmc =================================================================== RCS file: /cvs/public/parrot/classes/resizablestringarray.pmc,v retrieving revision 1.5 diff -u -r1.5 resizablestringarray.pmc --- classes/resizablestringarray.pmc 19 Oct 2004 01:14:35 -0000 1.5 +++ classes/resizablestringarray.pmc 2 Dec 2004 16:22:35 -0000 @@ -43,7 +43,7 @@ SizeStringData *sd; if (key < 0) internal_exception(OUT_OF_BOUNDS, - "ResizableStringArray: index out of bounds!\n"); + "ResizableStringArray: index out of bounds!"); if(key >= PMC_int_val(SELF)) DYNSELF.set_integer_native(key+1); @@ -65,7 +65,7 @@ SizeStringData *sd; if (key < 0) internal_exception(OUT_OF_BOUNDS, - "ResizableStringArray: index out of bounds!\n"); + "ResizableStringArray: index out of bounds!"); if(key >= PMC_int_val(SELF)) DYNSELF.set_integer_native(key+1); @@ -104,7 +104,7 @@ if (size < 0) internal_exception(OUT_OF_BOUNDS, - "ResizableStringArray: Can't resize!\n"); + "ResizableStringArray: Can't resize!"); sd = (SizeStringData *)PMC_data(SELF); PMC_int_val(SELF) = size; Index: classes/sarray.pmc =================================================================== RCS file: /cvs/public/parrot/classes/sarray.pmc,v retrieving revision 1.30 diff -u -r1.30 sarray.pmc --- classes/sarray.pmc 8 Sep 2004 00:33:51 -0000 1.30 +++ classes/sarray.pmc 2 Dec 2004 16:22:36 -0000 @@ -68,7 +68,7 @@ default: break; } - internal_exception(OUT_OF_BOUNDS, "SArray: Entry not an integer!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray: Entry not an integer!"); return 0; } @@ -95,7 +95,7 @@ default: break; } - internal_exception(OUT_OF_BOUNDS, "SArray: Entry not a number!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray: Entry not a number!"); return 0; } @@ -122,7 +122,7 @@ default: break; } - internal_exception(OUT_OF_BOUNDS, "SArray: Entry not a string!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray: Entry not a string!"); return 0; } @@ -158,7 +158,7 @@ case enum_hash_pmc: return UVal_pmc(e->val); default: - internal_exception(OUT_OF_BOUNDS, "SArray: Unknown entry!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray: Unknown entry!"); } return NULL; } @@ -183,7 +183,7 @@ INTVAL end_index = UVal_int(e[1].val); if (start_index >= end_index) - internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!"); ret = (HashEntry *) PMC_data(self) + (2 + start_index++); @@ -215,7 +215,7 @@ } key += start_index; /* lower bound if already shifted */ if (key < start_index || key >= end_index) - internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!"); e = (HashEntry *) PMC_data(self) + (2 + key); return e; } @@ -616,7 +616,7 @@ void set_integer_native (INTVAL size) { if (PMC_int_val(SELF)) - internal_exception(OUT_OF_BOUNDS, "SArray: Can't resize!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray: Can't resize!"); PMC_int_val(SELF) = size; /* Probably ought to actually copy this... */ if (PMC_data(SELF)) { @@ -640,7 +640,7 @@ void set_integer_keyed_int (INTVAL key, INTVAL value) { HashEntry *e; if (key < 0 || key >= PMC_int_val(SELF)) - internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!"); e = (HashEntry *) PMC_data(SELF) + (2 + key); e->type = enum_hash_int; UVal_int(e->val) = value; @@ -663,7 +663,7 @@ HashEntry *e; INTVAL nextix; if (!PMC_data(SELF)) - internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!"); e = (HashEntry *) PMC_data(SELF) + 1; nextix = UVal_int(e->val); DYNSELF.set_integer_keyed_int(nextix, value); @@ -683,7 +683,7 @@ void set_number_keyed_int (INTVAL key, FLOATVAL value) { HashEntry *e; if (key < 0 || key >= PMC_int_val(SELF)) - internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!"); e = (HashEntry *) PMC_data(SELF) + (2 + key); e->type = enum_hash_num; UVal_num(e->val) = value; @@ -706,7 +706,7 @@ HashEntry *e; INTVAL nextix; if (!PMC_data(SELF)) - internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!"); e = (HashEntry *) PMC_data(SELF) + 1; nextix = UVal_int(e->val); DYNSELF.set_number_keyed_int(nextix, value); @@ -725,7 +725,7 @@ void set_string_keyed_int (INTVAL key, STRING* value) { HashEntry *e; if (key < 0 || key >= PMC_int_val(SELF)) - internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!"); e = (HashEntry *) PMC_data(SELF) + (2 + key); e->type = enum_hash_string; UVal_str(e->val) = value; @@ -749,7 +749,7 @@ HashEntry *e; INTVAL nextix; if (!PMC_data(SELF)) - internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!"); e = (HashEntry *) PMC_data(SELF) + 1; nextix = UVal_int(e->val); DYNSELF.set_string_keyed_int(nextix, value); @@ -768,7 +768,7 @@ void set_pmc_keyed_int (INTVAL key, PMC* src) { HashEntry *e; if (key < 0 || key >= PMC_int_val(SELF)) - internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!"); e = (HashEntry *) PMC_data(SELF) + (2 + key); e->type = enum_hash_pmc; DOD_WRITE_BARRIER(INTERP, SELF, UVal_pmc(e->val), src); @@ -792,7 +792,7 @@ HashEntry *e; INTVAL nextix; if (!PMC_data(SELF)) - internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n"); + internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!"); e = (HashEntry *) PMC_data(SELF) + 1; nextix = UVal_int(e->val); DYNSELF.set_pmc_keyed_int(nextix, value); Index: classes/unmanagedstruct.pmc =================================================================== RCS file: /cvs/public/parrot/classes/unmanagedstruct.pmc,v retrieving revision 1.47 diff -u -r1.47 unmanagedstruct.pmc --- classes/unmanagedstruct.pmc 13 Sep 2004 09:17:33 -0000 1.47 +++ classes/unmanagedstruct.pmc 2 Dec 2004 16:22:38 -0000 @@ -362,7 +362,7 @@ else { internal_exception(1, - "no initializer available for nested struct\n"); + "no initializer available for nested struct"); } /* assign the pointer */ Index: dynclasses/match.pmc =================================================================== RCS file: /cvs/public/parrot/dynclasses/match.pmc,v retrieving revision 1.1 diff -u -r1.1 match.pmc --- dynclasses/match.pmc 17 Sep 2004 04:55:02 -0000 1.1 +++ dynclasses/match.pmc 2 Dec 2004 16:22:39 -0000 @@ -33,7 +33,7 @@ { if (key == NULL) { internal_exception(OUT_OF_BOUNDS, - "Cannot use NULL key for Match!\n"); + "Cannot use NULL key for Match!"); return NULL; } return key_string(interpreter, key); Index: dynclasses/matchrange.pmc =================================================================== RCS file: /cvs/public/parrot/dynclasses/matchrange.pmc,v retrieving revision 1.2 diff -u -r1.2 matchrange.pmc --- dynclasses/matchrange.pmc 19 Nov 2004 06:41:29 -0000 1.2 +++ dynclasses/matchrange.pmc 2 Dec 2004 16:22:40 -0000 @@ -63,7 +63,7 @@ if(0 == string_equal(interp, key, end)) return &RANGE_END(self); internal_exception(KEY_NOT_FOUND, - "MatchRange: key is neither 'start' nor 'end'\n"); + "MatchRange: key is neither 'start' nor 'end'"); return NULL; } Index: dynclasses/pycomplex.pmc =================================================================== RCS file: /cvs/public/parrot/dynclasses/pycomplex.pmc,v retrieving revision 1.1 diff -u -r1.1 pycomplex.pmc --- dynclasses/pycomplex.pmc 30 Nov 2004 21:49:20 -0000 1.1 +++ dynclasses/pycomplex.pmc 2 Dec 2004 16:22:41 -0000 @@ -116,7 +116,7 @@ if( (*t != 'i' && *t != 'j') || (*(t+1) != 0) ) { /* imaginary part does not end in 'i' or 'j' */ internal_exception(INVALID_STRING_REPRESENTATION, - "Complex: malformed string\n"); + "Complex: malformed string"); first_num_length = second_num_length = 0; } /* this is useful if there is no number for the @@ -128,7 +128,7 @@ else { /* "+" or "-" not found: error */ internal_exception(INVALID_STRING_REPRESENTATION, - "Complex: malformed string\n"); + "Complex: malformed string"); first_num_length = second_num_length = 0; } } @@ -190,7 +190,7 @@ if(0 == string_equal(interp, key, real)) return &RE(self); internal_exception(KEY_NOT_FOUND, - "Complex: key is neither 'real' or 'imag'\n"); + "Complex: key is neither 'real' or 'imag'"); return NULL; } Index: dynclasses/pylist.pmc =================================================================== RCS file: /cvs/public/parrot/dynclasses/pylist.pmc,v retrieving revision 1.3 diff -u -r1.3 pylist.pmc --- dynclasses/pylist.pmc 2 Dec 2004 14:56:43 -0000 1.3 +++ dynclasses/pylist.pmc 2 Dec 2004 16:22:42 -0000 @@ -102,7 +102,7 @@ } else internal_exception(OUT_OF_BOUNDS, - "PyList: unimplemented delete!\n"); + "PyList: unimplemented delete!"); } /* Index: dynclasses/pyobject.pmc =================================================================== RCS file: /cvs/public/parrot/dynclasses/pyobject.pmc,v retrieving revision 1.1 diff -u -r1.1 pyobject.pmc --- dynclasses/pyobject.pmc 10 Nov 2004 01:23:21 -0000 1.1 +++ dynclasses/pyobject.pmc 2 Dec 2004 16:22:43 -0000 @@ -692,7 +692,7 @@ } else { internal_exception(ILL_INHERIT, - "set_pmc not implemented in class '%s'\n", + "set_pmc not implemented in class '%s'", string_to_cstring(INTERP, VTABLE_name(INTERP, pmc))); } Index: dynclasses/pytuple.pmc =================================================================== RCS file: /cvs/public/parrot/dynclasses/pytuple.pmc,v retrieving revision 1.2 diff -u -r1.2 pytuple.pmc --- dynclasses/pytuple.pmc 30 Nov 2004 21:49:20 -0000 1.2 +++ dynclasses/pytuple.pmc 2 Dec 2004 16:22:43 -0000 @@ -154,7 +154,7 @@ PMC **data; if (key < 0 || key >= PMC_int_val(SELF)) internal_exception(OUT_OF_BOUNDS, - "PyTuple: index out of bounds!\n"); + "PyTuple: index out of bounds!"); data = (PMC **)PMC_data(SELF); return data[key]; @@ -224,7 +224,7 @@ PMC **data; if (PMC_int_val(SELF) && size) - internal_exception(OUT_OF_BOUNDS, "PyTuple: Can't resize!\n"); + internal_exception(OUT_OF_BOUNDS, "PyTuple: Can't resize!"); if (!size) return; PMC_int_val(SELF) = size; @@ -249,7 +249,7 @@ PMC **data; if (key < 0 || key >= PMC_int_val(SELF)) internal_exception(OUT_OF_BOUNDS, - "PyTuple: index out of bounds!\n"); + "PyTuple: index out of bounds!"); data = (PMC**)PMC_data(SELF); DOD_WRITE_BARRIER(INTERP, SELF, data[key], src); Index: dynclasses/tclarray.pmc =================================================================== RCS file: /cvs/public/parrot/dynclasses/tclarray.pmc,v retrieving revision 1.3 diff -u -r1.3 tclarray.pmc --- dynclasses/tclarray.pmc 21 Nov 2004 20:50:13 -0000 1.3 +++ dynclasses/tclarray.pmc 2 Dec 2004 16:22:44 -0000 @@ -38,7 +38,7 @@ { if (key == NULL) { internal_exception(OUT_OF_BOUNDS, - "Cannot use NULL key for TclArray!\n"); + "Cannot use NULL key for TclArray!"); return NULL; } return key_string(interpreter, key); @@ -818,7 +818,7 @@ /* do nothing: hash_get_idx does increment the idx */ break; default: - internal_exception(1, "Can't iterate from end\n"); + internal_exception(1, "Can't iterate from end"); break; } return ret; Index: dynclasses/tclfloat.pmc =================================================================== RCS file: /cvs/public/parrot/dynclasses/tclfloat.pmc,v retrieving revision 1.4 diff -u -r1.4 tclfloat.pmc --- dynclasses/tclfloat.pmc 21 Nov 2004 20:50:13 -0000 1.4 +++ dynclasses/tclfloat.pmc 2 Dec 2004 16:22:44 -0000 @@ -246,12 +246,12 @@ /* XXX why except? */ void repeat (PMC* value, PMC* dest) { internal_exception(INVALID_OPERATION, - "repeat() not implemented in class 'TclFloat'\n"); + "repeat() not implemented in class 'TclFloat'"); } void repeat_int (INTVAL value, PMC* dest) { internal_exception(INVALID_OPERATION, - "repeat() not implemented in class 'TclFloat'\n"); + "repeat() not implemented in class 'TclFloat'"); } void increment () { Index: dynclasses/tclint.pmc =================================================================== RCS file: /cvs/public/parrot/dynclasses/tclint.pmc,v retrieving revision 1.4 diff -u -r1.4 tclint.pmc --- dynclasses/tclint.pmc 28 Nov 2004 01:03:24 -0000 1.4 +++ dynclasses/tclint.pmc 2 Dec 2004 16:22:45 -0000 @@ -203,7 +203,7 @@ pmci = PMC_int_val(SELF); valf = VTABLE_get_number(INTERP, value); if (valf == 0.0) { - internal_exception(DIV_BY_ZERO, "division by zero!\n"); + internal_exception(DIV_BY_ZERO, "division by zero!"); return; } @@ -406,12 +406,12 @@ /* XXX we want exceptions here? */ void repeat (PMC* value, PMC* dest) { internal_exception(INVALID_OPERATION, - "repeat() not implemented in class 'TclInt'\n"); + "repeat() not implemented in class 'TclInt'"); } void repeat_int (INTVAL value, PMC* dest) { internal_exception(INVALID_OPERATION, - "repeat() not implemented in class 'TclInt'\n"); + "repeat() not implemented in class 'TclInt'"); } Index: src/exceptions.c =================================================================== RCS file: /cvs/public/parrot/src/exceptions.c,v retrieving revision 1.65 diff -u -r1.65 exceptions.c --- src/exceptions.c 25 Nov 2004 09:28:05 -0000 1.65 +++ src/exceptions.c 2 Dec 2004 16:22:54 -0000 @@ -52,6 +52,7 @@ va_list arglist; va_start(arglist, format); vfprintf(stderr, format, arglist); + fprintf(stderr, "\n"); va_end(arglist); Parrot_exit(exitcode); }