EZ_SSheetSortRegion(3)

NAME
EZ_SSheetSortRegion - sort the specified spread sheet region

SYNOPSIS
#include <EZ.h>

void EZ_SSheetSortRegion( EZ_Widget *ssheet, int r1, int c1, int r2, int c2
            int col, int (*cmp)(CONSTvoid*,CONSTvoid*))

void EZ_SSheetSortRegionR( EZ_Widget *ssheet, int r1, int c1, int r2, int c2
            int row, int (*cmp)(CONSTvoid*,CONSTvoid*))

void EZ_SSheetSortColumns( EZ_Widget *ssheet, int r1, int c1, int r2, int c2
             int (*cmp)(CONSTvoid*,CONSTvoid*))

void EZ_SSheetSortRows( EZ_Widget *ssheet, int r1, int c1, int r2, int c2
             int (*cmp)(CONSTvoid*,CONSTvoid*))

ARGUMENTS
ssheet Specifies a spread sheet widget.

r1,c1,r2,c2 Specify the upper left and lower right corner of a rectangular region.

col Specifies a key column.

row Specifies a key row.

cmp Specify a comparision function.

DESCRIPTION

EZ_SSheetSortRegion uses qsort to sort the specified region using the cells in the key column. cmp is used to compare two strings. See the manual page of qsort for details. If cmp is NULL, this function will use an internal comparision function to sort the contents of the region in lexical order. The internal comparision is listed below.

EZ_SSheetSortRegionR sort the specified region using the cells in the key row.

EZ_SSheetSortColumns sort each column individually in the specified region.

EZ_SSheetSortColumns sort each row individually in the specified region.

The internal comparision function.
int EZ_CompareStr(CONST void *vaptr, CONST void *vbptr)
{
  char **aptr = (char **)vaptr;
  char **bptr = (char **)vbptr;
  char *a = *aptr, *b = *bptr;
  if(a == NULL) return(1);
  else if( b == NULL) return(-1);
  while(*a && *b && *a == *b) {a++; b++;}
  if(*a == 0) return(-1);
  else if(*b == 0) return(1);
  return( (*a > *b)? 1: -1);
}

SEE ALSO
EZ_SSheetFindCell(3), EZ_SSheetSetTabChar(3)