// Coerce the name to prevent validation errors
    public void UpdateName()
    {
        int    column = nameBox.CursorGetColumn();
        string name   = nameBox.GetText();

        string[] forebidden = new string[] {
            " ", "\\", "/", "?", "@", "#", "$", "%", "^", "&", "*", "(", ")",
            "-", "=", "+", "{", "}", "\'", "\"", "~", "`", "!", "|", "[", "]"
        };

        for (int i = 0; i < forebidden.Length; i++)
        {
            name = name.Replace(forebidden[i], "_");
        }

        if (name.Length > MaxNameLength)
        {
            name = name.Substring(0, MaxNameLength);
        }

        nameBox.SetText(name);
        nameBox.CursorSetColumn(column);
        config.fileName = name + ".adventure";

        if (SettingsDb.SaveExists(config.fileName))
        {
            nameLabel.SetText(NameLabelWarning);
        }
        else
        {
            nameLabel.SetText(NameLabelText);
        }
    }