diff --git a/exec/sbbslist.js b/exec/sbbslist.js index d79ff1668183761c93f3139852d3a630b4c795f3..a2c6f3ecbc35ec0292205e58ba50d00ace37c8c9 100644 --- a/exec/sbbslist.js +++ b/exec/sbbslist.js @@ -2170,7 +2170,7 @@ function main() case "-f": if(!val) { alert("no filename specified"); - return; + return -1; } lib.list_fname = val; break; @@ -2232,6 +2232,14 @@ function main() if(!quiet) print(version_notice); + + if(cmds.indexOf("lock") >= 0) { + return lib.lock("lock") == true ? 0 : -1; + } + if(cmds.indexOf("unlock") >= 0) { + return lib.unlock() == true ? 0: -1; + return 0; + } if(!file_exists(lib.list_fname)) { var dab = sbl_dir + "sbl.dab"; @@ -2241,6 +2249,10 @@ function main() list=[]; } else list=lib.read_list(); + if(list === false) { + alert("Failed to read BBS list"); + return -1; + } if(options && options.sort) lib.sort(list, options.sort); if(options && options.reverse) @@ -2269,7 +2281,7 @@ function main() print("Opening msgbase " + msgbase.file); if(!msgbase.open()) { alert("Error " + msgbase.error + " opening msgbase: " + msgbase.file); - exit(-1); + return -1; } if(cmd == "import") import_from_msgbase(list, msgbase, ptr, limit, all); @@ -2285,7 +2297,7 @@ function main() var f = new File("sbbslist.html"); if(!f.open("wb")) { log(LOG_ERR,"Error opening " + f.name); - exit(); + return -1; } load(f, "sbbslist_html.js", lib, list); f.close(); @@ -2315,7 +2327,7 @@ function main() var f = new File("sbbsimsg.lst"); if(!f.open("w")) { log(LOG_ERR,"Error opening " + f.name); - exit(); + return -1; } for(i in ibbs) f.writeln(format("%-63s\t%s\t%s", @@ -2421,7 +2433,7 @@ function main() case "add": if(lib.system_exists(list, system.name)) { alert("System '" + system.name + "' already exists"); - exit(-1); + return -1; } var bbs = this_bbs(); bbs.description = get_description(); @@ -2457,7 +2469,7 @@ function main() print("Opening msgbase " + msgbase.file); if(!msgbase.open()) { alert("Error " + msgbase.error + " opening msgbase: " + msgbase.file); - exit(-1); + return -1; } delete_in_msgbase(msgbase, bbs); msgbase.close(); @@ -2466,7 +2478,7 @@ function main() var index = lib.system_index(list, system.name); if(index < 0) { alert("System '" + system.name + "' does not exist"); - exit(0); + return 0; } var bbs=list[index]; bbs.software = "Synchronet"; @@ -2489,7 +2501,7 @@ function main() var index = lib.system_index(list, optval[cmd]); if(index < 0) { alert("System '" + system.name + "' does not exist"); - exit(-1); + return -1; } var result = capture_preview(list[index], addr); if(result == true) { @@ -2534,6 +2546,7 @@ function main() break; } } + return 0; } -main(); +exit(main());