Changes in / [e428a36:80c0fc7]


Ignore:
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • t/variable.t

    r5d8c9a7 r4953c44  
    1717BarnOwl::unset("-q", "intvar");
    1818is(BarnOwl::getvar("intvar"), "24", "intvar unset bogus");
    19 BarnOwl::new_variable_int("intvar", { default => 7 });
    20 isnt(BarnOwl::getvar("intvar"), "7", "intvar reinit shouldn't override preexisting value");
    2119
    2220BarnOwl::new_variable_bool("boolvar", { default => 1 });
     
    3028BarnOwl::unset("-q", "boolvar");
    3129is(BarnOwl::getvar("boolvar"), "off", "boolvar unset");
    32 BarnOwl::new_variable_bool("boolvar", { default => 1 });
    33 isnt(BarnOwl::getvar("boolvar"), "on", "boolvar reinit shouldn't override preexisting value");
    3430
    3531BarnOwl::new_variable_string("strvar", { default => "monkey" });
     
    4137BarnOwl::unset("-q", "strvar");
    4238is(BarnOwl::getvar("strvar"), "cuttlefish", "strvar unset bogus");
    43 BarnOwl::new_variable_string("strvar", { default => "monkey" });
    44 isnt(BarnOwl::getvar("strvar"), "monkey", "strvar reinit shouldn't override value");
    4539
    4640BarnOwl::new_variable_enum("enumvar", { validsettings => [qw/foo bar baz/], default => "bar" });
     
    5246BarnOwl::unset("-q", "enumvar");
    5347is(BarnOwl::getvar("enumvar"), "baz", "enumvar unset bogus");
    54 BarnOwl::new_variable_enum("enumvar", { validsettings => [qw/foo bar baz/], default => "bar" });
    55 isnt(BarnOwl::getvar("enumvar"), "bar", "enumvar reinit shouldn't override value");
    5648
    5749BarnOwl::new_variable_int("intvar2");
     
    6860BarnOwl::new_variable_full("fullvar", {
    6961    validsettings => '<short-words>',
    70     get_tostring => sub { $value },
     62    get_tostring => sub { "value is " . $value },
    7163    set_fromstring => sub {
    72         die "Too long" unless $_[0] =~ /^...?$/;
    73         $value = lc($_[0]);
     64        die "Too long" unless $_[0] =~ /^...?$/;
     65        $value = $_[0];
    7466    },
    7567    takes_on_off => 1
    7668});
    77 is(BarnOwl::getvar("fullvar"), "foo", "fullvar get");
    78 BarnOwl::set("-q", "fullvar", "Bar");
    79 is(BarnOwl::getvar("fullvar"), "bar", "fullvar set");
     69is(BarnOwl::getvar("fullvar"), "value is foo", "fullvar get");
     70BarnOwl::set("-q", "fullvar", "bar");
     71is(BarnOwl::getvar("fullvar"), "value is bar", "fullvar set");
    8072BarnOwl::set("-q", "fullvar");
    81 is(BarnOwl::getvar("fullvar"), "on", "fullvar set2");
     73is(BarnOwl::getvar("fullvar"), "value is on", "fullvar set2");
    8274BarnOwl::unset("-q", "fullvar");
    83 is(BarnOwl::getvar("fullvar"), "off", "fullvar unset");
     75is(BarnOwl::getvar("fullvar"), "value is off", "fullvar unset");
    8476BarnOwl::set("-q", "fullvar", "bogus");
    85 is(BarnOwl::getvar("fullvar"), "off", "fullvar set bogus");
    86 $value = "xyz";
    87 is(BarnOwl::getvar("fullvar"), "xyz", "fullvar set out-of-band");
    88 # Kinda verbose, but better to test all forms
    89 my $newvalue = "foo";
    90 BarnOwl::new_variable_full("fullvar", {
    91     validsettings => '<short-words>',
    92     get_tostring => sub { $newvalue },
    93     set_fromstring => sub {
    94         die "Too long" unless $_[0] =~ /^...?$/;
    95         $newvalue = lc($_[0]);
    96     },
    97     takes_on_off => 1
    98 });
    99 is(BarnOwl::getvar("fullvar"), "xyz", "fullvar reinit doesn't override value");
    100 $newvalue = "abc";
    101 is(BarnOwl::getvar("fullvar"), "abc", "fullvar reinit changed setters");
     77is(BarnOwl::getvar("fullvar"), "value is off", "fullvar set bogus");
     78$value = "something really long";
     79is(BarnOwl::getvar("fullvar"), "value is something really long", "fullvar set out-of-band");
    10280
    103811;
  • variable.c

    r9d4dfdc r6a8b519  
    612612void owl_variable_dict_add_variable(owl_vardict * vardict,
    613613                                    owl_variable * var) {
    614   char *oldvalue = NULL;
    615   owl_variable *oldvar = owl_variable_get_var(vardict, var->name);
    616   /* Save the old value as a string. */
    617   if (oldvar) {
    618     oldvalue = owl_variable_get_tostring(oldvar);
    619   }
    620614  owl_dict_insert_element(vardict, var->name, var, (void (*)(void *))owl_variable_delete);
    621   /* Restore the old value. */
    622   if (oldvalue) {
    623     owl_variable_set_fromstring(var, oldvalue, 0);
    624     g_free(oldvalue);
    625   }
    626615}
    627616
     
    788777  g_free(v->default_str);
    789778  g_free(v->validsettings);
    790   if (v->type != OWL_VARIABLE_OTHER)
    791     g_value_unset(&(v->val));
     779  g_value_unset(&(v->val));
    792780  g_closure_unref(v->get_tostring_fn);
    793781  g_closure_unref(v->set_fromstring_fn);
Note: See TracChangeset for help on using the changeset viewer.