Changeset cce9369
- Timestamp:
- Sep 30, 2011, 8:14:50 AM (13 years ago)
- Children:
- e21b921
- Parents:
- b54b06a
- git-author:
- Jason Gross <jgross@mit.edu> (07/12/11 19:20:46)
- git-committer:
- Jason Gross <jgross@mit.edu> (09/30/11 08:14:50)
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
perl/lib/BarnOwl.pm
rb54b06a rcce9369 413 413 =item valid_settings 414 414 415 A listref of valid setttings for the enum variable. 416 The settings must not contain any commas. 415 A listref of valid setttings for the enum variable, or a string describing 416 the valid settings for any other type of variable. The settings for an enum 417 variable may not contain any commas. You should not specify valid settings 418 for boolean variables. 417 419 418 420 =back … … 421 423 422 424 sub new_variable_int { 423 unshift @_, \&BarnOwl::Internal::new_variable_int, 0; 424 goto \&_new_variable; 425 _new_variable(\&BarnOwl::Internal::new_variable_int, 0, "<int>", @_); 425 426 } 426 427 427 428 sub new_variable_bool { 428 unshift @_, \&BarnOwl::Internal::new_variable_bool, 0; 429 goto \&_new_variable; 429 _new_variable(\&BarnOwl::Internal::new_variable_bool, 0, "on,off", @_); 430 430 } 431 431 432 432 sub new_variable_string { 433 unshift @_, \&BarnOwl::Internal::new_variable_string, ""; 434 goto \&_new_variable; 433 _new_variable(\&BarnOwl::Internal::new_variable_string, "", "<string>", @_); 435 434 } 436 435 … … 457 456 my $func = shift; 458 457 my $default_default = shift; 458 my $default_valid_settings = shift; 459 459 my $name = shift; 460 460 my $args = shift || {}; 461 461 my %args = ( 462 summary => "", 463 description => "", 464 default => $default_default, 462 summary => "", 463 description => "", 464 default => $default_default, 465 valid_settings => $default_valid_settings, 465 466 %{$args}); 466 $func->($name, $args{default}, $args{summary}, $args{description} );467 $func->($name, $args{default}, $args{summary}, $args{description}, $args{valid_settings}); 467 468 } 468 469 -
perlglue.xs
rb54b06a rcce9369 405 405 406 406 void 407 new_variable_string(name, ival, summ, desc )407 new_variable_string(name, ival, summ, desc, validset) 408 408 const char * name 409 409 const char * ival 410 410 const char * summ 411 411 const char * desc 412 const char * validset 412 413 CODE: 413 414 owl_variable_dict_newvar_string(owl_global_get_vardict(&g), … … 415 416 summ, 416 417 desc, 417 ival); 418 419 void 420 new_variable_int(name, ival, summ, desc) 418 ival, 419 validset); 420 421 void 422 new_variable_int(name, ival, summ, desc, validset) 421 423 const char * name 422 424 int ival 423 425 const char * summ 424 426 const char * desc 427 const char * validset 425 428 CODE: 426 429 owl_variable_dict_newvar_int(owl_global_get_vardict(&g), … … 428 431 summ, 429 432 desc, 430 ival); 431 432 void 433 new_variable_bool(name, ival, summ, desc) 433 ival, 434 validset); 435 436 void 437 new_variable_bool(name, ival, summ, desc, validset) 434 438 const char * name 435 439 int ival 436 440 const char * summ 437 441 const char * desc 438 CODE: 442 const char * validset 443 CODE: 444 if (strcmp(validset, "on,off")) /* gcc complains if we don't do anything with it, but the perl code isn't nice enough to let us get rid of it */ 445 croak("Invalid bool variable valid settings: %s", validset); 439 446 owl_variable_dict_newvar_bool(owl_global_get_vardict(&g), 440 447 name, -
tester.c
ra74a044 rcce9369 390 390 FAIL_UNLESS("get int 7", 9 == owl_variable_get_int(var)); 391 391 392 owl_variable_dict_newvar_string(&vd, "stringvar", "", "", "testval" );392 owl_variable_dict_newvar_string(&vd, "stringvar", "", "", "testval", "<string>"); 393 393 FAIL_UNLESS("get new string var", NULL != (var = owl_variable_get_var(&vd, "stringvar"))); 394 394 FAIL_UNLESS("get new string var", NULL != (v = owl_variable_get(var))); … … 397 397 FAIL_UNLESS("update string val", !strcmp("new val", owl_variable_get_string(var))); 398 398 399 owl_variable_dict_newvar_int(&vd, "intvar", "", "", 47 );399 owl_variable_dict_newvar_int(&vd, "intvar", "", "", 47, 0); 400 400 FAIL_UNLESS("get new int var", NULL != (var = owl_variable_get_var(&vd, "intvar"))); 401 401 FAIL_UNLESS("get new int var", NULL != (v = owl_variable_get(var))); … … 411 411 FAIL_UNLESS("update bool val", !owl_variable_get_bool(var)); 412 412 413 owl_variable_dict_newvar_string(&vd, "nullstringvar", "", "", NULL );413 owl_variable_dict_newvar_string(&vd, "nullstringvar", "", "", NULL, "<string>"); 414 414 FAIL_UNLESS("get new string (NULL) var", NULL != (var = owl_variable_get_var(&vd, "nullstringvar"))); 415 415 FAIL_UNLESS("get string (NULL)", NULL == (value = owl_variable_get_tostring(var))); -
variable.c
rc0e728a rcce9369 665 665 } 666 666 667 void owl_variable_dict_newvar_string(owl_vardict *vd, const char *name, const char *summ, const char *desc, const char *initval )667 void owl_variable_dict_newvar_string(owl_vardict *vd, const char *name, const char *summ, const char *desc, const char *initval, const char *validsettings) 668 668 { 669 669 owl_variable *old = owl_variable_get_var(vd, name); … … 671 671 if (old && owl_variable_get_type(old) == OWL_VARIABLE_STRING) 672 672 oldval = owl_variable_get_tostring(old); 673 owl_variable *var = owl_variable_newvar(name, summ, desc, "<string>", OWL_VARIABLE_STRING);673 owl_variable *var = owl_variable_newvar(name, summ, desc, validsettings, OWL_VARIABLE_STRING); 674 674 var->pval_default = g_strdup(initval); 675 675 owl_variable_init_defaults(var); … … 680 680 } 681 681 682 void owl_variable_dict_newvar_int(owl_vardict *vd, const char *name, const char *summ, const char *desc, int initval )682 void owl_variable_dict_newvar_int(owl_vardict *vd, const char *name, const char *summ, const char *desc, int initval, const char *validsettings) 683 683 { 684 684 owl_variable *old = owl_variable_get_var(vd, name); … … 686 686 if (old && owl_variable_get_type(old) == OWL_VARIABLE_INT) 687 687 oldval = owl_variable_get_int(old); 688 owl_variable *var = owl_variable_newvar(name, summ, desc, "<int>", OWL_VARIABLE_INT);688 owl_variable *var = owl_variable_newvar(name, summ, desc, validsettings, OWL_VARIABLE_INT); 689 689 var->ival_default = initval; 690 690 owl_variable_init_defaults(var);
Note: See TracChangeset
for help on using the changeset viewer.