diff options
Diffstat (limited to 'src/opt.c')
-rw-r--r-- | src/opt.c | 25 |
1 files changed, 21 insertions, 4 deletions
@@ -4,19 +4,31 @@ #include "opt.h" rcc_option_value rccGetOption(rcc_context ctx, rcc_option option) { - if ((!ctx)||(option<0)||(option>=RCC_MAX_OPTIONS)) return -1; + if (!ctx) { + if (rcc_default_ctx) ctx = rcc_default_ctx; + else return (rcc_option_value)0; + } + if ((option<0)||(option>=RCC_MAX_OPTIONS)) return 0; return ctx->options[option]; } int rccOptionIsDefault(rcc_context ctx, rcc_option option) { - if ((!ctx)||(option<0)||(option>=RCC_MAX_OPTIONS)) return -1; + if (!ctx) { + if (rcc_default_ctx) ctx = rcc_default_ctx; + else return -1; + } + if ((option<0)||(option>=RCC_MAX_OPTIONS)) return -1; return ctx->default_options[option]; } int rccSetOption(rcc_context ctx, rcc_option option, rcc_option_value value) { - if ((!ctx)||(option>=RCC_MAX_OPTIONS)) return -1; + if (!ctx) { + if (rcc_default_ctx) ctx = rcc_default_ctx; + else return -1; + } + if ((option<0)||(option>=RCC_MAX_OPTIONS)) return -1; ctx->default_options[option] = 0; @@ -30,7 +42,12 @@ int rccSetOption(rcc_context ctx, rcc_option option, rcc_option_value value) { int rccOptionSetDefault(rcc_context ctx, rcc_option option) { rcc_option_value value; - if ((!ctx)||(option>=RCC_MAX_OPTIONS)) return -1; + + if (!ctx) { + if (rcc_default_ctx) ctx = rcc_default_ctx; + else return -1; + } + if ((option<0)||(option>=RCC_MAX_OPTIONS)) return -1; ctx->default_options[option] = 1; value = rccGetOptionDefaultValue(option); |