##
# $XConsortium: dis_deviations,v 5.2 94/04/17 20:41:03 rws Exp $
##
## 
## Copyright 1989, 1990, 1991 by Sun Microsystems, Inc. and the X Consortium.
## 
##			 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 names of Sun Microsystems
## and the X Consortium 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.

		SI Deviations From the DIS PHIGS C Binding
		------------------------------------------
All of these either correct bugs in the DIS or anticipate changes that
will be made from DIS to IS.

1) Pcolr_rep:  The name of the Phsv field is "hsv", not "hlv".

2) All Pdouble usage in the DIS binding is Pfloat in the SI binding.

3) Everywhere the DIS binding lists the parameter "Pstore *store" the SI
uses "Pstore store", i.e., the store object is passed directly, not a
pointer to it.

4) The Pstring_data and Pstring_data3 structures are different in the SI
from those specified in the C binding.  Pstring_data and Pstring_data3 are
defined as follows in the SI:

    typedef struct {
	    Pint	buffer_size;	/* input buffer size		*/
	    Pint	init_pos;	/* initial editing position	*/
	    union {
	       Pint	unused;
	    } pet_r1;
    } Pstring_data;

    typedef Pstring_data	Pstring_data3;

5) The following functions do not have the "in_buf_size" and "init_pos"
parameters listed in the DIS binding.  Those fields are in the Pstring_data
or Pstring_data3 data structure passed to these functions.
    INITIALIZE STRING
    INITIALIZE STRING 3
    INQUIRE STRING DEVICE STATE
    INQUIRE STRING DEVICE STATE 3
    INQUIRE DEFAULT STRING DEVICE STATE
    INQUIRE DEFAULT STRING DEVICE STATE 3

6) The Pstroke_data and Pstroke_data3 structures are different in the SI
from those specified in the C binding.  Pstroke_data and Pstroke_data3 are
defined as follows in the SI:

typedef struct {
	Pint	buffer_size;	/* input buffer size */
	Pint	init_pos;	/* initial editing position		*/
	Pfloat	x_interval;	/* x interval				*/
	Pfloat	y_interval;	/* y interval				*/
	Pfloat	time_interval;	/* time interval			*/
	union {
	   struct {
              Pint      unused;
           } pet_r1;
	   struct {
              Pint      unused;
           } pet_r2;
	   struct {
	      Pmarker_attrs	marker_attrs;	/* marker attributes	*/
	   } pet_r3;
	   struct {
	      Pline_attrs	line_attrs;	/* line attributes	*/
	   } pet_r4;
	} pets;
} Pstroke_data;

/* Pstroke_data3 -- stroke data record 3 */
typedef struct {
	Pint	buffer_size;	/* input buffer size */
	Pint	init_pos;	/* initial editing position	*/
	Pfloat	x_interval;	/* x interval			*/
	Pfloat	y_interval;	/* y interval			*/
	Pfloat	z_interval;	/* z interval			*/
	Pfloat	time_interval;	/* time interval		*/
	union {
	   struct {
              Pint      unused;
           } pet_r1;
	   struct {
              Pint      unused;
           } pet_r2;
	   struct {
	      Pmarker_attrs	marker_attrs;	/* marker attributes	*/
	   } pet_r3;
	   struct {
	      Pline_attrs	line_attrs;	/* line attributes	*/
	   } pet_r4;
	} pets;
} Pstroke_data3;

7) The following functions do not have the "in_buf_size" and "init_pos"
fields listed in the DIS binding.  Those fields are in the Pstroke_data or
Pstroke_data3 data structure passed to these functions.
    INITIALIZE STROKE
    INITIALIZE STROKE 3
    INQUIRE STROKE DEVICE STATE
    INQUIRE STROKE DEVICE STATE 3
    INQUIRE DEFAULT STROKE DEVICE STATE
    INQUIRE DEFAULT STROKE DEVICE STATE 3

8) The Pval_data and Pval_datas structures are different in the SI
from those specified in the C binding.  Pval_data and Pval_data3 are
defined as follows in the SI:

typedef struct {
	Pfloat  low;            /* low range limit */
	Pfloat  high;           /* high range limit */
	union {
	    struct {
		Pint	unused;
	    } pet_r1;
	    struct {
		Pchar	*label;
		Pchar	*format;
		Pchar	*low_label;
		Pchar	*high_label;
	    } pet_u1;
	} pets;
} Pval_data;

typedef Pval_data	Pval_data3;

9) The following functions do not have the "low_value" and "high_value"
parameters  listed in the DIS binding.  Those fields are in the Pval_data
or Pval_data3 data structure passed to these functions.
    INITIALIZE VALUATOR
    INITIALIZE VALUATOR 3
    INQUIRE VALUATOR DEVICE STATE
    INQUIRE VALUATOR DEVICE STATE 3
    INQUIRE DEFAULT VALUATOR DEVICE STATE
    INQUIRE DEFAULT VALUATOR DEVICE STATE 3

10) The SI binding uses char * instead of void *.

11) Pedge_attrs.colr_asf is Pedge_attrs.colr_ind_asf in the SI.
12) Pline_attrs.colr_asf is Pline_attrs.colr_ind_asf in the SI.
13) Pint_attrs.colr_asf is Pint_attrs.colr_ind_asf in the SI.
14) Pmarker_attrs.colr_asf is Pmarker_attrs.colr_ind_asf in the SI.

15) INQUIRE ANNOTATION FACILITIES replaces the last parameter with two
    Pfloat pointers:
	pinq_anno_facs(type, length, start, error_ind, styles, total_length,
	    num_anno_char_hts, min_char_ht, max_char_ht)
	Pwstype	type;		/* workstation type	*/
	Pint	length;		/* length of application list	*/
	Pint	start;		/* starting position	*/
	Pint	*error_ind;	/* OUT error indicator	*/
	Pint_list *styles;	/* OUT list annotation styles	*/
	Pint	*total_length;	/* OUT length of list in PHIGS	*/
	Pint	*num_anno_char_hts;	/* OUT number of character heights */
	Pfloat	*min_char_ht;
	Pfloat	*max_char_ht;

16) The second paramter to the function pset_pat_ref_point_vec is
    "Pvec3  pat_ref_vec[2]", not "Pvec3  *pat_ref_vec[2]".

17) The connection identifier argument to the function pinq_ws_conn_type is
    "char  **conn_id", not "char  *conn_id".
