- assert (dv->type == ALPHA || dv->width == 0);
- assert (!mv || mv->type == ALPHA || mv->width == 0);
- if (mv && dv->width == mv->width)
- {
- if (val_labs_count (dv->val_labs)
- && !val_labs_count (mv->val_labs))
- mv->val_labs = val_labs_copy (dv->val_labs);
- if (dv->miss_type != MISSING_NONE
- && mv->miss_type == MISSING_NONE)
- copy_missing_values (mv, dv);
- }
- if (mv && dv->label && !mv->label)
- mv->label = xstrdup (dv->label);
- if (!mv)
- {
- mv = dict_clone_var (m, dv, dv->name, dv->longname);
- assert (mv != NULL);
- }
- else if (mv->width != dv->width)
- {
- msg (SE, _("Variable %s in file %s (%s) has different "
- "type or width from the same variable in "
- "earlier file (%s)."),
- dv->name, handle_get_name (f->handle),
- var_type_description (dv), var_type_description (mv));
- return 0;
- }
- set_master (dv, mv);
- }
- }
+ if (dv->label && !mv->label)
+ mv->label = xstrdup (dv->label);
+ }
+ else
+ {
+ mv = dict_clone_var (m, dv, dv->name, dv->longname);
+ assert (mv != NULL);
+ }
+
+ set_master (dv, mv);
+ }