home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / UTILS / S / SMC21LIB.LZH / LEXCMP.C < prev    next >
Text File  |  2000-06-30  |  1KB  |  52 lines

  1.  
  2. #define NOCCARGC
  3. /*
  4. ** lexcmp(s, t) - Return a number <0, 0, or >0
  5. **                as s is <, =, or > t.
  6. */
  7. lexcmp(s, t) char *s, *t; {
  8.   while(*s == *t) {
  9.     if(*s == 0) return (0);
  10.     ++s; ++t; 
  11.     }
  12.   return (lexorder(*s, *t));
  13.   }
  14.  
  15. /*
  16. ** lexorder(c1, c2) - Return a number <0, 0, or >0
  17. **                as c1 is <, =, or > c2, based on
  18. **                based on lexicographical (dictionary)
  19. **                collating sequence.
  20. */
  21. char _lex[128] = {
  22.     /**** NUL to / ****/
  23.     000,001,002,003,004,005,006,007,008,009,
  24.     010,011,012,013,014,015,016,017,018,019,
  25.     020,021,022,023,024,025,026,027,028,029,
  26.     030,031,032,033,034,035,036,037,038,039,
  27.     040,041,042,043,044,045,046,047,
  28.     /**** 0 to 9 ****/
  29.     065,066,067,068,069,070,071,072,073,074,
  30.     /**** : ; < = > ? @ ****/
  31.     048,049,050,051,052,053,054,
  32.     /**** A to Z ****/
  33.     075,076,077,078,079,080,081,082,083,084,085,086,087,
  34.     088,089,090,091,092,093,094,095,096,097,098,099,100,
  35.     /**** [ \ ^ _ ` ****/
  36.     055,056,057,058,059,060,
  37.     /**** a to z ****/
  38.     075,076,077,078,079,080,081,082,083,084,085,086,087,
  39.     088,089,090,091,092,093,094,095,096,097,098,099,100,
  40.     /**** { | } ~ ****/
  41.     061,062,063,064,
  42.     /**** DEL ****/
  43.     101
  44.     };
  45.  
  46. lexorder(c1, c2) char c1, c2; {
  47.   return(_lex[c1] - _lex[c2]);
  48.   }
  49.  
  50.  
  51. =, or > c2, based on
  52. **                ba