From 1d5328158bd8888e7aae9df5158d089c3098bb3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Mon, 25 Nov 1996 13:31:55 -0800 Subject: [PATCH] better error messages implemented Rev: src/pike_types.c:1.10 Rev: src/pike_types.h:1.2 --- src/pike_types.c | 11 +++++++++-- src/pike_types.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/pike_types.c b/src/pike_types.c index 3a851d6f03..0d9375d932 100644 --- a/src/pike_types.c +++ b/src/pike_types.c @@ -4,7 +4,7 @@ ||| See the files COPYING and DISCLAIMER for more information. \*/ #include "global.h" -RCSID("$Id: pike_types.c,v 1.9 1996/11/18 20:56:25 hubbe Exp $"); +RCSID("$Id: pike_types.c,v 1.10 1996/11/25 21:31:54 hubbe Exp $"); #include <ctype.h> #include "svalue.h" #include "pike_types.h" @@ -19,6 +19,8 @@ RCSID("$Id: pike_types.c,v 1.9 1996/11/18 20:56:25 hubbe Exp $"); #include "macros.h" #include "error.h" +int max_correct_args; + static void internal_parse_type(char **s); static int type_length(char *t); @@ -649,6 +651,7 @@ TYPE_T compile_type_to_runtime_type(struct pike_string *s) */ static char *low_match_types(char *a,char *b, int flags) { + int correct_args; char *ret; if(a == b) return a; @@ -712,6 +715,7 @@ static char *low_match_types(char *a,char *b, int flags) switch(EXTRACT_UCHAR(a)) { case T_FUNCTION: + correct_args=0; a++; b++; while(EXTRACT_UCHAR(a)!=T_MANY || EXTRACT_UCHAR(b)!=T_MANY) @@ -734,6 +738,8 @@ static char *low_match_types(char *a,char *b, int flags) } if(!low_match_types(a_tmp, b_tmp, flags)) return 0; + if(++correct_args > max_correct_args) + max_correct_args=correct_args; } /* check the 'many' type */ a++; @@ -999,11 +1005,12 @@ int count_arguments(struct pike_string *s) } struct pike_string *check_call(struct pike_string *args, - struct pike_string *type) + struct pike_string *type) { CHECK_TYPE(args); CHECK_TYPE(type); reset_type_stack(); + max_correct_args=0; if(low_get_return_type(type->str,args->str)) { return pop_type(); diff --git a/src/pike_types.h b/src/pike_types.h index 4af7abed7a..77bd058263 100644 --- a/src/pike_types.h +++ b/src/pike_types.h @@ -6,6 +6,7 @@ #ifndef PIKE_TYPES_H #define PIKE_TYPES_H +extern int max_correct_args; extern struct pike_string *string_type_string; extern struct pike_string *int_type_string; extern struct pike_string *float_type_string; -- GitLab