This is predicate.c in view mode; [Download] [Up]
Changes file for /usr/local/src/kcl/c/predicate.c
Created on Fri Jul 26 09:09:38 1991
Usage \n@s[Original text\n@s|Replacement Text\n@s]
See the file rascal.ics.utexas.edu:/usr2/ftp/merge.c
for a program to merge change files. Anything not between
"\n@s[" and "\n@s]" is a simply a comment.
This file was constructed using emacs and merge.el
Enhancements Copyright (c) W. Schelter All rights reserved.
by (Bill Schelter) wfs@carl.ma.utexas.edu
****Change:(orig (239 239 c))
@s[ if (t == t_cfun || t == t_cclosure)
@s| if (t == t_cfun || t == t_cclosure || t == t_sfun || t == t_gfun
|| t == t_vfun)
@s]
****Change:(orig (249 249 a))
@s[ if (x == Slambda || x == Slambda_block ||
@s| if (x == Slambda || x == Slambda_block ||
x == siSlambda_block_expanded ||
@s]
****Change:(orig (263 263 c))
@s[ type_of(vs_base[0]) == t_cclosure)
@s| type_of(vs_base[0]) == t_cclosure ||
type_of(vs_base[0]) == t_sfun ||
type_of(vs_base[0]) == t_gfun ||
type_of(vs_base[0]) == t_vfun
)
@s]
****Change:(orig (363 363 a))
@s[ if (eql(vs_base[0], vs_base[1]))
vs_base[0] = Ct;
else
vs_base[0] = Cnil;
vs_pop;
}
bool
@s| if (eql(vs_base[0], vs_base[1]))
vs_base[0] = Ct;
else
vs_base[0] = Cnil;
vs_pop;
}
bool
@s]
****Change:(orig (365 365 c))
@s[equal(x, y)
object x, y;
@s|equal(x, y)
register object x;
#ifdef UNIX /* in non unix case cs_check want's an address */
register
#endif
object y;
@s]
****Change:(orig (367 367 c))
@s[{
enum type t;
@s|{
register enum type t;
@s]
****Change:(orig (369 369 c))
@s[
cs_check(x);
@s|
cs_check(y);
@s]
****Change:(orig (374 374 c))
@s[ return(FALSE);
if (eql(x, y))
@s| return(FALSE);
if (x==y)
@s]
****Change:(orig (385 385 c))
@s[ goto BEGIN;
case t_string:
@s| goto BEGIN;
case t_structure:
case t_symbol:
case t_vector:
case t_array:
return FALSE;
case t_fixnum :
return(fix(x)==fix(y));
case t_shortfloat:
return(x->SF.SFVAL==y->SF.SFVAL);
case t_longfloat:
return(x->LF.LFVAL==y->LF.LFVAL);
case t_string:
@s]
****Change:(orig (403 414 d))
@s[ case t_structure:
{
int i;
@s, return(FALSE);
return(TRUE);
}
@s|
@s]
****Change:(orig (424 431 d))
@s[#ifdef AOSVS
#endif
@s|
@s]
****Change:(orig (437 437 c))
@s[ return(FALSE);
}
return(FALSE);
@s| return(FALSE);
}
return(eql(x,y));
@s]
****Change:(orig (488 489 c))
@s[ if (ty == t_array && x->a.a_rank != y->a.a_rank)
goto ARRAY;
@s| if (ty == t_array && x->a.a_rank == y->a.a_rank)
{ if (x->a.a_rank > 1)
{int i=0;
for (i=0; i< x->a.a_rank; i++)
{if (x->a.a_dims[i]!=y->a.a_dims[i])
return(FALSE);}}
goto ARRAY;}
@s]
****Change:(orig (507 507 c))
@s[ goto BEGIN;
case t_structure:
{
@s| goto BEGIN;
case t_structure:
{
@s]
****Change:(orig (509 510 c))
@s[
if (x->str.str_name != y->str.str_name)
@s| if (x->str.str_def != y->str.str_def)
@s]
****Change:(orig (512 514 c))
@s[ for (i = 0; i < x->str.str_length; i++)
if (!equalp(x->str.str_self[i], y->str.str_self[i]))
return(FALSE);
@s| {int leng= S_DATA(x->str.str_def)->length;
unsigned char *s_type= & SLOT_TYPE(x->str.str_def,0);
unsigned short *s_pos= & SLOT_POS(x->str.str_def,0);
for (i = 0; i < leng; i++,s_pos++)
{if (s_type[i]==0)
{if (!equalp(STREF(object,x,*s_pos),STREF(object,y,*s_pos)))
return FALSE;}
else
if (! (*s_pos & (sizeof(object)-1)))
switch(s_type[i]){
case aet_lf:
if(STREF(longfloat,x,*s_pos) != STREF(longfloat,y,*s_pos))
return(FALSE);
break;
case aet_sf:
if(STREF(shortfloat,x,*s_pos)!=STREF(shortfloat,y,*s_pos))
return(FALSE);
break;
default:
if(STREF(int,x,*s_pos)!=STREF(int,y,*s_pos))
return(FALSE);
break;}}
@s]
****Change:(orig (516 516 c))
@s[ return(TRUE);
}
@s| return(TRUE);
}}
@s]
****Change:(orig (529 529 a))
@s[ if (x->a.a_dim != y->a.a_dim)
return(FALSE);
@s| if (x->a.a_dim != y->a.a_dim)
return(FALSE);
j=x->a.a_dim;
if (tx!=t_array)
/*So these are both t_vector,t_string,or t_bitvector
and may have fill-pointers so limit J must be decreased*/
{if (x->v.v_hasfillp && (j > x->v.v_fillp))
j=x->v.v_fillp;
if (y->v.v_hasfillp && (j > y->v.v_fillp))
j=y->v.v_hasfillp;}
@s]
****Change:(orig (532 532 c))
@s[ for (i = 0, j = x->a.a_dim; i < j; i++) {
@s| for (i = 0; i < j; i++) {
@s]
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.