.\"##
.\" $XConsortium: p014,v 5.2 94/04/17 20:54:21 rws Exp $
.\"##
.\"## 
$XMCOPY
.\"## Copyright (c) 1990, 1991 by Sun Microsystems, Inc. 
.\"## 
.\"##                         All Rights Reserved
.\"## 
.\"## Permission to use, copy, modify, and distribute this software and its 
.\"## documentation for any purpose and without fee is hereby granted, 
.\"## provided that the above copyright notice appear in all copies and that
.\"## both that copyright notice and this permission notice appear in 
.\"## supporting documentation, and that the name of Sun Microsystems,
.\"## not be used in advertising or publicity 
.\"## pertaining to distribution of the software without specific, written 
.\"## prior permission.  
.\"## 
.\"## SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 
.\"## INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
.\"## EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
.\"## CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
.\"## USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
.\"## OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\"## PERFORMANCE OF THIS SOFTWARE.
.TH "CHANGE STRUCTURE IDENTIFIER" 3P "29 February 1991"
.SH NAME
CHANGE STRUCTURE IDENTIFIER \-  change the identifier assigned to a structure
.IX "Structures" "CHANGE STRUCTURE IDENTIFIER"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void
pchange_struct_id ( orig_struct_id, result_struct_id )
Pint	orig_struct_id;	\fIoriginal structure id\fP
Pint	result_struct_id;	\fIresult structure id\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, *, *, *)
.SH DESCRIPTION
.SS Purpose
Use \s-2CHANGE STRUCTURE IDENTIFIER\s+2 to change the identifier of a specified structure.
.LP
Subroutines which create new structures, for example \s-2OPEN STRUCTURE\s+2 or \s-2EXECUTE STRUCTURE\s+2, include a parameter to assign an identifier for the newly created structure. The identifier is the number used to reference the structure in the Central Structure Store (CSS).
.SS C Input Parameters
.IP \fIorig_struct_id\fP
Specifies the structure for which the identifier is to be changed.
.IP \fIresult_struct_id\fP
Specifies the new identifier to assign to the structure.
.SS Execution
The \s-2CHANGE STRUCTURE IDENTIFIER\s+2 subroutine changes the identifier
associated with \fIorig_struct_id\fR to \fIresult_struct_id\fR.
The subroutine 
does not change any references that may exist in other structures to the original or the resulting structure. The result of \s-2CHANGE STRUCTURE IDENTIFIER\s+2 varies with the state of the original and resulting structures when the subroutine is called. The possible effects on the structures are described below.
.sp
\fIThe Original Structure\fR
.LP
If there are no references to the original structure
anywhere in the CSS,
\s-2CHANGE STRUCTURE IDENTIFIER\s+2 deletes the
original structure identifier from the CSS. If
there are references to the original structure, the original structure
continues to exist after the subroutine returns, but it will be
empty.
.LP
If original structure identifier is the open structure when
\s-2CHANGE STRUCTURE IDENTIFIER\s+2 is called, it continues to exist as
the open structure after the subroutine returns, but it will be empty.
The element pointer will be set to 0.
.LP
If the original structure is posted, it remains posted after \s-2CHANGE
STRUCTURE IDENTIFIER\s+2, but it remains as an empty structure. The display reflects the change in the posted structure according to the
workstation's display update state.
.sp
\fIThe Resulting Structure\fR
.LP
The resulting structure always exists at the end of \s-2CHANGE STRUCTURE IDENTIFIER\s+2. If the resulting structure identifier does not exist when the subroutine is called, it is created and contains the elements of the original structure. If the original structure identifier does not exist when the subroutine is called, the resulting structure is empty.
.LP
If the resulting structure identifier already exists before \s-2CHANGE STRUCTURE IDENTIFIER\s+2, the subroutine will replace its contents with the contents of 
the original structure identifier. Any existing references to the resulting 
structure identifier are not changed.
.LP
If the resulting structure identifier is the open structure when the subroutine is called, \s-2CHANGE STRUCTURE IDENTIFIER\s+2 closes the structure, replaces
the contents with the elements from original structure identifier, and reopens
the structure.  The element pointer will be set to point to the last element.
.LP
If the resulting structure identifier is posted when \s-2CHANGE STRUCTURE
IDENTIFIER\s+2 is called, it will remain posted after the subroutine is complete. The display is changed to reflect the new contents of the structure according to the display update state of the workstation to which the structure is posted.
.SH ERRORS
.IP 002
Ignoring function, function requires state (\s-2PHOP\s+2, *, *, *)
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "CHANGE STRUCTURE IDENTIFIER AND REFERENCES (3P)"
.SM "CHANGE STRUCTURE REFERENCES (3P)"
.fi
