## PSPP - a program for statistical analysis. ## Copyright (C) 2019 Free Software Foundation, Inc. ## ## This program is free software: you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 3 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program. If not, see . TYPEMAP struct pspp_dict * T_PTRREF struct variable * T_PTRREF struct syswriter_info * T_PTRREF struct sysreader_info * T_PTRREF input_format INPUT_FMT_SPEC output_format OUTPUT_FMT_SPEC INPUT OUTPUT_FMT_SPEC { HV *hv = (HV *) SvRV ($arg); SV** the_format = hv_fetch (hv, \"fmt\", 3, 0); SV** decimals = hv_fetch (hv, \"decimals\", 8, 0); SV** width = hv_fetch (hv, \"width\", 5, 0); $var.type = the_format ? SvIV (*the_format) : FMT_F; $var.w = width ? SvIV (*width) : 8; $var.d = decimals ? SvIV (*decimals) : fmt_takes_decimals ($var.type) ? MIN (2, fmt_max_output_decimals ($var.type, $var.w)) : 0; if ( ! fmt_check_output (&$var)) { char buf[FMT_STRING_LEN_MAX + 1]; fmt_to_string (&$var, buf); croak (\"%s is an invalid output format\", buf); } } INPUT_FMT_SPEC { HV *hv = (HV *) SvRV ($arg); SV** the_format = hv_fetch (hv, \"fmt\", 3, 0); SV** decimals = hv_fetch (hv, \"decimals\", 8, 0); SV** width = hv_fetch (hv, \"width\", 5, 0); $var.type = the_format ? SvIV (*the_format) : FMT_F; $var.w = width ? SvIV (*width) : 8; $var.d = decimals ? SvIV (*decimals) : fmt_takes_decimals ($var.type) ? MIN (2, fmt_max_input_decimals ($var.type, $var.w)) : 0; if ( ! fmt_check_input (&$var)) { char buf[FMT_STRING_LEN_MAX + 1]; fmt_to_string (&$var, buf); croak (\"%s is an invalid input format\", buf); } }