IF newKey = "" THEN ITERATE /* no entry, or exists already */
SAY
SAY "new Top-Level:" global.iRedWhite || newTopLevel.displayValue || global.iCyan
SAY
CALL check_value newKey
newKey.displayValue = strings.displayValue
PARSE VALUE edit_value("A", "new value for Key:" global.iRedWhite || newKey.displayValue || global.iCyan, , , "Enter new Key-Value") WITH tmpState tmpResult
IF tmpState = "NOK" THEN ITERATE
newKeyValue = tmpResult
val = SysIni(stemIni.iIni, newTopLevel, newKey, newKeyValue)
CALL read_toplevel(iIni) /* read all toplevel-entries */
IF global.TopLSortState = "S" THEN
CALL sort_generic "stemTopLevel"
END
OTHERWISE /* show keys of chosen TopLevel */
DO
IF show_key(ARG(1), answer) THEN
DO
CALL read_toplevel(iIni) /* read all toplevel-entries */
PARSE VALUE edit_value("A", "new value for Key:" global.iRedWhite || newKey.displayValue || global.iCyan, , , "Enter new Key-Value") WITH tmpState tmpResult
IF tmpState = "NOK" THEN ITERATE
newKeyValue = tmpResult
/* create new key */
val = SysIni(stemIni.iIni, stemTopLevel.iTopL.origValue, newKey, newKeyValue)