options: fix bs_cmp()
[fio.git] / exp / expression-parser.y
index e4373d4db53d4ee2efe90367c61e0c842e36733b..d664b8edd310d3ab36c8b5880158ded0c5507c32 100644 (file)
@@ -21,6 +21,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <math.h>
+
 struct parser_value_type {
        double dval;
        long long ival;
@@ -42,6 +43,7 @@ int yyerror(__attribute__((unused)) long long *result,
 
 extern int yylex(void);
 extern void yyrestart(FILE *file);
+extern int lexer_value_is_time;
 
 %}
 
@@ -186,7 +188,7 @@ expression: expression '+' expression {
 static int lexer_read_offset = 0;
 static char lexer_input_buffer[1000];
 
-int lexer_input(char* buffer, int *bytes_read, int bytes_requested)
+int lexer_input(char* buffer, unsigned int *bytes_read, int bytes_requested)
 {
        int bytes_left = strlen(lexer_input_buffer) - lexer_read_offset;
 
@@ -213,10 +215,11 @@ static void setup_to_parse_string(const char *string)
 }
 
 int evaluate_arithmetic_expression(const char *buffer, long long *ival, double *dval,
-                                       double implied_units)
+                                       double implied_units, int is_time)
 {
        int rc, units_specified = 0, has_error = 0;
 
+       lexer_value_is_time = is_time;
        setup_to_parse_string(buffer);
        rc = yyparse(ival, dval, &has_error, &units_specified);
        yyrestart(NULL);