- {
- const int tfw = find_variable (default_dict.weight_var) != 0;
- const int sfw = dict->weight_var[0] != 0;
- struct variable *w;
-
- switch (10 * tfw + sfw)
- {
- case 10:
- /* The working file retains its weighting variable. */
- break;
-
- case 00:
- case 01:
- /* Fall through to case 11. */
-
- case 11:
- w = find_variable (dict->weight_var);
- if (w)
- strcpy (default_dict.weight_var, dict->weight_var);
- break;
- }
- }
- skip_missing_values: ;
+ if (dict_get_weight (dict) != NULL)
+ {
+ struct variable *new_weight
+ = dict_lookup_var (default_dict, dict_get_weight (dict)->name);
+
+ if (new_weight != NULL)
+ dict_set_weight (default_dict, new_weight);
+ }