#include "file.h"
#include "common.h"
-int
-getvar(int vtype, s_char *sp, int ptype)
-{
- u_char *vtypep;
- u_short *vamtp;
- u_char *nvp;
- int amt;
-
- if (ef_vars(ptype, sp, &nvp, &vtypep, &vamtp) < 0) {
- logerror("getvar: ptype %d has no vars", ptype);
- return 0;
- }
- amt = vl_find(vtype, vtypep, vamtp, (int)*nvp);
- if (amt < 0) {
- logerror("getvar: vl_find returns %d, vtype %d", amt, vtype);
- return 0;
- }
- return amt;
-}
-
int
getvec(int class, int *vec, s_char *sp, int ptype)
{
- u_char *vtypep;
- u_short *vamtp;
- u_char *nvp;
- int nv;
+ u_short *src = ef_items(ptype, sp);
+ int i;
- if (ef_vars(ptype, sp, &nvp, &vtypep, &vamtp) < 0) {
+ if (!src || class != VT_ITEM) {
logerror("getvec: ptype %d has no vars", ptype);
return 0;
}
- nv = vl_getvec(vtypep, vamtp, (int)*nvp, class, vec);
- if (nv < 0) {
- logerror("vl_getvec: returns %d, ptype %d\n", nv, ptype);
- return 0;
- }
- return nv;
-}
-int
-putvar(int vtype, int amt, s_char *sp, int ptype)
-{
- u_char *vtypep;
- u_short *vamtp;
- u_char *nvp;
- int maxv;
+ for (i = 0; i <= I_MAX; ++i)
+ vec[i] = src[i];
- if (vtype < 0 || vtype > V_MAX) {
- logerror("putvar: bad vtype %d\n", vtype);
- return 0;
- }
- if ((maxv = ef_vars(ptype, sp, &nvp, &vtypep, &vamtp)) < 0) {
- logerror("putvar: ptype %d has no vars", ptype);
- return 0;
- }
- if (amt < 0)
- amt = 0;
- return vl_set(vtype, (u_int)amt, vtypep, vamtp, nvp, maxv);
+ return I_MAX;
}
int
putvec(int class, int *vec, s_char *sp, int ptype)
{
- u_char *vtypep;
- u_short *vamtp;
- u_char *nvp;
- int maxv, x;
+ u_short *dst = ef_items(ptype, sp);
+ int i;
- if ((maxv = ef_vars(ptype, sp, &nvp, &vtypep, &vamtp)) < 0) {
+ if (!dst || class != VT_ITEM) {
logerror("putvec: ptype %d has no vars", ptype);
return 0;
}
- for (x = 0; x < I_MAX; x++)
- if (vec[x] < 0)
- vec[x] = 0;
- return vl_setvec(vtypep, vamtp, nvp, maxv, class, vec);
+
+ for (i = 0; i <= I_MAX; ++i)
+ dst[i] = vec[i];
+
+ return I_MAX;
}