From 148d4828a712a397ce7541e802844a32b5708ec2 Mon Sep 17 00:00:00 2001
From: Jan-Pascal van Best <janpascal@vanbest.org>
Date: Sun, 25 Mar 2012 20:20:50 +0200
Subject: [PATCH] Prepare for config file version numbering

---
 src/main/java/org/vanbest/xmltv/Config.java | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/main/java/org/vanbest/xmltv/Config.java b/src/main/java/org/vanbest/xmltv/Config.java
index 9bb6a57..06f7d3f 100644
--- a/src/main/java/org/vanbest/xmltv/Config.java
+++ b/src/main/java/org/vanbest/xmltv/Config.java
@@ -48,6 +48,8 @@ public class Config {
 	private static final int LOG_PROGRAMME_INFO = 0x0200;
 	
 	public static int LOG_DEFAULT = LOG_INFO;
+	
+	private final static int CURRENT_FILE_FORMAT=1;
 
 	String project_version;
 	
@@ -111,6 +113,7 @@ public class Config {
 	public void writeConfig(File configFile) throws IOException {
 		FileUtils.forceMkdir(configFile.getParentFile());
 		PrintWriter out = new PrintWriter(new OutputStreamWriter( new FileOutputStream( configFile )));
+		out.println("config-file-format: " + CURRENT_FILE_FORMAT);
 		out.println("cache-file: " + escape(cacheFile.getPath()));
 		out.println("nice-time-milliseconds: " + niceMilliseconds);
 		for(Channel c: channels) {
@@ -172,6 +175,7 @@ public class Config {
 	public static Config readConfig(File file) {
 		Config result = getDefaultConfig();
 		result.cattrans = new HashMap<String,String>();
+		int fileformat=0; // Assume legacy config file format
 		try {
 			BufferedReader reader = new BufferedReader( new InputStreamReader( new FileInputStream( file)));
 			
@@ -192,6 +196,18 @@ public class Config {
 				case "category" :
 					result.cattrans.put(parts.get(1), parts.get(2));
 					break;
+				case "current-file-format" :
+					try {
+						fileformat = Integer.parseInt(parts.get(1));
+					} catch (NumberFormatException e) {
+						System.out.println("Unknown config file format " + parts.get(1));
+						fileformat = CURRENT_FILE_FORMAT; // may crash later
+					}
+					if (fileformat > CURRENT_FILE_FORMAT) {
+						System.out.println("Unknown config file format " + parts.get(1));
+						fileformat = CURRENT_FILE_FORMAT;
+					}
+					break;
 				case "cache-file":
 					result.cacheFile = new File(parts.get(1));
 					break;
-- 
2.39.5