Changed types and added casts so that build is clean with gcc -Wsign-compare.
[mmh] / sbr / dtimep.lex
index 113f2ea..29c4dd0 100644 (file)
@@ -1,3 +1,12 @@
+/* dtimep.lex exceeds the default table capacities for some old versions
+ * of lex (and the minimum defaults as specified by POSIX).  The following
+ * choices meet or exceed the lex defaults for older SunOS4.x, Solaris,
+ * HPUX, and AIX.
+ */
+%e4000
+%p7000
+%n2500
+%a5000
 %{
 #include <h/nmh.h>
 #include <h/tws.h>
@@ -8,7 +17,7 @@
 #define yywrap() 1
 #define YY_SKIP_YYWRAP
 
-#define YY_NO_UNPUT
+#define YY_NO_INPUT
 
   /* This is the tricky thing that makes this function cool.  We
    *  replace the traditional int yylex(void) declaration with our
@@ -151,16 +160,10 @@ static int day_map[] = {
                        --cp; }
 
 #ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
-# ifdef TIME_WITH_SYS_TIME
+# ifdef HAVE_SYS_TIME_H
 #  include <sys/time.h>
-#  include <time.h>
-# else
-#  ifdef HAVE_SYS_TIME_H
-#   include <sys/time.h>
-#  else
-#   include <time.h>
-#  endif
 # endif
+#include <time.h>
 
 static void
 zonehack (struct tws *tw)
@@ -389,3 +392,16 @@ nl      [ \t\n()]
 {nl}("hdt"|"HDT")                  { INIT(); SETDST(); SETZONE(-1000);
                                       yyterminate(); }
 .|\n
+
+%%
+/* This is a portable way to squash a warning about the yyunput()
+ * function being static but never used. It costs us a tiny amount
+ * of extra code in the binary but the other options are:
+ *  "%option nounput" which is flex-specific
+ *  makefile hackery just to compile dtimep.c with different flags
+ */
+void dtimep_yyunput(int c)
+{
+    unput(c);
+}
+