aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2022-09-26 12:10:07 +0200
committerIgor Pashev <pashev.igor@gmail.com>2022-09-26 12:10:22 +0200
commit207d4a8d686bb3833339d0ec4e58852c2c4493b4 (patch)
tree91646885a38097b6569fd5daf37ef1b94b7b4d08
parentf0881305402f3dff56f99fcc4cbc8b615581b780 (diff)
downloadmendeleev-207d4a8d686bb3833339d0ec4e58852c2c4493b4.tar.gz
C: use bitwise OR in comparison
-rw-r--r--mendeleev.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/mendeleev.c b/mendeleev.c
index d90ee23..7938820 100644
--- a/mendeleev.c
+++ b/mendeleev.c
@@ -1,4 +1,3 @@
-#include<ctype.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
@@ -31,20 +30,20 @@ static void
search (size_t *start, size_t *len, size_t shift, char c)
{
size_t l, m, u;
- int c_ = tolower (c);
+ char c_ = c | ' ';
u = *start + *len;
l = *start;
while (l < u)
{
m = (l + u) / 2;
- if (tolower (ELEMENTS[m][shift]) < c_)
+ if ((ELEMENTS[m][shift] | ' ') < c_)
l = m + 1;
else
u = m;
}
- if ((l == *start + *len) || (tolower (ELEMENTS[l][shift]) != c_))
+ if ((l == *start + *len) || ((ELEMENTS[l][shift] | ' ') != c_))
{
*len = 0;
return;
@@ -55,7 +54,7 @@ search (size_t *start, size_t *len, size_t shift, char c)
while (l < u)
{
m = (l + u) / 2;
- if (c_ < tolower (ELEMENTS[m][shift]))
+ if (c_ < (ELEMENTS[m][shift] | ' '))
u = m;
else
l = m + 1;