X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fvariable.c;h=a10a8adea7ec03cbf60fd7cde4633f8fa5c7c167;hb=f514231dd2fc0c2adc1ebab5c46a4b55d2bd9c2b;hp=aa65606f02652d826b976a7f0a423cfb3b16b3f9;hpb=1f221ed321a915d7c9888fac08dcf34fde06cdc4;p=pspp-builds.git diff --git a/src/data/variable.c b/src/data/variable.c index aa65606f..a10a8ade 100644 --- a/src/data/variable.c +++ b/src/data/variable.c @@ -29,6 +29,7 @@ #include "value-labels.h" #include "vardict.h" +#include #include #include #include @@ -349,6 +350,7 @@ var_get_width (const struct variable *v) void var_set_width (struct variable *v, int new_width) { + const int old_width = v->width; enum var_type new_type = var_type_from_width (new_width); if (mv_is_resizable (&v->miss, new_width)) @@ -382,6 +384,14 @@ var_set_width (struct variable *v, int new_width) v->width = new_width; + { + const int old_val_count = value_cnt_from_width (old_width); + const int new_val_count = value_cnt_from_width (new_width); + + if ( old_val_count != new_val_count) + dict_var_resized (v, new_val_count - old_val_count); + } + dict_var_changed (v); }