[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Psppire GUI status
From: |
John Darrington |
Subject: |
Re: Psppire GUI status |
Date: |
Fri, 4 Nov 2005 13:15:32 +0800 |
User-agent: |
Mutt/1.5.9i |
On Thu, Nov 03, 2005 at 08:51:18PM -0800, Ben Pfaff wrote:
Perhaps we are seeing something a little different then. For me,
the variable width always snaps back to 8.
Oh, wait a second. If I click on the "type" entry then I can set
the width and decimals in the dialog box that appears, and that
works fine. It's only a problem if I try to set them by clicking
on their individual fields.
OK. You're talking about the "Width" field. I was referring to the "Columns"
field. But anyway the behaviour you noticed would seem to be a bug and will
need to be fixed.
> The relevant code is at the bottom of data_sheet.c --- and I'm not sure
if
> I'm using the data_in function correctly.
> What is the purpose of the f1 and f2 members of struct data-in ? I
couldn't
> work it out from the comments in data_in.[ch]
f1 and f2 are used in error messages only, to identify the
columns that the data came from. I think you are using data_in()
correctly. It is not well-documented, and I should improve its
interface.
But the error message on GET is fairly clear:
error: corrupt system file: x: String variable A has
numeric format specifier F.
This implies that the dictionary itself was incorrect and that it
gave a string variable a numeric format specifier. If `v' is the
"struct variable" then this would be v->type == ALPHA,
v->print.type == FMT_F. Does this seem possible to you?
I can't see how, but it's possible. I'm using make_output_format to generate
the formats. My guess is that the problem is being caused by blank entries in
the data sheet which are giving undefined results.
Anyway, I had a question about data_in/data_out which affects a design decision:
Is it invariant that a string generated with data_out is indempotent through
data_in ; data_out? Ie, will the following function always return zero?
foo(const union value *v, const struct fmt_spec *fmt)
{
union value t;
char s1[BUF_SIZE];
char s2[BUF_SIZE];
data_out(s1, fmt, v);
struct data_in di;
di.v = &t;
di.s = s1 ;
di.e = s1 + strlen(s1);
di.format = fmt;
di.flags = 0;
assert(0 == memcmp(v, &t, sizeof(union value));
data_in(&di);
data_out(s2, fmt, &t);
return strcmp(s1,s2);
}
Thanks,
J'
--
"Platonically Evil Monkey has been symbolically representing the darkest
fears of humanity since the dawn of literature and religion, and I think
I speak for everyone when I give it a sidelong glance of uneasy
recognition
this evening." --Scrymarch
_______________________________________________
pspp-dev mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/pspp-dev
--
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285 A290 8A67 719C 2DE8 27B3
See http://pgp.mit.edu or any PGP keyserver for public key.
signature.asc
Description: Digital signature