home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / fontutils-0.6-base.tgz / fontutils-0.6-base.tar / fsf / fontutils / lib / str-lcase.c < prev    next >
C/C++ Source or Header  |  1992-06-14  |  1KB  |  50 lines

  1. /* str-casefold.c: make a string either all uppercase or all lowercase.
  2.  
  3. Copyright (C) 1992 Free Software Foundation, Inc.
  4. This file was part of the GNU C Library.
  5.  
  6. The GNU C Library is free software; you can redistribute it and/or
  7. modify it under the terms of the GNU Library General Public License as
  8. published by the Free Software Foundation; either version 2 of the
  9. License, or (at your option) any later version.
  10.  
  11. The GNU C Library is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14. Library General Public License for more details.
  15.  
  16. You should have received a copy of the GNU Library General Public
  17. License along with the GNU C Library; see the file COPYING.LIB.  If
  18. not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  19. Cambridge, MA 02139, USA.  */
  20.  
  21. #include "config.h"
  22. #include <ctype.h>
  23.  
  24. #include "str-lcase.h"
  25.  
  26.  
  27. /* Return a malloced copy of S with all its uppercase letters replaced
  28.    with their lowercase counterparts.  S must not be NULL.  */
  29.    
  30. string
  31. str_to_lower (string s)
  32. {
  33.   unsigned c;
  34.   string lc;
  35.   unsigned length;
  36.   
  37.   assert (s != NULL);
  38.  
  39.   length = strlen (s);
  40.   lc = xmalloc (length + 1);
  41.   
  42.   for (c = 0; c < length; c++)
  43.     lc[c] = isupper (s[c]) ? tolower (s[c]) : s[c];
  44.     
  45.   lc[length] = 0;
  46.   
  47.   return lc;
  48.   
  49. }
  50.