public static  void slash_poglist(final String words[]) {
        // macro command. this requires at least 2 parameters
        if (words.length < 2)
        {
            // tell them the usage and bail
            logSystemMessage("/poglist usage: /poglist &lt;attribute name&gt;");
            logSystemMessage("Examples:");
            logSystemMessage("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/poglist HP");
            logSystemMessage("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/poglist Initiative");
            logSystemMessage("Note: attribute names are case, whitespace, and punctuation-insensitive.");
            return;
        }

        final String name = UtilityFunctions.stitchTogetherWords(words, 1);
        final GametableMap map = GametableFrame.getGametableFrame().getGametableCanvas().getActiveMap();
        final List pogs = map.getPogs();
        final StringBuffer buffer = new StringBuffer();
        buffer.append("<b><u>Pogs with \'" + name + "\' attribute</u></b><br>");
        int tally = 0;
        for (int i = 0, size = pogs.size(); i < size; ++i)
        {
            final Pog pog = (Pog)pogs.get(i);
            final String value = pog.getAttribute(name);
            if ((value != null) && (value.length() > 0))
            {
                String pogText = pog.getText();
                if ((pogText == null) || (pogText.length() == 0))
                {
                    pogText = "&lt;unknown&gt;";
                }

                buffer.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>");
                buffer.append(pogText);
                buffer.append(":</b> ");
                buffer.append(value);
                buffer.append("<br>");
                ++tally;
            }
        }
        buffer.append("<b>" + tally + " pog" + (tally != 1 ? "s" : "") + " found.</b>");
        logSystemMessage(buffer.toString());
    }