amiga-ixemul/general/isctype.c

163 lines
3.4 KiB
C

/*
* Copyright (c) 1989 The Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that: (1) source distributions retain this entire copyright
* notice and comment, and (2) distributions including binaries display
* the following acknowledgement: ``This product includes software
* developed by the University of California, Berkeley and its contributors''
* in the documentation or other materials provided with the distribution
* and in all advertising materials mentioning features or use of this
* software. Neither the name of the University nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#if defined(LIBC_SCCS) && !defined(lint)
static char sccsid[] = "@(#)isctype.c 5.2 (Berkeley) 6/1/90";
#endif /* LIBC_SCCS and not lint */
#define _KERNEL
#include "ixemul.h"
#define _ANSI_LIBRARY
#include <ctype.h>
#undef isalnum
int isalnum(int c)
{
/* Don't allow OOB values or EOF! */
if (c & ~0xFF) return 0;
return ((_ctype_ + 1)[c] & (_U|_L|_N));
}
#undef isalpha
int isalpha(int c)
{
/* Don't allow OOB values or EOF! */
if (c & ~0xFF) return 0;
return ((_ctype_ + 1)[c] & (_U|_L));
}
#undef isblank
int
isblank(c)
int c;
{
return(c == ' ' || c == '\t');
}
#undef iscntrl
int iscntrl(int c)
{
/* Don't allow OOB values or EOF! */
if (c & ~0xFF) return 0;
return ((_ctype_ + 1)[c] & _C);
}
#undef isdigit
int isdigit(int c)
{
/* Don't allow OOB values or EOF! */
if (c & ~0xFF) return 0;
return ((_ctype_ + 1)[c] & _N);
}
#undef isgraph
int isgraph(int c)
{
/* Don't allow OOB values or EOF! */
if (c & ~0xFF) return 0;
return ((_ctype_ + 1)[c] & (_P|_U|_L|_N));
}
#undef islower
int islower(int c)
{
/* Don't allow OOB values or EOF! */
if (c & ~0xFF) return 0;
return ((_ctype_ + 1)[c] & _L);
}
#undef isprint
int isprint(int c)
{
/* Don't allow OOB values or EOF! */
if (c & ~0xFF) return 0;
return ((_ctype_ + 1)[c] & (_P|_U|_L|_N|_B));
}
#undef ispunct
int ispunct(int c)
{
/* Don't allow OOB values or EOF! */
if (c & ~0xFF) return 0;
return ((_ctype_ + 1)[c] & _P);
}
#undef isspace
int isspace(int c)
{
/* Don't allow OOB values or EOF! */
if (c & ~0xFF) return 0;
return ((_ctype_ + 1)[c] & _S);
}
#undef isupper
int isupper(int c)
{
/* Don't allow OOB values or EOF! */
if (c & ~0xFF) return 0;
return ((_ctype_ + 1)[c] & _U);
}
#undef isxdigit
int isxdigit(int c)
{
/* Don't allow OOB values or EOF! */
if (c & ~0xFF) return 0;
return ((_ctype_ + 1)[c] & (_N|_X));
}
#undef tolower
int tolower(int c)
{
/* OOB values or EOF is undefined, don't bother checking! */
return (((_ctype_ + 1)[(unsigned char)c] & _U) ? (c) - 'A' + 'a' : (c));
}
#undef toupper
int toupper(int c)
{
/* OOB values or EOF is undefined, don't bother checking! */
return (((_ctype_ + 1)[(unsigned char)c] & _L) ? (c) - 'a' + 'A' : (c));
}
#undef isascii
int isascii(int c)
{
return (c & ~0177) == 0;
}
#undef isiso
int isiso(int c)
{
return (c & ~0377) == 0;
}
#undef toascii
int toascii(int c)
{
return ((c) & 0177);
}
#undef toiso
int toiso(int c)
{
return ((c) & 0377);
}