/* Interface for NSBitmapCharSet for GNUStep Copyright (C) 1995 Free Software Foundation, Inc. Written by: Adam Fedor Date: 1995 This file is part of the GNUstep Base Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #ifndef __NSBitmapCharSet_h_GNUSTEP_BASE_INCLUDE #define __NSBitmapCharSet_h_GNUSTEP_BASE_INCLUDE #include #include //PENDING: may want to make these less likely to conflict #define UNICODE_SIZE 65536 #define BITMAP_SIZE UNICODE_SIZE/8 #ifndef SETBIT #define SETBIT(a,i) ((a) |= 1<<(i)) #define CLRBIT(a,i) ((a) &= ~(1<<(i))) #define ISSET(a,i) ((((a) & (1<<(i)))) > 0) ? YES : NO; #endif /** * An [NSCharacterSet] that stores the set of unicode characters in it as a * simple bitmap. Implementation is very efficient. */ @interface NSBitmapCharSet : NSCharacterSet { char _data[BITMAP_SIZE]; } /** * Init directly with bitmap data. bitmap should be BITMAP_SIZE * long, which is currently 2^16 / 8. */ - (id) initWithBitmap: (NSData*)bitmap; @end /** * Mutable version of [NSBitmapCharSet]. */ @interface NSMutableBitmapCharSet : NSMutableCharacterSet { char _data[BITMAP_SIZE]; } /** * Init directly with bitmap data. bitmap should be BITMAP_SIZE * long, which is currently 2^16 / 8. */ - (id) initWithBitmap: (NSData*)bitmap; @end #endif /* __NSBitmapCharSet_h_GNUSTEP_BASE_INCLUDE */