The CloneStyle command replaces an alias to style with an alias to its shallow clone. The clone will be registered in the FULL_STYLES list and optionally in the AUTO_STYLES list, just like the model style. The clone is additionally locked to avoid its automatic recycling by Document::PurgeAutoStyles.
It uses an associated ReplaceAlias command, which is bound to CloneStyle, in order to replace the original style alias with the cloned alias.
[ x style y ], style -> [ a b ]
becomes :
[ x style' y ], style' + stylei' -> clone = [ a' b' ] scratch : style, style -> [ a b ]
After undoing :
[ x style y ], style -> [ a b ] scratch : stylei', stylei' -> clone = [ a' b' ] zombie : style'
After redoing :
[ x style' y ], style' + stylei' -> clone = [ a' b' ] scratch : style, style -> [ a b ]