pspp-dev
[Top][All Lists]
Advanced

[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.


Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]