/****************************************************************************
- * 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 *
#include <tparm_type.h>
-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
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"),
}
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;
+}