PRN *vwin_print_sorted_with_format (windata_t *vwin, PrnFormat fmt) { series_view *sview = (series_view *) vwin->data; int *obsvec; PRN *prn; int err = 0; obsvec = make_obsvec(sview); if (obsvec == NULL) { return NULL; } if (bufopen(&prn)) { free(obsvec); return NULL; } gretl_print_set_format(prn, fmt); if (sview->varnum > 0) { /* single series, no list */ int list[2] = {1, sview->varnum}; err = print_data_in_columns(list, obsvec, dataset, OPT_NONE, prn); } else { err = print_data_in_columns(sview->list, obsvec, dataset, OPT_NONE, prn); } if (err) { gui_errmsg(err); gretl_print_destroy(prn); prn = NULL; } free(obsvec); return prn; }
int do_modprint (const char *line, gretlopt opt, PRN *prn) { gretl_matrix *coef_se = NULL; gretl_matrix *addstats = NULL; char *parnames = NULL; char *litstr = NULL; const char *s; char name[VNAMELEN]; int err = 0; err = incompatible_options(opt, OPT_C | OPT_R | OPT_T); if (err) { return err; } /* skip the command word, if present */ s = line; s += strspn(s, " "); if (!strncmp(s, "modprint ", 9)) { s += 9; } /* first up, name of k x 2 matrix */ if (gretl_scan_varname(s, name) == 1) { coef_se = get_matrix_by_name(name); if (coef_se == NULL) { err = E_UNKVAR; } else if (gretl_matrix_cols(coef_se) != 2) { gretl_errmsg_set(_("modprint: the first matrix argument must have 2 columns")); err = E_DATA; } } else { err = E_PARSE; } if (!err) { /* second up, string containing names */ s += strspn(s, " "); s += strlen(name); s += strspn(s, " "); if (*s == '"') { /* got a string literal */ litstr = gretl_quoted_string_strdup(s, &s); if (litstr == NULL) { err = E_PARSE; } else { parnames = litstr; s += strspn(s, " "); } } else if (gretl_scan_varname(s, name) == 1) { parnames = (char *) get_string_by_name(name); if (parnames == NULL) { err = E_UNKVAR; } else { /* advance past string name */ s += strspn(s, " "); s += strlen(name); s += strspn(s, " "); } } else { err = E_PARSE; } } if (!err) { /* optional third field: extra matrix */ if (*s != '\0') { gretl_scan_varname(s, name); addstats = get_matrix_by_name(name); if (addstats == NULL) { err = E_UNKVAR; } } } if (!err) { PrnFormat fmt = GRETL_FORMAT_TXT; if (opt & OPT_C) { fmt = GRETL_FORMAT_CSV; } else if (opt & OPT_R) { fmt = GRETL_FORMAT_RTF; } else if (opt & OPT_T) { fmt = GRETL_FORMAT_TEX; if (opt & OPT_O) { fmt |= GRETL_FORMAT_DOC; } } gretl_print_set_format(prn, fmt); err = print_model_from_matrices(coef_se, addstats, parnames, prn); } free(litstr); return err; }