From 5d38bb6ef4a325135d8b64a8caadd8056211b786 Mon Sep 17 00:00:00 2001 From: Arnaud Roques Date: Wed, 4 Oct 2023 19:11:39 +0200 Subject: [PATCH] fix: minor issue on nesting packages https://github.com/plantuml/plantuml/issues/1550 --- .../command/CommandPackageWithUSymbol.java | 27 +++++++++---------- .../plantuml/statediagram/StateDiagram.java | 6 ++++- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/net/sourceforge/plantuml/descdiagram/command/CommandPackageWithUSymbol.java b/src/net/sourceforge/plantuml/descdiagram/command/CommandPackageWithUSymbol.java index 77710a5e7..92a2e931a 100644 --- a/src/net/sourceforge/plantuml/descdiagram/command/CommandPackageWithUSymbol.java +++ b/src/net/sourceforge/plantuml/descdiagram/command/CommandPackageWithUSymbol.java @@ -134,28 +134,25 @@ public class CommandPackageWithUSymbol extends SingleLineCommand2 ident = diagram.quarkInContext(false, + diagram.cleanId(codeArg.length() == 0 ? diagram.getUniqueSequence("##") : codeArg)); + + final String displayArg = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(arg.getLazzy("DISPLAY", 0)); final String display; - final String idShort; - if (codeRaw.length() == 0) { - idShort = diagram.getUniqueSequence("##"); + + if (codeArg.length() == 0) display = null; - } else { - idShort = codeRaw; - if (displayRaw == null) - display = idShort; - else - display = displayRaw; - - } - - final Quark ident = diagram.quarkInContext(false, diagram.cleanId(idShort)); + else if (displayArg == null) + display = ident.getName(); + else + display = displayArg; final CommandExecutionResult status = diagram.gotoGroup(ident, Display.getWithNewlines(display), GroupType.PACKAGE); if (status.isOk() == false) return status; + final Entity p = diagram.getCurrentGroup(); final String symbol = arg.get("SYMBOL", 0); diff --git a/src/net/sourceforge/plantuml/statediagram/StateDiagram.java b/src/net/sourceforge/plantuml/statediagram/StateDiagram.java index afde91c80..3a91bb1d6 100644 --- a/src/net/sourceforge/plantuml/statediagram/StateDiagram.java +++ b/src/net/sourceforge/plantuml/statediagram/StateDiagram.java @@ -133,7 +133,11 @@ public class StateDiagram extends AbstractEntityDiagram { final Entity g = getCurrentGroup(); final String tmp = "*historical*" + g.getName(); final Quark ident = quarkInContext(true, tmp); - final Entity result = reallyCreateLeaf(ident, Display.getWithNewlines(ident), LeafType.PSEUDO_STATE, null); + final Entity result; + if (ident.getData() == null) + result = reallyCreateLeaf(ident, Display.getWithNewlines(ident), LeafType.PSEUDO_STATE, null); + else + result = ident.getData(); endGroup(); return result; }