xref: /dflybsd-src/share/examples/sunrpc/sort/sort_proc.c (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
186d7f5d3SJohn Marino /* @(#)sort_proc.c	2.1 88/08/11 4.0 RPCSRC */
286d7f5d3SJohn Marino #include <rpc/rpc.h>
386d7f5d3SJohn Marino #include "sort.h"
486d7f5d3SJohn Marino 
586d7f5d3SJohn Marino static int
comparestrings(sp1,sp2)686d7f5d3SJohn Marino comparestrings(sp1, sp2)
786d7f5d3SJohn Marino     char **sp1, **sp2;
886d7f5d3SJohn Marino {
986d7f5d3SJohn Marino     return (strcmp(*sp1, *sp2));
1086d7f5d3SJohn Marino }
1186d7f5d3SJohn Marino 
1286d7f5d3SJohn Marino struct sortstrings *
sort_1(ssp)1386d7f5d3SJohn Marino sort_1(ssp)
1486d7f5d3SJohn Marino     struct sortstrings *ssp;
1586d7f5d3SJohn Marino {
1686d7f5d3SJohn Marino     static struct sortstrings ss_res;
1786d7f5d3SJohn Marino 
1886d7f5d3SJohn Marino     if (ss_res.ss.ss_val != NULL)
1986d7f5d3SJohn Marino         free(ss_res.ss.ss_val);
2086d7f5d3SJohn Marino 
2186d7f5d3SJohn Marino     qsort(ssp->ss.ss_val, ssp->ss.ss_len, sizeof (char *), comparestrings);
2286d7f5d3SJohn Marino     ss_res.ss.ss_len = ssp->ss.ss_len;
2386d7f5d3SJohn Marino     ss_res.ss.ss_val = (str *)malloc(ssp->ss.ss_len * sizeof(str *));
2486d7f5d3SJohn Marino     bcopy(ssp->ss.ss_val, ss_res.ss.ss_val,
2586d7f5d3SJohn Marino         ssp->ss.ss_len * sizeof(str *));
2686d7f5d3SJohn Marino     return(&ss_res);
2786d7f5d3SJohn Marino }
28