Changeset 4777 for vendors/AGRIF/current/LIB/WorkWithlistdatavariable.c
- Timestamp:
- 2014-09-19T15:51:42+02:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendors/AGRIF/current/LIB/WorkWithlistdatavariable.c
r2671 r4777 51 51 { 52 52 listvar *newvar; 53 char ligne[LONG_ C];53 char ligne[LONG_M]; 54 54 55 55 // if ( firstpass == 1 ) 56 56 // { 57 newvar=(listvar *) malloc(sizeof(listvar));58 newvar->var=(variable *) malloc(sizeof(variable));57 newvar=(listvar *)calloc(1,sizeof(listvar)); 58 newvar->var=(variable *)calloc(1,sizeof(variable)); 59 59 /* */ 60 60 Init_Variable(newvar->var); … … 62 62 if ( inmoduledeclare == 1 ) newvar->var->v_module=1; 63 63 strcpy(newvar->var->v_nomvar,name); 64 Save_Length(name,4);65 64 strcpy(newvar->var->v_subroutinename,subroutinename); 66 Save_Length(subroutinename,11);67 65 strcpy(newvar->var->v_modulename,curmodulename); 68 Save_Length(curmodulename,6); 69 strcpy(newvar->var->v_commoninfile,mainfile); 70 Save_Length(mainfile,10); 66 strcpy(newvar->var->v_commoninfile,cur_filename); 71 67 if (strchr(values,',') && strncasecmp(values,"'",1)) 72 { 73 sprintf(ligne,"(/%s/)",values); 74 } 68 sprintf(ligne,"(/%s/)",values); 75 69 else 76 strcpy(ligne,values);70 strcpy(ligne,values); 77 71 78 72 strcpy(newvar->var->v_initialvalue,ligne); … … 93 87 void Add_Data_Var_Names_01 (listvar **curlist,listname *l1,listname *l2) 94 88 { 95 listvar *newvar; 96 listvar *tmpvar; 97 listname *tmpvar1; 98 listname *tmpvar2; 99 char ligne[LONG_C]; 89 listvar *newvar; 90 listvar *tmpvar; 91 listname *tmpvar1; 92 listname *tmpvar2; 93 variable *found_var = NULL; 94 95 tmpvar1 = l1; 96 tmpvar2 = l2; 100 97 101 tmpvar1 = l1; 102 tmpvar2 = l2; 103 104 while (tmpvar1) 105 { 106 newvar=(listvar *)malloc(sizeof(listvar)); 107 newvar->var=(variable *)malloc(sizeof(variable)); 108 /* */ 109 Init_Variable(newvar->var); 110 /* */ 111 if ( inmoduledeclare == 1 ) newvar->var->v_module=1; 112 strcpy(newvar->var->v_nomvar,tmpvar1->n_name); 113 Save_Length(tmpvar1->n_name,4); 114 strcpy(newvar->var->v_subroutinename,subroutinename); 115 Save_Length(subroutinename,11); 116 strcpy(newvar->var->v_modulename,curmodulename); 117 Save_Length(curmodulename,6); 118 strcpy(newvar->var->v_commoninfile,mainfile); 119 Save_Length(mainfile,10); 120 121 strcpy(newvar->var->v_initialvalue,tmpvar2->n_name); 122 Save_Length(tmpvar2->n_name,14); 123 newvar->suiv = NULL; 98 while (tmpvar1) 99 { 100 newvar = (listvar *) calloc(1,sizeof(listvar)); 101 newvar->var = (variable *) calloc(1,sizeof(variable)); 102 103 Init_Variable(newvar->var); 104 105 if ( inmoduledeclare == 1 ) newvar->var->v_module=1; 124 106 125 if ( ! (*curlist) ) 126 { 127 *curlist = newvar ; 128 } 129 else 130 { 131 tmpvar = *curlist; 132 while (tmpvar->suiv) 133 tmpvar=tmpvar->suiv; 134 tmpvar->suiv = newvar; 135 } 107 found_var = get_variable_in_list_from_name(List_Common_Var, tmpvar1->n_name); 108 if ( ! found_var ) found_var = get_variable_in_list_from_name(List_Global_Var,tmpvar1->n_name); 109 if ( ! found_var ) found_var = get_variable_in_list_from_name(List_SubroutineDeclaration_Var,tmpvar1->n_name); 110 111 if ( found_var && found_var->v_nbdim > 0 ) 112 { 113 printf("##############################################################################################################\n"); 114 printf("## CONV Error : arrays in data_stmt_object lists not yet supported. Please complain to the proper authorities.\n"); 115 printf("## variable name : %s (in %s:%s:%s)\n", found_var->v_nomvar, found_var->v_modulename, 116 found_var->v_subroutinename, found_var->v_commonname); 117 exit(1); 118 } 119 120 strcpy(newvar->var->v_nomvar,tmpvar1->n_name); 121 strcpy(newvar->var->v_subroutinename,subroutinename); 122 strcpy(newvar->var->v_modulename,curmodulename); 123 strcpy(newvar->var->v_commoninfile,cur_filename); 124 strcpy(newvar->var->v_initialvalue,tmpvar2->n_name); 125 126 Save_Length(tmpvar2->n_name,14); 127 128 newvar->suiv = NULL; 136 129 137 tmpvar1 = tmpvar1->suiv; 138 tmpvar2 = tmpvar2->suiv; 139 } 140 return; 141 142 130 if ( *curlist != NULL ) 131 { 132 tmpvar = *curlist; 133 while (tmpvar->suiv) 134 tmpvar = tmpvar->suiv; 135 tmpvar->suiv = newvar; 136 } 137 else 138 { 139 *curlist = newvar ; 140 } 141 142 tmpvar1 = tmpvar1->suiv; 143 tmpvar2 = tmpvar2->suiv; 144 } 143 145 }
Note: See TracChangeset
for help on using the changeset viewer.