X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fpfm-write.c;h=359f0440159480c26d9d40264ccc1079e85bb232;hb=ca1feaeed4961242699d0b7ba61def0c58515ddd;hp=e2bf68f595bb48cdb457e748d2e89cbe6781259e;hpb=2bfc3a138f308ffb38634a92b23bdc7b62592324;p=pspp-builds.git diff --git a/src/pfm-write.c b/src/pfm-write.c index e2bf68f5..359f0440 100644 --- a/src/pfm-write.c +++ b/src/pfm-write.c @@ -18,6 +18,7 @@ 02111-1307, USA. */ #include +#include "pfm.h" #include #include #include @@ -32,7 +33,6 @@ #include "gmp.h" #include "hash.h" #include "magic.h" -#include "pfm.h" #include "str.h" #include "value-labels.h" #include "var.h" @@ -94,10 +94,10 @@ pfm_write_dictionary (struct file_handle *handle, struct dictionary *dict) { int i; - ext->nvars = dict->nvar; - ext->vars = xmalloc (sizeof *ext->vars * dict->nvar); - for (i = 0; i < dict->nvar; i++) - ext->vars[i] = dict->var[i]->width; + ext->nvars = dict_get_var_cnt (dict); + ext->vars = xmalloc (sizeof *ext->vars * ext->nvars); + for (i = 0; i < ext->nvars; i++) + ext->vars[i] = dict_get_var (dict, i)->width; } /* Write the file header. */ @@ -136,8 +136,9 @@ lossage: /* Write NBYTES starting at BUF to the portable file represented by H. Break lines properly every 80 characters. */ static int -bufwrite (struct file_handle *h, const void *buf, size_t nbytes) +bufwrite (struct file_handle *h, const void *buf_, size_t nbytes) { + const char *buf = buf_; struct pfm_fhuser_ext *ext = h->ext; assert (buf != NULL); @@ -153,7 +154,7 @@ bufwrite (struct file_handle *h, const void *buf, size_t nbytes) goto lossage; nbytes -= n; - *((char **) &buf) += n; + buf += n; ext->lc = 0; } @@ -385,11 +386,11 @@ write_variables (struct file_handle *h, struct dictionary *dict) { int i; - if (!bufwrite (h, "4", 1) || !write_int (h, dict->nvar) + if (!bufwrite (h, "4", 1) || !write_int (h, dict_get_var_cnt (dict)) || !write_int (h, 161)) return 0; - for (i = 0; i < dict->nvar; i++) + for (i = 0; i < dict_get_var_cnt (dict); i++) { static const char *miss_types[MISSING_COUNT] = { @@ -399,7 +400,7 @@ write_variables (struct file_handle *h, struct dictionary *dict) const char *m; int j; - struct variable *v = dict->var[i]; + struct variable *v = dict_get_var (dict, i); if (!bufwrite (h, "7", 1) || !write_int (h, v->width) || !write_string (h, v->name) @@ -424,10 +425,10 @@ write_value_labels (struct file_handle *h, struct dictionary *dict) { int i; - for (i = 0; i < dict->nvar; i++) + for (i = 0; i < dict_get_var_cnt (dict); i++) { struct val_labs_iterator *j; - struct variable *v = dict->var[i]; + struct variable *v = dict_get_var (dict, i); struct val_lab *vl; if (!val_labs_count (v->val_labs))