Annotation of objc/NXStringPrivate.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * "Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
                      7:  * Reserved.  This file contains Original Code and/or Modifications of
                      8:  * Original Code as defined in and that are subject to the Apple Public
                      9:  * Source License Version 1.0 (the 'License').  You may not use this file
                     10:  * except in compliance with the License.  Please obtain a copy of the
                     11:  * License at http://www.apple.com/publicsource and read it before using
                     12:  * this file.
                     13:  * 
                     14:  * The Original Code and all software distributed under the License are
                     15:  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     19:  * License for the specific language governing rights and limitations
                     20:  * under the License."
                     21:  * 
                     22:  * @APPLE_LICENSE_HEADER_END@
                     23:  */
                     24: /*
                     25:        NXStringPrivate.h
                     26:        Copyright 1991, NeXT, Inc.
                     27:        Responsibility:
                     28: */
                     29: 
                     30: #ifndef _OBJC_NXSTRINGPRIVATE_H_
                     31: #define _OBJC_NXSTRINGPRIVATE_H_
                     32: 
                     33: #ifdef TESTING
                     34: #define NXString NxString
                     35: #define NXMutableString NxMutableString
                     36: #define NXReadWriteString NxReadWriteString
                     37: #define NXReadOnlyString NxReadOnlyString
                     38: #define NXReadOnlySubstring NxReadOnlySubstring
                     39: #define NXSimpleReadOnlyString NxSimpleReadOnlyString
                     40: #define NXUniquedString NxUniquedString
                     41: #define NXGapString NxGapString
                     42: #define NXBigString NxBigString
                     43: #define _NXStringZone _NxStringZone
                     44: #define _NXStringErrorRaise _NxStringErrorRaise
                     45: #define NXCompareCharacters NxCompareCharacters
                     46: #define NXFindCharacters NxFindCharacters
                     47: #define NXHashCharacters NxHashCharacters
                     48: #endif
                     49: 
                     50: #import "NXString.h"
                     51: #import <string.h>
                     52: #import <stdlib.h>
                     53: #import <limits.h>
                     54: 
                     55: #define CHARS_ARE_EIGHT_BIT 1
                     56: #define SEPARATE_UNIQUED_ZONE 0
                     57: 
                     58: /* Separate zone for ref counted strings... */
                     59: extern NXZone *_NXStringZone (void);
                     60: #define stringZone _NXStringZone ()
                     61: 
                     62: /* Where we allocate very temporary char buffers. */
                     63: #define scratchZone NXDefaultMallocZone ()
                     64: 
                     65: #if CHARS_ARE_EIGHT_BIT
                     66: #define DATATYPEFORCHAR "c"
                     67: #define MAXCHARACTERCODE 0x0ff
                     68: #define NUMCHARACTERS 256
                     69: #else
                     70: #define DATATYPEFORCHAR "s"
                     71: #define MAXCHARACTERCODE 0x0ffff
                     72: #define NUMCHARACTERS 65536
                     73: #endif
                     74: 
                     75: #define NX_STRING_MAXREFS USHRT_MAX
                     76: 
                     77: /* Length of a temporary buffer allocated on the stack.
                     78:    Used in several routines to avoid a malloc (). */
                     79: #define MAXTMPBUFFERLEN 100
                     80: 
                     81: /* Number of characters copied from the strings for comparison. */
                     82: #define COMPARELENGTH 32
                     83: 
                     84: #define MAXSTRINGLENFORHASHING NX_HASH_STRING_LENGTH
                     85: 
                     86: #define NX_CHARALLOC(zone, num) \
                     87:   ((num) ? NXZoneMalloc ((zone), sizeof (unichar) * (num)) : NULL)
                     88: 
                     89: #define NX_CHARCOPY(from, to, len) \
                     90:   bcopy ((from), (to), (len) * sizeof (unichar))
                     91: 
                     92: #define NX_BYTEALLOC(zone, num) \
                     93:   ((num) ? NXZoneMalloc ((zone), sizeof (char) * (num)) : NULL)
                     94: 
                     95: #define RNGLEN(r) NX_LENGTH(r)
                     96: #define RNGLOC(r) NX_LOCATION(r)
                     97: 
                     98: #ifndef MAX
                     99: #define MAX(a,b)       ((a) > (b) ? (a) : (b))
                    100: #endif
                    101: #ifndef MIN
                    102: #define MIN(a,b)       ((a) < (b) ? (a) : (b))
                    103: #endif
                    104: 
                    105: extern void _initStrings (void);
                    106: 
                    107: extern void _NXStringErrorRaise (int errorCode, const char *errorMsg);
                    108: 
                    109: #define BOUNDSERROR _NXStringErrorRaise (NXStringBoundsError, "Out of bounds")
                    110: 
                    111: #endif /* _OBJC_NXSTRINGPRIVATE_H_ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.