home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / proglc / index.lzh / CMPRTNS.C < prev    next >
Text File  |  1987-11-03  |  2KB  |  65 lines

  1. /************************************************************************/
  2. /*                                                                      */
  3. /*                        Comparison routines                           */
  4. /*                                                                      */
  5. /*  These routines all return -1 if *arg1 < *arg2                       */
  6. /*                             0 if *arg1 == *arg2                      */
  7. /*                             1 if *arg1 > *arg2                       */
  8. /************************************************************************/
  9.  
  10. int icmp_uchar(void *arg1, void *arg2)
  11. {
  12.   return ((*(unsigned char *)arg1 < *(unsigned char *)arg2) ? -1 :
  13.           (*(unsigned char *)arg1 > *(unsigned char *)arg2) ? 1 : 0);
  14. }
  15.  
  16. int icmp_schar(void *arg1, void *arg2)
  17. {
  18.   return ((*(signed char *)arg1 < *(signed char *)arg2) ? -1 :
  19.           (*(signed char *)arg1 > *(signed char *)arg2) ? 1 : 0);
  20. }
  21.  
  22. int icmp_uint(void *arg1, void *arg2)
  23. {
  24.   return ((*(unsigned int *)arg1 < *(unsigned int *)arg2) ? -1 :
  25.           (*(unsigned int *)arg1 > *(unsigned int *)arg2) ? 1 : 0);
  26. }
  27.  
  28. int icmp_sint(void *arg1, void *arg2)
  29. {
  30.   return ((*(signed int *)arg1 < *(signed int *)arg2) ? -1 :
  31.           (*(signed int *)arg1 > *(signed int *)arg2) ? 1 : 0);
  32. }
  33.  
  34. int icmp_ulong(void *arg1, void *arg2)
  35. {
  36.   return ((*(unsigned long *)arg1 < *(unsigned long *)arg2) ? -1 :
  37.           (*(unsigned long *)arg1 > *(unsigned long *)arg2) ? 1 : 0);
  38. }
  39.  
  40. int icmp_slong(void *arg1, void *arg2)
  41. {
  42.   return ((*(signed long *)arg1 < *(signed long *)arg2) ? -1 :
  43.           (*(signed long *)arg1 > *(signed long *)arg2) ? 1 : 0);
  44. }
  45.  
  46. int icmp_string(void *arg1, void *arg2)
  47. {
  48.   int r;
  49.  
  50.   return(((r = strcmp((char *)arg1, (char *)arg2)) == 0) ? 0 :
  51.          (r > 0) ? 1 : -1);
  52. }
  53.  
  54. int icmp_float(void *arg1, void *arg2)
  55. {
  56.   return ((*(float *)arg1 < *(float *)arg2) ? -1 :
  57.           (*(float *)arg1 > *(float *)arg2) ? 1 : 0);
  58. }
  59.  
  60. int icmp_double(void *arg1, void *arg2)
  61. {
  62.   return ((*(double *)arg1 < *(double *)arg2) ? -1 :
  63.           (*(double *)arg1 > *(double *)arg2) ? 1 : 0);
  64. }
  65.