From cd25c7acb237b16c7c659aaa8154f49f033b8424 Mon Sep 17 00:00:00 2001 From: Thomas Breloff Date: Fri, 6 May 2016 11:39:17 -0400 Subject: [PATCH] markershape fix; added require option for recipes --- src/args.jl | 3 ++- src/recipes.jl | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/args.jl b/src/args.jl index 091634e6..aab66cdb 100644 --- a/src/args.jl +++ b/src/args.jl @@ -625,7 +625,8 @@ function preprocessArgs!(d::KW) kw = KW() for k in keys(d) try - default(k) + # this should error for invalid keywords (assume they are user-defined) + k == :markershape_to_add || default(k) catch # not a valid key... pop and add to user list kw[k] = pop!(d, k) diff --git a/src/recipes.jl b/src/recipes.jl index 9326bc32..aba9c09f 100644 --- a/src/recipes.jl +++ b/src/recipes.jl @@ -52,11 +52,13 @@ function replace_recipe_arrows!(expr::Expr) # process trailing flags, like: # a --> b, :quiet, :force - quiet, force = false, false + quiet, require, force = false, false, false if _is_arrow_tuple(e) for flag in e.args if _equals_symbol(flag, :quiet) quiet = true + elseif _equals_symbol(flag, :require) + require = true elseif _equals_symbol(flag, :force) force = true end @@ -80,6 +82,9 @@ function replace_recipe_arrows!(expr::Expr) expr.args[i] = if quiet # quietly ignore keywords which are not supported :($keyexpr in supportedArgs() ? $set_expr : nothing) + elseif require + # error when not supported by the backend + :($keyexpr in supportedArgs() ? $set_expr : error("In recipe: required keyword ", $k, " is not supported by backend $(backend_name())")) else set_expr end