about summary refs log tree commit diff stats
path: root/010vm.cc
diff options
context:
space:
mode:
Diffstat (limited to '010vm.cc')
-rw-r--r--010vm.cc25
1 files changed, 7 insertions, 18 deletions
diff --git a/010vm.cc b/010vm.cc
index 6b7d58ff..6512158c 100644
--- a/010vm.cc
+++ b/010vm.cc
@@ -145,13 +145,9 @@ void setup_types() {
   // End Mu Types Initialization
 }
 void teardown_types() {
-  // todo: why can't I just Type.clear()?
   for (map<type_ordinal, type_info>::iterator p = Type.begin(); p != Type.end(); ++p) {
-    if (!p->second.name.empty()) {
-      for (long long int i = 0; i < SIZE(p->second.elements); ++i) {
-        delete p->second.elements.at(i);
-      }
-    }
+    for (long long int i = 0; i < SIZE(p->second.elements); ++i)
+      delete p->second.elements.at(i);
   }
   Type_ordinal.clear();
 }
@@ -313,9 +309,8 @@ string_tree::string_tree(const string_tree& old) {  // :value(old.value) {
 reagent& reagent::operator=(const reagent& old) {
   original_string = old.original_string;
   properties.clear();
-  for (long long int i = 0; i < SIZE(old.properties); ++i) {
+  for (long long int i = 0; i < SIZE(old.properties); ++i)
     properties.push_back(pair<string, string_tree*>(old.properties.at(i).first, old.properties.at(i).second ? new string_tree(*old.properties.at(i).second) : NULL));
-  }
   name = old.name;
   value = old.value;
   initialized = old.initialized;
@@ -324,9 +319,8 @@ reagent& reagent::operator=(const reagent& old) {
 }
 
 reagent::~reagent() {
-  for (long long int i = 0; i < SIZE(properties); ++i) {
+  for (long long int i = 0; i < SIZE(properties); ++i)
     if (properties.at(i).second) delete properties.at(i).second;
-  }
   delete type;
 }
 type_tree::~type_tree() {
@@ -365,9 +359,7 @@ string debug_string(const reagent& x) {
 }
 
 string debug_string(const string_tree* property) {
-  if (!property) {
-    return "<>";
-  }
+  if (!property) return "<>";
   ostringstream out;
   if (!property->left && !property->right)
     // abbreviate a single-node tree to just its contents
@@ -393,9 +385,7 @@ void dump_property_tree(const string_tree* property, ostream& out) {
 
 string debug_string(const type_tree* type) {
   // abbreviate a single-node tree to just its contents
-  if (!type) {
-    return "NULLNULLNULL";  // should never happen
-  }
+  if (!type) return "NULLNULLNULL";  // should never happen
   ostringstream out;
   if (!type->left && !type->right)
     dump_type_name(type->value, out);
@@ -502,9 +492,8 @@ void dump_memory() {
 string recipe::to_string() const {
   ostringstream out;
   out << "recipe " << name << " [\n";
-  for (long long int i = 0; i < SIZE(steps); ++i) {
+  for (long long int i = 0; i < SIZE(steps); ++i)
     out << "  " << steps.at(i).to_string() << '\n';
-  }
   out << "]\n";
   return out.str();
 }
lor: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmocka.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>

#include "config/preferences.h"

#include "ui/ui.h"
#include "ui/stub_ui.h"

#include "command/commands.h"

#define CMD_STATUSES "/statuses"

void cmd_statuses_shows_usage_when_bad_subcmd(void **state)
{
    gchar *args[] = { "badcmd", NULL };

    expect_string(cons_bad_cmd_usage, cmd, CMD_STATUSES);

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);
    assert_true(result);
}

void cmd_statuses_shows_usage_when_bad_console_setting(void **state)
{
    gchar *args[] = { "console", "badsetting", NULL };

    expect_string(cons_bad_cmd_usage, cmd, CMD_STATUSES);

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);
    assert_true(result);
}

void cmd_statuses_shows_usage_when_bad_chat_setting(void **state)
{
    gchar *args[] = { "chat", "badsetting", NULL };

    expect_string(cons_bad_cmd_usage, cmd, CMD_STATUSES);

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);
    assert_true(result);
}

void cmd_statuses_shows_usage_when_bad_muc_setting(void **state)
{
    gchar *args[] = { "muc", "badsetting", NULL };

    expect_string(cons_bad_cmd_usage, cmd, CMD_STATUSES);

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);
    assert_true(result);
}

void cmd_statuses_console_sets_all(void **state)
{
    gchar *args[] = { "console", "all", NULL };

    expect_cons_show("All presence updates will appear in the console.");

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);

    char *setting = prefs_get_string(PREF_STATUSES_CONSOLE);
    assert_non_null(setting);
    assert_string_equal("all", setting);
    assert_true(result);
}

void cmd_statuses_console_sets_online(void **state)
{
    gchar *args[] = { "console", "online", NULL };

    expect_cons_show("Only online/offline presence updates will appear in the console.");

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);

    char *setting = prefs_get_string(PREF_STATUSES_CONSOLE);
    assert_non_null(setting);
    assert_string_equal("online", setting);
    assert_true(result);
}

void cmd_statuses_console_sets_none(void **state)
{
    gchar *args[] = { "console", "none", NULL };

    expect_cons_show("Presence updates will not appear in the console.");

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);

    char *setting = prefs_get_string(PREF_STATUSES_CONSOLE);
    assert_non_null(setting);
    assert_string_equal("none", setting);
    assert_true(result);
}

void cmd_statuses_chat_sets_all(void **state)
{
    gchar *args[] = { "chat", "all", NULL };

    expect_cons_show("All presence updates will appear in chat windows.");

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);

    char *setting = prefs_get_string(PREF_STATUSES_CHAT);
    assert_non_null(setting);
    assert_string_equal("all", setting);
    assert_true(result);
}

void cmd_statuses_chat_sets_online(void **state)
{
    gchar *args[] = { "chat", "online", NULL };

    expect_cons_show("Only online/offline presence updates will appear in chat windows.");

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);

    char *setting = prefs_get_string(PREF_STATUSES_CHAT);
    assert_non_null(setting);
    assert_string_equal("online", setting);
    assert_true(result);
}

void cmd_statuses_chat_sets_none(void **state)
{
    gchar *args[] = { "chat", "none", NULL };

    expect_cons_show("Presence updates will not appear in chat windows.");

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);

    char *setting = prefs_get_string(PREF_STATUSES_CHAT);
    assert_non_null(setting);
    assert_string_equal("none", setting);
    assert_true(result);
}

void cmd_statuses_muc_sets_all(void **state)
{
    gchar *args[] = { "muc", "all", NULL };

    expect_cons_show("All presence updates will appear in chat room windows.");

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);

    char *setting = prefs_get_string(PREF_STATUSES_MUC);
    assert_non_null(setting);
    assert_string_equal("all", setting);
    assert_true(result);
}

void cmd_statuses_muc_sets_online(void **state)
{
    gchar *args[] = { "muc", "online", NULL };

    expect_cons_show("Only join/leave presence updates will appear in chat room windows.");

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);

    char *setting = prefs_get_string(PREF_STATUSES_MUC);
    assert_non_null(setting);
    assert_string_equal("online", setting);
    assert_true(result);
}

void cmd_statuses_muc_sets_none(void **state)
{
    gchar *args[] = { "muc", "none", NULL };

    expect_cons_show("Presence updates will not appear in chat room windows.");

    gboolean result = cmd_statuses(NULL, CMD_STATUSES, args);

    char *setting = prefs_get_string(PREF_STATUSES_MUC);
    assert_non_null(setting);
    assert_string_equal("none", setting);
    assert_true(result);
}