home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume26 / tulp-3.0.3 / part01 / str.c < prev    next >
C/C++ Source or Header  |  1993-04-15  |  3KB  |  106 lines

  1. /*-------------------------------------------------------------------------
  2.  *  Listserv - Unix Mailing List manager (sub-set of FRECP's
  3.  *             Bitnet Listserv tool.
  4.  *
  5.  *  Copyright (C) 1991,1992  Kimmo Suominen, Christophe Wolfhugel
  6.  *
  7.  *  Please read the files COPYRIGHT and AUTHORS for the extended
  8.  *  copyrights refering to this file.
  9.  *
  10.  *  This program is free software; you can redistribute it and/or modify
  11.  *  it under the terms of the GNU General Public License as published by
  12.  *  the Free Software Foundation; either version 1, or (at your option)
  13.  *  any later version.
  14.  *
  15.  *  This program is distributed in the hope that it will be useful,
  16.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  *  GNU General Public License for more details.
  19.  *
  20.  *  You should have received a copy of the GNU General Public License
  21.  *  along with this program; if not, write to the Free Software
  22.  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  23.  *----------------------------------------------------------------------*/
  24.  
  25. static char rcsid[] = "@(#)$Id: str.c,v 1.6 92/09/11 09:51:33 wolf Exp $";
  26.  
  27. /*
  28.  * $Revision: 1.6 $
  29.  */
  30.  
  31. #include <stdio.h>
  32. #include <string.h>
  33. #include <ctype.h>
  34. #include "conf.h"
  35.  
  36. int strspacecmp(str1, str2)
  37. char *str1, *str2;
  38. {
  39.    int c1, c2;
  40.  
  41.    while (1) {
  42.       c1 = *str1++; 
  43.       c2 = *str2++;
  44.       if (isupper(c1)) c1 += 32;
  45.       if (isupper(c2)) c2 += 32;
  46.       if (c1==' ' || c1=='\t') c1=0;
  47.       if (c2==' ' || c2=='\t') c2=0;
  48.       if (c1 == c2) {
  49.          if (c1==0)
  50.             return(0);
  51.          continue;
  52.       } /* endif */
  53.       if (c1 < c2)
  54.          return -1;
  55.       return 1;
  56.    } /* endwhile */
  57. }
  58.  
  59. #ifdef NEED_STRCASE
  60.  
  61. int strcasecmp(str1, str2)
  62. char *str1, *str2;
  63. {
  64.    int c1, c2;
  65.  
  66.    while (1) {
  67.       c1 = *str1++;
  68.       c2 = *str2++;
  69.       if (isupper(c1)) c1 += 32;
  70.       if (isupper(c2)) c2 += 32;
  71.       if (c1 == c2) {
  72.          if (!c1)
  73.             return(0);
  74.          continue;
  75.       } /* endif */
  76.       if (c1 < c2)
  77.          return -1;
  78.       return 1;
  79.    } /* endwhile */
  80. }
  81.  
  82. int strncasecmp(str1, str2, n)
  83. char *str1, *str2;
  84. int n;
  85. {
  86.    int c1, c2;
  87.  
  88.    while (n--) {
  89.       c1 = *str1++;
  90.       c2 = *str2++;
  91.       if (isupper(c1)) c1 += 32;
  92.       if (isupper(c2)) c2 += 32;
  93.       if (c1 == c2) {
  94.          if (!c1)
  95.             return(0);
  96.          continue;
  97.       } /* endif */
  98.       if (c1 < c2)
  99.          return -1;
  100.       return 1;
  101.    } /* endwhile */
  102.    return(0);
  103. }
  104.  
  105. #endif /* NEED_STRCASE */
  106.