| 291 | */ |
| 292 | |
| 293 | void var_set( struct module_t * module, OBJECT * symbol, LIST * value, int flag |
| 294 | ) |
| 295 | { |
| 296 | LIST * * v = var_enter( module, symbol ); |
| 297 | |
| 298 | if ( DEBUG_VARSET ) |
| 299 | var_dump( symbol, value, "set" ); |
| 300 | |
| 301 | switch ( flag ) |
| 302 | { |
| 303 | case VAR_SET: /* Replace value */ |
| 304 | list_free( *v ); |
| 305 | *v = value; |
| 306 | break; |
| 307 | |
| 308 | case VAR_APPEND: /* Append value */ |
| 309 | *v = list_append( *v, value ); |
| 310 | break; |
| 311 | |
| 312 | case VAR_DEFAULT: /* Set only if unset */ |
| 313 | if ( list_empty( *v ) ) |
| 314 | *v = value; |
| 315 | else |
| 316 | list_free( value ); |
| 317 | break; |
| 318 | } |
| 319 | } |
| 320 | |
| 321 | |
| 322 | /* |
no test coverage detected