fio: fix aio trim completion latencies
[fio.git] / exp / expression-parser.y
index 8ae0c01ed50849a54a63aa3c8bc4f5d22563888f..8619025c692c3c914f681e705677e99cadd69ed6 100644 (file)
@@ -14,7 +14,7 @@
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
@@ -43,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;
 
 %}
 
@@ -203,9 +204,9 @@ static void setup_to_parse_string(const char *string)
 {
        unsigned int len;
 
-       len = strlen(string);
-       if (len > sizeof(lexer_input_buffer) - 3)
-               len = sizeof(lexer_input_buffer) - 3;
+       len = sizeof(lexer_input_buffer) - 3;
+       if (len > strlen(string))
+               len = strlen(string);
 
        strncpy(lexer_input_buffer, string, len);
        lexer_input_buffer[len] = '\0'; 
@@ -214,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);