[BACK]Return to str.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / engine

Diff for /OpenXM_contrib2/asir2000/engine/str.c between version 1.4 and 1.6

version 1.4, 2000/11/08 08:02:49 version 1.6, 2018/03/29 01:32:52
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/engine/str.c,v 1.3 2000/08/22 05:04:06 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/engine/str.c,v 1.5 2004/02/26 07:06:32 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
   
Line 54  VL vl;
Line 54  VL vl;
 STRING a,b;  STRING a,b;
 STRING *c;  STRING *c;
 {  {
         char *buf;    char *buf;
   
         buf = (char *)MALLOC(strlen(BDY(a))+strlen(BDY(b))+1);    buf = (char *)MALLOC_ATOMIC(strlen(BDY(a))+strlen(BDY(b))+1);
         sprintf(buf,"%s%s",BDY(a),BDY(b));    sprintf(buf,"%s%s",BDY(a),BDY(b));
         MKSTR(*c,buf);    MKSTR(*c,buf);
 }  }
   
 int compstr(vl,a,b)  int compstr(vl,a,b)
 VL vl;  VL vl;
 STRING a,b;  STRING a,b;
 {  {
         return a ? (b?strcmp(BDY(a),BDY(b)):1) : (b?-1:0);    return a ? (b?strcmp(BDY(a),BDY(b)):1) : (b?-1:0);
 }  }
   
 /* primitive functions for BYTEARRAY */  /* primitive functions for BYTEARRAY */
Line 74  int compbytearray(vl,a,b)
Line 74  int compbytearray(vl,a,b)
 VL vl;  VL vl;
 BYTEARRAY a,b;  BYTEARRAY a,b;
 {  {
         int i;    int i;
   
         if ( !a )    if ( !a )
                 if ( b )      if ( b )
                         return -1;        return -1;
                 else      else
                         return 0;        return 0;
         else if ( !b )    else if ( !b )
                 return 1;      return 1;
         else if ( a->len > b->len )    else if ( a->len > b->len )
                 return 1;      return 1;
         else if ( a->len < b->len )    else if ( a->len < b->len )
                 return -1;      return -1;
         else {    else {
                 for ( i = 0; i < a->len; i++ )      for ( i = 0; i < a->len; i++ )
                         if ( a->body[i] > b->body[i] )        if ( a->body[i] > b->body[i] )
                                 return 1;          return 1;
                         else if ( a->body[i] < b->body[i] )        else if ( a->body[i] < b->body[i] )
                                 return -1;          return -1;
                 return 0;      return 0;
         }    }
 }  }

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.6

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>