yaz_poll: Allow num_fds == 0
[yaz-moved-to-github.git] / src / solrtransform.c
index d2732e5..2d8743b 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2011 Index Data
+ * Copyright (C) 1995-2012 Index Data
  * See the file LICENSE for details.
  */
 /**
@@ -13,7 +13,6 @@
 #include <assert.h>
 #include <stdlib.h>
 #include <string.h>
-#include <ctype.h>
 #include <yaz/rpn2solr.h>
 #include <yaz/xmalloc.h>
 #include <yaz/diagsrw.h>
@@ -42,7 +41,7 @@ struct solr_transform_t_ {
 };
 
 
-/* TODO Utility functions, evt. split out int separate file */
+/* TODO Utility functions, split out into separate file */
 int solr_strcmp(const char *s1, const char *s2) {
     return cql_strcmp(s1, s2);
 }
@@ -71,7 +70,7 @@ void solr_buf_write_handler (const char *b, void *client_data)
 }
 
 
-/* Utillity functions end */
+/* Utility functions end */
 
 solr_transform_t solr_transform_create(void)
 {
@@ -160,7 +159,7 @@ static int solr_transform_parse_tok_line(solr_transform_t ct,
             break;
         }
         value_str = yaz_tok_parse_string(tp);
-        if (isdigit(*value_str))
+        if (yaz_isdigit(*value_str))
         {
             elem->which = Z_AttributeValue_numeric;
             elem->value.numeric =
@@ -523,8 +522,7 @@ static int solr_pr_prox(solr_transform_t ct, struct solr_node *mods,
                        void *client_data)
 {
     int exclusion = 0;
-    int distance;               /* to be filled in later depending on unit */
-    int distance_defined = 0;
+    int distance = -1;
     int ordered = 0;
     int proxrel = 2;            /* less than or equal */
     int unit = 2;               /* word */
@@ -537,7 +535,6 @@ static int solr_pr_prox(solr_transform_t ct, struct solr_node *mods,
 
         if (!strcmp(name, "distance")) {
             distance = strtol(term, (char**) 0, 0);
-            distance_defined = 1;
             if (!strcmp(relation, "="))
                 proxrel = 3;
             else if (!strcmp(relation, ">"))
@@ -587,7 +584,7 @@ static int solr_pr_prox(solr_transform_t ct, struct solr_node *mods,
         mods = mods->u.st.modifiers;
     }
 
-    if (!distance_defined)
+    if (distance == -1)
         distance = (unit == 2) ? 1 : 0;
 
     solr_pr_int(exclusion, pr, client_data);