1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
/* $Id: $ */
/* Copyright (C) 1997 Sverre Hvammen Johansen and Terje Mjoes,
* Department of Informatics, University of Oslo.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "cim.h"
/******************************************************************************
TEXT PROCEDURE COPY */
__txtvp
__rcopy (as, t)
__txtvp t;
long as;
{
long i,
j = 0;
if (t->obj == __NULL)
{
__et.obj = __NULL;
__et.pos = __et.start = __et.length = 0;
}
else
{
__t1 = *t;
__as = as;
__et.obj = (__textref) __ralloc (((long) sizeof (__th) + __t1.length + 1));
/* En ekstra byte |nsker */
__et.obj->h.size = __et.length = __t1.length; /* plass
* til
* '\0' */
__et.obj->h.konstant = __FALSE;
__et.obj->h.pp = (__pty) __TEXT;
__as = 0;
__et.pos = __et.start = 1;
for (i = __t1.start; i < (long) __t1.start + __t1.length; i++)
__et.obj->string[j++] = __t1.obj->string[i - 1];
__et.obj->string[j++] = '\0'; /* Avslutter med \0 */
__t1.obj = __NULL;
}
return (&__et);
}
|