fio: update FSF address
[fio.git] / exp / expression-parser.y
index e4373d4db53d4ee2efe90367c61e0c842e36733b..04a6e07a38ae924ed04cbb6736b87894eeceee61 100644 (file)
  *
  *  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.
  *
  */
 
 #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);