Support header for 2016.
[cascardo/rnetclient.git] / decfile.c
index 3aab382..3856c2b 100644 (file)
--- a/decfile.c
+++ b/decfile.c
@@ -137,7 +137,7 @@ static int decfile_parse_header(struct rnet_decfile *decfile)
        }
 
        /* Check for tested versions. */
-       if (exerc > 2015) {
+       if (exerc > 2016) {
                fprintf(stderr, "Unknown file version, but proceeding anyway.\n");
                return 0;
        }
@@ -263,6 +263,19 @@ static int decfile_parse_header(struct rnet_decfile *decfile)
 
        /* End of header in 2015. */
 
+       /* Fields added in 2016. */
+       if (exerc >= 2016) {
+               parse("dedutivelmaior1", 14);
+               parse("dedutivelmaior2", 14);
+               parse("dedutivelmaior3", 14);
+               parse("dedutivelmaior4", 14);
+               parse("dedutivelmaior5", 14);
+               parse("dedutivelmaior6", 14);
+               parse("funprespmaior", 14);
+       }
+
+       /* End of header in 2016. */
+
        /* Tail fields, which exist at least since 2013. */
        tail = p;
        parse("versaotestpgd", 3);
@@ -308,6 +321,12 @@ static int decfile_parse_header(struct rnet_decfile *decfile)
                                goto out_val;
                        }
                        break;
+               case 2016:
+                       if (p - buffer != RNET_HEADER_SIZE_2016) {
+                               fprintf(stderr, "RNET_HEADER_SIZE_2016 in decfile.h needs to be adjusted to %ti,\nor parse_header in decfile.c needs updating\n", p - buffer);
+                               goto out_val;
+                       }
+                       break;
                default:
                        /* This case should never be reached even for later
                           years, because later years should not be parsed