X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=progs%2Ftparm_type.c;h=3da4a0774af5164eab3f2d7655b6f491a83a5cf6;hp=26eee698806b7c6e0aa99a938c1e89ce71046d9b;hb=7f4b9f390624835ceb0849965a7f6ff2dcb39d00;hpb=34d602f272c394e9a980438e636e1ce4d355f83b diff --git a/progs/tparm_type.c b/progs/tparm_type.c index 26eee698..3da4a077 100644 --- a/progs/tparm_type.c +++ b/progs/tparm_type.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * + * Copyright 2020 Thomas E. Dickey * + * Copyright 2014,2015 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -32,7 +33,7 @@ #include -MODULE_ID("$Id: tparm_type.c,v 1.1 2014/05/21 16:50:57 tom Exp $") +MODULE_ID("$Id: tparm_type.c,v 1.4 2020/10/24 17:30:32 tom Exp $") /* * Lookup the type of call we should make to tparm(). This ignores the actual @@ -42,12 +43,15 @@ MODULE_ID("$Id: tparm_type.c,v 1.1 2014/05/21 16:50:57 tom Exp $") TParams tparm_type(const char *name) { -#define TD(code, longname, ti, tc) {code,longname},{code,ti},{code,tc} +#define TD(code, longname, ti, tc) \ + {code, {longname} }, \ + {code, {ti} }, \ + {code, {tc} } TParams result = Numbers; /* *INDENT-OFF* */ static const struct { TParams code; - const char *name; + const char name[12]; } table[] = { TD(Num_Str, "pkey_key", "pfkey", "pk"), TD(Num_Str, "pkey_local", "pfloc", "pl"), @@ -66,3 +70,31 @@ tparm_type(const char *name) } return result; } + +TParams +guess_tparm_type(int nparam, char **p_is_s) +{ + TParams result = Other; + switch (nparam) { + case 0: + case 1: + if (!p_is_s[0]) + result = Numbers; + break; + case 2: + if (!p_is_s[0] && !p_is_s[1]) + result = Numbers; + if (!p_is_s[0] && p_is_s[1]) + result = Num_Str; + break; + case 3: + if (!p_is_s[0] && !p_is_s[1] && !p_is_s[2]) + result = Numbers; + if (!p_is_s[0] && p_is_s[1] && p_is_s[2]) + result = Num_Str_Str; + break; + default: + break; + } + return result; +}