Re: [CSCMail-Users] re: Billienum bug
                
                Brought to you by:
                
                    countzer0
                    
                
            
            
        
        
        
    | 
      
      
      From: Count Z. <cou...@cy...> - 2002-05-23 13:48:24
      
     | 
| That is a typo in the Gtk Documentation.  It should read:
Returns : 0 if the nodes are equal, less than 0 if the first node should
come before the second, and greater than 0 if the second come before the
first
Not:
Returns : 0 if the nodes are equal, less than 0 if the first node should
come before the second, and greater than 1 if the second come before the
first
When in doubt, check the code.
-Steve
----- Original Message -----
From: "Muhri" <mu...@ya...>
To: <cou...@cy...>
Cc: <csc...@so...>
Sent: Thursday, May 23, 2002 4:22 AM
Subject: [CSCMail-Users] re: Billienum bug
> > Hi Steve,
>  >
>  > I fixed this for Pronto on Sept. 9th when it all >
> happened. Here is what
>  > you need to do:
>  >
>  > $message_clist->set_compare_func(\&my_sort_func);
>  >
>  > sub my_sort_func
>  > {
>  > my ($clist, $first, $second) = @_;
>  > if ($first =~ /^\d+$/) {
>
> > What if we are sorting the subject field and one
> >node is numeric, and the
> > other is text? This will attempt to sort that
> >numerically (incorrect)
>
>
> very rare but yeah - you are right. Should check both.
>
>  > if ($first > $second) { return -1; }
>  > if ($first == $second) { return 0; }
>  > return 2;
>
> > Why not use <=> ? thats what it's for....
>
> because <=> never returns a value greater than 1 -
> check
> http://developer.gnome.org/doc/API/gtk/gtkclist.html#GTKCLISTCOMPAREFUNC
>
>  > }
>  > my @stuff = ($first,$second);
>
> > A two element array?
>
> why not?
>
>  > my @sorted = sort {uc($a) cmp uc($b)} @stuff;
>
> > Sort our two elements the first time using >cmp...
>   (which compares them...)
>
>  > if ($sorted[0] eq $first) { return -1; }
>
>  > compare two elements (why? you just did that...)
>
>  > if ($first eq $second) { return 0; }
>
> > compare two elements (redundant)
>
>  > return 2;
>  > }
> > Oh, you just re-implimented cmp!?
>
>
> No, once again check the documentation, i'm following
> the api docs, you need to return a value greater than
> 1 sometimes.
>
>
> Yeah, your func below might be a bit nicer but it'll
> never return a value greater than 2 - btw you dont
> have to handle sort dir, gtk will pass teh values in
> the way they are supposed to be sorted - asc or desc.
>
> sorry for the very late reply, i changed mail
> providers at the very same time i sent this email and
> i just got my email from there !
>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>  Ouch!
>
>  Try:
>
>  sub my_sort_func {
>          my ($clist, $a, $b) = @_;
>
>  # Might as well handle sortdir here (not strictly
> needed)
>          if ($clist->{'sortdir'} eq "descending") {
>                  my $tmp = $a;
>                  $a = $b;
>                  $b = $tmp;
>          }
>
>  # Are both nodes numeric?
>          if ($a =~ /^\d+$/ and $b =~ /^\d+$/) {
>                  return ($a <=> $b);
>  # nope....
>          } else {
>                  return (uc($a) cmp uc($b));
>          }
>  }
>
>
>  CSCMail users: I will be releasing version 1.7.10 in
> the next few days that
>  addresses this bug as well encorporating quite a few
> other code cleanups...
>  In fact, the reason I am not releasing it right this
> second involves these
>  code cleanups... I was in the middle of re-coding the
> way Folders are
>  handled internally, as well as getting rid of the "no
> more than 99 normal
>  folders" restriction (this involves folders with id's
> equal to or greater
>  than 100 being treated as "virtual" search folders...
> I am adding a new
>  field to the database that handles the type of folder
> so there will no
>  longer be any arbitrary limits to the number of
> folders)
>
>  I guess I should release a 1.6.x version that fixes
> this bug as well?  Is
>  anyone still using 1.6.x?
>
>  -CZ
>
>
> __________________________________________________
> Do You Yahoo!?
> LAUNCH - Your Yahoo! Music Experience
> http://launch.yahoo.com
>
> _______________________________________________________________
>
> Don't miss the 2002 Sprint PCS Application Developer's Conference
> August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm
>
> _______________________________________________
> | Be sure to read the CSCMail FAQ:
> | http://www.cscmail.net/cscmail.faq
> |
> | CSCMail Home Page:
> | http://www.cscmail.net
> |
> | To unsubscribe or change your preferences:
> | https://lists.sourceforge.net/lists/listinfo/cscmail-users
>
>
 |