markershape fix; added require option for recipes

This commit is contained in:
Thomas Breloff 2016-05-06 11:39:17 -04:00
parent cf03779c5b
commit cd25c7acb2
2 changed files with 8 additions and 2 deletions

View File

@ -625,7 +625,8 @@ function preprocessArgs!(d::KW)
kw = KW() kw = KW()
for k in keys(d) for k in keys(d)
try try
default(k) # this should error for invalid keywords (assume they are user-defined)
k == :markershape_to_add || default(k)
catch catch
# not a valid key... pop and add to user list # not a valid key... pop and add to user list
kw[k] = pop!(d, k) kw[k] = pop!(d, k)

View File

@ -52,11 +52,13 @@ function replace_recipe_arrows!(expr::Expr)
# process trailing flags, like: # process trailing flags, like:
# a --> b, :quiet, :force # a --> b, :quiet, :force
quiet, force = false, false quiet, require, force = false, false, false
if _is_arrow_tuple(e) if _is_arrow_tuple(e)
for flag in e.args for flag in e.args
if _equals_symbol(flag, :quiet) if _equals_symbol(flag, :quiet)
quiet = true quiet = true
elseif _equals_symbol(flag, :require)
require = true
elseif _equals_symbol(flag, :force) elseif _equals_symbol(flag, :force)
force = true force = true
end end
@ -80,6 +82,9 @@ function replace_recipe_arrows!(expr::Expr)
expr.args[i] = if quiet expr.args[i] = if quiet
# quietly ignore keywords which are not supported # quietly ignore keywords which are not supported
:($keyexpr in supportedArgs() ? $set_expr : nothing) :($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 else
set_expr set_expr
end end