diff --git a/src/modules/files/file.c b/src/modules/files/file.c index f0af7bace8b1ebfc528b833990fa8b009a486bd5..3b2fba9e14968bf36b46835da363571dd3680916 100644 --- a/src/modules/files/file.c +++ b/src/modules/files/file.c @@ -5,7 +5,7 @@ \*/ /**/ #include "global.h" -RCSID("$Id: file.c,v 1.146 1999/04/13 22:23:20 hubbe Exp $"); +RCSID("$Id: file.c,v 1.147 1999/04/17 13:55:27 grubba Exp $"); #include "fdlib.h" #include "interpret.h" #include "svalue.h" @@ -876,7 +876,9 @@ static void file_write(INT32 args) struct pike_string *str; if(args<1 || ((sp[-args].type != T_STRING) && (sp[-args].type != T_ARRAY))) - error("Bad argument 1 to file->write().\n"); + error("Bad argument 1 to file->write().\n" + "Type is %s. Expected string or array(string)\n", + type_name[sp[-args].type]); if(FD < 0) error("File not open for write.\n"); @@ -885,8 +887,14 @@ static void file_write(INT32 args) struct array *a = sp[-args].u.array; i = a->size; while(i--) { - if ((a->item[i].type != T_STRING) || (a->item[i].u.string->size_shift)) { - error("Bad argument 1 to file->write().\n"); + if (a->item[i].type != T_STRING) { + error("Bad argument 1 to file->write().\n" + "Element %d is not a string.\n", + i); + } else if (a->item[i].u.string->size_shift) { + error("Bad argument 1 to file->write().\n" + "Element %d is a wide string.\n", + i); } }