Пример #1
0
int clip_PG_IN_DOUBLE(ClipMachine* mp){
	PG_ROWSET* rowset = (PG_ROWSET*)_clip_fetch_c_item(
		mp,_clip_parni(mp,1),_C_ITEM_TYPE_SQL);
	int dec = _clip_parni(mp,3);
	char* str;
	int len;

	if(!rowset){
		_clip_trap_err(mp,0,0,0,subsys,ER_NOROWSET,er_norowset);
		return 1;
	}
	if(rowset->binary){
		str = _clip_parcl(mp,2,&len);
		if(str){
			_clip_retndp(mp,*((double*)str),0,dec);
		}
	} else {
		str = _clip_parc(mp,2);
		if(str){
			_clip_retndp(mp,_clip_strtod(str,&len),0,dec);
		}
	}
	return 0;
}
Пример #2
0
int static
__tree_store_set(ClipMachine * ClipMachineMemory, GtkTreeIter * iter, gint startDataParam)
{
   C_object *cstree = _fetch_co_arg(ClipMachineMemory);

   ClipArrVar *utypes;

   gint      i;

   CHECKCOBJ(cstree, GTK_IS_TREE_STORE(cstree->object));

   utypes = (ClipArrVar *) _clip_vptr(_clip_mget(ClipMachineMemory, &cstree->obj, HASH_UTYPES));
   for (i = startDataParam; i <= _clip_parinfo(ClipMachineMemory, 0); i += 2)
    {
       gint      column = _clip_parni(ClipMachineMemory, i);

       ClipVar  *val;

       GValue    value;

       C_object *cobj;

       gchar    *str;

       int       j, n;

       double    d;

       CHECKARG(i, NUMERIC_type_of_ClipVarType);

       if (column == -1)
	  break;

       column--;
       val = _clip_par(ClipMachineMemory, i + 1);
       memset(&value, 0, sizeof(value));
       switch ((int) utypes->ClipVar_items_of_ClipArrVar[column].ClipNumVar_n_of_ClipVar.double_of_ClipNumVar)
	{
	case TREE_TYPE_NUMERIC:
	   g_value_init(&value, G_TYPE_INT);
	   if (val->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType == NUMERIC_type_of_ClipVarType)
	      g_value_set_int(&value, (int) val->ClipNumVar_n_of_ClipVar.double_of_ClipNumVar);
	   else
	    {
	       n = _clip_strtod(val->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.buf_of_ClipBuf, &j);
	       g_value_set_int(&value, n);
	    }
	   break;
	case TREE_TYPE_NUMERIC_FLOAT:
	   g_value_init(&value, G_TYPE_FLOAT);
	   if (val->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType == NUMERIC_type_of_ClipVarType)
	      g_value_set_float(&value, val->ClipNumVar_n_of_ClipVar.double_of_ClipNumVar);
	   else
	    {
	       d = _clip_strtod(val->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.buf_of_ClipBuf, &j);
	       g_value_set_float(&value, d);
	    }
	   break;
	case TREE_TYPE_STRING:
	   str = val->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.buf_of_ClipBuf;
	   LOCALE_TO_UTF(str);
	   g_value_init(&value, G_TYPE_STRING);
	   g_value_set_string(&value, str);
	   FREE_TEXT(str);
	   break;
	case TREE_TYPE_LOGICAL:
	   g_value_init(&value, G_TYPE_BOOLEAN);
	   g_value_set_boolean(&value, val->ClipLogVar_l_of_ClipVar.value_of_ClipLogVar);
	   break;
	case TREE_TYPE_DATE:
	   g_value_init(&value, G_TYPE_STRING);
	   if (val->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType == DATE_type_of_ClipVarType)
	      str = _clip_date_to_str(val->ClipLongVar_lv_of_ClipVar.long_of_ClipLongVar, ClipMachineMemory->date_format);
	   else
	      str =
	       _clip_date_to_str(_clip_str_to_date
				 (val->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.buf_of_ClipBuf,
				  ClipMachineMemory->date_format, ClipMachineMemory->epoch), ClipMachineMemory->date_format);
	   g_value_set_string(&value, str);
	   break;
	case TREE_TYPE_PIXBUF:
	   g_value_init(&value, GDK_TYPE_PIXBUF);
	   cobj = _fetch_cobject(ClipMachineMemory, val);
	   g_value_set_object(&value, cobj->object);
	   break;
	}
       gtk_tree_store_set_value(GTK_TREE_STORE(cstree->object), iter, column, &value);
    }
   return 0;
 err:
   return 1;
}
Пример #3
0
/******************************************************************************
* gtk_TreeStoreSetValue(tree,path_string,  ncol, val)
******************************************************************************/
int
clip_GTK_TREESTORESETVALUE(ClipMachine * ClipMachineMemory)
{
   C_object *cstree = _fetch_co_arg(ClipMachineMemory);

   gchar    *path = _clip_parc(ClipMachineMemory, 2);

   gint      column = _clip_parni(ClipMachineMemory, 3);

   ClipVar  *val = _clip_par(ClipMachineMemory, 4);;
   GtkTreeIter iter;

   ClipArrVar *utypes;

   GValue    value;

   C_object *cobj;

   gchar    *str;

   int       j, n;

   double    d;

   CHECKARG2(1, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType);
   CHECKCOBJ(cstree, GTK_IS_TREE_STORE(cstree->object));
   CHECKARG(2, CHARACTER_type_of_ClipVarType);
   CHECKARG(3, NUMERIC_type_of_ClipVarType);

   gtk_tree_model_get_iter(GTK_TREE_MODEL(GTK_TREE_STORE(cstree->object)), &iter, gtk_tree_path_new_from_string(path));

   utypes = (ClipArrVar *) _clip_vptr(_clip_mget(ClipMachineMemory, &cstree->obj, HASH_UTYPES));
   column--;

   memset(&value, 0, sizeof(value));
   switch ((int) utypes->ClipVar_items_of_ClipArrVar[column].ClipNumVar_n_of_ClipVar.double_of_ClipNumVar)
    {
    case TREE_TYPE_NUMERIC:
       g_value_init(&value, G_TYPE_INT);
       if (val->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType == NUMERIC_type_of_ClipVarType)
	  g_value_set_int(&value, (int) val->ClipNumVar_n_of_ClipVar.double_of_ClipNumVar);
       else
	{
	   n = _clip_strtod(val->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.buf_of_ClipBuf, &j);
	   g_value_set_int(&value, n);
	}
       break;
    case TREE_TYPE_NUMERIC_FLOAT:
       g_value_init(&value, G_TYPE_FLOAT);
       if (val->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType == NUMERIC_type_of_ClipVarType)
	  g_value_set_float(&value, val->ClipNumVar_n_of_ClipVar.double_of_ClipNumVar);
       else
	{
	   d = _clip_strtod(val->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.buf_of_ClipBuf, &j);
	   g_value_set_float(&value, d);
	}
       break;
    case TREE_TYPE_STRING:
       str = val->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.buf_of_ClipBuf;
       LOCALE_TO_UTF(str);
       g_value_init(&value, G_TYPE_STRING);
       g_value_set_string(&value, str);
       FREE_TEXT(str);
       break;
    case TREE_TYPE_LOGICAL:
       g_value_init(&value, G_TYPE_BOOLEAN);
       g_value_set_boolean(&value, val->ClipLogVar_l_of_ClipVar.value_of_ClipLogVar);
       break;
    case TREE_TYPE_DATE:
       g_value_init(&value, G_TYPE_STRING);
       if (val->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType == DATE_type_of_ClipVarType)
	  str = _clip_date_to_str(val->ClipLongVar_lv_of_ClipVar.long_of_ClipLongVar, ClipMachineMemory->date_format);
       else
	  str =
	   _clip_date_to_str(_clip_str_to_date
			     (val->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.buf_of_ClipBuf,
			      ClipMachineMemory->date_format, ClipMachineMemory->epoch), ClipMachineMemory->date_format);
       g_value_set_string(&value, str);
       break;
    case TREE_TYPE_PIXBUF:
       g_value_init(&value, GDK_TYPE_PIXBUF);
       cobj = _fetch_cobject(ClipMachineMemory, val);
       g_value_set_object(&value, cobj->object);
       break;
    }
   gtk_tree_store_set_value(GTK_TREE_STORE(cstree->object), &iter, column, &value);

   return 0;
 err:
   return 1;
}
Пример #4
0
int
static __list_store_set(ClipMachine *cm, GtkTreeIter *iter, gint startDataParam)
{
	C_object *cslist  = _fetch_co_arg(cm);
        ClipArrVar *utypes;
        gint i;

        CHECKCOBJ(cslist, GTK_IS_LIST_STORE(cslist->object));

        utypes = (ClipArrVar *)_clip_vptr(_clip_mget(cm, &cslist->obj, HASH_UTYPES));
	for (i=startDataParam; i<=_clip_parinfo(cm, 0); i+=2)
        {
        	gint column = _clip_parni(cm, i);
        	ClipVar *val;
        	GValue value;
                C_object *cobj;
                gchar *str;
		int j, n;
                double d;

		CHECKARG(i, NUMERIC_t);

                if (column == -1)
                	break;

		column --;
		val = _clip_par(cm, i+1);
		memset(&value, 0, sizeof(value));
		switch ((int)utypes->items[column].n.d)
		{
		case TREE_TYPE_NUMERIC:
			g_value_init(&value, G_TYPE_INT);
			if (val->t.type == NUMERIC_t)
                		g_value_set_int(&value, (int)val->n.d);
                	else
                        {
                		n = _clip_strtod(val->s.str.buf, &j);
                		g_value_set_int(&value, n);
                        }
			break;
		case TREE_TYPE_NUMERIC_FLOAT:
			g_value_init(&value, G_TYPE_FLOAT);
			if (val->t.type == NUMERIC_t)
                		g_value_set_float(&value, val->n.d);
                	else
                        {
                		d = _clip_strtod(val->s.str.buf, &j);
                		g_value_set_float(&value, d);
                        }
			break;
		case TREE_TYPE_STRING:
			str = val->s.str.buf;
			LOCALE_TO_UTF(str);
			g_value_init(&value,  G_TYPE_STRING);
	                g_value_set_string(&value, str);
                        FREE_TEXT(str);
			break;
		case TREE_TYPE_LOGICAL:
			g_value_init(&value,  G_TYPE_BOOLEAN);
	                g_value_set_boolean(&value, val->l.val);
			break;
		case TREE_TYPE_PIXBUF:
			g_value_init(&value,  GDK_TYPE_PIXBUF);
	                cobj = _fetch_cobject(cm, val);
	                g_value_set_object(&value, cobj->object);
			break;
		case TREE_TYPE_DATE:
			g_value_init(&value,  G_TYPE_STRING);
	                if (val->t.type == DATE_t)
	                	str = _clip_date_to_str(val->lv.l, cm->date_format);
                        else
                        	str = _clip_date_to_str(_clip_str_to_date(val->s.str.buf, cm->date_format, cm->epoch), cm->date_format);
	                g_value_set_string(&value, str);
			break;
		}
        	gtk_list_store_set_value(GTK_LIST_STORE(cslist->object), iter, column, &value);
	}
	return 0;
err:
	return 1;
}
Пример #5
0
/******************************************************************************
* gtk_ListStoreSetValue(list,path_string,  ncol, val)
******************************************************************************/
int
clip_GTK_LISTSTORESETVALUE(ClipMachine * cm)
{
	C_object *cslist = _fetch_co_arg(cm);
        gchar      *path = _clip_parc(cm, 2);
        gint	  column = _clip_parni(cm, 3);
	ClipVar     *val = _clip_par(cm, 4);;
	GtkTreeIter iter;
        ClipArrVar *utypes;
	GValue value;
        C_object *cobj;
	gchar *str;
	int j, n;
	double d;

        CHECKARG2(1, MAP_t, NUMERIC_t);CHECKCOBJ(cslist, GTK_IS_LIST_STORE(cslist->object));
        CHECKARG(2, CHARACTER_t);
        CHECKARG(3, NUMERIC_t);

	gtk_tree_model_get_iter(GTK_TREE_MODEL(GTK_LIST_STORE(cslist->object)),
        	&iter, gtk_tree_path_new_from_string(path));

        utypes = (ClipArrVar *)_clip_vptr(_clip_mget(cm, &cslist->obj, HASH_UTYPES));
	column --;

	memset(&value, 0, sizeof(value));
	switch ((int)utypes->items[column].n.d)
	{
	case TREE_TYPE_NUMERIC:
		g_value_init(&value, G_TYPE_INT);
		if (val->t.type == NUMERIC_t)
			g_value_set_int(&value, (int)val->n.d);
		else
		{
			n = _clip_strtod(val->s.str.buf, &j);
			g_value_set_int(&value, n);
		}
		break;
	case TREE_TYPE_NUMERIC_FLOAT:
		g_value_init(&value, G_TYPE_FLOAT);
		if (val->t.type == NUMERIC_t)
			g_value_set_float(&value, val->n.d);
		else
		{
			d = _clip_strtod(val->s.str.buf, &j);
			g_value_set_float(&value, d);
		}
		break;
	case TREE_TYPE_STRING:
		str = val->s.str.buf;
		LOCALE_TO_UTF(str);
		g_value_init(&value,  G_TYPE_STRING);
		g_value_set_string(&value, str);
		FREE_TEXT(str);
		break;
	case TREE_TYPE_LOGICAL:
		g_value_init(&value,  G_TYPE_BOOLEAN);
		g_value_set_boolean(&value, val->l.val);
		break;
	case TREE_TYPE_PIXBUF:
		g_value_init(&value,  GDK_TYPE_PIXBUF);
	        cobj = _fetch_cobject(cm, val);
	        g_value_set_object(&value, cobj->object);
		break;
	case TREE_TYPE_DATE:
		g_value_init(&value,  G_TYPE_STRING);
		if (val->t.type == DATE_t)
			str = _clip_date_to_str(val->lv.l, cm->date_format);
		else
			str = _clip_date_to_str(_clip_str_to_date(val->s.str.buf, cm->date_format, cm->epoch), cm->date_format);
		g_value_set_string(&value, str);
		break;
	}
	gtk_list_store_set_value(GTK_LIST_STORE(cslist->object), &iter, column, &value);

	return 0;
err:
	return 1;
}
Пример #6
0
int
clip_ROUND(ClipMachine * mp)
{
#if 1
	int len, dec;
	double d = _clip_parnd(mp, 1);
	ClipVar *vp=_clip_par(mp,1);
	int de = _clip_parni(mp, 2);

#ifdef ARCH_i386
	(*(long long*)&d)++;
#endif

	_clip_parp(mp, 1, &len, &dec);
	dec = de;
	if (dec <= 0)
		dec = 0;
	if ( vp->t.memo )
	{
		char *tmp=rational_toString(vp->r.r,10,dec,0);
		_clip_retnr(mp,rational_fromString(tmp),len,dec);
		free(tmp);
		return 0;
	}
	if( d == 0.0 )
	{
		_clip_retndp(mp, d, len, de);
		return 0;
	}
	if( de == 0 )
	{
		if( d < 0.0 )
			d = ceil( d - 0.5 );
		else
			d = floor( d + 0.5 );
		_clip_retndp(mp, d, len, dec);
		return 0;
	}
	if( de < 0 )
	{
		double tmp = pow( 10, -de );
		if( d < 0.0 )
			d = ceil( ( d / tmp ) - 0.5 );
		else
			d = floor( ( d / tmp ) + 0.5 );
		d *= tmp;
	}
	else
	{
		double tmp = pow( 10, de );
		if( d < 0.0 )
			d = ceil( ( d * tmp ) - 0.5 );
		else
			d = floor( ( d * tmp ) + 0.5 );
		 d /= tmp;
	 }
	_clip_retndp(mp, d, len, dec);
	 return 0;
#else
	int len, dec, len1;
	char buf[33],ch;
	double ret, d = _clip_parnd(mp, 1);
	int de = _clip_parni(mp, 2);
	_clip_parp(mp, 1, &len, &dec);

	buf[32]=0;
	if (len > 30 )
		len=30;
	_clip_dtostr(buf, len, de+1, d, 0);
	len1 = strlen(buf)-1;
	ch = buf[len1];
	if ( ch >='5' )
		buf[len1-1] ++;
	buf[len1] = 0;
	ret = _clip_strtod(buf, &dec);
	_clip_retndp(mp, ret, len, de);
	return 0;
#endif
}
Пример #7
0
static int
get_var(ClipMachine * ClipMachineMemory, ClipVar * vp, char **str, long *len)
{
   int type;

   memset(vp, 0, sizeof(ClipVar));
   if (!get_byte(str, len, &type))
      return -1;

   switch (type)
   {
   case UNDEF_type_of_ClipVarType:
      break;
   case NUMERIC_type_of_ClipVarType:
      {
	 int dec, l, memo;

	 char *s = 0;

	 long sl = 0;

	 if (!get_byte(str, len, &dec))
	    return -1;
	 if (!get_byte(str, len, &l))
	    return -1;
	 if (!get_byte(str, len, &memo))
	    return -1;
	 if (!get_str(str, len, &s, &sl))
	    return -1;

	 vp->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType = NUMERIC_type_of_ClipVarType;
	 vp->ClipType_t_of_ClipVar.ClipFlags_flags_of_ClipType = F_NONE_ClipFlags;
	 vp->ClipType_t_of_ClipVar.len_of_ClipType = l;
	 vp->ClipType_t_of_ClipVar.dec_of_ClipType = dec;
	 vp->ClipType_t_of_ClipVar.memo_of_ClipType = memo;
	 if (memo)
	    vp->ClipRationalVar_r_of_ClipVar.Struc_rational_of_ClipRationalVar = rational_fromString(s);
	 else
	 {
	    int dec;

	    vp->ClipNumVar_n_of_ClipVar.double_of_ClipNumVar = _clip_strtod(s, &dec);;
	 }
	 free(s);
      }
      break;
   case CHARACTER_type_of_ClipVarType:
      {
	 char *s = 0;

	 long sl = 0;

	 if (!get_str(str, len, &s, &sl))
	    return -1;
	 vp->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType = CHARACTER_type_of_ClipVarType;
	 vp->ClipType_t_of_ClipVar.ClipFlags_flags_of_ClipType = F_NONE_ClipFlags;

	 /*
	    vp->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.buf = malloc(sl);
	    memcpy(vp->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.buf,s,sl);
	    free(s);
	  */
	 vp->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.buf_of_ClipBuf = s;
	 vp->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.len_of_ClipBuf = sl;
      }
      break;
   case LOGICAL_type_of_ClipVarType:
      {
	 int n;

	 if (!get_byte(str, len, &n))
	    return -1;
	 vp->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType = LOGICAL_type_of_ClipVarType;
	 vp->ClipType_t_of_ClipVar.ClipFlags_flags_of_ClipType = F_NONE_ClipFlags;
	 vp->ClipLogVar_l_of_ClipVar.value_of_ClipLogVar = n;
      }
      break;
   case DATE_type_of_ClipVarType:
      {
	 long n;

	 if (!get_int32(str, len, &n))
	    return -1;
	 vp->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType = DATE_type_of_ClipVarType;
	 vp->ClipType_t_of_ClipVar.ClipFlags_flags_of_ClipType = F_NONE_ClipFlags;
	 vp->ClipDateVar_d_of_ClipVar.julian_of_ClipDateVar = n;
      }
      break;
   case OBJECT_type_of_ClipVarType:
      {
	 char *s = 0;

	 long sl = 0;

	 if (!get_str(str, len, &s, &sl))
	    return -1;
	 /*vp->o.rtti->print(ClipMachineMemory, vp->o.obj, vp->o.rtti, &ClipMachineMemory->buf, &ClipMachineMemory->buflen); */
	 free(s);
      }
      break;
   case PCODE_type_of_ClipVarType:
   case CCODE_type_of_ClipVarType:
      {
	 /*ClipVar *sp = (ClipVar *) calloc(1, sizeof(ClipVar)); */
	 /*
	    vp->ClipType_t_of_ClipVar.ClipFlags_flags_of_ClipType = F_MPTR;
	    vp->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType = CCODE_t;
	    vp->ClipRefVar_p_of_ClipVar.vp = sp;
	  */

	 /*sp->ClipType_t_of_ClipVar.count_of_ClipType = 1; */
	 vp->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType = CCODE_type_of_ClipVarType;
	 vp->ClipType_t_of_ClipVar.ClipFlags_flags_of_ClipType = F_NONE_ClipFlags;
	 vp->ClipCodeVar_c_of_ClipVar.union_of_ClipCodeVar.ClipFunction_function_of_ClipCodeVar = null_func;
      }
      break;
   case ARRAY_type_of_ClipVarType:
      {
	 long i, size;

	 ClipVar *ap;

	 if (!get_int32(str, len, &size))
	    return -1;

	 ap = (ClipVar *) calloc(1, sizeof(ClipVar));
	 vp->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType = ARRAY_type_of_ClipVarType;
	 vp->ClipType_t_of_ClipVar.ClipFlags_flags_of_ClipType = F_MPTR_ClipFlags;
	 vp->ClipRefVar_p_of_ClipVar.ClipVar_of_ClipRefVar = ap;
	 ap->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType = ARRAY_type_of_ClipVarType;
	 ap->ClipType_t_of_ClipVar.ClipFlags_flags_of_ClipType = F_NONE_ClipFlags;
	 ap->ClipType_t_of_ClipVar.count_of_ClipType = 1;
	 ap->ClipArrVar_a_of_ClipVar.ClipVar_items_of_ClipArrVar = (ClipVar *) malloc(sizeof(ClipVar) * size);
	 ap->ClipArrVar_a_of_ClipVar.count_of_ClipArrVar = size;

	 for (i = 0; i < size; ++i)
	    if (get_var(ClipMachineMemory, ap->ClipArrVar_a_of_ClipVar.ClipVar_items_of_ClipArrVar + i, str, len) < 0)
	       return -1;
      }
      break;
   case MAP_type_of_ClipVarType:
      {
	 int i;

	 long size;

	 ClipVar *ap;

	 if (!get_int32(str, len, &size))
	    return -1;

	 ap = (ClipVar *) calloc(1, sizeof(ClipVar));
	 vp->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType = MAP_type_of_ClipVarType;
	 vp->ClipType_t_of_ClipVar.ClipFlags_flags_of_ClipType = F_MPTR_ClipFlags;
	 vp->ClipRefVar_p_of_ClipVar.ClipVar_of_ClipRefVar = ap;
	 ap->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType = MAP_type_of_ClipVarType;
	 ap->ClipType_t_of_ClipVar.ClipFlags_flags_of_ClipType = F_NONE_ClipFlags;
	 ap->ClipType_t_of_ClipVar.count_of_ClipType = 1;
	 ap->ClipMapVar_m_of_ClipVar.ClipVarEl_items_of_ClipMapVar = (ClipVarEl *) calloc(sizeof(ClipVarEl), size);
	 ap->ClipMapVar_m_of_ClipVar.count_of_ClipMapVar = size;

	 for (i = 0; i < size; ++i)
	 {
	    if (!get_int32(str, len, &(ap->ClipMapVar_m_of_ClipVar.ClipVarEl_items_of_ClipMapVar[i].no_of_ClipVarEl)))
	       return -1;
	    if (get_var(ClipMachineMemory, &(ap->ClipMapVar_m_of_ClipVar.ClipVarEl_items_of_ClipMapVar[i].ClipVar_var_of_ClipVarEl), str, len) < 0)
	       return -1;
	 }
      }
      break;
   default:
      ;
   }
   return 0;
}