File:  [Apple Darwin 0.x] / objc / NXStringPrivate.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 19:13:58 2018 UTC (8 years, 2 months ago) by root
Branches: MAIN, Apple
CVS tags: HEAD, Darwin03, Darwin01
Darwin 0.1 In-kernel Objective-C runtime

/*
 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
 *
 * @APPLE_LICENSE_HEADER_START@
 * 
 * "Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
 * Reserved.  This file contains Original Code and/or Modifications of
 * Original Code as defined in and that are subject to the Apple Public
 * Source License Version 1.0 (the 'License').  You may not use this file
 * except in compliance with the License.  Please obtain a copy of the
 * License at http://www.apple.com/publicsource and read it before using
 * this file.
 * 
 * The Original Code and all software distributed under the License are
 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
 * License for the specific language governing rights and limitations
 * under the License."
 * 
 * @APPLE_LICENSE_HEADER_END@
 */
/*
	NXStringPrivate.h
	Copyright 1991, NeXT, Inc.
	Responsibility:
*/

#ifndef _OBJC_NXSTRINGPRIVATE_H_
#define _OBJC_NXSTRINGPRIVATE_H_

#ifdef TESTING
#define NXString NxString
#define NXMutableString NxMutableString
#define NXReadWriteString NxReadWriteString
#define NXReadOnlyString NxReadOnlyString
#define NXReadOnlySubstring NxReadOnlySubstring
#define NXSimpleReadOnlyString NxSimpleReadOnlyString
#define NXUniquedString NxUniquedString
#define NXGapString NxGapString
#define NXBigString NxBigString
#define _NXStringZone _NxStringZone
#define _NXStringErrorRaise _NxStringErrorRaise
#define NXCompareCharacters NxCompareCharacters
#define NXFindCharacters NxFindCharacters
#define NXHashCharacters NxHashCharacters
#endif

#import "NXString.h"
#import <string.h>
#import <stdlib.h>
#import <limits.h>

#define CHARS_ARE_EIGHT_BIT 1
#define SEPARATE_UNIQUED_ZONE 0

/* Separate zone for ref counted strings... */
extern NXZone *_NXStringZone (void);
#define stringZone _NXStringZone ()

/* Where we allocate very temporary char buffers. */
#define scratchZone NXDefaultMallocZone ()

#if CHARS_ARE_EIGHT_BIT
#define DATATYPEFORCHAR "c"
#define MAXCHARACTERCODE 0x0ff
#define NUMCHARACTERS 256
#else
#define DATATYPEFORCHAR "s"
#define MAXCHARACTERCODE 0x0ffff
#define NUMCHARACTERS 65536
#endif

#define NX_STRING_MAXREFS USHRT_MAX

/* Length of a temporary buffer allocated on the stack.
   Used in several routines to avoid a malloc (). */
#define MAXTMPBUFFERLEN 100

/* Number of characters copied from the strings for comparison. */
#define COMPARELENGTH 32

#define MAXSTRINGLENFORHASHING NX_HASH_STRING_LENGTH

#define NX_CHARALLOC(zone, num) \
  ((num) ? NXZoneMalloc ((zone), sizeof (unichar) * (num)) : NULL)

#define NX_CHARCOPY(from, to, len) \
  bcopy ((from), (to), (len) * sizeof (unichar))

#define NX_BYTEALLOC(zone, num) \
  ((num) ? NXZoneMalloc ((zone), sizeof (char) * (num)) : NULL)

#define RNGLEN(r) NX_LENGTH(r)
#define RNGLOC(r) NX_LOCATION(r)

#ifndef MAX
#define MAX(a,b)	((a) > (b) ? (a) : (b))
#endif
#ifndef MIN
#define MIN(a,b)	((a) < (b) ? (a) : (b))
#endif

extern void _initStrings (void);

extern void _NXStringErrorRaise (int errorCode, const char *errorMsg);

#define BOUNDSERROR _NXStringErrorRaise (NXStringBoundsError, "Out of bounds")

#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.