diff --git a/hardsup/StrMatch.c b/hardsup/StrMatch.c new file mode 100755 index 00000000..6134a05c --- /dev/null +++ b/hardsup/StrMatch.c @@ -0,0 +1,96 @@ +#define ident "1A01" +#ifdef VAXC +#module StrMatch ident +#endif +#ifdef __DECC +#pragma module StrMatch ident +#endif +/* +** +--------------------------------------------------------------+ +** | Paul Scherrer Institute | +** | Department ASQ | +** | | +** | This software may be used freely by non-profit organizations.| +** | It may be copied provided that the name of P.S.I. and of the | +** | author is included. Neither P.S.I. nor the author assume any | +** | responsibility for the use of this software outside of P.S.I.| +** +--------------------------------------------------------------+ +** +** Module Name . . . . . . . . : [...LIB.SINQ]StrMatch.C +** +** Author . . . . . . . . . . : D. Maden +** Date of creation . . . . . . : Nov 1999 +** +** To compile this module, use: + + $ import tasmad + $ define/group sinq_c_tlb mad_lib:sinq_c.tlb + $ cc /debug /noopt /obj=[]StrMatch - + tasmad_disk:[mad.lib.sinq]StrMatch + + sinq_c_tlb/lib + +** To include this module in SINQ.OLB, use: + + $ import tasmad + $ define/group sinq_c_tlb mad_lib:sinq_c.tlb + $ + $ define/group sinq_olb mad_lib:sinq_dbg.olb + $ @tasmad_disk:[mad.lib.sinq]sinq_olb StrMatch debug + $ + $ define/group sinq_olb mad_lib:sinq.olb + $ @tasmad_disk:[mad.lib.sinq]sinq_olb StrMatch +** +** Updates: +** 1A01 12-Nov-1999 DM. Initial version. +**============================================================================ +** The following entry points are included in this module: +** +**------------------------------------------------------------------------- +** #include +** +** char *StrMatch (&str_a, &str_b, min_len) +** ------- +** Input Args: +** char *str_a - Pointer to first string to be compared. +** char *str_b - Pointer to second string to be compared. +** int min_len - The minimum allowed match length. +** Output Args: +** none +** Modified Args: +** none +** Return value: +** True (non-zero) if the 2 strings match. +** Global variables modified: +** none +** Routines called: +** None +** Description: +** The routine compares 2 strings, str_a and str_b, ignoring case. +** The length of str_a must be less than or equal to the length of str_b. +** The length of str_a must be at least min_len. +**------------------------------------------------------------------------- +** Global Definitions +*/ +#include + +#define NIL '\0' +/* +**==================================================================== +*/ +/* +**==================================================================== +** StrMatch - compare two strings. +*/ + int StrMatch ( +/* ======== +*/ char *str_a, + char *str_b, + int min_len) { + + int i = 0; + + while ((tolower(str_a[i]) == tolower(str_b[i])) && (str_a[i] != '\0')) i++; + + return ((str_a[i] == '\0') && (i >= min_len)); + } +/*-------------------------------------------------- End of StrMatch.C =======*/