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