Bram replied: > > The help for sort() says the following with respect to the function > > reference argument: > > > > ...The function is invoked with two > > items as argument and must return zero if they are equal, 1 if > > the first one sorts after the second one, -1 if the first one > > sorts before the second one. Example: > > func MyCompare(i1, i2) > > return a:i1 == a:i2 ? 0 : a:i1 > a:i2 ? 1 : -1 > > endfunc > > > > Does it really have to return -1, 0, or 1? Or is it OK to just return > > negative, 0 or positive? That way it becomes easier: > > > > func MyCompare(i1, i2) > > return a:il - a:i2 > > endfunc > > > > I think the docs should be updated if this is how it behaves. And if > > not, the docs and the code should be updated so it does :-) > > Vim uses qsort(). My man page says that the value of the compare > function can be any value less than, equal to or bigger than zero. > Is it like that on all systems?
I believe it's the same on all systems. qsort() just compares the sign. Maybe it should say: The function is invoked with two items as argument and must return an integer: zero if they are equal, positive if the first one should sort after the second, or negative if the first one should sort before the second. Rob. -- Robert Webb <[EMAIL PROTECTED]>, MineSweeper3D - Take Minesweeper to a whole new dimension! http://www.software3d.com/Mines3D --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---