--- chars.c.~1.35.~ 2004-04-15 10:58:00.000000000 +1000 +++ chars.c 2004-04-18 10:18:19.000000000 +1000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1996,1998, 2000, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1998, 2000, 2001, 2004 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -19,6 +19,7 @@ #include +#include #include "libguile/_scm.h" #include "libguile/validate.h" @@ -260,7 +261,7 @@ #define FUNC_NAME s_scm_char_upcase { SCM_VALIDATE_CHAR (1, chr); - return SCM_MAKE_CHAR(scm_c_upcase (SCM_CHAR(chr))); + return SCM_MAKE_CHAR (toupper (SCM_CHAR (chr))); } #undef FUNC_NAME @@ -271,7 +272,7 @@ #define FUNC_NAME s_scm_char_downcase { SCM_VALIDATE_CHAR (1, chr); - return SCM_MAKE_CHAR(scm_c_downcase (SCM_CHAR(chr))); + return SCM_MAKE_CHAR (tolower (SCM_CHAR(chr))); } #undef FUNC_NAME @@ -279,25 +280,6 @@ -static unsigned char scm_c_upcase_table[SCM_CHAR_CODE_LIMIT]; -static unsigned char scm_c_downcase_table[SCM_CHAR_CODE_LIMIT]; -static const unsigned char scm_lowers[] = "abcdefghijklmnopqrstuvwxyz"; -static const unsigned char scm_uppers[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - - -void -scm_tables_prehistory () -{ - int i; - for (i = 0; i < SCM_CHAR_CODE_LIMIT; i++) - scm_c_upcase_table[i] = scm_c_downcase_table[i] = i; - for (i = 0; i < (int) (sizeof scm_lowers / sizeof (scm_lowers[0])); i++) - { - scm_c_upcase_table[scm_lowers[i]] = scm_uppers[i]; - scm_c_downcase_table[scm_uppers[i]] = scm_lowers[i]; - } -} - /* TODO: change name to scm_i_.. ? --hwn */ @@ -306,8 +288,8 @@ int scm_c_upcase (unsigned int c) { - if (c < sizeof (scm_c_upcase_table)) - return scm_c_upcase_table[c]; + if (c <= UCHAR_MAX) + return toupper (c); else return c; } @@ -316,8 +298,8 @@ int scm_c_downcase (unsigned int c) { - if (c < sizeof (scm_c_downcase_table)) - return scm_c_downcase_table[c]; + if (c <= UCHAR_MAX) + return tolower (c); else return c; }