[gnumeric] Dependencies: reduce code duplication.



commit 90c2eaa3d20229cf7c578bedcfe6ed84e6675016
Author: Morten Welinder <terra gnome org>
Date:   Sat Jul 21 10:26:53 2012 -0400

    Dependencies: reduce code duplication.
    
    The link/unlink functions absolutely need to be in sync.  Enforce that
    by having one combined function.

 ChangeLog                                     |    9 +
 NEWS                                          |    1 +
 plugins/fn-christian-date/functions.c         |   10 +-
 plugins/fn-complex/functions.c                |   84 +++++-----
 plugins/fn-database/functions.c               |   26 ++--
 plugins/fn-date/functions.c                   |   54 +++---
 plugins/fn-derivatives/options.c              |   58 ++++----
 plugins/fn-eng/functions.c                    |   50 +++---
 plugins/fn-erlang/functions.c                 |    8 +-
 plugins/fn-financial/functions.c              |  114 +++++++-------
 plugins/fn-hebrew-date/functions.c            |   18 +-
 plugins/fn-info/functions.c                   |   48 +++---
 plugins/fn-logical/functions.c                |   16 +-
 plugins/fn-lookup/functions.c                 |   42 +++---
 plugins/fn-math/functions.c                   |  166 +++++++++---------
 plugins/fn-numtheory/numtheory.c              |   26 ++--
 plugins/fn-r/functions.c                      |   96 ++++++------
 plugins/fn-random/functions.c                 |   68 ++++----
 plugins/fn-stat/functions.c                   |  204 +++++++++++-----------
 plugins/fn-string/functions.c                 |   70 ++++----
 plugins/fn-tsa/functions.c                    |   10 +-
 plugins/sample_datasource/sample_datasource.c |   39 ++---
 src/dependent.c                               |  222 ++++++++----------------
 src/dependent.h                               |    1 -
 src/func-builtin.c                            |   19 ++-
 src/func.c                                    |    4 -
 src/func.h                                    |    5 +-
 27 files changed, 699 insertions(+), 769 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 1dab112..d48b934 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2012-07-20  Morten Welinder  <terra gnome org>
+
+	* src/dependent.c (link_cellrange_dep, unlink_cellrange_dep):
+	merge into link_unlink_cellrange_dep.
+	(link_expr_dep, unlink_expr_dep): merge into link_unlink_expr_dep.
+
+	* src/func.h (_GnmFuncDescriptor, _GnmFunc): Merge unlinker into
+	linker.  All users changed.
+
 2012-07-20  Jean Brefort  <jean brefort normalesup org>
 
 	* component/gnumeric.c (go_gnm_component_get_data),
diff --git a/NEWS b/NEWS
index 1b68e5b..72213b3 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,7 @@ Andreas:
 
 Morten:
 	* Fix xls read crash.  [#679992]
+	* Reduce code duplication for dependencies.
 
 --------------------------------------------------------------------------
 Gnumeric 1.11.5
diff --git a/plugins/fn-christian-date/functions.c b/plugins/fn-christian-date/functions.c
index 9725692..5745a4f 100644
--- a/plugins/fn-christian-date/functions.c
+++ b/plugins/fn-christian-date/functions.c
@@ -238,27 +238,27 @@ gnumeric_ascensionthursday (GnmFuncEvalInfo * ei, GnmValue const * const *argv)
 
 GnmFuncDescriptor const datetime_functions[] = {
 	{"ascensionthursday", "|f", help_ascensionthursday,
-	 gnumeric_ascensionthursday, NULL, NULL, NULL, NULL,
+	 gnumeric_ascensionthursday, NULL, NULL, NULL,
 	 GNM_FUNC_VOLATILE + GNM_FUNC_AUTO_DATE,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	{"ashwednesday", "|f", help_ashwednesday,
-	 gnumeric_ashwednesday, NULL, NULL, NULL, NULL,
+	 gnumeric_ashwednesday, NULL, NULL, NULL,
 	 GNM_FUNC_VOLATILE + GNM_FUNC_AUTO_DATE,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	{"eastersunday", "|f", help_eastersunday,
-	 gnumeric_eastersunday, NULL, NULL, NULL, NULL,
+	 gnumeric_eastersunday, NULL, NULL, NULL,
 	 GNM_FUNC_VOLATILE + GNM_FUNC_AUTO_DATE,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	{"goodfriday", "|f", help_goodfriday,
-	 gnumeric_goodfriday, NULL, NULL, NULL, NULL,
+	 gnumeric_goodfriday, NULL, NULL, NULL,
 	 GNM_FUNC_VOLATILE + GNM_FUNC_AUTO_DATE,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	{"pentecostsunday", "|f", help_pentecostsunday,
-	 gnumeric_pentecostsunday, NULL, NULL, NULL, NULL,
+	 gnumeric_pentecostsunday, NULL, NULL, NULL,
 	 GNM_FUNC_VOLATILE + GNM_FUNC_AUTO_DATE,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
diff --git a/plugins/fn-complex/functions.c b/plugins/fn-complex/functions.c
index 8c92ed4..09be5e7 100644
--- a/plugins/fn-complex/functions.c
+++ b/plugins/fn-complex/functions.c
@@ -1232,131 +1232,131 @@ gnumeric_imsum (GnmFuncEvalInfo *ei, int argc, GnmExprConstPtr const *argv)
 
 GnmFuncDescriptor const complex_functions[] = {
         { "complex",     "ff|s",  help_complex,
-	  gnumeric_complex, NULL, NULL, NULL, NULL,
+	  gnumeric_complex, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imabs",       "S",     help_imabs,
-	  gnumeric_imabs, NULL, NULL, NULL, NULL,
+	  gnumeric_imabs, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imaginary",   "S",     help_imaginary,
-	  gnumeric_imaginary, NULL, NULL, NULL, NULL,
+	  gnumeric_imaginary, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imargument",  "S",     help_imargument,
-	  gnumeric_imargument, NULL, NULL, NULL, NULL,
+	  gnumeric_imargument, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imconjugate", "S",     help_imconjugate,
-	  gnumeric_imconjugate, NULL, NULL, NULL, NULL,
+	  gnumeric_imconjugate, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imcos",       "S",     help_imcos,
-	  gnumeric_imcos, NULL, NULL, NULL, NULL,
+	  gnumeric_imcos, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imdiv",       "SS",    help_imdiv,
-	  gnumeric_imdiv, NULL, NULL, NULL, NULL,
+	  gnumeric_imdiv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imexp",       "S",     help_imexp,
-	  gnumeric_imexp, NULL, NULL, NULL, NULL,
+	  gnumeric_imexp, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imln",        "S",     help_imln,
-	  gnumeric_imln, NULL, NULL, NULL, NULL,
+	  gnumeric_imln, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imlog10",     "S",     help_imlog10,
-	  gnumeric_imlog10, NULL, NULL, NULL, NULL,
+	  gnumeric_imlog10, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imlog2",      "S",     help_imlog2,
-	  gnumeric_imlog2, NULL, NULL, NULL, NULL,
+	  gnumeric_imlog2, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "impower",     "SS",    help_impower,
-	  gnumeric_impower, NULL, NULL, NULL, NULL,
+	  gnumeric_impower, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imreal",      "S",     help_imreal,
-	  gnumeric_imreal, NULL, NULL, NULL, NULL,
+	  gnumeric_imreal, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imsin",       "S",     help_imsin,
-	  gnumeric_imsin, NULL, NULL, NULL, NULL,
+	  gnumeric_imsin, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imsqrt",      "S",     help_imsqrt,
-	  gnumeric_imsqrt, NULL, NULL, NULL, NULL,
+	  gnumeric_imsqrt, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imsub",       "SS",    help_imsub,
-	  gnumeric_imsub, NULL, NULL, NULL, NULL,
+	  gnumeric_imsub, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imsum",       NULL,    help_imsum,
-	  NULL, gnumeric_imsum, NULL, NULL, NULL,
+	  NULL, gnumeric_imsum, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
         { "iminv",   "S",     help_iminv,
-	  gnumeric_iminv, NULL, NULL, NULL, NULL,
+	  gnumeric_iminv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "imneg",   "S",     help_imneg,
-	  gnumeric_imneg, NULL, NULL, NULL, NULL,
+	  gnumeric_imneg, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imtan",       "S",     help_imtan,
-	  gnumeric_imtan, NULL, NULL, NULL, NULL,
+	  gnumeric_imtan, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "improduct",   NULL,    help_improduct,
-	  NULL, gnumeric_improduct, NULL, NULL, NULL,
+	  NULL, gnumeric_improduct, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imsec",       "S",     help_imsec,
-	  gnumeric_imsec, NULL, NULL, NULL, NULL,
+	  gnumeric_imsec, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imcsc",       "S",     help_imcsc,
-	  gnumeric_imcsc, NULL, NULL, NULL, NULL,
+	  gnumeric_imcsc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imcot",       "S",     help_imcot,
-	  gnumeric_imcot, NULL, NULL, NULL, NULL,
+	  gnumeric_imcot, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imsinh",       "S",    help_imsinh,
-	  gnumeric_imsinh, NULL, NULL, NULL, NULL,
+	  gnumeric_imsinh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imcosh",       "S",    help_imcosh,
-	  gnumeric_imcosh, NULL, NULL, NULL, NULL,
+	  gnumeric_imcosh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imtanh",       "S",    help_imtanh,
-	  gnumeric_imtanh, NULL, NULL, NULL, NULL,
+	  gnumeric_imtanh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imsech",       "S",    help_imsech,
-	  gnumeric_imsech, NULL, NULL, NULL, NULL,
+	  gnumeric_imsech, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imcsch",       "S",    help_imcsch,
-	  gnumeric_imcsch, NULL, NULL, NULL, NULL,
+	  gnumeric_imcsch, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imcoth",       "S",    help_imcoth,
-	  gnumeric_imcoth, NULL, NULL, NULL, NULL,
+	  gnumeric_imcoth, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imarcsin",     "S",    help_imarcsin,
-	  gnumeric_imarcsin, NULL, NULL, NULL, NULL,
+	  gnumeric_imarcsin, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imarccos",     "S",    help_imarccos,
-	  gnumeric_imarccos, NULL, NULL, NULL, NULL,
+	  gnumeric_imarccos, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imarctan",     "S",    help_imarctan,
-	  gnumeric_imarctan, NULL, NULL, NULL, NULL,
+	  gnumeric_imarctan, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imarcsec",     "S",    help_imarcsec,
-	  gnumeric_imarcsec, NULL, NULL, NULL, NULL,
+	  gnumeric_imarcsec, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imarccsc",     "S",    help_imarccsc,
-	  gnumeric_imarccsc, NULL, NULL, NULL, NULL,
+	  gnumeric_imarccsc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imarccot",     "S",    help_imarccot,
-	  gnumeric_imarccot, NULL, NULL, NULL, NULL,
+	  gnumeric_imarccot, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imarcsinh",    "S",    help_imarcsinh,
-	  gnumeric_imarcsinh, NULL, NULL, NULL, NULL,
+	  gnumeric_imarcsinh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imarccosh",    "S",    help_imarccosh,
-	  gnumeric_imarccosh, NULL, NULL, NULL, NULL,
+	  gnumeric_imarccosh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imarctanh",    "S",    help_imarctanh,
-	  gnumeric_imarctanh, NULL, NULL, NULL, NULL,
+	  gnumeric_imarctanh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imarcsech",    "S",    help_imarcsech,
-	  gnumeric_imarcsech, NULL, NULL, NULL, NULL,
+	  gnumeric_imarcsech, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imarccsch",    "S",    help_imarccsch,
-	  gnumeric_imarccsch, NULL, NULL, NULL, NULL,
+	  gnumeric_imarccsch, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "imarccoth",    "S",    help_imarccoth,
-	  gnumeric_imarccoth, NULL, NULL, NULL, NULL,
+	  gnumeric_imarccoth, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         {NULL}
 };
diff --git a/plugins/fn-database/functions.c b/plugins/fn-database/functions.c
index acc6a55..768bc3c 100644
--- a/plugins/fn-database/functions.c
+++ b/plugins/fn-database/functions.c
@@ -770,45 +770,45 @@ gnumeric_getpivotdata (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 
 const GnmFuncDescriptor database_functions[] = {
 	{ "daverage", "rSr",
-	  help_daverage,   gnumeric_daverage, NULL, NULL, NULL, NULL,
+	  help_daverage,   gnumeric_daverage, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dcount",   "rSr",
-	  help_dcount,     gnumeric_dcount, NULL, NULL, NULL, NULL,
+	  help_dcount,     gnumeric_dcount, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dcounta",  "rSr",
-	  help_dcounta,    gnumeric_dcounta, NULL, NULL, NULL, NULL,
+	  help_dcounta,    gnumeric_dcounta, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dget",     "rSr",
-	  help_dget,       gnumeric_dget, NULL, NULL, NULL, NULL,
+	  help_dget,       gnumeric_dget, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dmax",     "rSr",
-	  help_dmax,       gnumeric_dmax, NULL, NULL, NULL, NULL,
+	  help_dmax,       gnumeric_dmax, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dmin",     "rSr",
-	  help_dmin,       gnumeric_dmin, NULL, NULL, NULL, NULL,
+	  help_dmin,       gnumeric_dmin, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dproduct", "rSr",
-	  help_dproduct,   gnumeric_dproduct, NULL, NULL, NULL, NULL,
+	  help_dproduct,   gnumeric_dproduct, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dstdev",   "rSr",
-	  help_dstdev,     gnumeric_dstdev, NULL, NULL, NULL, NULL,
+	  help_dstdev,     gnumeric_dstdev, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dstdevp",  "rSr",
-	  help_dstdevp,    gnumeric_dstdevp, NULL, NULL, NULL, NULL,
+	  help_dstdevp,    gnumeric_dstdevp, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dsum",     "rSr",
-	  help_dsum,       gnumeric_dsum, NULL, NULL, NULL, NULL,
+	  help_dsum,       gnumeric_dsum, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dvar",     "rSr",
-	  help_dvar,       gnumeric_dvar, NULL, NULL, NULL, NULL,
+	  help_dvar,       gnumeric_dvar, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dvarp",    "rSr",
-	  help_dvarp,      gnumeric_dvarp, NULL, NULL, NULL, NULL,
+	  help_dvarp,      gnumeric_dvarp, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
 /* XL stores in lookup */
 	{ "getpivotdata", "rs",
-	  help_getpivotdata, gnumeric_getpivotdata, NULL, NULL, NULL, NULL,
+	  help_getpivotdata, gnumeric_getpivotdata, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_SUBSET, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
         {NULL}
diff --git a/plugins/fn-date/functions.c b/plugins/fn-date/functions.c
index b159148..51a6ab1 100644
--- a/plugins/fn-date/functions.c
+++ b/plugins/fn-date/functions.c
@@ -1318,112 +1318,112 @@ gnumeric_days (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 
 GnmFuncDescriptor const datetime_functions[] = {
 	{ "date",        "fff",   help_date,
-	  gnumeric_date, NULL, NULL, NULL, NULL,
+	  gnumeric_date, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_DATE,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "datevalue",   "f",     help_datevalue,
-	  gnumeric_datevalue, NULL, NULL, NULL, NULL,
+	  gnumeric_datevalue, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "datedif",     "ffs",   help_datedif,
-	  gnumeric_datedif, NULL, NULL, NULL, NULL,
+	  gnumeric_datedif, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "day",         "f",     help_day,
-	  gnumeric_day, NULL, NULL, NULL, NULL,
+	  gnumeric_day, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "days360",     "ff|f",  help_days360,
-	  gnumeric_days360, NULL, NULL, NULL, NULL,
+	  gnumeric_days360, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "edate",       "ff",    help_edate,
-	  gnumeric_edate, NULL, NULL, NULL, NULL,
+	  gnumeric_edate, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_DATE,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "eomonth",     "f|f",   help_eomonth,
-	  gnumeric_eomonth, NULL, NULL, NULL, NULL,
+	  gnumeric_eomonth, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_DATE,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "hour",        "f",     help_hour,
-	  gnumeric_hour, NULL, NULL, NULL, NULL,
+	  gnumeric_hour, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "minute",      "f",     help_minute,
-	  gnumeric_minute, NULL, NULL, NULL, NULL,
+	  gnumeric_minute, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "month",       "f",     help_month,
-	  gnumeric_month, NULL, NULL, NULL, NULL,
+	  gnumeric_month, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "networkdays", "ff|?A",
-	  help_networkdays, gnumeric_networkdays, NULL, NULL, NULL, NULL,
+	  help_networkdays, gnumeric_networkdays, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "now",         "", help_now,
-	  gnumeric_now, NULL, NULL, NULL, NULL,
+	  gnumeric_now, NULL, NULL, NULL,
 	  GNM_FUNC_VOLATILE + GNM_FUNC_AUTO_TIME,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "odf.time",        "fff",   help_odf_time,
-	  gnumeric_odf_time, NULL, NULL, NULL, NULL,
+	  gnumeric_odf_time, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_TIME,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "second",      "f",     help_second,
-	  gnumeric_second, NULL, NULL, NULL, NULL,
+	  gnumeric_second, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "time",        "fff",   help_time,
-	  gnumeric_time, NULL, NULL, NULL, NULL,
+	  gnumeric_time, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_TIME,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "timevalue",   "f",     help_timevalue,
-	  gnumeric_timevalue, NULL, NULL, NULL, NULL,
+	  gnumeric_timevalue, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "today",       "", help_today,
-	  gnumeric_today, NULL, NULL, NULL, NULL,
+	  gnumeric_today, NULL, NULL, NULL,
 	  GNM_FUNC_VOLATILE + GNM_FUNC_AUTO_DATE,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "weekday",     "f|f",   help_weekday,
-	  gnumeric_weekday, NULL, NULL, NULL, NULL,
+	  gnumeric_weekday, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "weeknum",     "f|f",   help_weeknum,
-	  gnumeric_weeknum, NULL, NULL, NULL, NULL,
+	  gnumeric_weeknum, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "workday",     "ff|?A",  help_workday,
-	  gnumeric_workday, NULL, NULL, NULL, NULL,
+	  gnumeric_workday, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_DATE,
 	  GNM_FUNC_IMPL_STATUS_SUBSET, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "year",        "f",     help_year,
-	  gnumeric_year, NULL, NULL, NULL, NULL,
+	  gnumeric_year, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "yearfrac",	"ff|f",     help_yearfrac,
-	  gnumeric_yearfrac, NULL, NULL, NULL, NULL,
+	  gnumeric_yearfrac, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
 	{ "unix2date",   "f",     help_unix2date,
-	  gnumeric_unix2date, NULL, NULL, NULL, NULL,
+	  gnumeric_unix2date, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_DATE,
 	  GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "date2unix",   "f",     help_date2unix,
-	  gnumeric_date2unix, NULL, NULL, NULL, NULL,
+	  gnumeric_date2unix, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "isoweeknum",  "f",     help_isoweeknum,
-	  gnumeric_isoweeknum, NULL, NULL, NULL, NULL,
+	  gnumeric_isoweeknum, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "isoyear",     "f",     help_isoyear,
-	  gnumeric_isoyear, NULL, NULL, NULL, NULL,
+	  gnumeric_isoyear, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "days", "ff",
-	  help_days, gnumeric_days, NULL, NULL, NULL, NULL,
+	  help_days, gnumeric_days, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         {NULL}
diff --git a/plugins/fn-derivatives/options.c b/plugins/fn-derivatives/options.c
index 532514e..79e0ec0 100644
--- a/plugins/fn-derivatives/options.c
+++ b/plugins/fn-derivatives/options.c
@@ -1973,148 +1973,148 @@ static GnmFuncHelp const help_opt_binomial[] = {
 GnmFuncDescriptor const derivatives_functions [] = {
 	{ "opt_bs",
 	  "sfffff|f",
-	  help_opt_bs, opt_bs, NULL, NULL, NULL, NULL,
+	  help_opt_bs, opt_bs, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_bs_delta",
 	  "sfffff|f",
-	  help_opt_bs_delta, opt_bs_delta, NULL, NULL, NULL, NULL,
+	  help_opt_bs_delta, opt_bs_delta, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_bs_rho",
 	  "sfffff|f",
-	  help_opt_bs_rho, opt_bs_rho, NULL, NULL, NULL, NULL,
+	  help_opt_bs_rho, opt_bs_rho, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_bs_theta",
 	  "sfffff|f",
-	  help_opt_bs_theta, opt_bs_theta, NULL, NULL, NULL, NULL,
+	  help_opt_bs_theta, opt_bs_theta, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_bs_gamma",
 	  "fffff|f",
-	  help_opt_bs_gamma, opt_bs_gamma, NULL, NULL, NULL, NULL,
+	  help_opt_bs_gamma, opt_bs_gamma, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_bs_vega",
 	  "fffff|f",
-	  help_opt_bs_vega, opt_bs_vega, NULL, NULL, NULL, NULL,
+	  help_opt_bs_vega, opt_bs_vega, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_bs_carrycost",
 	  "sfffff|f",
-	  help_opt_bs_carrycost, opt_bs_carrycost, NULL, NULL, NULL, NULL,
+	  help_opt_bs_carrycost, opt_bs_carrycost, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "cum_biv_norm_dist",
 	  "fff",
-	  help_cum_biv_norm_dist, cum_biv_norm_dist, NULL, NULL, NULL, NULL,
+	  help_cum_biv_norm_dist, cum_biv_norm_dist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
 	{ "opt_garman_kohlhagen",
 	  "sffffff",
-	  help_opt_garman_kohlhagen, opt_garman_kohlhagen, NULL, NULL, NULL, NULL,
+	  help_opt_garman_kohlhagen, opt_garman_kohlhagen, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_french",
 	  "sfffffff",
-	  help_opt_french, opt_french, NULL, NULL, NULL, NULL,
+	  help_opt_french, opt_french, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_jump_diff",
 	  "sfffffff",
-	  help_opt_jump_diff, opt_jump_diff, NULL, NULL, NULL, NULL,
+	  help_opt_jump_diff, opt_jump_diff, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_exec",
 	  "sfffffff",
-	  help_opt_exec, opt_exec, NULL, NULL, NULL, NULL,
+	  help_opt_exec, opt_exec, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_bjer_stens",
 	  "sffffff",
-	  help_opt_bjer_stens, opt_bjer_stens, NULL, NULL, NULL, NULL,
+	  help_opt_bjer_stens, opt_bjer_stens, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_miltersen_schwartz",
 	  "sfffffffffffff",
-	  help_opt_miltersen_schwartz, opt_miltersen_schwartz, NULL, NULL, NULL, NULL,
+	  help_opt_miltersen_schwartz, opt_miltersen_schwartz, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_baw_amer",
 	  "sffffff",
-	  help_opt_baw_amer, opt_baw_amer, NULL, NULL, NULL, NULL,
+	  help_opt_baw_amer, opt_baw_amer, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_rgw",
 	  "fffffff",
-	  help_opt_rgw, opt_rgw, NULL, NULL, NULL, NULL,
+	  help_opt_rgw, opt_rgw, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_forward_start",
 	  "sfffffff",
-	  help_opt_forward_start, opt_forward_start, NULL, NULL, NULL, NULL,
+	  help_opt_forward_start, opt_forward_start, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_time_switch",
 	  "sfffffffff",
-	  help_opt_time_switch, opt_time_switch, NULL, NULL, NULL, NULL,
+	  help_opt_time_switch, opt_time_switch, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_simple_chooser",
 	  "fffffff",
-	  help_opt_simple_chooser, opt_simple_chooser, NULL, NULL, NULL, NULL,
+	  help_opt_simple_chooser, opt_simple_chooser, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_complex_chooser",
 	  "fffffffff",
-	  help_opt_complex_chooser, opt_complex_chooser, NULL, NULL, NULL, NULL,
+	  help_opt_complex_chooser, opt_complex_chooser, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_on_options",
 	  "sffffffff",
-	  help_opt_on_options, opt_on_options, NULL, NULL, NULL, NULL,
+	  help_opt_on_options, opt_on_options, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_extendible_writer",
 	  "sffffffff",
-	  help_opt_extendible_writer, opt_extendible_writer, NULL, NULL, NULL, NULL,
+	  help_opt_extendible_writer, opt_extendible_writer, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_2_asset_correlation",
 	  "sfffffffffff",
-	  help_opt_2_asset_correlation, opt_2_asset_correlation, NULL, NULL, NULL, NULL,
+	  help_opt_2_asset_correlation, opt_2_asset_correlation, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_euro_exchange",
 	  "fffffffffff",
-	  help_opt_euro_exchange, opt_euro_exchange, NULL, NULL, NULL, NULL,
+	  help_opt_euro_exchange, opt_euro_exchange, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_amer_exchange",
 	  "fffffffffff",
-	  help_opt_amer_exchange, opt_amer_exchange, NULL, NULL, NULL, NULL,
+	  help_opt_amer_exchange, opt_amer_exchange, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_spread_approx",
 	  "sffffffff",
-	  help_opt_spread_approx, opt_spread_approx, NULL, NULL, NULL, NULL,
+	  help_opt_spread_approx, opt_spread_approx, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_float_strk_lkbk",
 	  "sfffffff",
-	  help_opt_float_strk_lkbk, opt_float_strk_lkbk, NULL, NULL, NULL, NULL,
+	  help_opt_float_strk_lkbk, opt_float_strk_lkbk, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "opt_fixed_strk_lkbk",
 	  "sffffffff",
-	  help_opt_fixed_strk_lkbk, opt_fixed_strk_lkbk, NULL, NULL, NULL, NULL,
+	  help_opt_fixed_strk_lkbk, opt_fixed_strk_lkbk, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 
 	{ "opt_binomial",
 	  "ssffffff|f",
-	  help_opt_binomial, opt_binomial, NULL, NULL, NULL, NULL,
+	  help_opt_binomial, opt_binomial, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ NULL}
diff --git a/plugins/fn-eng/functions.c b/plugins/fn-eng/functions.c
index bc2a002..68ccda1 100644
--- a/plugins/fn-eng/functions.c
+++ b/plugins/fn-eng/functions.c
@@ -1252,88 +1252,88 @@ gnumeric_invsuminv (GnmFuncEvalInfo *ei, int argc, GnmExprConstPtr const *argv)
 
 GnmFuncDescriptor const engineering_functions[] = {
         { "base",     "Sf|f",    help_base,
-	  gnumeric_base, NULL, NULL, NULL, NULL,
+	  gnumeric_base, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
         { "besseli",     "ff",    help_besseli,
-	  gnumeric_besseli, NULL, NULL, NULL, NULL,
+	  gnumeric_besseli, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "besselj",     "ff",    help_besselj,
-	  gnumeric_besselj, NULL, NULL, NULL, NULL,
+	  gnumeric_besselj, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "besselk",     "ff",    help_besselk,
-	  gnumeric_besselk, NULL, NULL, NULL, NULL,
+	  gnumeric_besselk, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "bessely",     "ff",    help_bessely,
-	  gnumeric_bessely, NULL, NULL, NULL, NULL,
+	  gnumeric_bessely, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
         { "bin2dec",     "S",     help_bin2dec,
-	  gnumeric_bin2dec, NULL, NULL, NULL, NULL,
+	  gnumeric_bin2dec, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "bin2hex",     "S|f",   help_bin2hex,
-	  gnumeric_bin2hex, NULL, NULL, NULL, NULL,
+	  gnumeric_bin2hex, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "bin2oct",     "S|f",   help_bin2oct,
-	  gnumeric_bin2oct, NULL, NULL, NULL, NULL,
+	  gnumeric_bin2oct, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
         { "convert",     "fss",   help_convert,
-	  gnumeric_convert, NULL, NULL, NULL, NULL,
+	  gnumeric_convert, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "dec2bin",     "S|f",   help_dec2bin,
-	  gnumeric_dec2bin, NULL, NULL, NULL, NULL,
+	  gnumeric_dec2bin, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "dec2oct",     "S|f",   help_dec2oct,
-	  gnumeric_dec2oct, NULL, NULL, NULL, NULL,
+	  gnumeric_dec2oct, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "dec2hex",     "S|f",   help_dec2hex,
-	  gnumeric_dec2hex, NULL, NULL, NULL, NULL,
+	  gnumeric_dec2hex, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "decimal",     "Sf",    help_decimal,
-	  gnumeric_decimal, NULL, NULL, NULL, NULL,
+	  gnumeric_decimal, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
         { "delta",       "f|f",   help_delta,
-	  gnumeric_delta, NULL, NULL, NULL, NULL,
+	  gnumeric_delta, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "erf",         "f|f",   help_erf,
-	  gnumeric_erf , NULL, NULL, NULL, NULL,
+	  gnumeric_erf , NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "erfc",        "f",     help_erfc,
-	  gnumeric_erfc, NULL, NULL, NULL, NULL,
+	  gnumeric_erfc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
         { "gestep",      "f|f",   help_gestep,
-	  gnumeric_gestep, NULL, NULL, NULL, NULL,
+	  gnumeric_gestep, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
         { "hex2bin",     "S|f",   help_hex2bin,
-	  gnumeric_hex2bin, NULL, NULL, NULL, NULL,
+	  gnumeric_hex2bin, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "hex2dec",     "S",     help_hex2dec,
-	  gnumeric_hex2dec, NULL, NULL, NULL, NULL,
+	  gnumeric_hex2dec, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "hex2oct",     "S|f",   help_hex2oct,
-	  gnumeric_hex2oct, NULL, NULL, NULL, NULL,
+	  gnumeric_hex2oct, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
         { "hexrep",     "f",   help_hexrep,
-	  gnumeric_hexrep, NULL, NULL, NULL, NULL,
+	  gnumeric_hexrep, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
 	{ "invsuminv",    NULL,            help_invsuminv,
-	  NULL, gnumeric_invsuminv, NULL, NULL, NULL,
+	  NULL, gnumeric_invsuminv, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
         { "oct2bin",     "S|f",   help_oct2bin,
-	  gnumeric_oct2bin, NULL, NULL, NULL, NULL,
+	  gnumeric_oct2bin, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "oct2dec",     "S",     help_oct2dec,
-	  gnumeric_oct2dec, NULL, NULL, NULL, NULL,
+	  gnumeric_oct2dec, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "oct2hex",     "S|f",   help_oct2hex,
-	  gnumeric_oct2hex, NULL, NULL, NULL, NULL,
+	  gnumeric_oct2hex, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
         {NULL}
diff --git a/plugins/fn-erlang/functions.c b/plugins/fn-erlang/functions.c
index d05eca6..5a55bc7 100644
--- a/plugins/fn-erlang/functions.c
+++ b/plugins/fn-erlang/functions.c
@@ -286,22 +286,22 @@ gnumeric_offcap (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 
 GnmFuncDescriptor const erlang_functions[] = {
 	{ "probblock",        "ff",   help_probblock,
-	  gnumeric_probblock, NULL, NULL, NULL, NULL,
+	  gnumeric_probblock, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_PERCENT,
 	  GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	  GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "offtraf",        "ff",   help_offtraf,
-	  gnumeric_offtraf, NULL, NULL, NULL, NULL,
+	  gnumeric_offtraf, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE,
 	  GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	  GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "dimcirc",        "ff",   help_dimcirc,
-	  gnumeric_dimcirc, NULL, NULL, NULL, NULL,
+	  gnumeric_dimcirc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE,
 	  GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	  GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "offcap",        "ff",   help_offcap,
-	  gnumeric_offcap, NULL, NULL, NULL, NULL,
+	  gnumeric_offcap, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE,
 	  GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	  GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
diff --git a/plugins/fn-financial/functions.c b/plugins/fn-financial/functions.c
index fcd1bd5..56e0363 100644
--- a/plugins/fn-financial/functions.c
+++ b/plugins/fn-financial/functions.c
@@ -3322,211 +3322,211 @@ gnumeric_vdb (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 
 GnmFuncDescriptor const financial_functions[] = {
 	{ "accrint", "ffff|fffb",
-	  help_accrint, gnumeric_accrint, NULL, NULL, NULL, NULL,
+	  help_accrint, gnumeric_accrint, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "accrintm", "fff|ff",
-	  help_accrintm, gnumeric_accrintm, NULL, NULL, NULL, NULL,
+	  help_accrintm, gnumeric_accrintm, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "amordegrc", "fffffff",
-	  help_amordegrc, gnumeric_amordegrc, NULL, NULL, NULL, NULL,
+	  help_amordegrc, gnumeric_amordegrc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "amorlinc", "fffffff",
-	  help_amorlinc, gnumeric_amorlinc, NULL, NULL, NULL, NULL,
+	  help_amorlinc, gnumeric_amorlinc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "coupdaybs", "fff|fb",
-	  help_coupdaybs, gnumeric_coupdaybs, NULL, NULL, NULL, NULL,
+	  help_coupdaybs, gnumeric_coupdaybs, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "coupdays", "fff|fb",
-	  help_coupdays, gnumeric_coupdays, NULL, NULL, NULL, NULL,
+	  help_coupdays, gnumeric_coupdays, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "coupdaysnc", "fff|fb",
-	  help_coupdaysnc, gnumeric_coupdaysnc, NULL, NULL, NULL, NULL,
+	  help_coupdaysnc, gnumeric_coupdaysnc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "coupncd", "fff|fb",
-	  help_coupncd, gnumeric_coupncd, NULL, NULL, NULL, NULL,
+	  help_coupncd, gnumeric_coupncd, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_DATE,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "coupnum", "fff|fb",
-	  help_coupnum, gnumeric_coupnum, NULL, NULL, NULL, NULL,
+	  help_coupnum, gnumeric_coupnum, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "couppcd", "fff|fb",
-	  help_couppcd, gnumeric_couppcd, NULL, NULL, NULL, NULL,
+	  help_couppcd, gnumeric_couppcd, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_DATE,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "cumipmt", "ffffff",
-	  help_cumipmt, gnumeric_cumipmt, NULL, NULL, NULL, NULL,
+	  help_cumipmt, gnumeric_cumipmt, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "cumprinc", "ffffff",
-	  help_cumprinc, gnumeric_cumprinc, NULL, NULL, NULL, NULL,
+	  help_cumprinc, gnumeric_cumprinc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "db", "ffff|f",
-	  help_db, gnumeric_db, NULL, NULL, NULL, NULL,
+	  help_db, gnumeric_db, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "ddb", "ffff|f",
-	  help_ddb, gnumeric_ddb, NULL, NULL, NULL, NULL,
+	  help_ddb, gnumeric_ddb, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "disc", "ffff|f",
-	  help_disc, gnumeric_disc, NULL, NULL, NULL, NULL,
+	  help_disc, gnumeric_disc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dollarde", "ff",
-	  help_dollarde, gnumeric_dollarde, NULL, NULL, NULL, NULL,
+	  help_dollarde, gnumeric_dollarde, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "dollarfr", "ff",
-	  help_dollarfr, gnumeric_dollarfr, NULL, NULL, NULL, NULL,
+	  help_dollarfr, gnumeric_dollarfr, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "duration", "fffff|f",
-	  help_duration, gnumeric_duration, NULL, NULL, NULL, NULL,
+	  help_duration, gnumeric_duration, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "effect", "ff",
-	  help_effect,	  gnumeric_effect, NULL, NULL, NULL, NULL,
+	  help_effect,	  gnumeric_effect, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_PERCENT,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "euro", "s",
-	  help_euro,	  gnumeric_euro, NULL, NULL, NULL, NULL,
+	  help_euro,	  gnumeric_euro, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "euroconvert", "fss|bf",
-	  help_euroconvert, gnumeric_euroconvert, NULL, NULL, NULL, NULL,
+	  help_euroconvert, gnumeric_euroconvert, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "fv", "fff|ff",
-	  help_fv,	  gnumeric_fv, NULL, NULL, NULL, NULL,
+	  help_fv,	  gnumeric_fv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "fvschedule", "fA",
-	  help_fvschedule, gnumeric_fvschedule, NULL, NULL, NULL, NULL,
+	  help_fvschedule, gnumeric_fvschedule, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "g_duration", "fff",
-	  help_g_duration, gnumeric_g_duration, NULL, NULL, NULL, NULL,
+	  help_g_duration, gnumeric_g_duration, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "intrate", "ffff|f",
-	  help_intrate,  gnumeric_intrate, NULL, NULL, NULL, NULL,
+	  help_intrate,  gnumeric_intrate, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_PERCENT,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "ipmt", "ffff|ff",
-	  help_ipmt,	  gnumeric_ipmt, NULL, NULL, NULL, NULL,
+	  help_ipmt,	  gnumeric_ipmt, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "irr", "A|f",
-	  help_irr,	  gnumeric_irr, NULL, NULL, NULL, NULL,
+	  help_irr,	  gnumeric_irr, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_PERCENT,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "ispmt", "ffff",
-	  help_ispmt,	gnumeric_ispmt, NULL, NULL, NULL, NULL,
+	  help_ispmt,	gnumeric_ispmt, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "mduration", "fffff|f",
-	  help_mduration, gnumeric_mduration, NULL, NULL, NULL, NULL,
+	  help_mduration, gnumeric_mduration, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "mirr", "Aff",
-	  help_mirr,	  gnumeric_mirr, NULL, NULL, NULL, NULL,
+	  help_mirr,	  gnumeric_mirr, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_PERCENT,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "nominal", "ff",
-	  help_nominal,  gnumeric_nominal, NULL, NULL, NULL, NULL,
+	  help_nominal,  gnumeric_nominal, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_PERCENT,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "nper", "fff|ff",
-	  help_nper,	  gnumeric_nper, NULL, NULL, NULL, NULL,
+	  help_nper,	  gnumeric_nper, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "npv", NULL,
-	  help_npv,	  NULL, gnumeric_npv, NULL, NULL, NULL,
+	  help_npv,	  NULL, gnumeric_npv, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "oddfprice", "fffffffff",
-	  help_oddfprice,  gnumeric_oddfprice, NULL, NULL, NULL, NULL,
+	  help_oddfprice,  gnumeric_oddfprice, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "oddfyield", "fffffffff",
-	  help_oddfyield,  gnumeric_oddfyield, NULL, NULL, NULL, NULL,
+	  help_oddfyield,  gnumeric_oddfyield, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "oddlprice", "ffffffff",
-	  help_oddlprice,  gnumeric_oddlprice, NULL, NULL, NULL, NULL,
+	  help_oddlprice,  gnumeric_oddlprice, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "oddlyield", "ffffffff",
-	  help_oddlyield,  gnumeric_oddlyield, NULL, NULL, NULL, NULL,
+	  help_oddlyield,  gnumeric_oddlyield, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "pmt", "fff|ff",
-	  help_pmt,	  gnumeric_pmt, NULL, NULL, NULL, NULL,
+	  help_pmt,	  gnumeric_pmt, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "ppmt", "ffff|ff",
-	  help_ppmt,	  gnumeric_ppmt, NULL, NULL, NULL, NULL,
+	  help_ppmt,	  gnumeric_ppmt, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "price", "ffffff|f",
-	  help_price, gnumeric_price, NULL, NULL, NULL, NULL,
+	  help_price, gnumeric_price, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "pricedisc", "ffff|f",
-	  help_pricedisc,  gnumeric_pricedisc, NULL, NULL, NULL, NULL,
+	  help_pricedisc,  gnumeric_pricedisc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "pricemat", "fffff|f",
-	  help_pricemat,  gnumeric_pricemat, NULL, NULL, NULL, NULL,
+	  help_pricemat,  gnumeric_pricemat, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "pv", "fff|ff",
-	  help_pv,	  gnumeric_pv, NULL, NULL, NULL, NULL,
+	  help_pv,	  gnumeric_pv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "rate", "fff|fff",
-	  help_rate,	  gnumeric_rate, NULL, NULL, NULL, NULL,
+	  help_rate,	  gnumeric_rate, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_PERCENT,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "rri", "fff",
-	  help_rri,	  gnumeric_rri, NULL, NULL, NULL, NULL,
+	  help_rri,	  gnumeric_rri, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_PERCENT,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "received", "ffff|f",
-	  help_received,  gnumeric_received, NULL, NULL, NULL, NULL,
+	  help_received,  gnumeric_received, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "sln", "fff",
-	  help_sln,	  gnumeric_sln, NULL, NULL, NULL, NULL,
+	  help_sln,	  gnumeric_sln, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "syd", "ffff",
-	  help_syd,	  gnumeric_syd, NULL, NULL, NULL, NULL,
+	  help_syd,	  gnumeric_syd, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "tbilleq", "fff",
-	  help_tbilleq,  gnumeric_tbilleq, NULL, NULL, NULL, NULL,
+	  help_tbilleq,  gnumeric_tbilleq, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "tbillprice", "fff",
-	  help_tbillprice, gnumeric_tbillprice, NULL, NULL, NULL, NULL,
+	  help_tbillprice, gnumeric_tbillprice, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "tbillyield", "fff",
-	  help_tbillyield, gnumeric_tbillyield, NULL, NULL, NULL, NULL,
+	  help_tbillyield, gnumeric_tbillyield, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_PERCENT,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "vdb", "fffff|ff",
-	  help_vdb, gnumeric_vdb, NULL, NULL, NULL, NULL,
+	  help_vdb, gnumeric_vdb, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "xirr", "AA|f",
-	  help_xirr,	  gnumeric_xirr, NULL, NULL, NULL, NULL,
+	  help_xirr,	  gnumeric_xirr, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_PERCENT,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "xnpv", "fAA",
-	  help_xnpv,	  gnumeric_xnpv, NULL, NULL, NULL, NULL,
+	  help_xnpv,	  gnumeric_xnpv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_MONETARY,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "yield", "ffffff|f",
-	  help_yield, gnumeric_yield, NULL, NULL, NULL, NULL,
+	  help_yield, gnumeric_yield, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_PERCENT,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "yielddisc", "ffff|f",
-	  help_yielddisc,  gnumeric_yielddisc, NULL, NULL, NULL, NULL,
+	  help_yielddisc,  gnumeric_yielddisc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "yieldmat", "fffff|f",
-	  help_yieldmat,  gnumeric_yieldmat, NULL, NULL, NULL, NULL,
+	  help_yieldmat,  gnumeric_yieldmat, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         {NULL}
 };
diff --git a/plugins/fn-hebrew-date/functions.c b/plugins/fn-hebrew-date/functions.c
index c737749..211435b 100644
--- a/plugins/fn-hebrew-date/functions.c
+++ b/plugins/fn-hebrew-date/functions.c
@@ -366,47 +366,47 @@ gnumeric_date2julian (GnmFuncEvalInfo * ei, GnmValue const * const *argv)
 
 GnmFuncDescriptor const datetime_functions[] = {
 	{"hdate", "|fff", help_hdate,
-	 gnumeric_hdate, NULL, NULL, NULL, NULL,
+	 gnumeric_hdate, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	{"hdate_heb", "|fff", help_hdate_heb,
-	 gnumeric_hdate_heb, NULL, NULL, NULL, NULL,
+	 gnumeric_hdate_heb, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	 {"hdate_day", "|fff", help_hdate_day,
-	 gnumeric_hdate_day, NULL, NULL, NULL, NULL,
+	 gnumeric_hdate_day, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	 {"hdate_month", "|fff", help_hdate_month,
-	 gnumeric_hdate_month, NULL, NULL, NULL, NULL,
+	 gnumeric_hdate_month, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	 {"hdate_year", "|fff", help_hdate_year,
-	 gnumeric_hdate_year, NULL, NULL, NULL, NULL,
+	 gnumeric_hdate_year, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	 {"hdate_julian", "|fff", help_hdate_julian,
-	 gnumeric_hdate_julian, NULL, NULL, NULL, NULL,
+	 gnumeric_hdate_julian, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	 {"date2hdate", "|f", help_date2hdate,
-	 gnumeric_date2hdate, NULL, NULL, NULL, NULL,
+	 gnumeric_date2hdate, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	 {"date2hdate_heb", "|f", help_date2hdate_heb,
-	 gnumeric_date2hdate_heb, NULL, NULL, NULL, NULL,
+	 gnumeric_date2hdate_heb, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	 {"date2julian", "|f", help_date2julian,
-	 gnumeric_date2julian, NULL, NULL, NULL, NULL,
+	 gnumeric_date2julian, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	 GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	 GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
diff --git a/plugins/fn-info/functions.c b/plugins/fn-info/functions.c
index c52637d..cf06ef1 100644
--- a/plugins/fn-info/functions.c
+++ b/plugins/fn-info/functions.c
@@ -1851,81 +1851,81 @@ gnumeric_get_link (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 
 GnmFuncDescriptor const info_functions[] = {
 	{ "cell",	"sr",  help_cell,
-	  gnumeric_cell, NULL, NULL, NULL, NULL,
+	  gnumeric_cell, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_SUBSET_WITH_EXTENSIONS, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "error.type",	"E",  help_error_type,
-	  gnumeric_error_type, NULL, NULL, NULL, NULL,
+	  gnumeric_error_type, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "info",	"s",  help_info,
-	  gnumeric_info, NULL, NULL, NULL, NULL,
+	  gnumeric_info, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "isblank",	"E",  help_isblank,
-	  gnumeric_isblank, NULL, NULL, NULL, NULL,
+	  gnumeric_isblank, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "iserr",	"E",    help_iserr,
-	  gnumeric_iserr, NULL, NULL, NULL, NULL,
+	  gnumeric_iserr, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "iserror",	"E",    help_iserror,
-	  gnumeric_iserror, NULL, NULL, NULL, NULL,
+	  gnumeric_iserror, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "iseven",	"f",  help_iseven,
-	  gnumeric_iseven, NULL, NULL, NULL, NULL,
+	  gnumeric_iseven, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "islogical",	"E",  help_islogical,
-	  gnumeric_islogical, NULL, NULL, NULL, NULL,
+	  gnumeric_islogical, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "isna",	"E",    help_isna,
-	  gnumeric_isna, NULL, NULL, NULL, NULL,
+	  gnumeric_isna, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "isnontext",	"E",  help_isnontext,
-	  gnumeric_isnontext, NULL, NULL, NULL, NULL,
+	  gnumeric_isnontext, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "isnumber",	"E",  help_isnumber,
-	  gnumeric_isnumber, NULL, NULL, NULL, NULL,
+	  gnumeric_isnumber, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "isodd",	"S",  help_isodd,
-	  gnumeric_isodd, NULL, NULL, NULL, NULL,
+	  gnumeric_isodd, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "isref",	NULL,  help_isref,
-	  NULL, gnumeric_isref, NULL, NULL, NULL,
+	  NULL, gnumeric_isref, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "istext",	"E",  help_istext,
-	  gnumeric_istext, NULL, NULL, NULL, NULL,
+	  gnumeric_istext, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "n",		"S",  help_n,
-	  gnumeric_n, NULL, NULL, NULL, NULL,
+	  gnumeric_n, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "na",		"", help_na,
-	  gnumeric_na, NULL, NULL, NULL, NULL,
+	  gnumeric_na, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "type",	"?",  help_type,
-	  gnumeric_type, NULL, NULL, NULL, NULL,
+	  gnumeric_type, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
 /* XL stores this in statistical ? */
         { "countblank",	"r",   help_countblank,
-	  gnumeric_countblank, NULL, NULL, NULL, NULL,
+	  gnumeric_countblank, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "error",	"s",   help_error,
-	  gnumeric_error, NULL, NULL, NULL, NULL,
+	  gnumeric_error, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
 	{ "expression",	"r",    help_expression,
-	  gnumeric_expression, NULL, NULL, NULL, NULL,
+	  gnumeric_expression, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 /* XLM : looks common in charts */
 	{ "get.formula", "r",    help_get_formula,
-	  gnumeric_get_formula, NULL, NULL, NULL, NULL,
+	  gnumeric_get_formula, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "get.link", "r",    help_get_link,
-	  gnumeric_get_link, NULL, NULL, NULL, NULL,
+	  gnumeric_get_link, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "isformula", "r",    help_isformula,
-	  gnumeric_isformula, NULL, NULL, NULL, NULL,
+	  gnumeric_isformula, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	{ "getenv",	"s",  help_getenv,
-	  gnumeric_getenv, NULL, NULL, NULL, NULL,
+	  gnumeric_getenv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
         {NULL}
diff --git a/plugins/fn-logical/functions.c b/plugins/fn-logical/functions.c
index 02bc364..0d56b6e 100644
--- a/plugins/fn-logical/functions.c
+++ b/plugins/fn-logical/functions.c
@@ -301,34 +301,34 @@ gnumeric_false (GnmFuncEvalInfo *ei, GnmValue const * const *args)
 
 GnmFuncDescriptor const logical_functions[] = {
 	{ "and", NULL,  help_and, NULL,
-	  gnumeric_and, NULL, NULL, NULL,
+	  gnumeric_and, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "or", NULL,  help_or, NULL,
-	  gnumeric_or, NULL, NULL, NULL,
+	  gnumeric_or, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "not", "b",  help_not, gnumeric_not,
-	  NULL, NULL, NULL, NULL,
+	  NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "iferror", "EE",  help_iferror,
-	  gnumeric_iferror, NULL, NULL, NULL, NULL,
+	  gnumeric_iferror, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "ifna", "EE",  help_ifna,
-	  gnumeric_ifna, NULL, NULL, NULL, NULL,
+	  gnumeric_ifna, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE,  GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	  GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	{ "true", "", help_true, gnumeric_true,
-	  NULL, NULL, NULL, NULL,
+	  NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "false", "", help_false, gnumeric_false,
-	  NULL, NULL, NULL, NULL,
+	  NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "xor", NULL,  help_xor, NULL,
-	  gnumeric_xor, NULL, NULL, NULL,
+	  gnumeric_xor, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_UNITLESS,
 	  GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
         {NULL}
diff --git a/plugins/fn-lookup/functions.c b/plugins/fn-lookup/functions.c
index ee7adee..c6ca7cd 100644
--- a/plugins/fn-lookup/functions.c
+++ b/plugins/fn-lookup/functions.c
@@ -1840,67 +1840,67 @@ gnumeric_sort (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 
 GnmFuncDescriptor const lookup_functions[] = {
 	{ "address",   "ff|fbs",
-	  help_address,  gnumeric_address, NULL, NULL, NULL, NULL,
+	  help_address,  gnumeric_address, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "areas", NULL,
-	  help_areas,	NULL,	gnumeric_areas, NULL, NULL, NULL,
+	  help_areas,	NULL,	gnumeric_areas, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "choose", NULL,
-	  help_choose,	NULL,	gnumeric_choose, NULL, NULL, NULL,
+	  help_choose,	NULL,	gnumeric_choose, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "column",     "|A",
-	  help_column,   gnumeric_column, NULL, NULL, NULL, NULL,
+	  help_column,   gnumeric_column, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "columnnumber", "s",
-	  help_columnnumber, gnumeric_columnnumber, NULL, NULL, NULL, NULL,
+	  help_columnnumber, gnumeric_columnnumber, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "columns",   "A",
-	  help_columns, gnumeric_columns, NULL, NULL, NULL, NULL,
+	  help_columns, gnumeric_columns, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "hlookup",   "EAf|bb",
-	  help_hlookup, gnumeric_hlookup, NULL, NULL, NULL, NULL,
+	  help_hlookup, gnumeric_hlookup, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "hyperlink", "s|s",
-	  help_hyperlink, gnumeric_hyperlink, NULL, NULL, NULL, NULL,
+	  help_hyperlink, gnumeric_hyperlink, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_SUBSET, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "indirect",  "s|b",
-	  help_indirect, gnumeric_indirect, NULL, NULL, NULL, NULL,
+	  help_indirect, gnumeric_indirect, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "index",     "A|fff",
-	  help_index,    NULL, gnumeric_index, NULL, NULL, NULL,
+	  help_index,    NULL, gnumeric_index, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "lookup",    "EA|r",
-	  help_lookup,   gnumeric_lookup, NULL, NULL, NULL, NULL,
+	  help_lookup,   gnumeric_lookup, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "match",     "EA|f",
-	  help_match,    gnumeric_match, NULL, NULL, NULL, NULL,
+	  help_match,    gnumeric_match, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "offset",    "rff|ff",
-	  help_offset,   gnumeric_offset, NULL, NULL, NULL, NULL,
+	  help_offset,   gnumeric_offset, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "row",       "|A",
-	  help_row,      gnumeric_row, NULL, NULL, NULL, NULL,
+	  help_row,      gnumeric_row, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "rows",      "A",
-	  help_rows,     gnumeric_rows, NULL, NULL, NULL, NULL,
+	  help_rows,     gnumeric_rows, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "sheets",      "|A",
-	  help_sheets,     gnumeric_sheets, NULL, NULL, NULL, NULL,
+	  help_sheets,     gnumeric_sheets, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "sheet",      "|?",
-	  help_sheet,     gnumeric_sheet, NULL, NULL, NULL, NULL,
+	  help_sheet,     gnumeric_sheet, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "sort",         "r|f",
-	  help_sort, gnumeric_sort, NULL, NULL, NULL, NULL,
+	  help_sort, gnumeric_sort, NULL, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "transpose", "A",
-	  help_transpose, gnumeric_transpose, NULL, NULL, NULL, NULL,
+	  help_transpose, gnumeric_transpose, NULL, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "vlookup",   "EAf|bb",
-	  help_vlookup, gnumeric_vlookup, NULL, NULL, NULL, NULL,
+	  help_vlookup, gnumeric_vlookup, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "array", NULL,
-	  help_array, NULL, gnumeric_array, NULL, NULL, NULL,
+	  help_array, NULL, gnumeric_array, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
         {NULL}
diff --git a/plugins/fn-math/functions.c b/plugins/fn-math/functions.c
index 931c6f9..b0cfc8c 100644
--- a/plugins/fn-math/functions.c
+++ b/plugins/fn-math/functions.c
@@ -3211,272 +3211,272 @@ gnumeric_eigen (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 
 GnmFuncDescriptor const math_functions[] = {
 	{ "abs",     "f",     help_abs,
-	  gnumeric_abs, NULL, NULL, NULL, NULL,
+	  gnumeric_abs, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "acos",    "f",     help_acos,
-	  gnumeric_acos, NULL, NULL, NULL, NULL,
+	  gnumeric_acos, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "acosh",   "f",     help_acosh,
-	  gnumeric_acosh, NULL, NULL, NULL, NULL,
+	  gnumeric_acosh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "acot",     "f",     help_acot,
-	  gnumeric_acot, NULL, NULL, NULL, NULL,
+	  gnumeric_acot, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "acoth",     "f",     help_acoth,
-	  gnumeric_acoth, NULL, NULL, NULL, NULL,
+	  gnumeric_acoth, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "arabic",       "S",             help_arabic,
-	  gnumeric_arabic, NULL, NULL, NULL, NULL,
+	  gnumeric_arabic, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "asin",    "f",     help_asin,
-	  gnumeric_asin, NULL, NULL, NULL, NULL,
+	  gnumeric_asin, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "asinh",   "f",     help_asinh,
-	  gnumeric_asinh, NULL, NULL, NULL, NULL,
+	  gnumeric_asinh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "atan",    "f",     help_atan,
-	  gnumeric_atan, NULL, NULL, NULL, NULL,
+	  gnumeric_atan, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "atanh",   "f",     help_atanh,
-	  gnumeric_atanh, NULL, NULL, NULL, NULL,
+	  gnumeric_atanh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "atan2",   "ff",  help_atan2,
-	  gnumeric_atan2, NULL, NULL, NULL, NULL,
+	  gnumeric_atan2, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "beta",     "ff",      help_beta,
-	  gnumeric_beta, NULL, NULL, NULL, NULL,
+	  gnumeric_beta, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "betaln",   "ff",      help_betaln,
-	  gnumeric_betaln, NULL, NULL, NULL, NULL,
+	  gnumeric_betaln, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "cholesky","A",      help_cholesky,
-	  gnumeric_cholesky, NULL, NULL, NULL, NULL,
+	  gnumeric_cholesky, NULL, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "cos",     "f",     help_cos,
-	  gnumeric_cos, NULL, NULL, NULL, NULL,
+	  gnumeric_cos, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "cosh",    "f",     help_cosh,
-	  gnumeric_cosh, NULL, NULL, NULL, NULL,
+	  gnumeric_cosh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "cot",     "f",     help_cot,
-	  gnumeric_cot, NULL, NULL, NULL, NULL,
+	  gnumeric_cot, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "coth",     "f",     help_coth,
-	  gnumeric_coth, NULL, NULL, NULL, NULL,
+	  gnumeric_coth, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
 /* MS Excel puts this in statistical */
 	{ "countif", "rS",  help_countif,
-	  gnumeric_countif, NULL, NULL, NULL, NULL,
+	  gnumeric_countif, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "ceil",    "f",     help_ceil,
-	  gnumeric_ceil, NULL, NULL, NULL, NULL,
+	  gnumeric_ceil, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "ceiling", "f|f",  help_ceiling,
-	  gnumeric_ceiling, NULL, NULL, NULL, NULL,
+	  gnumeric_ceiling, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "degrees", "f",     help_degrees,
-	  gnumeric_degrees, NULL, NULL, NULL, NULL,
+	  gnumeric_degrees, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "even",    "f",     help_even,
-	  gnumeric_even, NULL, NULL, NULL, NULL,
+	  gnumeric_even, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "exp",     "f",     help_exp,
-	  gnumeric_exp, NULL, NULL, NULL, NULL,
+	  gnumeric_exp, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "expm1",   "f",     help_expm1,
-	  gnumeric_expm1, NULL, NULL, NULL, NULL,
+	  gnumeric_expm1, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "fact",    "f",     help_fact,
-	  gnumeric_fact, NULL, NULL, NULL, NULL,
+	  gnumeric_fact, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_SUPERSET, GNM_FUNC_TEST_STATUS_BASIC },
 
 /* MS Excel puts this in the engineering functions */
 	{ "factdouble", "f",  help_factdouble,
-	  gnumeric_factdouble, NULL, NULL, NULL, NULL,
+	  gnumeric_factdouble, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "fib", "f",  help_fib,
-	  gnumeric_fib, NULL, NULL, NULL, NULL,
+	  gnumeric_fib, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "combin",  "ff",       help_combin,
-	  gnumeric_combin, NULL, NULL, NULL, NULL,
+	  gnumeric_combin, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "combina",  "ff",       help_combina,
-	  gnumeric_combina, NULL, NULL, NULL, NULL,
+	  gnumeric_combina, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "csc",     "f",     help_csc,
-	  gnumeric_csc, NULL, NULL, NULL, NULL,
+	  gnumeric_csc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "csch",     "f",     help_csch,
-	  gnumeric_csch, NULL, NULL, NULL, NULL,
+	  gnumeric_csch, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "floor",   "f|f",   help_floor,
-	  gnumeric_floor, NULL, NULL, NULL, NULL,
+	  gnumeric_floor, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "gamma",    "f",     help_gamma,
-	  gnumeric_gamma, NULL, NULL, NULL, NULL,
+	  gnumeric_gamma, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "gammaln",      "f",
-	  help_gammaln, gnumeric_gammaln, NULL, NULL, NULL, NULL,
+	  help_gammaln, gnumeric_gammaln, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "gcd", NULL,  help_gcd,
-	  NULL, gnumeric_gcd, NULL, NULL, NULL,
+	  NULL, gnumeric_gcd, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "gd",   "f",   help_gd,
-	  gnumeric_gd, NULL, NULL, NULL, NULL,
+	  gnumeric_gd, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "hypot", NULL, help_hypot,
-	  NULL, gnumeric_hypot, NULL, NULL, NULL,
+	  NULL, gnumeric_hypot, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "int",     "f",     help_int,
-	  gnumeric_int, NULL, NULL, NULL, NULL,
+	  gnumeric_int, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "lcm", NULL, help_lcm,
-	  NULL, gnumeric_lcm, NULL, NULL, NULL,
+	  NULL, gnumeric_lcm, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "ln",      "f",     help_ln,
-	  gnumeric_ln, NULL, NULL, NULL, NULL,
+	  gnumeric_ln, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "ln1p",    "f",     help_ln1p,
-	  gnumeric_ln1p, NULL, NULL, NULL, NULL,
+	  gnumeric_ln1p, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "log",     "f|f",  help_log,
-	  gnumeric_log, NULL, NULL, NULL, NULL,
+	  gnumeric_log, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "log2",    "f",     help_log2,
-	  gnumeric_log2, NULL, NULL, NULL, NULL,
+	  gnumeric_log2, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "log10",   "f",     help_log10,
-	  gnumeric_log10, NULL, NULL, NULL, NULL,
+	  gnumeric_log10, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "mod",     "ff",  help_mod,
-	  gnumeric_mod, NULL, NULL, NULL, NULL,
+	  gnumeric_mod, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "mround",  "ff",  help_mround,
-	  gnumeric_mround, NULL, NULL, NULL, NULL,
+	  gnumeric_mround, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "multinomial", NULL, help_multinomial,
-	  NULL, gnumeric_multinomial, NULL, NULL, NULL,
+	  NULL, gnumeric_multinomial, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "odd" ,    "f",     help_odd,
-	  gnumeric_odd, NULL, NULL, NULL, NULL,
+	  gnumeric_odd, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "power",   "ff",       help_power,
-	  gnumeric_power, NULL, NULL, NULL, NULL,
+	  gnumeric_power, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "g_product", NULL,     help_g_product,
-	  NULL, gnumeric_g_product, NULL, NULL, NULL,
+	  NULL, gnumeric_g_product, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "quotient" , "ff",  help_quotient,
-	  gnumeric_quotient, NULL, NULL, NULL, NULL,
+	  gnumeric_quotient, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "radians", "f",     help_radians,
-	  gnumeric_radians, NULL, NULL, NULL, NULL,
+	  gnumeric_radians, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "roman",      "f|f",  help_roman,
-	  gnumeric_roman, NULL, NULL, NULL, NULL,
+	  gnumeric_roman, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "round",      "f|f",  help_round,
-	  gnumeric_round, NULL, NULL, NULL, NULL,
+	  gnumeric_round, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "rounddown",  "f|f",  help_rounddown,
-	  gnumeric_rounddown, NULL, NULL, NULL, NULL,
+	  gnumeric_rounddown, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "roundup",    "f|f",  help_roundup,
-	  gnumeric_roundup, NULL, NULL, NULL, NULL,
+	  gnumeric_roundup, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "sec",     "f",     help_sec,
-	  gnumeric_sec, NULL, NULL, NULL, NULL,
+	  gnumeric_sec, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "sech",     "f",     help_sech,
-	  gnumeric_sech, NULL, NULL, NULL, NULL,
+	  gnumeric_sech, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "seriessum", "fffA",  help_seriessum,
-	  gnumeric_seriessum, NULL, NULL, NULL, NULL,
+	  gnumeric_seriessum, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "sign",    "f",     help_sign,
-	  gnumeric_sign, NULL, NULL, NULL, NULL,
+	  gnumeric_sign, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "sin",     "f",     help_sin,
-	  gnumeric_sin, NULL, NULL, NULL, NULL,
+	  gnumeric_sin, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "sinh",    "f",     help_sinh,
-	  gnumeric_sinh, NULL, NULL, NULL, NULL,
+	  gnumeric_sinh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "sqrt",    "f",     help_sqrt,
-	  gnumeric_sqrt, NULL, NULL, NULL, NULL,
+	  gnumeric_sqrt, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "sqrtpi",  "f",     help_sqrtpi,
-	  gnumeric_sqrtpi, NULL, NULL, NULL, NULL,
+	  gnumeric_sqrtpi, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "suma", NULL,  help_suma,
-	  NULL, gnumeric_suma, NULL, NULL, NULL,
+	  NULL, gnumeric_suma, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "sumif",   "rS|r",  help_sumif,
-	  gnumeric_sumif, NULL, NULL, NULL, NULL,
+	  gnumeric_sumif, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "averageif",   "rS|r",  help_averageif,
-	  gnumeric_averageif, NULL, NULL, NULL, NULL,
+	  gnumeric_averageif, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "sumproduct", NULL,  help_sumproduct,
-	  NULL, gnumeric_sumproduct, NULL, NULL, NULL,
+	  NULL, gnumeric_sumproduct, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "odf.sumproduct", NULL,  help_odf_sumproduct,
-	  NULL, gnumeric_odf_sumproduct, NULL, NULL, NULL,
+	  NULL, gnumeric_odf_sumproduct, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "sumsq", NULL,       help_sumsq,
-	  NULL, gnumeric_sumsq, NULL, NULL, NULL,
+	  NULL, gnumeric_sumsq, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "sumx2my2", "AA",  help_sumx2my2,
-	  gnumeric_sumx2my2, NULL, NULL, NULL, NULL,
+	  gnumeric_sumx2my2, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "sumx2py2", "AA",  help_sumx2py2,
-	  gnumeric_sumx2py2, NULL, NULL, NULL, NULL,
+	  gnumeric_sumx2py2, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "sumxmy2",  "AA",  help_sumxmy2,
-	  gnumeric_sumxmy2, NULL, NULL, NULL, NULL,
+	  gnumeric_sumxmy2, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "tan",     "f",     help_tan,
-	  gnumeric_tan, NULL, NULL, NULL, NULL,
+	  gnumeric_tan, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "tanh",    "f",     help_tanh,
-	  gnumeric_tanh, NULL, NULL, NULL, NULL,
+	  gnumeric_tanh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "trunc",   "f|f",  help_trunc,
-	  gnumeric_trunc, NULL, NULL, NULL, NULL,
+	  gnumeric_trunc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "pi",      "", help_pi,
-	  gnumeric_pi, NULL, NULL, NULL, NULL,
+	  gnumeric_pi, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{ "mmult",   "AA",  help_mmult,
-	  gnumeric_mmult, NULL, NULL, NULL, NULL,
+	  gnumeric_mmult, NULL, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "minverse","A",      help_minverse,
-	  gnumeric_minverse, NULL, NULL, NULL, NULL,
+	  gnumeric_minverse, NULL, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "mdeterm", "A",  help_mdeterm,
-	  gnumeric_mdeterm, NULL, NULL, NULL, NULL,
+	  gnumeric_mdeterm, NULL, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "munit","f",      help_munit,
-	  gnumeric_munit, NULL, NULL, NULL, NULL,
+	  gnumeric_munit, NULL, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_COMPLETE,
 	  GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "eigen","A",      help_eigen,
-	  gnumeric_eigen, NULL, NULL, NULL, NULL,
+	  gnumeric_eigen, NULL, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 #if 0
 	{ "logmdeterm", "A|si",
diff --git a/plugins/fn-numtheory/numtheory.c b/plugins/fn-numtheory/numtheory.c
index 9d59fbb..1ad6173 100644
--- a/plugins/fn-numtheory/numtheory.c
+++ b/plugins/fn-numtheory/numtheory.c
@@ -641,28 +641,28 @@ go_plugin_shutdown (GOPlugin *plugin, GOCmdContext *cc)
 
 const GnmFuncDescriptor num_theory_functions[] = {
 	{"ithprime", "f", help_ithprime,
-	 &gnumeric_ithprime, NULL, NULL, NULL, NULL,
+	 &gnumeric_ithprime, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{"pfactor", "f", help_pfactor,
-	 &gnumeric_pfactor, NULL, NULL, NULL, NULL,
+	 &gnumeric_pfactor, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{"nt_phi",   "f", help_phi,
-	 &gnumeric_phi,      NULL, NULL, NULL, NULL,
+	 &gnumeric_phi,      NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{"nt_d",     "f", help_d,
-	 &gnumeric_d,        NULL, NULL, NULL, NULL,
+	 &gnumeric_d,        NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{"nt_sigma", "f", help_sigma,
-	 &gnumeric_sigma,    NULL, NULL, NULL, NULL,
+	 &gnumeric_sigma,    NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{"isprime",  "f", help_isprime,
-	 &gnumeric_isprime,  NULL, NULL, NULL, NULL,
+	 &gnumeric_isprime,  NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{"nt_pi",    "f", help_nt_pi,
-	 &gnumeric_nt_pi,    NULL, NULL, NULL, NULL,
+	 &gnumeric_nt_pi,    NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{"nt_mu",    "f", help_nt_mu,
-	 &gnumeric_nt_mu,    NULL, NULL, NULL, NULL,
+	 &gnumeric_nt_mu,    NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
 	{NULL}
@@ -670,19 +670,19 @@ const GnmFuncDescriptor num_theory_functions[] = {
 
 const GnmFuncDescriptor bitwise_functions[] = {
 	{"bitor",     "ff", help_bitor,
-	 &func_bitor,     NULL, NULL, NULL, NULL,
+	 &func_bitor,     NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{"bitxor",    "ff", help_bitxor,
-	 &func_bitxor,    NULL, NULL, NULL, NULL,
+	 &func_bitxor,    NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{"bitand",    "ff", help_bitand,
-	 &func_bitand,    NULL, NULL, NULL, NULL,
+	 &func_bitand,    NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{"bitlshift", "ff", help_bitlshift,
-	 &func_bitlshift, NULL, NULL, NULL, NULL,
+	 &func_bitlshift, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{"bitrshift", "ff", help_bitrshift,
-	 &func_bitrshift, NULL, NULL, NULL, NULL,
+	 &func_bitrshift, NULL, NULL, NULL,
 	 GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_EXHAUSTIVE },
 	{NULL}
 };
diff --git a/plugins/fn-r/functions.c b/plugins/fn-r/functions.c
index ccce62b..46a56a9 100644
--- a/plugins/fn-r/functions.c
+++ b/plugins/fn-r/functions.c
@@ -1276,336 +1276,336 @@ GnmFuncDescriptor const stat_functions[] = {
 		"r.dnorm",
 		"fff|b",
 		help_r_dnorm,
-		gnumeric_r_dnorm, NULL, NULL, NULL, NULL,
+		gnumeric_r_dnorm, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.pnorm",
 		"fff|bb",
 		help_r_pnorm,
-		gnumeric_r_pnorm, NULL, NULL, NULL, NULL,
+		gnumeric_r_pnorm, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qnorm",
 		"fff|bb",
 		help_r_qnorm,
-		gnumeric_r_qnorm, NULL, NULL, NULL, NULL,
+		gnumeric_r_qnorm, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dlnorm",
 		"fff|b",
 		help_r_dlnorm,
-		gnumeric_r_dlnorm, NULL, NULL, NULL, NULL,
+		gnumeric_r_dlnorm, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.plnorm",
 		"fff|bb",
 		help_r_plnorm,
-		gnumeric_r_plnorm, NULL, NULL, NULL, NULL,
+		gnumeric_r_plnorm, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qlnorm",
 		"fff|bb",
 		help_r_qlnorm,
-		gnumeric_r_qlnorm, NULL, NULL, NULL, NULL,
+		gnumeric_r_qlnorm, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dgamma",
 		"fff|b",
 		help_r_dgamma,
-		gnumeric_r_dgamma, NULL, NULL, NULL, NULL,
+		gnumeric_r_dgamma, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.pgamma",
 		"fff|bb",
 		help_r_pgamma,
-		gnumeric_r_pgamma, NULL, NULL, NULL, NULL,
+		gnumeric_r_pgamma, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qgamma",
 		"fff|bb",
 		help_r_qgamma,
-		gnumeric_r_qgamma, NULL, NULL, NULL, NULL,
+		gnumeric_r_qgamma, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dbeta",
 		"fff|b",
 		help_r_dbeta,
-		gnumeric_r_dbeta, NULL, NULL, NULL, NULL,
+		gnumeric_r_dbeta, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.pbeta",
 		"fff|bb",
 		help_r_pbeta,
-		gnumeric_r_pbeta, NULL, NULL, NULL, NULL,
+		gnumeric_r_pbeta, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qbeta",
 		"fff|bb",
 		help_r_qbeta,
-		gnumeric_r_qbeta, NULL, NULL, NULL, NULL,
+		gnumeric_r_qbeta, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dt",
 		"ff|b",
 		help_r_dt,
-		gnumeric_r_dt, NULL, NULL, NULL, NULL,
+		gnumeric_r_dt, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.pt",
 		"ff|bb",
 		help_r_pt,
-		gnumeric_r_pt, NULL, NULL, NULL, NULL,
+		gnumeric_r_pt, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qt",
 		"ff|bb",
 		help_r_qt,
-		gnumeric_r_qt, NULL, NULL, NULL, NULL,
+		gnumeric_r_qt, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.df",
 		"fff|b",
 		help_r_df,
-		gnumeric_r_df, NULL, NULL, NULL, NULL,
+		gnumeric_r_df, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.pf",
 		"fff|bb",
 		help_r_pf,
-		gnumeric_r_pf, NULL, NULL, NULL, NULL,
+		gnumeric_r_pf, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qf",
 		"fff|bb",
 		help_r_qf,
-		gnumeric_r_qf, NULL, NULL, NULL, NULL,
+		gnumeric_r_qf, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dchisq",
 		"ff|b",
 		help_r_dchisq,
-		gnumeric_r_dchisq, NULL, NULL, NULL, NULL,
+		gnumeric_r_dchisq, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.pchisq",
 		"ff|bb",
 		help_r_pchisq,
-		gnumeric_r_pchisq, NULL, NULL, NULL, NULL,
+		gnumeric_r_pchisq, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qchisq",
 		"ff|bb",
 		help_r_qchisq,
-		gnumeric_r_qchisq, NULL, NULL, NULL, NULL,
+		gnumeric_r_qchisq, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dweibull",
 		"fff|b",
 		help_r_dweibull,
-		gnumeric_r_dweibull, NULL, NULL, NULL, NULL,
+		gnumeric_r_dweibull, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.pweibull",
 		"fff|bb",
 		help_r_pweibull,
-		gnumeric_r_pweibull, NULL, NULL, NULL, NULL,
+		gnumeric_r_pweibull, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qweibull",
 		"fff|bb",
 		help_r_qweibull,
-		gnumeric_r_qweibull, NULL, NULL, NULL, NULL,
+		gnumeric_r_qweibull, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dpois",
 		"ff|b",
 		help_r_dpois,
-		gnumeric_r_dpois, NULL, NULL, NULL, NULL,
+		gnumeric_r_dpois, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.ppois",
 		"ff|bb",
 		help_r_ppois,
-		gnumeric_r_ppois, NULL, NULL, NULL, NULL,
+		gnumeric_r_ppois, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qpois",
 		"ff|bb",
 		help_r_qpois,
-		gnumeric_r_qpois, NULL, NULL, NULL, NULL,
+		gnumeric_r_qpois, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dexp",
 		"ff|b",
 		help_r_dexp,
-		gnumeric_r_dexp, NULL, NULL, NULL, NULL,
+		gnumeric_r_dexp, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.pexp",
 		"ff|bb",
 		help_r_pexp,
-		gnumeric_r_pexp, NULL, NULL, NULL, NULL,
+		gnumeric_r_pexp, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qexp",
 		"ff|bb",
 		help_r_qexp,
-		gnumeric_r_qexp, NULL, NULL, NULL, NULL,
+		gnumeric_r_qexp, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dbinom",
 		"fff|b",
 		help_r_dbinom,
-		gnumeric_r_dbinom, NULL, NULL, NULL, NULL,
+		gnumeric_r_dbinom, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.pbinom",
 		"fff|bb",
 		help_r_pbinom,
-		gnumeric_r_pbinom, NULL, NULL, NULL, NULL,
+		gnumeric_r_pbinom, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qbinom",
 		"fff|bb",
 		help_r_qbinom,
-		gnumeric_r_qbinom, NULL, NULL, NULL, NULL,
+		gnumeric_r_qbinom, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dnbinom",
 		"fff|b",
 		help_r_dnbinom,
-		gnumeric_r_dnbinom, NULL, NULL, NULL, NULL,
+		gnumeric_r_dnbinom, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.pnbinom",
 		"fff|bb",
 		help_r_pnbinom,
-		gnumeric_r_pnbinom, NULL, NULL, NULL, NULL,
+		gnumeric_r_pnbinom, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qnbinom",
 		"fff|bb",
 		help_r_qnbinom,
-		gnumeric_r_qnbinom, NULL, NULL, NULL, NULL,
+		gnumeric_r_qnbinom, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dhyper",
 		"ffff|b",
 		help_r_dhyper,
-		gnumeric_r_dhyper, NULL, NULL, NULL, NULL,
+		gnumeric_r_dhyper, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.phyper",
 		"ffff|bb",
 		help_r_phyper,
-		gnumeric_r_phyper, NULL, NULL, NULL, NULL,
+		gnumeric_r_phyper, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qhyper",
 		"ffff|bb",
 		help_r_qhyper,
-		gnumeric_r_qhyper, NULL, NULL, NULL, NULL,
+		gnumeric_r_qhyper, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dgeom",
 		"ff|b",
 		help_r_dgeom,
-		gnumeric_r_dgeom, NULL, NULL, NULL, NULL,
+		gnumeric_r_dgeom, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.pgeom",
 		"ff|bb",
 		help_r_pgeom,
-		gnumeric_r_pgeom, NULL, NULL, NULL, NULL,
+		gnumeric_r_pgeom, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qgeom",
 		"ff|bb",
 		help_r_qgeom,
-		gnumeric_r_qgeom, NULL, NULL, NULL, NULL,
+		gnumeric_r_qgeom, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dcauchy",
 		"fff|b",
 		help_r_dcauchy,
-		gnumeric_r_dcauchy, NULL, NULL, NULL, NULL,
+		gnumeric_r_dcauchy, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.pcauchy",
 		"fff|bb",
 		help_r_pcauchy,
-		gnumeric_r_pcauchy, NULL, NULL, NULL, NULL,
+		gnumeric_r_pcauchy, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.qcauchy",
 		"fff|bb",
 		help_r_qcauchy,
-		gnumeric_r_qcauchy, NULL, NULL, NULL, NULL,
+		gnumeric_r_qcauchy, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dsnorm",
 		"ffff|b",
 		help_r_dsnorm,
-		gnumeric_r_dsnorm, NULL, NULL, NULL, NULL,
+		gnumeric_r_dsnorm, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.psnorm",
 		"ffff|bb",
 		help_r_psnorm,
-		gnumeric_r_psnorm, NULL, NULL, NULL, NULL,
+		gnumeric_r_psnorm, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{
 		"r.dst",
 		"fff|b",
 		help_r_dst,
-		gnumeric_r_dst, NULL, NULL, NULL, NULL,
+		gnumeric_r_dst, NULL, NULL, NULL,
 		GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE,
 	},
 	{ NULL }
diff --git a/plugins/fn-random/functions.c b/plugins/fn-random/functions.c
index e040a9c..9e38999 100644
--- a/plugins/fn-random/functions.c
+++ b/plugins/fn-random/functions.c
@@ -964,106 +964,106 @@ gnumeric_randstdist (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 
 GnmFuncDescriptor const random_functions[] = {
 	{ "rand",    "", help_rand,
-	  gnumeric_rand, NULL, NULL, NULL, NULL,
+	  gnumeric_rand, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "randbernoulli", "f",    help_randbernoulli,
-	  gnumeric_randbernoulli, NULL, NULL, NULL, NULL,
+	  gnumeric_randbernoulli, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randbeta", "ff",    help_randbeta,
-	  gnumeric_randbeta, NULL, NULL, NULL, NULL,
+	  gnumeric_randbeta, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randbetween", "ff",  help_randbetween,
-	  gnumeric_randbetween, NULL, NULL, NULL, NULL,
+	  gnumeric_randbetween, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "randbinom", "ff",  help_randbinom,
-	  gnumeric_randbinom, NULL, NULL, NULL, NULL,
+	  gnumeric_randbinom, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randcauchy", "f",    help_randcauchy,
-	  gnumeric_randcauchy, NULL, NULL, NULL, NULL,
+	  gnumeric_randcauchy, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randchisq", "f",    help_randchisq,
-	  gnumeric_randchisq, NULL, NULL, NULL, NULL,
+	  gnumeric_randchisq, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "randdiscrete", "r|r",
-	  help_randdiscrete, gnumeric_randdiscrete, NULL, NULL, NULL, NULL,
+	  help_randdiscrete, gnumeric_randdiscrete, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "randexp", "f",          help_randexp,
-	  gnumeric_randexp, NULL, NULL, NULL, NULL,
+	  gnumeric_randexp, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randexppow", "ff",          help_randexppow,
-	  gnumeric_randexppow, NULL, NULL, NULL, NULL,
+	  gnumeric_randexppow, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randfdist", "ff",       help_randfdist,
-	  gnumeric_randfdist, NULL, NULL, NULL, NULL,
+	  gnumeric_randfdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randgamma", "ff",     help_randgamma,
-	  gnumeric_randgamma, NULL, NULL, NULL, NULL,
+	  gnumeric_randgamma, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randnormtail", "ff",     help_randnormtail,
-	  gnumeric_randnormtail, NULL, NULL, NULL, NULL,
+	  gnumeric_randnormtail, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randgeom", "f",     help_randgeom,
-	  gnumeric_randgeom, NULL, NULL, NULL, NULL,
+	  gnumeric_randgeom, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randgumbel", "ff|f",     help_randgumbel,
-	  gnumeric_randgumbel, NULL, NULL, NULL, NULL,
+	  gnumeric_randgumbel, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randhyperg", "fff",     help_randhyperg,
-	  gnumeric_randhyperg, NULL, NULL, NULL, NULL,
+	  gnumeric_randhyperg, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randlandau", "", help_randlandau,
-	  gnumeric_randlandau, NULL, NULL, NULL, NULL,
+	  gnumeric_randlandau, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randlaplace", "f",  help_randlaplace,
-	  gnumeric_randlaplace, NULL, NULL, NULL, NULL,
+	  gnumeric_randlaplace, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randlevy", "ff|f",  help_randlevy,
-	  gnumeric_randlevy, NULL, NULL, NULL, NULL,
+	  gnumeric_randlevy, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randlog", "f",  help_randlog,
-	  gnumeric_randlog, NULL, NULL, NULL, NULL,
+	  gnumeric_randlog, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randlogistic", "f",  help_randlogistic,
-	  gnumeric_randlogistic, NULL, NULL, NULL, NULL,
+	  gnumeric_randlogistic, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randlognorm", "ff",  help_randlognorm,
-	  gnumeric_randlognorm, NULL, NULL, NULL, NULL,
+	  gnumeric_randlognorm, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randnegbinom", "ff",  help_randnegbinom,
-	  gnumeric_randnegbinom, NULL, NULL, NULL, NULL,
+	  gnumeric_randnegbinom, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randnorm", "ff",  help_randnorm,
-	  gnumeric_randnorm, NULL, NULL, NULL, NULL,
+	  gnumeric_randnorm, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randpareto", "ff",  help_randpareto,
-	  gnumeric_randpareto, NULL, NULL, NULL, NULL,
+	  gnumeric_randpareto, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randpoisson", "f",  help_randpoisson,
-	  gnumeric_randpoisson, NULL, NULL, NULL, NULL,
+	  gnumeric_randpoisson, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randrayleigh", "f",  help_randrayleigh,
-	  gnumeric_randrayleigh, NULL, NULL, NULL, NULL,
+	  gnumeric_randrayleigh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randrayleightail", "ff",  help_randrayleightail,
-	  gnumeric_randrayleightail, NULL, NULL, NULL, NULL,
+	  gnumeric_randrayleightail, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randsnorm", "|fff",  help_randsnorm,
-	  gnumeric_randsnorm, NULL, NULL, NULL, NULL,
+	  gnumeric_randsnorm, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randstdist", "ff",  help_randstdist,
-	  gnumeric_randstdist, NULL, NULL, NULL, NULL,
+	  gnumeric_randstdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randtdist", "f",  help_randtdist,
-	  gnumeric_randtdist, NULL, NULL, NULL, NULL,
+	  gnumeric_randtdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randuniform", "ff",  help_randuniform,
-	  gnumeric_randuniform, NULL, NULL, NULL, NULL,
+	  gnumeric_randuniform, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randweibull", "ff",  help_randweibull,
-	  gnumeric_randweibull, NULL, NULL, NULL, NULL,
+	  gnumeric_randweibull, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "simtable", NULL,  help_simtable,
-	  NULL,	gnumeric_simtable, NULL, NULL, NULL,
+	  NULL,	gnumeric_simtable, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
         {NULL}
diff --git a/plugins/fn-stat/functions.c b/plugins/fn-stat/functions.c
index a998f5b..b439f37 100644
--- a/plugins/fn-stat/functions.c
+++ b/plugins/fn-stat/functions.c
@@ -4920,337 +4920,337 @@ gnumeric_adtest (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 
 GnmFuncDescriptor const stat_functions[] = {
 	{ "adtest",       "A",
-	  help_adtest, gnumeric_adtest, NULL, NULL, NULL, NULL,
+	  help_adtest, gnumeric_adtest, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	  GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	{ "sftest",       "A",
-	  help_sftest, gnumeric_sftest, NULL, NULL, NULL, NULL,
+	  help_sftest, gnumeric_sftest, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	  GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	{ "cvmtest",       "A",
-	  help_cvmtest, gnumeric_cvmtest, NULL, NULL, NULL, NULL,
+	  help_cvmtest, gnumeric_cvmtest, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	  GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	{ "lkstest",       "A",
-	  help_lkstest, gnumeric_lkstest, NULL, NULL, NULL, NULL,
+	  help_lkstest, gnumeric_lkstest, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 	  GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
         { "avedev", NULL,
-	  help_avedev, NULL, gnumeric_avedev, NULL, NULL, NULL,
+	  help_avedev, NULL, gnumeric_avedev, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "average", NULL,
-	  help_average, NULL, gnumeric_average, NULL, NULL, NULL,
+	  help_average, NULL, gnumeric_average, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "averagea", NULL,
-	  help_averagea, NULL, gnumeric_averagea, NULL, NULL, NULL,
+	  help_averagea, NULL, gnumeric_averagea, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
         { "bernoulli", "ff",    help_bernoulli,
-	  gnumeric_bernoulli, NULL, NULL, NULL, NULL,
+	  gnumeric_bernoulli, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "betadist",     "fff|ff",
-	  help_betadist, gnumeric_betadist, NULL, NULL, NULL, NULL,
+	  help_betadist, gnumeric_betadist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "betainv",      "fff|ff",
-	  help_betainv, gnumeric_betainv, NULL, NULL, NULL, NULL,
+	  help_betainv, gnumeric_betainv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "binomdist",    "fffb",
-	  help_binomdist, gnumeric_binomdist, NULL, NULL, NULL, NULL,
+	  help_binomdist, gnumeric_binomdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "binom.dist.range",    "fff|f",
-	  help_binom_dist_range, gnumeric_binom_dist_range, NULL, NULL, NULL, NULL,
+	  help_binom_dist_range, gnumeric_binom_dist_range, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
         { "cauchy", "ffb",    help_cauchy,
-	  gnumeric_cauchy, NULL, NULL, NULL, NULL,
+	  gnumeric_cauchy, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "chidist",      "ff",
-	  help_chidist, gnumeric_chidist, NULL, NULL, NULL, NULL,
+	  help_chidist, gnumeric_chidist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "chiinv",       "ff",
-	  help_chiinv, gnumeric_chiinv, NULL, NULL, NULL, NULL,
+	  help_chiinv, gnumeric_chiinv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "chitest",      "AA",
-	  help_chitest, gnumeric_chitest, NULL, NULL, NULL, NULL,
+	  help_chitest, gnumeric_chitest, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "confidence",   "fff",
-	  help_confidence, gnumeric_confidence, NULL, NULL, NULL, NULL,
+	  help_confidence, gnumeric_confidence, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "correl",       "AA",
-	  help_correl, gnumeric_correl, NULL, NULL, NULL, NULL,
+	  help_correl, gnumeric_correl, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "count", NULL,
-	  help_count, NULL, gnumeric_count, NULL, NULL, NULL,
+	  help_count, NULL, gnumeric_count, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "counta", NULL,
-	  help_counta, NULL, gnumeric_counta, NULL, NULL, NULL,
+	  help_counta, NULL, gnumeric_counta, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "covar",        "AA",
-	  help_covar, gnumeric_covar, NULL, NULL, NULL, NULL,
+	  help_covar, gnumeric_covar, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "covariance.s", "AA",
-	  help_covariance_s, gnumeric_covariance_s, NULL, NULL, NULL, NULL,
+	  help_covariance_s, gnumeric_covariance_s, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "critbinom",    "fff",
-	  help_critbinom, gnumeric_critbinom, NULL, NULL, NULL, NULL,
+	  help_critbinom, gnumeric_critbinom, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "devsq", NULL,
-	  help_devsq, NULL, gnumeric_devsq, NULL, NULL, NULL,
+	  help_devsq, NULL, gnumeric_devsq, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "expondist",    "ffb",
-	  help_expondist, gnumeric_expondist, NULL, NULL, NULL, NULL,
+	  help_expondist, gnumeric_expondist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "fdist",        "fff",
-	  help_fdist, gnumeric_fdist, NULL, NULL, NULL, NULL,
+	  help_fdist, gnumeric_fdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "finv",         "fff",
-	  help_finv, gnumeric_finv, NULL, NULL, NULL, NULL,
+	  help_finv, gnumeric_finv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "fisher",       "f",
-	  help_fisher, gnumeric_fisher, NULL, NULL, NULL, NULL,
+	  help_fisher, gnumeric_fisher, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "fisherinv",    "f",
-	  help_fisherinv, gnumeric_fisherinv, NULL, NULL, NULL, NULL,
+	  help_fisherinv, gnumeric_fisherinv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "forecast",     "frr",
-	  help_forecast, gnumeric_forecast, NULL, NULL, NULL, NULL,
+	  help_forecast, gnumeric_forecast, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "frequency",    "AA",
-	  help_frequency, gnumeric_frequency, NULL, NULL, NULL, NULL,
+	  help_frequency, gnumeric_frequency, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "ftest",        "rr",
-	  help_ftest, gnumeric_ftest, NULL, NULL, NULL, NULL,
+	  help_ftest, gnumeric_ftest, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "gammadist",    "fffb",
-	  help_gammadist, gnumeric_gammadist, NULL, NULL, NULL, NULL,
+	  help_gammadist, gnumeric_gammadist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "gammainv",     "fff",
-	  help_gammainv, gnumeric_gammainv, NULL, NULL, NULL, NULL,
+	  help_gammainv, gnumeric_gammainv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "geomean", NULL,
-	  help_geomean, NULL, gnumeric_geomean, NULL, NULL, NULL,
+	  help_geomean, NULL, gnumeric_geomean, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "growth",       "A|AAb",
-	  help_growth, gnumeric_growth, NULL, NULL, NULL, NULL,
+	  help_growth, gnumeric_growth, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "harmean", NULL,
-	  help_harmean, NULL, gnumeric_harmean, NULL, NULL, NULL,
+	  help_harmean, NULL, gnumeric_harmean, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "hypgeomdist",  "ffff|b",
-	  help_hypgeomdist, gnumeric_hypgeomdist, NULL, NULL, NULL, NULL,
+	  help_hypgeomdist, gnumeric_hypgeomdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "intercept",    "AA",
-	  help_intercept, gnumeric_intercept, NULL, NULL, NULL, NULL,
+	  help_intercept, gnumeric_intercept, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "kurt", NULL,
-	  help_kurt, NULL, gnumeric_kurt, NULL, NULL, NULL,
+	  help_kurt, NULL, gnumeric_kurt, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "large", "Af",
-	  help_large, gnumeric_large, NULL, NULL, NULL, NULL,
+	  help_large, gnumeric_large, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "linest",       "A|Abb",
-	  help_linest, gnumeric_linest, NULL, NULL, NULL, NULL,
+	  help_linest, gnumeric_linest, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "logest",       "A|Abb",
-	  help_logest, gnumeric_logest, NULL, NULL, NULL, NULL,
+	  help_logest, gnumeric_logest, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "logfit",       "rr",
-	  help_logfit, gnumeric_logfit, NULL, NULL, NULL, NULL,
+	  help_logfit, gnumeric_logfit, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "loginv",       "fff",
-	  help_loginv, gnumeric_loginv, NULL, NULL, NULL, NULL,
+	  help_loginv, gnumeric_loginv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "lognormdist",  "fff",
-	  help_lognormdist, gnumeric_lognormdist, NULL, NULL, NULL, NULL,
+	  help_lognormdist, gnumeric_lognormdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "logreg",       "A|Abb",
-	  help_logreg, gnumeric_logreg, NULL, NULL, NULL, NULL,
+	  help_logreg, gnumeric_logreg, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "max", NULL,
-	  help_max, NULL, gnumeric_max, NULL, NULL, NULL,
+	  help_max, NULL, gnumeric_max, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "maxa", NULL,
-	  help_maxa, NULL, gnumeric_maxa, NULL, NULL, NULL,
+	  help_maxa, NULL, gnumeric_maxa, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "median", NULL,
-	  help_median, NULL, gnumeric_median, NULL, NULL, NULL,
+	  help_median, NULL, gnumeric_median, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "min", NULL,
-	  help_min, NULL, gnumeric_min, NULL, NULL, NULL,
+	  help_min, NULL, gnumeric_min, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "mina", NULL,
-	  help_mina, NULL, gnumeric_mina, NULL, NULL, NULL,
+	  help_mina, NULL, gnumeric_mina, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "mode", NULL,
-	  help_mode, NULL, gnumeric_mode, NULL, NULL, NULL,
+	  help_mode, NULL, gnumeric_mode, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "negbinomdist", "fff",
-	  help_negbinomdist, gnumeric_negbinomdist, NULL, NULL, NULL, NULL,
+	  help_negbinomdist, gnumeric_negbinomdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "normdist",     "fffb",
-	  help_normdist, gnumeric_normdist, NULL, NULL, NULL, NULL,
+	  help_normdist, gnumeric_normdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "norminv",      "fff",
-	  help_norminv, gnumeric_norminv, NULL, NULL, NULL, NULL,
+	  help_norminv, gnumeric_norminv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "normsdist",    "f",
-	  help_normsdist, gnumeric_normsdist, NULL, NULL, NULL, NULL,
+	  help_normsdist, gnumeric_normsdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "normsinv",     "f",
-	  help_normsinv, gnumeric_normsinv, NULL, NULL, NULL, NULL,
+	  help_normsinv, gnumeric_normsinv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "pearson",      "AA",
-	  help_pearson, gnumeric_pearson, NULL, NULL, NULL, NULL,
+	  help_pearson, gnumeric_pearson, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "percentile",   "Af",
-	  help_percentile, gnumeric_percentile, NULL, NULL, NULL, NULL,
+	  help_percentile, gnumeric_percentile, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "percentrank",  "Af|f",
-	  help_percentrank, gnumeric_percentrank, NULL, NULL, NULL, NULL,
+	  help_percentrank, gnumeric_percentrank, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "permut",       "ff",
-	  help_permut, gnumeric_permut, NULL, NULL, NULL, NULL,
+	  help_permut, gnumeric_permut, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "poisson",      "ffb",
-	  help_poisson, gnumeric_poisson, NULL, NULL, NULL, NULL,
+	  help_poisson, gnumeric_poisson, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "prob",         "AAf|f",
-	  help_prob, gnumeric_prob, NULL, NULL, NULL, NULL,
+	  help_prob, gnumeric_prob, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "quartile",     "Af",
-	  help_quartile, gnumeric_quartile, NULL, NULL, NULL, NULL,
+	  help_quartile, gnumeric_quartile, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "rank",         "fr|b",
-	  help_rank, gnumeric_rank, NULL, NULL, NULL, NULL,
+	  help_rank, gnumeric_rank, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "rank.avg",         "fr|b",
-	  help_rank_avg, gnumeric_rank_avg, NULL, NULL, NULL, NULL,
+	  help_rank_avg, gnumeric_rank_avg, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE},
 	{ "slope",        "AA",
-	  help_slope, gnumeric_slope, NULL, NULL, NULL, NULL,
+	  help_slope, gnumeric_slope, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "small", "Af",
-	  help_small, gnumeric_small, NULL, NULL, NULL, NULL,
+	  help_small, gnumeric_small, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "standardize",  "fff",
-	  help_standardize, gnumeric_standardize, NULL, NULL, NULL, NULL,
+	  help_standardize, gnumeric_standardize, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "ssmedian",   "A|f",
-	  help_ssmedian, gnumeric_ssmedian, NULL, NULL, NULL, NULL,
+	  help_ssmedian, gnumeric_ssmedian, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "stdev", NULL,
-	  help_stdev, NULL, gnumeric_stdev, NULL, NULL, NULL,
+	  help_stdev, NULL, gnumeric_stdev, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "stdeva", NULL,
-	  help_stdeva, NULL, gnumeric_stdeva, NULL, NULL, NULL,
+	  help_stdeva, NULL, gnumeric_stdeva, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "stdevp", NULL,
-	  help_stdevp, NULL, gnumeric_stdevp, NULL, NULL, NULL,
+	  help_stdevp, NULL, gnumeric_stdevp, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "stdevpa", NULL,
-	  help_stdevpa, NULL, gnumeric_stdevpa, NULL, NULL, NULL,
+	  help_stdevpa, NULL, gnumeric_stdevpa, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "steyx",        "AA",
-	  help_steyx, gnumeric_steyx, NULL, NULL, NULL, NULL,
+	  help_steyx, gnumeric_steyx, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "rsq",          "AA",
-	  help_rsq, gnumeric_rsq, NULL, NULL, NULL, NULL,
+	  help_rsq, gnumeric_rsq, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "skew", NULL,
-	  help_skew, NULL, gnumeric_skew, NULL, NULL, NULL,
+	  help_skew, NULL, gnumeric_skew, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "tdist",        "fff",
-	  help_tdist, gnumeric_tdist, NULL, NULL, NULL, NULL,
+	  help_tdist, gnumeric_tdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "tinv",         "ff",
-	  help_tinv, gnumeric_tinv, NULL, NULL, NULL, NULL,
+	  help_tinv, gnumeric_tinv, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "trend",        "A|AAb",
-	  help_trend, gnumeric_trend, NULL, NULL, NULL, NULL,
+	  help_trend, gnumeric_trend, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "trimmean",     "rf",
-	  help_trimmean, gnumeric_trimmean, NULL, NULL, NULL, NULL,
+	  help_trimmean, gnumeric_trimmean, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 	  GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "ttest",        "rrff",
-	  help_ttest, gnumeric_ttest, NULL, NULL, NULL, NULL,
+	  help_ttest, gnumeric_ttest, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "var", NULL,
-	  help_var, NULL, gnumeric_var, NULL, NULL, NULL,
+	  help_var, NULL, gnumeric_var, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "vara", NULL,
-	  help_vara, NULL, gnumeric_vara, NULL, NULL, NULL,
+	  help_vara, NULL, gnumeric_vara, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "varp", NULL,
-	  help_varp, NULL, gnumeric_varp, NULL, NULL, NULL,
+	  help_varp, NULL, gnumeric_varp, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "varpa", NULL,
-	  help_varpa, NULL, gnumeric_varpa, NULL, NULL, NULL,
+	  help_varpa, NULL, gnumeric_varpa, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "weibull",      "fffb",
-	  help_weibull, gnumeric_weibull, NULL, NULL, NULL, NULL,
+	  help_weibull, gnumeric_weibull, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "ztest", "Af|f",
-	  help_ztest, gnumeric_ztest, NULL, NULL, NULL, NULL,
+	  help_ztest, gnumeric_ztest, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
         { "exppowdist", "fff",          help_exppowdist,
-	  gnumeric_exppowdist, NULL, NULL, NULL, NULL,
+	  gnumeric_exppowdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "geomdist", "ffb",     help_geomdist,
-	  gnumeric_geomdist, NULL, NULL, NULL, NULL,
+	  gnumeric_geomdist, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "kurtp", NULL,
-	  help_kurtp, NULL, gnumeric_kurtp, NULL, NULL, NULL,
+	  help_kurtp, NULL, gnumeric_kurtp, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "landau", "f",  help_landau,
-	  gnumeric_landau, NULL, NULL, NULL, NULL,
+	  gnumeric_landau, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "laplace", "ff",  help_laplace,
-	  gnumeric_laplace, NULL, NULL, NULL, NULL,
+	  gnumeric_laplace, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "logistic", "ff",  help_logistic,
-	  gnumeric_logistic, NULL, NULL, NULL, NULL,
+	  gnumeric_logistic, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "pareto", "fff",  help_pareto,
-	  gnumeric_pareto, NULL, NULL, NULL, NULL,
+	  gnumeric_pareto, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "rayleigh", "ff",  help_rayleigh,
-	  gnumeric_rayleigh, NULL, NULL, NULL, NULL,
+	  gnumeric_rayleigh, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "rayleightail", "fff",  help_rayleightail,
-	  gnumeric_rayleightail, NULL, NULL, NULL, NULL,
+	  gnumeric_rayleightail, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "skewp", NULL,
-	  help_skewp, NULL, gnumeric_skewp, NULL, NULL, NULL,
+	  help_skewp, NULL, gnumeric_skewp, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "subtotal", NULL,
-	  help_subtotal,    NULL, gnumeric_subtotal, NULL, NULL, NULL,
+	  help_subtotal,    NULL, gnumeric_subtotal, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 	{ "cronbach", NULL,
-	  help_cronbach, NULL, gnumeric_cronbach, NULL, NULL, NULL,
+	  help_cronbach, NULL, gnumeric_cronbach, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 	{ "permutationa",   "ff",       help_permutationa,
-	  gnumeric_permutationa, NULL, NULL, NULL, NULL,
+	  gnumeric_permutationa, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
 
         {NULL}
diff --git a/plugins/fn-string/functions.c b/plugins/fn-string/functions.c
index 1298254..aba50e7 100644
--- a/plugins/fn-string/functions.c
+++ b/plugins/fn-string/functions.c
@@ -1677,109 +1677,109 @@ gnumeric_jis (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 /***************************************************************************/
 GnmFuncDescriptor const string_functions[] = {
         { "asc",       "s",                       help_asc,
-	  gnumeric_asc, NULL, NULL, NULL, NULL,
+	  gnumeric_asc, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "char",       "f",                       help_char,
-	  gnumeric_char, NULL, NULL, NULL, NULL,
+	  gnumeric_char, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "unichar",    "f",                       help_unichar,
-	  gnumeric_unichar, NULL, NULL, NULL, NULL,
+	  gnumeric_unichar, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
         { "clean",      "S",                         help_clean,
-          gnumeric_clean, NULL, NULL, NULL, NULL,
+          gnumeric_clean, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "code",       "S",                         help_code,
-	  gnumeric_code, NULL, NULL, NULL, NULL,
+	  gnumeric_code, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "unicode",    "S",                         help_unicode,
-	  gnumeric_unicode, NULL, NULL, NULL, NULL,
+	  gnumeric_unicode, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
         { "concatenate", NULL,               help_concatenate,
-	  NULL, gnumeric_concatenate, NULL, NULL, NULL,
+	  NULL, gnumeric_concatenate, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "dollar",     "f|f",               help_dollar,
-	  gnumeric_dollar, NULL, NULL, NULL, NULL,
+	  gnumeric_dollar, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "exact",      "SS",                 help_exact,
-	  gnumeric_exact, NULL, NULL, NULL, NULL,
+	  gnumeric_exact, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "find",       "SS|f",           help_find,
-	  gnumeric_find, NULL, NULL, NULL, NULL,
+	  gnumeric_find, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "findb",       "SS|f",           help_findb,
-	  gnumeric_findb, NULL, NULL, NULL, NULL,
+	  gnumeric_findb, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "fixed",      "f|fb",        help_fixed,
-	  gnumeric_fixed, NULL, NULL, NULL, NULL,
+	  gnumeric_fixed, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "jis",       "s",                       help_jis,
-	  gnumeric_jis, NULL, NULL, NULL, NULL,
+	  gnumeric_jis, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "left",       "S|f",             help_left,
-	  gnumeric_left, NULL, NULL, NULL, NULL,
+	  gnumeric_left, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "leftb",       "S|f",             help_leftb,
-	  gnumeric_leftb, NULL, NULL, NULL, NULL,
+	  gnumeric_leftb, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "len",        "S",                         help_len,
-	  gnumeric_len, NULL, NULL, NULL, NULL,
+	  gnumeric_len, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "lenb",       "S",                         help_lenb,
-	  gnumeric_lenb, NULL, NULL, NULL, NULL,
+	  gnumeric_lenb, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "lower",      "S",                         help_lower,
-	  gnumeric_lower, NULL, NULL, NULL, NULL,
+	  gnumeric_lower, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "mid",        "Sff",               help_mid,
-	  gnumeric_mid, NULL, NULL, NULL, NULL,
+	  gnumeric_mid, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "midb",        "Sff",               help_midb,
-	  gnumeric_midb, NULL, NULL, NULL, NULL,
+	  gnumeric_midb, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "numbervalue",      "SS",          help_numbervalue,
-	  gnumeric_numbervalue, NULL, NULL, NULL, NULL,
+	  gnumeric_numbervalue, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_BASIC },
         { "proper",     "S",                         help_proper,
-	  gnumeric_proper, NULL, NULL, NULL, NULL,
+	  gnumeric_proper, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "replace",    "SffS",         help_replace,
-	  gnumeric_replace, NULL, NULL, NULL, NULL,
+	  gnumeric_replace, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "replaceb",    "SffS",         help_replaceb,
-	  gnumeric_replaceb, NULL, NULL, NULL, NULL,
+	  gnumeric_replaceb, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "rept",       "Sf",                    help_rept,
-	  gnumeric_rept, NULL, NULL, NULL, NULL,
+	  gnumeric_rept, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "right",      "S|f",             help_right,
-	  gnumeric_right, NULL, NULL, NULL, NULL,
+	  gnumeric_right, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "rightb",       "S|f",             help_rightb,
-	  gnumeric_rightb, NULL, NULL, NULL, NULL,
+	  gnumeric_rightb, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "search",     "SS|f",     help_search,
-	  gnumeric_search, NULL, NULL, NULL, NULL,
+	  gnumeric_search, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "searchb",     "SS|f",     help_searchb,
-	  gnumeric_searchb, NULL, NULL, NULL, NULL,
+	  gnumeric_searchb, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "substitute", "SSS|f",        help_substitute,
-	  gnumeric_substitute, NULL, NULL, NULL, NULL,
+	  gnumeric_substitute, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "t",          "S",                        help_t_,
-          gnumeric_t_, NULL, NULL, NULL, NULL,
+          gnumeric_t_, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "text",       "Ss",           help_text,
-	  gnumeric_text, NULL, NULL, NULL, NULL,
+	  gnumeric_text, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "trim",       "S",                         help_trim,
-	  gnumeric_trim, NULL, NULL, NULL, NULL,
+	  gnumeric_trim, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "upper",      "S",                         help_upper,
-	  gnumeric_upper, NULL, NULL, NULL, NULL,
+	  gnumeric_upper, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "value",      "S",                         help_value,
-	  gnumeric_value, NULL, NULL, NULL, NULL,
+	  gnumeric_value, NULL, NULL, NULL,
 	  GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
         {NULL}
diff --git a/plugins/fn-tsa/functions.c b/plugins/fn-tsa/functions.c
index 6735898..f9d4dd6 100644
--- a/plugins/fn-tsa/functions.c
+++ b/plugins/fn-tsa/functions.c
@@ -1045,20 +1045,20 @@ gnumeric_hpfilter (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 const GnmFuncDescriptor TimeSeriesAnalysis_functions[] = {
 
         { "interpolation",       "AAA|f",
-	  help_interpolation, gnumeric_interpolation, NULL, NULL, NULL, NULL,
+	  help_interpolation, gnumeric_interpolation, NULL, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "periodogram",       "A|fAff",
-	  help_periodogram, gnumeric_periodogram, NULL, NULL, NULL, NULL,
+	  help_periodogram, gnumeric_periodogram, NULL, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "fourier",       "A|bb",
-	  help_fourier, gnumeric_fourier, NULL, NULL, NULL, NULL,
+	  help_fourier, gnumeric_fourier, NULL, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
 	{ "hpfilter",       "A|f",
-	  help_hpfilter, gnumeric_hpfilter, NULL, NULL, NULL, NULL,
+	  help_hpfilter, gnumeric_hpfilter, NULL, NULL, NULL,
 	  GNM_FUNC_RETURNS_NON_SCALAR, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
 
-	{NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0}
+	{NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0}
 };
diff --git a/plugins/sample_datasource/sample_datasource.c b/plugins/sample_datasource/sample_datasource.c
index f770c0d..70927cc 100644
--- a/plugins/sample_datasource/sample_datasource.c
+++ b/plugins/sample_datasource/sample_datasource.c
@@ -250,27 +250,26 @@ atl_last (GnmFuncEvalInfo *ei, GnmValue const * const argv[])
 }
 
 static GnmDependentFlags
-atl_last_link (GnmFuncEvalInfo *ei)
+atl_last_link (GnmFuncEvalInfo *ei, gboolean qlink)
 {
-	if (debug)
-		g_printerr ("link atl_last\n");
-	return DEPENDENT_ALWAYS_UNLINK;
-}
-static void
-atl_last_unlink (GnmFuncEvalInfo *ei)
-{
-	Watcher key, *w;
-	key.node = ei->func_call;
-	key.dep = ei->pos->dep;
-
-	w = g_hash_table_lookup (watchers, &key);
-	if (w != NULL) {
-		if (w->value != NULL)
-			g_hash_table_remove (w->value->deps, w);
-		g_free (w);
+	if (qlink) {
+		if (debug)
+			g_printerr ("link atl_last\n");
+	} else {
+		Watcher key, *w;
+		key.node = ei->func_call;
+		key.dep = ei->pos->dep;
+
+		w = g_hash_table_lookup (watchers, &key);
+		if (w != NULL) {
+			if (w->value != NULL)
+				g_hash_table_remove (w->value->deps, w);
+			g_free (w);
+		}
+		if (debug)
+			g_printerr ("unlink atl_last\n");
 	}
-	if (debug)
-		g_printerr ("unlink atl_last\n");
+	return DEPENDENT_NO_FLAG;
 }
 
 static GnmFuncHelp const help_atl_last[] = {
@@ -282,7 +281,7 @@ static GnmFuncHelp const help_atl_last[] = {
 };
 
 GnmFuncDescriptor const ATL_functions[] = {
-	{"atl_last", "s", help_atl_last, atl_last, NULL, atl_last_link, atl_last_unlink },
+	{"atl_last", "s", help_atl_last, atl_last, NULL, atl_last_link },
 
 	{NULL}
 };
diff --git a/src/dependent.c b/src/dependent.c
index 485e66d..90b615b 100644
--- a/src/dependent.c
+++ b/src/dependent.c
@@ -3,7 +3,7 @@
  * dependent.c:  Manage calculation dependencies between objects
  *
  * Copyright (C) 2000-2006 Jody Goldberg (jody gnome org)
- * Copyright (C) 2006-2009 Morten Welinder (terra gnome org)
+ * Copyright (C) 2006-2012 Morten Welinder (terra gnome org)
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -33,7 +33,6 @@
 #include "expr-name.h"
 #include "application.h"
 #include "workbook-view.h"
-#include "rendered-value.h" /* FIXME : should not be needed with JIT-R */
 #include "ranges.h"
 #include "gutils.h"
 #include "sheet-view.h"
@@ -238,7 +237,6 @@ static void name_dep_debug_name	   (GnmDependent const *dep, GString *target);
 static void managed_dep_eval	   (GnmDependent *dep);
 static void managed_dep_debug_name (GnmDependent const *dep, GString *target);
 
-static GnmCellPos const dummy = { 0, 0 };
 static GPtrArray *dep_classes = NULL;
 static GnmDependentClass dynamic_dep_class = {
 	dynamic_dep_eval,
@@ -397,6 +395,7 @@ dependent_set_expr (GnmDependent *dep, GnmExprTop const *new_texpr)
 static inline GnmCellPos const *
 dependent_pos (GnmDependent const *dep)
 {
+	static GnmCellPos const dummy = { 0, 0 };
 	return dependent_is_cell (dep) ? &GNM_DEP_TO_CELL (dep)->pos : &dummy;
 }
 
@@ -846,17 +845,15 @@ link_single_dep (GnmDependent *dep, GnmCellPos const *pos, GnmCellRef const *ref
 {
 	DependencySingle lookup;
 	DependencySingle *single;
-	GnmDepContainer *deps;
 	GnmDependentFlags flag = DEPENDENT_NO_FLAG;
 	Sheet const *sheet = eval_sheet (ref->sheet, dep->sheet);
+	GnmDepContainer *deps = sheet->deps;
 
 	if (sheet != dep->sheet)
 		flag = (sheet->workbook != dep->sheet->workbook)
 			? DEPENDENT_GOES_INTERBOOK
 			: DEPENDENT_GOES_INTERSHEET;
 
-	deps = sheet->deps;
-
 	/* Inserts if it is not already there */
 	gnm_cellpos_init_cellref (&lookup.pos, ref, pos, sheet);
 	single = g_hash_table_lookup (deps->single_hash, &lookup);
@@ -871,16 +868,21 @@ link_single_dep (GnmDependent *dep, GnmCellPos const *pos, GnmCellRef const *ref
 	return flag;
 }
 
-static void
+static GnmDependentFlags
 unlink_single_dep (GnmDependent *dep, GnmCellPos const *pos, GnmCellRef const *a)
 {
 	DependencySingle lookup;
 	DependencySingle *single;
+	GnmDependentFlags flag = DEPENDENT_NO_FLAG;
 	Sheet const *sheet = eval_sheet (a->sheet, dep->sheet);
 	GnmDepContainer *deps = sheet->deps;
 
+	if (sheet != dep->sheet)
+		flag = (sheet->workbook != dep->sheet->workbook)
+			? DEPENDENT_GOES_INTERBOOK
+			: DEPENDENT_GOES_INTERSHEET;
 	if (!deps)
-		return;
+		return flag;
 
 	gnm_cellpos_init_cellref (&lookup.pos, a, pos, sheet);
 	single = g_hash_table_lookup (deps->single_hash, &lookup);
@@ -892,8 +894,20 @@ unlink_single_dep (GnmDependent *dep, GnmCellPos const *pos, GnmCellRef const *a
 			go_mem_chunk_free (deps->single_pool, single);
 		}
 	}
+
+	return flag;
 }
 
+static inline GnmDependentFlags
+link_unlink_single_dep (GnmDependent *dep, GnmCellPos const *pos,
+			GnmCellRef const *a, gboolean qlink)
+{
+	return qlink
+		? link_single_dep (dep, pos, a)
+		: unlink_single_dep (dep, pos, a);
+}
+
+
 static void
 link_range_dep (GnmDepContainer *deps, GnmDependent *dep,
 		DependencyRange const *r)
@@ -960,9 +974,20 @@ unlink_range_dep (GnmDepContainer *deps, GnmDependent *dep,
 	}
 }
 
+static inline void
+link_unlink_range_dep (GnmDepContainer *deps, GnmDependent *dep,
+		       DependencyRange const *r, gboolean qlink)
+{
+	if (qlink)
+		link_range_dep (deps, dep, r);
+	else
+		unlink_range_dep (deps, dep, r);
+}
+
 static GnmDependentFlags
-link_cellrange_dep (GnmDependent *dep, GnmCellPos const *pos,
-		    GnmCellRef const *a, GnmCellRef const *b)
+link_unlink_cellrange_dep (GnmDependent *dep, GnmCellPos const *pos,
+			   GnmCellRef const *a, GnmCellRef const *b,
+			   gboolean qlink)
 {
 	DependencyRange range;
 	GnmDependentFlags flag = DEPENDENT_NO_FLAG;
@@ -987,49 +1012,21 @@ link_cellrange_dep (GnmDependent *dep, GnmCellPos const *pos,
 			while (i <= stop) {
 				Sheet *sheet = g_ptr_array_index (wb->sheets, i);
 				i++;
-				link_range_dep (sheet->deps, dep, &range);
+				link_unlink_range_dep (sheet->deps, dep, &range,
+						       qlink);
 			}
 			flag |= DEPENDENT_HAS_3D;
 		} else
-			link_range_dep (a->sheet->deps, dep, &range);
+			link_unlink_range_dep (a->sheet->deps, dep, &range,
+					       qlink);
 	} else
-		link_range_dep (dep->sheet->deps, dep, &range);
+		link_unlink_range_dep (dep->sheet->deps, dep, &range, qlink);
 
 	return flag;
 }
 
-static void
-unlink_cellrange_dep (GnmDependent *dep, GnmCellPos const *pos,
-		      GnmCellRef const *a, GnmCellRef const *b)
-{
-	DependencyRange range;
-
-	gnm_cellpos_init_cellref (&range.range.start, a, pos, dep->sheet);
-	gnm_cellpos_init_cellref (&range.range.end, b, pos, dep->sheet);
-	range_normalize (&range.range);
-
-	if (a->sheet != NULL) {
-		if (b->sheet != NULL && a->sheet != b->sheet) {
-			Workbook const *wb = a->sheet->workbook;
-			int i = a->sheet->index_in_wb;
-			int stop = b->sheet->index_in_wb;
-			if (i > stop) { int tmp = i; i = stop ; stop = tmp; }
-
-			g_return_if_fail (b->sheet->workbook == wb);
-
-			while (i <= stop) {
-				Sheet *sheet = g_ptr_array_index (wb->sheets, i);
-				i++;
-				unlink_range_dep (sheet->deps, dep, &range);
-			}
-		} else
-			unlink_range_dep (a->sheet->deps, dep, &range);
-	} else
-		unlink_range_dep (dep->sheet->deps, dep, &range);
-}
-
 static GnmDependentFlags
-link_expr_dep (GnmEvalPos *ep, GnmExpr const *tree)
+link_unlink_expr_dep (GnmEvalPos *ep, GnmExpr const *tree, gboolean qlink)
 {
 	g_return_val_if_fail (tree != NULL, DEPENDENT_NO_FLAG);
 
@@ -1037,24 +1034,29 @@ link_expr_dep (GnmEvalPos *ep, GnmExpr const *tree)
 	case GNM_EXPR_OP_RANGE_CTOR:  /* See #562363 */
 	case GNM_EXPR_OP_INTERSECT:
 	case GNM_EXPR_OP_ANY_BINARY:
-		return link_expr_dep (ep, tree->binary.value_a) |
-		       link_expr_dep (ep, tree->binary.value_b);
+		return link_unlink_expr_dep (ep, tree->binary.value_a, qlink) |
+		       link_unlink_expr_dep (ep, tree->binary.value_b, qlink);
 	case GNM_EXPR_OP_ANY_UNARY:
-		return link_expr_dep (ep, tree->unary.value);
+		return link_unlink_expr_dep (ep, tree->unary.value, qlink);
 	case GNM_EXPR_OP_CELLREF:
-		return link_single_dep (ep->dep, dependent_pos (ep->dep), &tree->cellref.ref);
+		return link_unlink_single_dep (ep->dep, dependent_pos (ep->dep), &tree->cellref.ref, qlink);
 
 	case GNM_EXPR_OP_CONSTANT:
 		/* TODO: pass in eval flags so that we can use implicit
 		 * intersection
 		 */
 		if (VALUE_CELLRANGE == tree->constant.value->type)
-			return link_cellrange_dep (ep->dep, dependent_pos (ep->dep),
+			return link_unlink_cellrange_dep
+				(ep->dep, dependent_pos (ep->dep),
 				 &tree->constant.value->v_range.cell.a,
-				 &tree->constant.value->v_range.cell.b);
+				 &tree->constant.value->v_range.cell.b,
+				 qlink);
 		return DEPENDENT_NO_FLAG;
 
-	/* TODO : Can we use argument types to be smarter here ? */
+	/*
+	 * FIXME: needs to be taught implicit intersection +
+	 * more cunning handling of argument type matching.
+	 */
 	case GNM_EXPR_OP_FUNCALL: {
 		int i;
 		GnmDependentFlags flag = DEPENDENT_NO_FLAG;
@@ -1064,18 +1066,18 @@ link_expr_dep (GnmEvalPos *ep, GnmExpr const *tree)
 			GnmFuncEvalInfo fei;
 			fei.pos = ep;
 			fei.func_call = &tree->func;
-			flag = tree->func.func->linker (&fei);
+			flag = tree->func.func->linker (&fei, qlink);
 		}
 		if (!(flag & DEPENDENT_IGNORE_ARGS))
 			for (i = 0; i < tree->func.argc; i++)
-				flag |= link_expr_dep (ep, tree->func.argv[i]);
+				flag |= link_unlink_expr_dep (ep, tree->func.argv[i], qlink);
 		return flag;
 	}
 
 	case GNM_EXPR_OP_NAME:
 		expr_name_add_dep (tree->name.name, ep->dep);
 		if (expr_name_is_active (tree->name.name))
-			return link_expr_dep (ep, tree->name.name->texpr->expr) | DEPENDENT_USES_NAME;
+			return link_unlink_expr_dep (ep, tree->name.name->texpr->expr, qlink) | DEPENDENT_USES_NAME;
 		return DEPENDENT_USES_NAME;
 
 	case GNM_EXPR_OP_ARRAY_ELEM: {
@@ -1092,14 +1094,14 @@ link_expr_dep (GnmEvalPos *ep, GnmExpr const *tree)
 		a.col   = pos->col - tree->array_elem.x;
 		a.row   = pos->row - tree->array_elem.y;
 
-		return link_single_dep (ep->dep, pos, &a);
+		return link_unlink_single_dep (ep->dep, pos, &a, qlink);
 	}
 
 	case GNM_EXPR_OP_ARRAY_CORNER: {
 		GnmEvalPos pos = *ep;
 		pos.array = &tree->array_corner;
 		/* Corner cell depends on the contents of the expr */
-		return link_expr_dep (&pos, tree->array_corner.expr);
+		return link_unlink_expr_dep (&pos, tree->array_corner.expr, qlink);
 	}
 
 	case GNM_EXPR_OP_SET: {
@@ -1107,7 +1109,7 @@ link_expr_dep (GnmEvalPos *ep, GnmExpr const *tree)
 		GnmDependentFlags res = DEPENDENT_NO_FLAG;
 
 		for (i = 0; i < tree->set.argc; i++)
-			res |= link_expr_dep (ep, tree->set.argv[i]);
+			res |= link_unlink_expr_dep (ep, tree->set.argv[i], qlink);
 		return res;
 	}
 #ifndef DEBUG_SWITCH_ENUM
@@ -1115,93 +1117,7 @@ link_expr_dep (GnmEvalPos *ep, GnmExpr const *tree)
 		g_assert_not_reached ();
 #endif
 	}
-	return 0;
-}
-
-static void
-unlink_expr_dep (GnmDependent *dep, GnmExpr const *tree)
-{
-	switch (GNM_EXPR_GET_OPER (tree)) {
-	case GNM_EXPR_OP_RANGE_CTOR:  /* See #562363 */
-	case GNM_EXPR_OP_INTERSECT:
-	case GNM_EXPR_OP_ANY_BINARY:
-		unlink_expr_dep (dep, tree->binary.value_a);
-		unlink_expr_dep (dep, tree->binary.value_b);
-		return;
-
-	case GNM_EXPR_OP_ANY_UNARY:
-		unlink_expr_dep (dep, tree->unary.value);
-		return;
-	case GNM_EXPR_OP_CELLREF:
-		unlink_single_dep (dep, dependent_pos (dep), &tree->cellref.ref);
-		return;
-
-	case GNM_EXPR_OP_CONSTANT:
-		if (VALUE_CELLRANGE == tree->constant.value->type)
-			unlink_cellrange_dep (dep, dependent_pos (dep),
-				&tree->constant.value->v_range.cell.a,
-				&tree->constant.value->v_range.cell.b);
-		return;
-
-	/*
-	 * FIXME: needs to be taught implicit intersection +
-	 * more cunning handling of argument type matching.
-	 */
-	case GNM_EXPR_OP_FUNCALL: {
-		int i;
-		if (tree->func.func->unlinker) {
-			GnmEvalPos ep;
-			GnmFuncEvalInfo fei;
-			fei.pos = eval_pos_init_dep (&ep, dep);
-			fei.func_call = &tree->func;
-			tree->func.func->unlinker (&fei);
-		}
-		for (i = 0; i < tree->func.argc; i++)
-			unlink_expr_dep (dep, tree->func.argv[i]);
-		return;
-	}
-
-	case GNM_EXPR_OP_NAME:
-		expr_name_remove_dep (tree->name.name, dep);
-		if (expr_name_is_active (tree->name.name))
-			unlink_expr_dep (dep, tree->name.name->texpr->expr);
-		return;
-
-	case GNM_EXPR_OP_ARRAY_ELEM: {
-		GnmCellRef a;
-		GnmCellPos const *pos = dependent_pos (dep);
-
-		g_return_if_fail (pos != NULL);
-
-		/* Non-corner cells depend on the corner */
-		a.col_relative = a.row_relative = FALSE;
-		a.sheet = dep->sheet;
-		a.col   = pos->col - tree->array_elem.x;
-		a.row   = pos->row - tree->array_elem.y;
-
-		unlink_single_dep (dep, pos, &a);
-		return;
-	}
-
-	case GNM_EXPR_OP_ARRAY_CORNER:
-		/* Corner depends on the contents of the expr */
-		unlink_expr_dep (dep, tree->array_corner.expr);
-		return;
-
-	case GNM_EXPR_OP_SET: {
-		int i;
-
-		for (i = 0; i < tree->set.argc; i++)
-			unlink_expr_dep (dep, tree->set.argv[i]);
-		return;
-	}
-
-#ifndef DEBUG_SWITCH_ENUM
-	default:
-		g_assert_not_reached ();
-		break;
-#endif
-	}
+	return DEPENDENT_NO_FLAG;
 }
 
 static void
@@ -1255,7 +1171,10 @@ void
 dependent_managed_set_expr (GnmDependent *dep, GnmExprTop const *texpr)
 {
 	g_return_if_fail (dep != NULL);
+#if 0
+	/* We need some kind of IS_A */
 	g_return_if_fail (dependent_type (dep) == DEPENDENT_MANAGED);
+#endif
 
 	dependent_set_expr (dep, texpr);
 	if (texpr && dep->sheet)
@@ -1268,7 +1187,10 @@ dependent_managed_set_sheet (GnmDependent *dep, Sheet *sheet)
 	GnmExprTop const *texpr;
 
 	g_return_if_fail (dep != NULL);
+#if 0
+	/* We need some kind of IS_A */
 	g_return_if_fail (dependent_type (dep) == DEPENDENT_MANAGED);
+#endif
 
 	if (dep->sheet == sheet)
 		return;
@@ -1351,7 +1273,7 @@ dependent_add_dynamic_dep (GnmDependent *dep, GnmRangeRef const *rr)
 		flags = link_single_dep (&dyn->base, pos, &rr->a);
 		dyn->singles = g_slist_prepend (dyn->singles, gnm_rangeref_dup (rr));
 	} else {
-		flags = link_cellrange_dep (&dyn->base, pos, &rr->a, &rr->b);
+		flags = link_unlink_cellrange_dep (&dyn->base, pos, &rr->a, &rr->b, TRUE);
 		dyn->ranges = g_slist_prepend (dyn->ranges, gnm_rangeref_dup (rr));
 	}
 	if (flags & DEPENDENT_HAS_3D)
@@ -1395,7 +1317,8 @@ dependent_link (GnmDependent *dep)
 		sheet->deps->head = dep; /* first element */
 	sheet->deps->tail = dep;
 	dep->flags |= DEPENDENT_IS_LINKED |
-		link_expr_dep (eval_pos_init_dep (&ep, dep), dep->texpr->expr);
+		link_unlink_expr_dep (eval_pos_init_dep (&ep, dep),
+				      dep->texpr->expr, TRUE);
 
 	if (dep->flags & DEPENDENT_HAS_3D)
 		workbook_link_3d_dep (dep);
@@ -1412,13 +1335,15 @@ void
 dependent_unlink (GnmDependent *dep)
 {
 	GnmDepContainer *contain;
+	GnmEvalPos ep;
 
 	g_return_if_fail (dep != NULL);
 	g_return_if_fail (dependent_is_linked (dep));
 	g_return_if_fail (dep->texpr != NULL);
 	g_return_if_fail (IS_SHEET (dep->sheet));
 
-	unlink_expr_dep (dep, dep->texpr->expr);
+	link_unlink_expr_dep (eval_pos_init_dep (&ep, dep),
+			      dep->texpr->expr, FALSE);
 	contain = dep->sheet->deps;
 	if (contain != NULL) {
 		if (contain->head == dep)
@@ -2766,7 +2691,8 @@ dynamic_dep_free (DynamicDep *dyn)
 
 	for (ptr = dyn->ranges ; ptr != NULL ; ptr = ptr->next) {
 		rr = ptr->data;
-		unlink_cellrange_dep (&dyn->base, pos, &rr->a, &rr->b);
+		link_unlink_cellrange_dep (&dyn->base, pos,
+					   &rr->a, &rr->b, FALSE);
 		g_free (rr);
 	}
 	g_slist_free (dyn->ranges);
diff --git a/src/dependent.h b/src/dependent.h
index 873e51f..0ec29ba 100644
--- a/src/dependent.h
+++ b/src/dependent.h
@@ -43,7 +43,6 @@ typedef enum {
 	DEPENDENT_GOES_INTERBOOK   = 0x00020000,
 	DEPENDENT_USES_NAME	   = 0x00040000,
 	DEPENDENT_HAS_3D	   = 0x00080000,
-	DEPENDENT_ALWAYS_UNLINK    = 0x00100000,	/* what should this do ? */
 	DEPENDENT_HAS_DYNAMIC_DEPS = 0x00200000,
 	DEPENDENT_IGNORE_ARGS	   = 0x00400000,
 	DEPENDENT_LINK_FLAGS	   = 0x007ff000,
diff --git a/src/func-builtin.c b/src/func-builtin.c
index bac5fc4..5491c62 100644
--- a/src/func-builtin.c
+++ b/src/func-builtin.c
@@ -120,11 +120,14 @@ gnumeric_version (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 /***************************************************************************/
 
 static GnmDependentFlags
-gnumeric_table_link (GnmFuncEvalInfo *ei)
+gnumeric_table_link (GnmFuncEvalInfo *ei, gboolean qlink)
 {
 	GnmDependent *dep = ei->pos->dep;
 	GnmRangeRef rr;
 
+	if (!qlink)
+		return DEPENDENT_NO_FLAG;
+
 	rr.a.col_relative = rr.a.row_relative =
 	rr.b.col_relative = rr.b.row_relative = FALSE;
 	rr.a.sheet = rr.b.sheet = dep->sheet;
@@ -155,7 +158,7 @@ gnumeric_table (GnmFuncEvalInfo *ei, int argc, GnmExprConstPtr const *argv)
 	int x, y;
 
 	/* evaluation clears the dynamic deps */
-	gnumeric_table_link (ei);
+	gnumeric_table_link (ei, TRUE);
 
 	if (argc != 2 ||
 	    ei->pos->eval.col < 1 ||
@@ -392,40 +395,40 @@ func_builtin_init (void)
 		/* --- Math --- */
 		{	"sum",		NULL,
 			help_sum,	NULL,	gnumeric_sum,
-			NULL, NULL, NULL, GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
+			NULL, NULL, GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_FIRST,
 			GNM_FUNC_IMPL_STATUS_COMPLETE,
 			GNM_FUNC_TEST_STATUS_BASIC
 		},
 		{	"product",		NULL,
 			help_product,	NULL,	gnumeric_product,
-			NULL, NULL, NULL, GNM_FUNC_SIMPLE,
+			NULL, NULL, GNM_FUNC_SIMPLE,
 			GNM_FUNC_IMPL_STATUS_COMPLETE,
 			GNM_FUNC_TEST_STATUS_BASIC
 		},
 		/* --- Gnumeric --- */
 		{	"gnumeric_version",	"",
 			help_gnumeric_version,	gnumeric_version, NULL,
-			NULL, NULL, NULL, GNM_FUNC_SIMPLE,
+			NULL, NULL, GNM_FUNC_SIMPLE,
 			GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 			GNM_FUNC_TEST_STATUS_EXHAUSTIVE
 		},
 		{	"table",	"",
 			NULL,		NULL,	gnumeric_table,
-			gnumeric_table_link, NULL,
+			gnumeric_table_link,
 			NULL, GNM_FUNC_SIMPLE + GNM_FUNC_INTERNAL,
 			GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 			GNM_FUNC_TEST_STATUS_EXHAUSTIVE
 		},
 		{	"number_match", "s|s",
 			help_number_match, gnumeric_number_match, NULL,
-			NULL, NULL, NULL,
+			NULL, NULL,
 			GNM_FUNC_SIMPLE,
 			GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC,
 			GNM_FUNC_TEST_STATUS_BASIC },
 		/* --- Logic --- */
 		{	"if", "b|EE",
 			help_if, gnumeric_if, NULL,
-			NULL, NULL, NULL,
+			NULL, NULL,
 			GNM_FUNC_SIMPLE + GNM_FUNC_AUTO_SECOND,
 			GNM_FUNC_IMPL_STATUS_COMPLETE,
 			GNM_FUNC_TEST_STATUS_BASIC },
diff --git a/src/func.c b/src/func.c
index fdfe9ab..d90c774 100644
--- a/src/func.c
+++ b/src/func.c
@@ -926,7 +926,6 @@ gnm_func_load_stub (GnmFunc *func)
 			g_warning ("Invalid function descriptor with no function");
 		}
 		func->linker	  = desc.linker;
-		func->unlinker	  = desc.unlinker;
 		func->impl_status = desc.impl_status;
 		func->test_status = desc.test_status;
 		func->flags	  = desc.flags;
@@ -936,7 +935,6 @@ gnm_func_load_stub (GnmFunc *func)
 		func->fn_type = GNM_FUNC_TYPE_NODES;
 		func->fn.nodes = &error_function_no_full_info;
 		func->linker   = NULL;
-		func->unlinker = NULL;
 	}
 }
 
@@ -1045,7 +1043,6 @@ gnm_func_add (GnmFuncGroup *fn_group,
 	func->help		= desc->help ? desc->help : NULL;
 	func->textdomain        = go_string_new (textdomain);
 	func->linker		= desc->linker;
-	func->unlinker		= desc->unlinker;
 	func->ref_notify	= desc->ref_notify;
 	func->flags		= desc->flags;
 	func->impl_status	= desc->impl_status;
@@ -1155,7 +1152,6 @@ gnm_func_add_placeholder (Workbook *scope,
 	desc.fn_args	  = NULL;
 	desc.fn_nodes	  = &unknownFunctionHandler;
 	desc.linker	  = NULL;
-	desc.unlinker	  = NULL;
 	desc.ref_notify	  = NULL;
 	desc.flags	  = GNM_FUNC_IS_PLACEHOLDER | (copy_name ? GNM_FUNC_FREE_NAME : 0);
 	desc.impl_status  = GNM_FUNC_IMPL_STATUS_EXISTS;
diff --git a/src/func.h b/src/func.h
index d501a1c..59583ba 100644
--- a/src/func.h
+++ b/src/func.h
@@ -126,8 +126,7 @@ typedef enum {
 typedef GnmValue	*(*GnmFuncArgs)	  (GnmFuncEvalInfo *ei, GnmValue const * const *args);
 typedef GnmValue	*(*GnmFuncNodes)  (GnmFuncEvalInfo *ei,
 					   int argc, GnmExprConstPtr const *argv);
-typedef GnmDependentFlags	 (*GnmFuncLink)	  (GnmFuncEvalInfo *ei);
-typedef void		 (*GnmFuncUnlink) (GnmFuncEvalInfo *ei);
+typedef GnmDependentFlags (*GnmFuncLink)  (GnmFuncEvalInfo *ei, gboolean qlink);
 
 typedef void	 (*GnmFuncRefNotify) (GnmFunc *f, int refcount);
 typedef gboolean (*GnmFuncLoadDesc)  (GnmFunc const *f, GnmFuncDescriptor *fd);
@@ -181,7 +180,6 @@ struct _GnmFuncDescriptor {
 	GnmFuncArgs	  fn_args;
 	GnmFuncNodes	  fn_nodes;
 	GnmFuncLink	  linker;
-	GnmFuncUnlink	  unlinker;
 	GnmFuncRefNotify  ref_notify;
 	GnmFuncFlags	  flags;
 	GnmFuncImplStatus impl_status;
@@ -207,7 +205,6 @@ struct _GnmFunc {
 	} fn;
 	GnmFuncGroup		*fn_group; /* most recent it was assigned to */
 	GnmFuncLink		 linker;
-	GnmFuncUnlink		 unlinker;
 	GnmFuncRefNotify	 ref_notify;
 	GnmFuncImplStatus	 impl_status;
 	GnmFuncTestStatus	 test_status;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]