From 4b22fe490b4139accca215899e76313b9692583d Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sat, 11 Jul 2009 07:56:44 +0000
Subject: [PATCH] Convert from data/subs/*.snl file (binary) storage of
 import/export pointers to data/subs/*.ini (text)

---
 exec/newslink.js | 30 +++++++++++++++++++++---------
 1 file changed, 21 insertions(+), 9 deletions(-)

diff --git a/exec/newslink.js b/exec/newslink.js
index bc5073f82a..a4afd699e6 100644
--- a/exec/newslink.js
+++ b/exec/newslink.js
@@ -360,15 +360,27 @@ for(i in area) {
 	import_ptr = NaN;			// Set to highest possible message number (by default)
 	if(flags.indexOf('i')>=0)	// import all
 		import_ptr = 0;
+	/* Old way to store pointers: */
 	ptr_fname = msgbase.file + ".snl";
 	ptr_file = new File(ptr_fname);
 	if(ptr_file.open("rb")) {
 		export_ptr = ptr_file.readBin();
-		printf("%s export ptr: %ld\r\n",sub,export_ptr);
+		printf("%s.snl export ptr: %ld\r\n",sub,export_ptr);
 		import_ptr = ptr_file.readBin();
-		printf("%s import ptr: %ld\r\n",sub,import_ptr);
+		printf("%s.snl import ptr: %ld\r\n",sub,import_ptr);
 		ptr_file.close();
 	}
+	delete ptr_file;
+	/* New way to store pointers: */
+	ini_fname = msgbase.file + ".ini";
+	ini_file = new File(ini_fname);
+	if(ini_file.open("r")) {
+		export_ptr=ini_file.iniGetValue("NewsLink","export_ptr",export_ptr);
+		printf("%s.ini export ptr: %ld\r\n",sub,export_ptr);
+		import_ptr=ini_file.iniGetValue("NewsLink","import_ptr",import_ptr);
+		printf("%s.ini import ptr: %ld\r\n",sub,import_ptr);
+		ini_file.close();
+	}
 
 	if(reset_export_ptrs)
 		ptr = 0;
@@ -511,7 +523,7 @@ for(i in area) {
 	rsp = readln();
 	if(rsp==null || rsp[0]!='2') {
 		printf("!GROUP %s FAILURE: %s\r\n",newsgroup,rsp);
-		delete ptr_file;
+		delete ini_file;
 		delete msgbase;
 		continue;
 	}
@@ -859,14 +871,14 @@ for(i in area) {
 	import_ptr = ptr;
 
 	/* Save Pointers */
-	if(!ptr_file.open("wb"))
-		printf("!ERROR %d creating/opening %s\r\n",errno,ptr_fname);
+	if(!ini_file.open(ini_file.exists ? "r+":"w+"))
+		printf("!ERROR %d creating/opening %s\r\n",errno,ini_file.name);
 	else {
-		ptr_file.writeBin(export_ptr);
-		ptr_file.writeBin(import_ptr);
-		ptr_file.close();
+		ini_file.iniSetValue("NewsLink", "export_ptr", export_ptr);
+		ini_file.iniSetValue("NewsLink", "import_ptr", import_ptr);
+		ini_file.close();
 	}
-	delete ptr_file;
+	delete ini_file;
 	msgbase.close();
 	delete msgbase;
 
-- 
GitLab