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.