S_square.c
Click here to get the file
Size
1 kB
-
File type
text/plain
File contents
/*ident "@(#)String:S_square.c 3.1" */
/******************************************************************************
*
* C++ Standard Components, Release 3.0.
*
* Copyright (c) 1991, 1992 AT&T and Unix System Laboratories, Inc.
* Copyright (c) 1988, 1989, 1990 AT&T. All Rights Reserved.
*
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T and Unix System
* Laboratories, Inc. The copyright notice above does not evidence
* any actual or intended publication of such source code.
*
******************************************************************************/
#define IN_STRING_LIB
#include "String.h"
/* SUBCHAR STUFF */
char&
String::operator[](unsigned i)
{
if(d->refc!=1) {
register Srep_ATTLC* r = Srep_ATTLC::new_srep(length());
if (length() > 0)
memcpy(r->str,d->str,length());
if (d->refc > 0)
--(d->refc);
d = r;
}
return d->str[i];
}