diff options
author | Melanie Thielker | 2009-06-26 00:00:20 +0000 |
---|---|---|
committer | Melanie Thielker | 2009-06-26 00:00:20 +0000 |
commit | 5869598c4ca462bfda3b83b707c57433048f364c (patch) | |
tree | 551539a58d5c8f77654835060b39a558eb09d91a /OpenSim | |
parent | Make create region save the new region to ini file format if the name (diff) | |
download | opensim-SC_OLD-5869598c4ca462bfda3b83b707c57433048f364c.zip opensim-SC_OLD-5869598c4ca462bfda3b83b707c57433048f364c.tar.gz opensim-SC_OLD-5869598c4ca462bfda3b83b707c57433048f364c.tar.bz2 opensim-SC_OLD-5869598c4ca462bfda3b83b707c57433048f364c.tar.xz |
Make delete-region delete the section from an ini file. Will delete the whole
file if it has no sections left.
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Framework/RegionInfo.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Application/OpenSimBase.cs | 30 |
2 files changed, 34 insertions, 2 deletions
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs index eb10fac..504b303 100644 --- a/OpenSim/Framework/RegionInfo.cs +++ b/OpenSim/Framework/RegionInfo.cs | |||
@@ -259,6 +259,8 @@ namespace OpenSim.Framework | |||
259 | 259 | ||
260 | newFile.Save(filename); | 260 | newFile.Save(filename); |
261 | 261 | ||
262 | RegionFile = filename; | ||
263 | |||
262 | return; | 264 | return; |
263 | } | 265 | } |
264 | 266 | ||
@@ -273,6 +275,8 @@ namespace OpenSim.Framework | |||
273 | if (configName != String.Empty && saveFile) | 275 | if (configName != String.Empty && saveFile) |
274 | source.Save(filename); | 276 | source.Save(filename); |
275 | 277 | ||
278 | RegionFile = filename; | ||
279 | |||
276 | return; | 280 | return; |
277 | } | 281 | } |
278 | 282 | ||
@@ -285,6 +289,8 @@ namespace OpenSim.Framework | |||
285 | 289 | ||
286 | ReadNiniConfig(xmlsource, configName); | 290 | ReadNiniConfig(xmlsource, configName); |
287 | 291 | ||
292 | RegionFile = filename; | ||
293 | |||
288 | return; | 294 | return; |
289 | } | 295 | } |
290 | catch (Exception) | 296 | catch (Exception) |
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 1ff53c9..9e3dafb 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs | |||
@@ -465,8 +465,34 @@ namespace OpenSim | |||
465 | 465 | ||
466 | if (!String.IsNullOrEmpty(scene.RegionInfo.RegionFile)) | 466 | if (!String.IsNullOrEmpty(scene.RegionInfo.RegionFile)) |
467 | { | 467 | { |
468 | File.Delete(scene.RegionInfo.RegionFile); | 468 | if (scene.RegionInfo.RegionFile.ToLower().EndsWith(".xml")) |
469 | m_log.InfoFormat("[OPENSIM]: deleting region file \"{0}\"", scene.RegionInfo.RegionFile); | 469 | { |
470 | File.Delete(scene.RegionInfo.RegionFile); | ||
471 | m_log.InfoFormat("[OPENSIM]: deleting region file \"{0}\"", scene.RegionInfo.RegionFile); | ||
472 | } | ||
473 | if (scene.RegionInfo.RegionFile.ToLower().EndsWith(".ini")) | ||
474 | { | ||
475 | try | ||
476 | { | ||
477 | IniConfigSource source = new IniConfigSource(scene.RegionInfo.RegionFile); | ||
478 | if (source.Configs[scene.RegionInfo.RegionName] != null) | ||
479 | { | ||
480 | source.Configs.Remove(scene.RegionInfo.RegionName); | ||
481 | |||
482 | if (source.Configs.Count == 0) | ||
483 | { | ||
484 | File.Delete(scene.RegionInfo.RegionFile); | ||
485 | } | ||
486 | else | ||
487 | { | ||
488 | source.Save(scene.RegionInfo.RegionFile); | ||
489 | } | ||
490 | } | ||
491 | } | ||
492 | catch (Exception) | ||
493 | { | ||
494 | } | ||
495 | } | ||
470 | } | 496 | } |
471 | } | 497 | } |
472 | 498 | ||