From 2317ca9f4e19292fbbf6b758d99b495817dc7542 Mon Sep 17 00:00:00 2001
From: Garth Minette <gminette@gmail.com>
Date: Thu, 28 Jan 2021 18:54:34 -0800
Subject: [PATCH] _undef -> _UNDEF

---
 common.scad  | 24 ++++++++++++------------
 version.scad |  2 +-
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/common.scad b/common.scad
index 18dbb54..2a51a3b 100644
--- a/common.scad
+++ b/common.scad
@@ -271,21 +271,21 @@ function first_defined(v,recursive=false,_i=0) =
 // Examples:
 //   length = one_defined([length,L,l], ["length","L","l"]);
 //   length = one_defined([length,L,l], "length,L,l", dflt=1);
-function one_defined(vals, names, dflt=_undef) =
+function one_defined(vals, names, dflt=_UNDEF) =
     let(
         checkargs = is_list(names)? assert(len(vals) == len(names)) :
             is_string(names)? let(
                 name_cnt = len([for (c=names) if (c==",") 1]) + 1
             ) assert(len(vals) == name_cnt) :
             assert(is_list(names) || is_string(names)) 0,
-        ok = num_defined(vals)==1 || (dflt!=_undef && num_defined(vals)==0)
+        ok = num_defined(vals)==1 || (dflt!=_UNDEF && num_defined(vals)==0)
     ) ok? default(first_defined(vals), dflt) :
     let(
         names = is_string(names) ? str_split(names,",") : names,
         defd = [for (i=idx(vals)) if (is_def(vals[i])) names[i]],
         msg = str(
             "Must define ",
-            dflt==_undef? "exactly" : "at most",
+            dflt==_UNDEF? "exactly" : "at most",
             " one of ",
             num_defined(vals) == 0 ? names : defd
         )
@@ -420,7 +420,7 @@ function get_radius(r1, r2, r, d1, d2, d, dflt) =
 
 // Function: get_named_args()
 // Usage:
-//   function f(pos1=_undef, pos2=_undef,...,named1=_undef, named2=_undef, ...) = let(args = get_named_args([pos1, pos2, ...], [[named1, default1], [named2, default2], ...]), named1=args[0], named2=args[1], ...)
+//   function f(pos1=_UNDEF, pos2=_UNDEF,...,named1=_UNDEF, named2=_UNDEF, ...) = let(args = get_named_args([pos1, pos2, ...], [[named1, default1], [named2, default2], ...]), named1=args[0], named2=args[1], ...)
 // Description:
 //   Given the values of some positional and named arguments, returns a list of the values assigned to
 //   named parameters.  in the following steps:
@@ -441,18 +441,18 @@ function get_radius(r1, r2, r, d1, d2, d, dflt) =
 //   `get_named_args()` do the parsing from the whole set of arguments.  See the example below.
 //   .
 //   This supports the user explicitly passing `undef` as a function argument.  To distinguish between
-//   an intentional `undef` and the absence of an argument, we use a custom `_undef` value as a guard
-//   marking the absence of any arguments (in practice, `_undef` is a random-generated string, which
+//   an intentional `undef` and the absence of an argument, we use a custom `_UNDEF` value as a guard
+//   marking the absence of any arguments (in practice, `_UNDEF` is a random-generated string, which
 //   will never coincide with any useful user value).  This forces the author to declare all the
-//   function parameters as having `_undef` as their default value.
+//   function parameters as having `_UNDEF` as their default value.
 // Arguments:
 //   positional = The list of values of positional arguments.
 //   named = The list of named arguments; each entry of the list has the form `[passed-value, <default-value>, <priority>]`, where `passed-value` is the value that was passed at function call; `default-value` is the value that will be used if nothing is read from either named or positional arguments; `priority` is the priority assigned to this argument (lower means more priority, default value is `+inf`). Since stable sorting is used, if no priority at all is given, all arguments will be read in order.
-//   _undef = The default value used by the calling function for all arguments. The default value, `_undef`, is a random string. This value **must** be the default value of all parameters in the outer function call (see example below).
+//   _undef = The default value used by the calling function for all arguments. The default value, `_UNDEF`, is a random string. This value **must** be the default value of all parameters in the outer function call (see example below).
 //
 // Example: a function with prototype `f(named1,< <named2>, named3 >)`
-//   function f(_p1=_undef, _p2=_undef, _p3=_undef,
-//              arg1=_undef, arg2=_undef, arg3=_undef) =
+//   function f(_p1=_UNDEF, _p2=_UNDEF, _p3=_UNDEF,
+//              arg1=_UNDEF, arg2=_UNDEF, arg3=_UNDEF) =
 //      let(named = get_named_args([_p1, _p2, _p3],
 //          [[arg1, "default1",0], [arg2, "default2",2], [arg3, "default3",1]]))
 //      named;
@@ -474,13 +474,13 @@ function get_radius(r1, r2, r, d1, d2, d, dflt) =
 
 // a value that the user should never enter randomly;
 // result of `dd if=/dev/random bs=32 count=1 |base64` :
-_undef="LRG+HX7dy89RyHvDlAKvb9Y04OTuaikpx205CTh8BSI";
+_UNDEF="LRG+HX7dy89RyHvDlAKvb9Y04OTuaikpx205CTh8BSI";
 
 /* Note: however tempting it might be, it is *not* possible to accept
  * named argument as a list [named1, named2, ...] (without default
  * values), because the values [named1, named2...] themselves might be
  * lists, and we will not be able to distinguish the two cases. */
-function get_named_args(positional, named,_undef=_undef) =
+function get_named_args(positional, named, _undef=_UNDEF) =
     let(deft = [for(p=named) p[1]], // default is undef
         // indices of the values to fetch from positional args:
         unknown = [for(x=enumerate(named)) if(x[1][0]==_undef) x[0]],
diff --git a/version.scad b/version.scad
index 84fac7f..37b6d26 100644
--- a/version.scad
+++ b/version.scad
@@ -6,7 +6,7 @@
 //////////////////////////////////////////////////////////////////////
 
 
-BOSL_VERSION = [2,0,549];
+BOSL_VERSION = [2,0,550];
 
 
 // Section: BOSL Library Version Functions