123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- #include "slatec-internal.hpp"
- logical lsame_(char *ca, char *cb, ftnlen ca_len, ftnlen cb_len)
- {
-
- logical ret_val;
-
- integer inta, intb, zcode;
- ret_val = *(unsigned char *)ca == *(unsigned char *)cb;
- if (ret_val) {
- return ret_val;
- }
- zcode = 'Z';
- inta = *(unsigned char *)ca;
- intb = *(unsigned char *)cb;
- if (zcode == 90 || zcode == 122) {
- if (inta >= 97 && inta <= 122) {
- inta += -32;
- }
- if (intb >= 97 && intb <= 122) {
- intb += -32;
- }
- } else if (zcode == 233 || zcode == 169) {
- if (inta >= 129 && inta <= 137 || inta >= 145 && inta <= 153 || inta
- >= 162 && inta <= 169) {
- inta += 64;
- }
- if (intb >= 129 && intb <= 137 || intb >= 145 && intb <= 153 || intb
- >= 162 && intb <= 169) {
- intb += 64;
- }
- } else if (zcode == 218 || zcode == 250) {
- if (inta >= 225 && inta <= 250) {
- inta += -32;
- }
- if (intb >= 225 && intb <= 250) {
- intb += -32;
- }
- }
- ret_val = inta == intb;
- return ret_val;
- }
|