SF.net SVN: gar:[22751] csw/mgar/pkg/cfengine3/trunk

guengel at users.sourceforge.net guengel at users.sourceforge.net
Thu Dec 26 19:54:44 CET 2013


Revision: 22751
          http://sourceforge.net/p/gar/code/22751
Author:   guengel
Date:     2013-12-26 18:54:44 +0000 (Thu, 26 Dec 2013)
Log Message:
-----------
New upstream release 3.5.3.

Modified Paths:
--------------
    csw/mgar/pkg/cfengine3/trunk/Makefile
    csw/mgar/pkg/cfengine3/trunk/checksums
    csw/mgar/pkg/cfengine3/trunk/files/changelog.CSW

Added Paths:
-----------
    csw/mgar/pkg/cfengine3/trunk/files/0002-Add-z-interpose-to-evalfunction_test-and-set_domainn.patch

Removed Paths:
-------------
    csw/mgar/pkg/cfengine3/trunk/files/0000-evalfunction-unittest-needs-z-interpose-when-linking.patch
    csw/mgar/pkg/cfengine3/trunk/files/0003-Solaris-11-DATA_TYPE_-name-clash-patch.patch

Modified: csw/mgar/pkg/cfengine3/trunk/Makefile
===================================================================
--- csw/mgar/pkg/cfengine3/trunk/Makefile	2013-12-26 18:54:05 UTC (rev 22750)
+++ csw/mgar/pkg/cfengine3/trunk/Makefile	2013-12-26 18:54:44 UTC (rev 22751)
@@ -1,7 +1,7 @@
 # $Id$
 #
 NAME = cfengine3
-VERSION = 3.5.2
+VERSION = 3.5.3
 GARTYPE = v2
 GARCOMPILER = GCC4
 
@@ -38,11 +38,8 @@
 # uncomment the next line. Otherwise it is set by default to the value of MASTER_SITES
 # UPSTREAM_MASTER_SITES =
 
-PATCHFILES += 0000-evalfunction-unittest-needs-z-interpose-when-linking.patch
 PATCHFILES += 0000-Disable-acceptance-test.patch
-# Patch has been generated by using
-#  find work/solaris11-sparc/build-isa-sparcv8plus/cfengine-3.5.2/ -type f \( -name \*.c -o -name \*.h -o -name \*.y \) -exec gsed -i.bak 's/DATA_TYPE_/CF_DATA_TYPE_/g' \{\} \;
-PATCHFILES += 0003-Solaris-11-DATA_TYPE_-name-clash-patch.patch
+PATCHFILES += 0002-Add-z-interpose-to-evalfunction_test-and-set_domainn.patch
 
 #
 # CUSTOM VARIABLES

Modified: csw/mgar/pkg/cfengine3/trunk/checksums
===================================================================
--- csw/mgar/pkg/cfengine3/trunk/checksums	2013-12-26 18:54:05 UTC (rev 22750)
+++ csw/mgar/pkg/cfengine3/trunk/checksums	2013-12-26 18:54:44 UTC (rev 22751)
@@ -1 +1 @@
-fa5a5270803fa24e9ab662aae6f73b4a  cfengine-3.5.2.tar.gz
+c840eb0163924ca657ab180fe5a170b4  cfengine-3.5.3.tar.gz

Deleted: csw/mgar/pkg/cfengine3/trunk/files/0000-evalfunction-unittest-needs-z-interpose-when-linking.patch
===================================================================
--- csw/mgar/pkg/cfengine3/trunk/files/0000-evalfunction-unittest-needs-z-interpose-when-linking.patch	2013-12-26 18:54:05 UTC (rev 22750)
+++ csw/mgar/pkg/cfengine3/trunk/files/0000-evalfunction-unittest-needs-z-interpose-when-linking.patch	2013-12-26 18:54:44 UTC (rev 22751)
@@ -1,25 +0,0 @@
-From 861b9272653520866f07cee72b1a9277ab4410f3 Mon Sep 17 00:00:00 2001
-From: Rafael Ostertag <rafi at guengel.ch>
-Date: Sat, 28 Sep 2013 16:53:23 +0200
-Subject: [PATCH] evalfunction unittest needs `-z interpose' when linking.
-
----
- tests/unit/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/unit/Makefile.in b/tests/unit/Makefile.in
-index 05df581..1bfaa6d 100644
---- a/tests/unit/Makefile.in
-+++ b/tests/unit/Makefile.in
-@@ -205,7 +205,7 @@ domainname_test_DEPENDENCIES = ../../libpromises/libpromises.la \
- 	libtest.la
- evalfunction_test_SOURCES = evalfunction_test.c
- evalfunction_test_OBJECTS = evalfunction_test.$(OBJEXT)
--evalfunction_test_LDADD = $(LDADD)
-+evalfunction_test_LDADD = $(LDADD) -z interpose
- evalfunction_test_DEPENDENCIES = ../../libpromises/libpromises.la \
- 	libtest.la
- am_exec_config_test_OBJECTS = exec-config-test.$(OBJEXT) \
--- 
-1.8.3.4
-

Added: csw/mgar/pkg/cfengine3/trunk/files/0002-Add-z-interpose-to-evalfunction_test-and-set_domainn.patch
===================================================================
--- csw/mgar/pkg/cfengine3/trunk/files/0002-Add-z-interpose-to-evalfunction_test-and-set_domainn.patch	                        (rev 0)
+++ csw/mgar/pkg/cfengine3/trunk/files/0002-Add-z-interpose-to-evalfunction_test-and-set_domainn.patch	2013-12-26 18:54:44 UTC (rev 22751)
@@ -0,0 +1,34 @@
+From 7db6e67b943a7f8d04c0e9d05028239c0727a048 Mon Sep 17 00:00:00 2001
+From: Rafael Ostertag <raos at opencsw.org>
+Date: Thu, 26 Dec 2013 18:26:17 +0100
+Subject: [PATCH] Add -z interpose to evalfunction_test and set_domainname_test
+
+---
+ tests/unit/Makefile.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/unit/Makefile.in b/tests/unit/Makefile.in
+index 9304065..cfea627 100644
+--- a/tests/unit/Makefile.in
++++ b/tests/unit/Makefile.in
+@@ -205,7 +205,7 @@ domainname_test_DEPENDENCIES = ../../libpromises/libpromises.la \
+ 	libtest.la
+ evalfunction_test_SOURCES = evalfunction_test.c
+ evalfunction_test_OBJECTS = evalfunction_test.$(OBJEXT)
+-evalfunction_test_LDADD = $(LDADD)
++evalfunction_test_LDADD = $(LDADD) -z interpose
+ evalfunction_test_DEPENDENCIES = ../../libpromises/libpromises.la \
+ 	libtest.la
+ am_exec_config_test_OBJECTS = exec-config-test.$(OBJEXT) \
+@@ -728,7 +728,7 @@ csv_writer_test_SOURCES = csv_writer_test.c ../../libutils/csv_writer.c
+ csv_writer_test_LDADD = libtest.la libstr.la
+ conversion_test_SOURCES = conversion_test.c ../../libpromises/conversion.c
+ set_domainname_test_SOURCES = set_domainname_test.c
+-set_domainname_test_LDADD = libstr.la ../../libpromises/libpromises.la
++set_domainname_test_LDADD = -z interpose libstr.la ../../libpromises/libpromises.la
+ str_test_SOURCES = str_test.c
+ str_test_LDADD = libstr.la
+ xml_writer_test_SOURCES = xml_writer_test.c ../../libutils/xml_writer.c
+-- 
+1.8.4.1
+

Deleted: csw/mgar/pkg/cfengine3/trunk/files/0003-Solaris-11-DATA_TYPE_-name-clash-patch.patch
===================================================================
--- csw/mgar/pkg/cfengine3/trunk/files/0003-Solaris-11-DATA_TYPE_-name-clash-patch.patch	2013-12-26 18:54:05 UTC (rev 22750)
+++ csw/mgar/pkg/cfengine3/trunk/files/0003-Solaris-11-DATA_TYPE_-name-clash-patch.patch	2013-12-26 18:54:44 UTC (rev 22751)
@@ -1,3747 +0,0 @@
-From 2b6e0b6cd2e733b488c9d2bf5db8e0c7c4299e3b Mon Sep 17 00:00:00 2001
-From: Rafael Ostertag <raos at opencsw.org>
-Date: Sun, 29 Sep 2013 14:50:15 +0200
-Subject: [PATCH] Solaris 11 DATA_TYPE_* name clash patch.
-
----
- cf-agent/cf-agent.c               |  12 +-
- cf-agent/files_editline.c         |   2 +-
- cf-agent/files_editxml.c          |   2 +-
- cf-agent/vercmp.c                 |   4 +-
- cf-agent/verify_environments.c    |   2 +-
- cf-agent/verify_exec.c            |   2 +-
- cf-agent/verify_files.c           |   4 +-
- cf-agent/verify_files_utils.c     |   2 +-
- cf-agent/verify_methods.c         |   2 +-
- cf-agent/verify_packages.c        |  24 +-
- cf-agent/verify_processes.c       |   2 +-
- cf-agent/verify_services.c        |  10 +-
- cf-execd/cf-execd.c               |   2 +-
- cf-gendoc/export_xml.c            |  40 +-
- cf-gendoc/manual.c                |   8 +-
- cf-monitord/verify_measurements.c |  10 +-
- libpromises/attributes.c          |   4 +-
- libpromises/bootstrap.c           |   6 +-
- libpromises/cf3.defs.h            |  32 +-
- libpromises/cf3parse.c            |  14 +-
- libpromises/cf3parse.y            |  14 +-
- libpromises/conversion.c          |  40 +-
- libpromises/env_context.c         |  12 +-
- libpromises/evalfunction.c        | 984 +++++++++++++++++++-------------------
- libpromises/expand.c              |  46 +-
- libpromises/generic_agent.c       |   4 +-
- libpromises/iteration.c           |   2 +-
- libpromises/policy.c              |  40 +-
- libpromises/promises.c            |   2 +-
- libpromises/rlist.c               |  32 +-
- libpromises/scope.c               |  34 +-
- libpromises/syntax.c              |  74 +--
- libpromises/syntax.h              |  32 +-
- libpromises/sysinfo.c             | 100 ++--
- libpromises/unix.c                |  28 +-
- libpromises/vars.c                |  10 +-
- libpromises/verify_reports.c      |   2 +-
- libpromises/verify_vars.c         |   6 +-
- tests/unit/assoc_test.c           |   2 +-
- tests/unit/exec-config-test.c     |   2 +-
- tests/unit/expand_test.c          |  30 +-
- tests/unit/scope_test.c           |   6 +-
- tests/unit/set_domainname_test.c  |   2 +-
- 43 files changed, 844 insertions(+), 844 deletions(-)
-
-diff --git a/cf-agent/cf-agent.c b/cf-agent/cf-agent.c
-index be3cf9a..c63f233 100644
---- a/cf-agent/cf-agent.c
-+++ b/cf-agent/cf-agent.c
-@@ -1311,9 +1311,9 @@ static void DefaultVarPromise(EvalContext *ctx, const Promise *pp)
- 
-     switch (dt)
-        {
--       case DATA_TYPE_STRING:
--       case DATA_TYPE_INT:
--       case DATA_TYPE_REAL:
-+       case CF_DATA_TYPE_STRING:
-+       case CF_DATA_TYPE_INT:
-+       case CF_DATA_TYPE_REAL:
- 
-            if (regex && !FullTextMatch(regex,rval.item))
-               {
-@@ -1327,9 +1327,9 @@ static void DefaultVarPromise(EvalContext *ctx, const Promise *pp)
- 
-            break;
- 
--       case DATA_TYPE_STRING_LIST:
--       case DATA_TYPE_INT_LIST:
--       case DATA_TYPE_REAL_LIST:
-+       case CF_DATA_TYPE_STRING_LIST:
-+       case CF_DATA_TYPE_INT_LIST:
-+       case CF_DATA_TYPE_REAL_LIST:
- 
-            if (regex)
-               {
-diff --git a/cf-agent/files_editline.c b/cf-agent/files_editline.c
-index 24ad1ae..7786981 100644
---- a/cf-agent/files_editline.c
-+++ b/cf-agent/files_editline.c
-@@ -113,7 +113,7 @@ int ScheduleEditLineOperations(EvalContext *ctx, Bundle *bp, Attributes a, const
-         return false;
-     }
- 
--    ScopeNewSpecial(ctx, "edit", "filename", edcontext->filename, DATA_TYPE_STRING);
-+    ScopeNewSpecial(ctx, "edit", "filename", edcontext->filename, CF_DATA_TYPE_STRING);
- 
-     for (pass = 1; pass < CF_DONEPASSES; pass++)
-     {
-diff --git a/cf-agent/files_editxml.c b/cf-agent/files_editxml.c
-index ebe953e..f861ccb 100644
---- a/cf-agent/files_editxml.c
-+++ b/cf-agent/files_editxml.c
-@@ -160,7 +160,7 @@ int ScheduleEditXmlOperations(EvalContext *ctx, Bundle *bp, Attributes a, const
-         return false;
-     }
- 
--    ScopeNewSpecial(ctx, "edit", "filename", edcontext->filename, DATA_TYPE_STRING);
-+    ScopeNewSpecial(ctx, "edit", "filename", edcontext->filename, CF_DATA_TYPE_STRING);
- 
-     for (pass = 1; pass < CF_DONEPASSES; pass++)
-     {
-diff --git a/cf-agent/vercmp.c b/cf-agent/vercmp.c
-index 8515826..2be84da 100644
---- a/cf-agent/vercmp.c
-+++ b/cf-agent/vercmp.c
-@@ -64,8 +64,8 @@ static VersionCmpResult RunCmpCommand(EvalContext *ctx, const char *command, con
-     char expanded_command[CF_EXPANDSIZE];
- 
-     {
--        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "v1" }, (Rval) { v1, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
--        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "v2" }, (Rval) { v2, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
-+        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "v1" }, (Rval) { v1, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-+        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "v2" }, (Rval) { v2, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-         ExpandScalar(ctx, "cf_pack_context", command, expanded_command);
- 
-         ScopeClear("cf_pack_context");
-diff --git a/cf-agent/verify_environments.c b/cf-agent/verify_environments.c
-index 6a87431..0ff582e 100644
---- a/cf-agent/verify_environments.c
-+++ b/cf-agent/verify_environments.c
-@@ -134,7 +134,7 @@ void VerifyEnvironmentsPromise(EvalContext *ctx, Promise *pp)
-         }
- 
-         PromiseBanner(pp);
--        ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, DATA_TYPE_STRING);
-+        ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, CF_DATA_TYPE_STRING);
- 
-         pexp = ExpandDeRefPromise(ctx, "this", pp);
-         VerifyEnvironments(ctx, a, pp);
-diff --git a/cf-agent/verify_exec.c b/cf-agent/verify_exec.c
-index 1dd7a86..51051af 100644
---- a/cf-agent/verify_exec.c
-+++ b/cf-agent/verify_exec.c
-@@ -64,7 +64,7 @@ void VerifyExecPromise(EvalContext *ctx, Promise *pp)
- 
-     a = GetExecAttributes(ctx, pp);
- 
--    ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, DATA_TYPE_STRING);
-+    ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, CF_DATA_TYPE_STRING);
- 
-     if (!SyntaxCheckExec(a, pp))
-     {
-diff --git a/cf-agent/verify_files.c b/cf-agent/verify_files.c
-index d117529..45ae46a 100644
---- a/cf-agent/verify_files.c
-+++ b/cf-agent/verify_files.c
-@@ -196,7 +196,7 @@ static void VerifyFilePromise(EvalContext *ctx, char *path, Promise *pp)
-     }
- 
-     ScopeDeleteSpecial("this", "promiser");
--    ScopeNewSpecial(ctx, "this", "promiser", path, DATA_TYPE_STRING);
-+    ScopeNewSpecial(ctx, "this", "promiser", path, CF_DATA_TYPE_STRING);
-     
-     thislock = AcquireLock(ctx, path, VUQNAME, CFSTARTTIME, a.transaction, pp, false);
- 
-@@ -588,7 +588,7 @@ static void FindFilePromiserObjects(EvalContext *ctx, Promise *pp)
-     if (literal)
-     {
-         // Prime the promiser temporarily, may override later
--        ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, DATA_TYPE_STRING);
-+        ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, CF_DATA_TYPE_STRING);
-         VerifyFilePromise(ctx, pp->promiser, pp);
-     }
-     else                        // Default is to expand regex paths
-diff --git a/cf-agent/verify_files_utils.c b/cf-agent/verify_files_utils.c
-index 21f195c..c16b965 100644
---- a/cf-agent/verify_files_utils.c
-+++ b/cf-agent/verify_files_utils.c
-@@ -124,7 +124,7 @@ int VerifyFileLeaf(EvalContext *ctx, char *path, struct stat *sb, Attributes att
- /* We still need to augment the scope of context "this" for commands */
- 
-     ScopeDeleteSpecial("this", "promiser");
--    ScopeNewSpecial(ctx, "this", "promiser", path, DATA_TYPE_STRING);        // Parameters may only be scalars
-+    ScopeNewSpecial(ctx, "this", "promiser", path, CF_DATA_TYPE_STRING);        // Parameters may only be scalars
- 
-     if (attr.transformer != NULL)
-     {
-diff --git a/cf-agent/verify_methods.c b/cf-agent/verify_methods.c
-index 14296e2..e652609 100644
---- a/cf-agent/verify_methods.c
-+++ b/cf-agent/verify_methods.c
-@@ -227,7 +227,7 @@ static void GetReturnValue(EvalContext *ctx, char *scope, Promise *pp)
-                     snprintf(newname, CF_BUFSIZE, "%s", result);
-                 }
- 
--                EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(pp)->name, newname }, assoc->rval, DATA_TYPE_STRING);
-+                EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(pp)->name, newname }, assoc->rval, CF_DATA_TYPE_STRING);
-             }
-         }
-         
-diff --git a/cf-agent/verify_packages.c b/cf-agent/verify_packages.c
-index 1e4ec7e..bcdbfcf 100644
---- a/cf-agent/verify_packages.c
-+++ b/cf-agent/verify_packages.c
-@@ -948,9 +948,9 @@ static void SchedulePackageOp(EvalContext *ctx, const char *name, const char *ve
- 
-     if ((a.packages.package_name_convention) || (a.packages.package_delete_convention))
-     {
--        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
--        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "version" }, (Rval) { version, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
--        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "arch" }, (Rval) { arch, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
-+        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-+        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "version" }, (Rval) { version, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-+        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "arch" }, (Rval) { arch, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
- 
-         if ((a.packages.package_delete_convention) && (a.packages.package_policy == PACKAGE_ACTION_DELETE))
-         {
-@@ -1013,9 +1013,9 @@ static void SchedulePackageOp(EvalContext *ctx, const char *name, const char *ve
-                 ((a.packages.package_select == PACKAGE_VERSION_COMPARATOR_GT) || (a.packages.package_select == PACKAGE_VERSION_COMPARATOR_GE)))
-             {
-                 {
--                    EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
--                    EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "version" }, (Rval) { "(.*)", RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
--                    EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "arch" }, (Rval) { arch, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
-+                    EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-+                    EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "version" }, (Rval) { "(.*)", RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-+                    EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "arch" }, (Rval) { arch, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-                     ExpandScalar(ctx, "cf_pack_context_anyver", a.packages.package_name_convention, refAnyVer);
- 
-                     ScopeClear("cf_pack_context_anyver");
-@@ -1134,9 +1134,9 @@ static void SchedulePackageOp(EvalContext *ctx, const char *name, const char *ve
-             ((a.packages.package_select == PACKAGE_VERSION_COMPARATOR_GT) || (a.packages.package_select == PACKAGE_VERSION_COMPARATOR_GE)))
-         {
-             {
--                EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
--                EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "version" }, (Rval) { "(.*)", RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
--                EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "arch" }, (Rval) { arch, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
-+                EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-+                EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "version" }, (Rval) { "(.*)", RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-+                EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "arch" }, (Rval) { arch, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-                 ExpandScalar(ctx, "cf_pack_context_anyver", a.packages.package_name_convention, refAnyVer);
- 
-                 ScopeClear("cf_pack_context_anyver");
-@@ -1199,9 +1199,9 @@ static void SchedulePackageOp(EvalContext *ctx, const char *name, const char *ve
-                     }
- 
-                     {
--                        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
--                        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "version" }, (Rval) { instVer, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
--                        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "arch" }, (Rval) { instArch, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
-+                        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-+                        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "version" }, (Rval) { instVer, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-+                        EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "arch" }, (Rval) { instArch, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-                         ExpandScalar(ctx, "cf_pack_context", a.packages.package_delete_convention, reference2);
-                         id_del = reference2;
- 
-diff --git a/cf-agent/verify_processes.c b/cf-agent/verify_processes.c
-index ebd9975..a593aae 100644
---- a/cf-agent/verify_processes.c
-+++ b/cf-agent/verify_processes.c
-@@ -124,7 +124,7 @@ static void VerifyProcesses(EvalContext *ctx, Attributes a, Promise *pp)
-     }
- 
-     ScopeDeleteSpecial("this", "promiser");
--    ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, DATA_TYPE_STRING);
-+    ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, CF_DATA_TYPE_STRING);
-     PromiseBanner(pp);
-     VerifyProcessOp(ctx, PROCESSTABLE, a, pp);
-     ScopeDeleteSpecial("this", "promiser");
-diff --git a/cf-agent/verify_services.c b/cf-agent/verify_services.c
-index 9adb726..25562b4 100644
---- a/cf-agent/verify_services.c
-+++ b/cf-agent/verify_services.c
-@@ -163,7 +163,7 @@ void VerifyServices(EvalContext *ctx, Attributes a, Promise *pp)
-         return;
-     }
- 
--    ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, DATA_TYPE_STRING);
-+    ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, CF_DATA_TYPE_STRING);
-     PromiseBanner(pp);
- 
-     if (strcmp(a.service.service_type, "windows") == 0)
-@@ -229,21 +229,21 @@ static void DoVerifyServices(EvalContext *ctx, Attributes a, Promise *pp)
-     switch (a.service.service_policy)
-     {
-     case SERVICE_POLICY_START:
--        ScopeNewSpecial(ctx, "this", "service_policy", "start", DATA_TYPE_STRING);
-+        ScopeNewSpecial(ctx, "this", "service_policy", "start", CF_DATA_TYPE_STRING);
-         break;
- 
-     case SERVICE_POLICY_RESTART:
--        ScopeNewSpecial(ctx, "this", "service_policy", "restart", DATA_TYPE_STRING);
-+        ScopeNewSpecial(ctx, "this", "service_policy", "restart", CF_DATA_TYPE_STRING);
-         break;
- 
-     case SERVICE_POLICY_RELOAD:
--        ScopeNewSpecial(ctx, "this", "service_policy", "reload", DATA_TYPE_STRING);
-+        ScopeNewSpecial(ctx, "this", "service_policy", "reload", CF_DATA_TYPE_STRING);
-         break;
-         
-     case SERVICE_POLICY_STOP:
-     case SERVICE_POLICY_DISABLE:
-     default:
--        ScopeNewSpecial(ctx, "this", "service_policy", "stop", DATA_TYPE_STRING);
-+        ScopeNewSpecial(ctx, "this", "service_policy", "stop", CF_DATA_TYPE_STRING);
-         break;
-     }
- 
-diff --git a/cf-execd/cf-execd.c b/cf-execd/cf-execd.c
-index 3cc5d43..4776904 100644
---- a/cf-execd/cf-execd.c
-+++ b/cf-execd/cf-execd.c
-@@ -534,7 +534,7 @@ static bool ScheduleRun(EvalContext *ctx, Policy **policy, GenericAgentConfig *c
-             free(existing_policy_server);
-         }
- 
--        ScopeNewSpecial(ctx, "sys", "policy_hub", POLICY_SERVER, DATA_TYPE_STRING);
-+        ScopeNewSpecial(ctx, "sys", "policy_hub", POLICY_SERVER, CF_DATA_TYPE_STRING);
- 
-         GetNameInfo3(ctx, AGENT_TYPE_EXECUTOR);
-         GetInterfacesInfo(ctx, AGENT_TYPE_EXECUTOR);
-diff --git a/cf-gendoc/export_xml.c b/cf-gendoc/export_xml.c
-index e8699ff..3e5c195 100644
---- a/cf-gendoc/export_xml.c
-+++ b/cf-gendoc/export_xml.c
-@@ -355,10 +355,10 @@ void XmlExportConstraint(Writer *writer, const ConstraintSyntax *bs)
- 
-     switch (bs->dtype)
-     {
--    case DATA_TYPE_BODY:
--    case DATA_TYPE_BUNDLE:
--    case DATA_TYPE_NONE:
--    case DATA_TYPE_COUNTER:
-+    case CF_DATA_TYPE_BODY:
-+    case CF_DATA_TYPE_BUNDLE:
-+    case CF_DATA_TYPE_NONE:
-+    case CF_DATA_TYPE_COUNTER:
-         /* NO ADDITIONAL INFO */
-         break;
- 
-@@ -394,17 +394,17 @@ static void XmlExportType(Writer *writer, const ConstraintSyntax *constraint_syn
- 
-     switch (constraint_syntax->dtype)
-     {
--    case DATA_TYPE_BODY:
-+    case CF_DATA_TYPE_BODY:
-         /* EXPORT CONSTRAINTS */
-         XmlExportConstraints(writer, constraint_syntax->range.body_type_syntax->constraints);
-         break;
- 
--    case DATA_TYPE_INT:
--    case DATA_TYPE_REAL:
--    case DATA_TYPE_INT_LIST:
--    case DATA_TYPE_REAL_LIST:
--    case DATA_TYPE_INT_RANGE:
--    case DATA_TYPE_REAL_RANGE:
-+    case CF_DATA_TYPE_INT:
-+    case CF_DATA_TYPE_REAL:
-+    case CF_DATA_TYPE_INT_LIST:
-+    case CF_DATA_TYPE_REAL_LIST:
-+    case CF_DATA_TYPE_INT_RANGE:
-+    case CF_DATA_TYPE_REAL_RANGE:
-         if (constraint_syntax->range.validation_string != NULL)
-         {
-             /* START XML ELEMENT -- RANGE */
-@@ -433,8 +433,8 @@ static void XmlExportType(Writer *writer, const ConstraintSyntax *constraint_syn
-             break;
-         }
- 
--    case DATA_TYPE_OPTION:
--    case DATA_TYPE_OPTION_LIST:
-+    case CF_DATA_TYPE_OPTION:
-+    case CF_DATA_TYPE_OPTION_LIST:
-         if (constraint_syntax->range.validation_string != NULL)
-         {
-             /* START XML ELEMENT -- OPTIONS */
-@@ -454,10 +454,10 @@ static void XmlExportType(Writer *writer, const ConstraintSyntax *constraint_syn
-             break;
-         }
- 
--    case DATA_TYPE_STRING:
--    case DATA_TYPE_STRING_LIST:
--    case DATA_TYPE_CONTEXT:
--    case DATA_TYPE_CONTEXT_LIST:
-+    case CF_DATA_TYPE_STRING:
-+    case CF_DATA_TYPE_STRING_LIST:
-+    case CF_DATA_TYPE_CONTEXT:
-+    case CF_DATA_TYPE_CONTEXT_LIST:
-         /* XML ELEMENT -- ACCEPTED-VALUES */
-         if (strlen(constraint_syntax->range.validation_string) == 0)
-         {
-@@ -470,9 +470,9 @@ static void XmlExportType(Writer *writer, const ConstraintSyntax *constraint_syn
- 
-         break;
- 
--    case DATA_TYPE_BUNDLE:
--    case DATA_TYPE_NONE:
--    case DATA_TYPE_COUNTER:
-+    case CF_DATA_TYPE_BUNDLE:
-+    case CF_DATA_TYPE_NONE:
-+    case CF_DATA_TYPE_COUNTER:
-         /* NONE */
-         break;
-     }
-diff --git a/cf-gendoc/manual.c b/cf-gendoc/manual.c
-index f1096ee..c1ad823 100644
---- a/cf-gendoc/manual.c
-+++ b/cf-gendoc/manual.c
-@@ -249,7 +249,7 @@ void TexinfoManual(EvalContext *ctx, const char *source_dir, const char *output_
- 
- // scopes const and sys
- 
--    ScopeNewSpecial(ctx, "edit", "filename", "x", DATA_TYPE_STRING);
-+    ScopeNewSpecial(ctx, "edit", "filename", "x", CF_DATA_TYPE_STRING);
- 
-     ScopePutMatch(0, "x");
- 
-@@ -481,7 +481,7 @@ static void TexinfoBodyParts(const char *source_dir, FILE *fout, const Constrain
-             fprintf(fout, "\n\n at node %s in %s\n at subsection @code{%s}\n\n at b{Type}: %s (Separate Bundle) \n", bs[i].lval,
-                     context, bs[i].lval, DataTypeToString(bs[i].dtype));
-         }
--        else if (bs[i].dtype == DATA_TYPE_BODY)
-+        else if (bs[i].dtype == CF_DATA_TYPE_BODY)
-         {
-             fprintf(fout, "\n\n at node %s in %s\n at subsection @code{%s} (body template)\n at noindent @b{Type}: %s\n\n",
-                     bs[i].lval, context, bs[i].lval, DataTypeToString(bs[i].dtype));
-@@ -613,7 +613,7 @@ static void TexinfoShowRange(FILE *fout, const char *s, DataType type)
-         return;
-     }
- 
--    if ((type == DATA_TYPE_OPTION) || (type == DATA_TYPE_OPTION_LIST))
-+    if ((type == CF_DATA_TYPE_OPTION) || (type == CF_DATA_TYPE_OPTION_LIST))
-     {
-         list = RlistFromSplitString(s, ',');
-         fprintf(fout, "@noindent @b{Allowed input range}: @*\n at example");
-@@ -656,7 +656,7 @@ static void TexinfoSubBodyParts(const char *source_dir, FILE *fout, const Constr
-             fprintf(fout, "@item @code{%s}\n at b{Type}: %s\n (Separate Bundle) \n\n", bs[i].lval,
-                     DataTypeToString(bs[i].dtype));
-         }
--        else if (bs[i].dtype == DATA_TYPE_BODY)
-+        else if (bs[i].dtype == CF_DATA_TYPE_BODY)
-         {
-             fprintf(fout, "@item @code{%s}\n at b{Type}: %s\n\n", bs[i].lval, DataTypeToString(bs[i].dtype));
-             TexinfoSubBodyParts(source_dir, fout, bs[i].range.body_type_syntax->constraints);
-diff --git a/cf-monitord/verify_measurements.c b/cf-monitord/verify_measurements.c
-index 1c35a16..2a659e4 100644
---- a/cf-monitord/verify_measurements.c
-+++ b/cf-monitord/verify_measurements.c
-@@ -85,7 +85,7 @@ static bool CheckMeasureSanity(Measurement m, Promise *pp)
-         retval = false;
-     }
- 
--    if (m.data_type == DATA_TYPE_NONE)
-+    if (m.data_type == CF_DATA_TYPE_NONE)
-     {
-         Log(LOG_LEVEL_ERR, "The promiser '%s' did not specify a data type", pp->promiser);
-         PromiseRef(LOG_LEVEL_ERR, pp);
-@@ -97,10 +97,10 @@ static bool CheckMeasureSanity(Measurement m, Promise *pp)
-         {
-             switch (m.data_type)
-             {
--            case DATA_TYPE_COUNTER:
--            case DATA_TYPE_STRING:
--            case DATA_TYPE_INT:
--            case DATA_TYPE_REAL:
-+            case CF_DATA_TYPE_COUNTER:
-+            case CF_DATA_TYPE_STRING:
-+            case CF_DATA_TYPE_INT:
-+            case CF_DATA_TYPE_REAL:
-                 break;
- 
-             default:
-diff --git a/libpromises/attributes.c b/libpromises/attributes.c
-index 3b8e1f4..9213c61 100644
---- a/libpromises/attributes.c
-+++ b/libpromises/attributes.c
-@@ -1606,9 +1606,9 @@ Measurement GetMeasurementConstraint(const EvalContext *ctx, const Promise *pp)
-     value = ConstraintGetRvalValue(ctx, "data_type", pp, RVAL_TYPE_SCALAR);
-     m.data_type = DataTypeFromString(value);
- 
--    if (m.data_type == DATA_TYPE_NONE)
-+    if (m.data_type == CF_DATA_TYPE_NONE)
-     {
--        m.data_type = DATA_TYPE_STRING;
-+        m.data_type = CF_DATA_TYPE_STRING;
-     }
- 
-     m.history_type = ConstraintGetRvalValue(ctx, "history_type", pp, RVAL_TYPE_SCALAR);
-diff --git a/libpromises/bootstrap.c b/libpromises/bootstrap.c
-index b06ee35..30f4253 100644
---- a/libpromises/bootstrap.c
-+++ b/libpromises/bootstrap.c
-@@ -113,12 +113,12 @@ void SetPolicyServer(EvalContext *ctx, const char *new_policy_server)
-     if (new_policy_server)
-     {
-         snprintf(POLICY_SERVER, CF_MAX_IP_LEN, "%s", new_policy_server);
--        ScopeNewSpecial(ctx, "sys", "policy_hub", new_policy_server, DATA_TYPE_STRING);
-+        ScopeNewSpecial(ctx, "sys", "policy_hub", new_policy_server, CF_DATA_TYPE_STRING);
-     }
-     else
-     {
-         POLICY_SERVER[0] = '\0';
--        ScopeNewSpecial(ctx, "sys", "policy_hub", "undefined", DATA_TYPE_STRING);
-+        ScopeNewSpecial(ctx, "sys", "policy_hub", "undefined", CF_DATA_TYPE_STRING);
-     }
- 
-     // Get the timestamp on policy update
-@@ -137,7 +137,7 @@ void SetPolicyServer(EvalContext *ctx, const char *new_policy_server)
-     char timebuf[26];
-     cf_strtimestamp_local(sb.st_mtime, timebuf);
-     
--    ScopeNewSpecial(ctx, "sys", "last_policy_update", timebuf, DATA_TYPE_STRING);
-+    ScopeNewSpecial(ctx, "sys", "last_policy_update", timebuf, CF_DATA_TYPE_STRING);
- }
- 
- static char *PolicyServerFilename(const char *workdir)
-diff --git a/libpromises/cf3.defs.h b/libpromises/cf3.defs.h
-index c04c2a1..45faeee 100644
---- a/libpromises/cf3.defs.h
-+++ b/libpromises/cf3.defs.h
-@@ -428,22 +428,22 @@ typedef struct FnCall_ FnCall;
- 
- typedef enum
- {
--    DATA_TYPE_STRING,
--    DATA_TYPE_INT,
--    DATA_TYPE_REAL,
--    DATA_TYPE_STRING_LIST,
--    DATA_TYPE_INT_LIST,
--    DATA_TYPE_REAL_LIST,
--    DATA_TYPE_OPTION,
--    DATA_TYPE_OPTION_LIST,
--    DATA_TYPE_BODY,
--    DATA_TYPE_BUNDLE,
--    DATA_TYPE_CONTEXT,
--    DATA_TYPE_CONTEXT_LIST,
--    DATA_TYPE_INT_RANGE,
--    DATA_TYPE_REAL_RANGE,
--    DATA_TYPE_COUNTER,
--    DATA_TYPE_NONE
-+    CF_DATA_TYPE_STRING,
-+    CF_DATA_TYPE_INT,
-+    CF_DATA_TYPE_REAL,
-+    CF_DATA_TYPE_STRING_LIST,
-+    CF_DATA_TYPE_INT_LIST,
-+    CF_DATA_TYPE_REAL_LIST,
-+    CF_DATA_TYPE_OPTION,
-+    CF_DATA_TYPE_OPTION_LIST,
-+    CF_DATA_TYPE_BODY,
-+    CF_DATA_TYPE_BUNDLE,
-+    CF_DATA_TYPE_CONTEXT,
-+    CF_DATA_TYPE_CONTEXT_LIST,
-+    CF_DATA_TYPE_INT_RANGE,
-+    CF_DATA_TYPE_REAL_RANGE,
-+    CF_DATA_TYPE_COUNTER,
-+    CF_DATA_TYPE_NONE
- } DataType;
- 
- /*************************************************************************/
-diff --git a/libpromises/cf3parse.c b/libpromises/cf3parse.c
-index f382919..a516083 100644
---- a/libpromises/cf3parse.c
-+++ b/libpromises/cf3parse.c
-@@ -3120,7 +3120,7 @@ static bool LvalWantsBody(char *stype, char *lval)
-             {
-                 if (strcmp(bs[l].lval, lval) == 0)
-                 {
--                    if (bs[l].dtype == DATA_TYPE_BODY)
-+                    if (bs[l].dtype == CF_DATA_TYPE_BODY)
-                     {
-                         return true;
-                     }
-@@ -3151,11 +3151,11 @@ static SyntaxTypeMatch CheckSelection(const char *type, const char *name, const
-                 {
-                     if (strcmp(lval, bs[l].lval) == 0)
-                     {
--                        if (bs[l].dtype == DATA_TYPE_BODY)
-+                        if (bs[l].dtype == CF_DATA_TYPE_BODY)
-                         {
-                             return SYNTAX_TYPE_MATCH_OK;
-                         }
--                        else if (bs[l].dtype == DATA_TYPE_BUNDLE)
-+                        else if (bs[l].dtype == CF_DATA_TYPE_BUNDLE)
-                         {
-                             return SYNTAX_TYPE_MATCH_OK;
-                         }
-@@ -3190,7 +3190,7 @@ static SyntaxTypeMatch CheckSelection(const char *type, const char *name, const
- 
-             for (int l = 0; bs[l].lval != NULL; l++)
-             {
--                if (bs[l].dtype == DATA_TYPE_BODY)
-+                if (bs[l].dtype == CF_DATA_TYPE_BODY)
-                 {
-                     const ConstraintSyntax *bs2 = bs[l].range.body_type_syntax->constraints;
- 
-@@ -3199,7 +3199,7 @@ static SyntaxTypeMatch CheckSelection(const char *type, const char *name, const
-                         continue;
-                     }
- 
--                    for (int k = 0; bs2[k].dtype != DATA_TYPE_NONE; k++)
-+                    for (int k = 0; bs2[k].dtype != CF_DATA_TYPE_NONE; k++)
-                     {
-                         /* Either module defined or common */
- 
-@@ -3249,8 +3249,8 @@ static SyntaxTypeMatch CheckConstraint(const char *type, const char *lval, Rval
- 
-                     /* For bodies and bundles definitions can be elsewhere, so
-                        they are checked in PolicyCheckRunnable(). */
--                    if (bs[l].dtype != DATA_TYPE_BODY &&
--                        bs[l].dtype != DATA_TYPE_BUNDLE)
-+                    if (bs[l].dtype != CF_DATA_TYPE_BODY &&
-+                        bs[l].dtype != CF_DATA_TYPE_BUNDLE)
-                     {
-                         return CheckConstraintTypeMatch(lval, rval, bs[l].dtype, bs[l].range.validation_string, 0);
-                     }
-diff --git a/libpromises/cf3parse.y b/libpromises/cf3parse.y
-index 24c4f55..98aa36c 100644
---- a/libpromises/cf3parse.y
-+++ b/libpromises/cf3parse.y
-@@ -1279,7 +1279,7 @@ static bool LvalWantsBody(char *stype, char *lval)
-             {
-                 if (strcmp(bs[l].lval, lval) == 0)
-                 {
--                    if (bs[l].dtype == DATA_TYPE_BODY)
-+                    if (bs[l].dtype == CF_DATA_TYPE_BODY)
-                     {
-                         return true;
-                     }
-@@ -1310,11 +1310,11 @@ static SyntaxTypeMatch CheckSelection(const char *type, const char *name, const
-                 {
-                     if (strcmp(lval, bs[l].lval) == 0)
-                     {
--                        if (bs[l].dtype == DATA_TYPE_BODY)
-+                        if (bs[l].dtype == CF_DATA_TYPE_BODY)
-                         {
-                             return SYNTAX_TYPE_MATCH_OK;
-                         }
--                        else if (bs[l].dtype == DATA_TYPE_BUNDLE)
-+                        else if (bs[l].dtype == CF_DATA_TYPE_BUNDLE)
-                         {
-                             return SYNTAX_TYPE_MATCH_OK;
-                         }
-@@ -1349,7 +1349,7 @@ static SyntaxTypeMatch CheckSelection(const char *type, const char *name, const
- 
-             for (int l = 0; bs[l].lval != NULL; l++)
-             {
--                if (bs[l].dtype == DATA_TYPE_BODY)
-+                if (bs[l].dtype == CF_DATA_TYPE_BODY)
-                 {
-                     const ConstraintSyntax *bs2 = bs[l].range.body_type_syntax->constraints;
- 
-@@ -1358,7 +1358,7 @@ static SyntaxTypeMatch CheckSelection(const char *type, const char *name, const
-                         continue;
-                     }
- 
--                    for (int k = 0; bs2[k].dtype != DATA_TYPE_NONE; k++)
-+                    for (int k = 0; bs2[k].dtype != CF_DATA_TYPE_NONE; k++)
-                     {
-                         /* Either module defined or common */
- 
-@@ -1408,8 +1408,8 @@ static SyntaxTypeMatch CheckConstraint(const char *type, const char *lval, Rval
- 
-                     /* For bodies and bundles definitions can be elsewhere, so
-                        they are checked in PolicyCheckRunnable(). */
--                    if (bs[l].dtype != DATA_TYPE_BODY &&
--                        bs[l].dtype != DATA_TYPE_BUNDLE)
-+                    if (bs[l].dtype != CF_DATA_TYPE_BODY &&
-+                        bs[l].dtype != CF_DATA_TYPE_BUNDLE)
-                     {
-                         return CheckConstraintTypeMatch(lval, rval, bs[l].dtype, bs[l].range.validation_string, 0);
-                     }
-diff --git a/libpromises/conversion.c b/libpromises/conversion.c
-index 04c22b7..764556e 100644
---- a/libpromises/conversion.c
-+++ b/libpromises/conversion.c
-@@ -274,27 +274,27 @@ FileComparator FileComparatorFromString(const char *s)
- 
- static const char *datatype_strings[] =
- {
--    [DATA_TYPE_STRING] = "string",
--    [DATA_TYPE_INT] = "int",
--    [DATA_TYPE_REAL] = "real",
--    [DATA_TYPE_STRING_LIST] = "slist",
--    [DATA_TYPE_INT_LIST] = "ilist",
--    [DATA_TYPE_REAL_LIST] = "rlist",
--    [DATA_TYPE_OPTION] = "option",
--    [DATA_TYPE_OPTION_LIST] = "olist",
--    [DATA_TYPE_BODY] = "body",
--    [DATA_TYPE_BUNDLE] = "bundle",
--    [DATA_TYPE_CONTEXT] = "context",
--    [DATA_TYPE_CONTEXT_LIST] = "clist",
--    [DATA_TYPE_INT_RANGE] = "irange",
--    [DATA_TYPE_REAL_RANGE] = "rrange",
--    [DATA_TYPE_COUNTER] = "counter",
--    [DATA_TYPE_NONE] = "none"
-+    [CF_DATA_TYPE_STRING] = "string",
-+    [CF_DATA_TYPE_INT] = "int",
-+    [CF_DATA_TYPE_REAL] = "real",
-+    [CF_DATA_TYPE_STRING_LIST] = "slist",
-+    [CF_DATA_TYPE_INT_LIST] = "ilist",
-+    [CF_DATA_TYPE_REAL_LIST] = "rlist",
-+    [CF_DATA_TYPE_OPTION] = "option",
-+    [CF_DATA_TYPE_OPTION_LIST] = "olist",
-+    [CF_DATA_TYPE_BODY] = "body",
-+    [CF_DATA_TYPE_BUNDLE] = "bundle",
-+    [CF_DATA_TYPE_CONTEXT] = "context",
-+    [CF_DATA_TYPE_CONTEXT_LIST] = "clist",
-+    [CF_DATA_TYPE_INT_RANGE] = "irange",
-+    [CF_DATA_TYPE_REAL_RANGE] = "rrange",
-+    [CF_DATA_TYPE_COUNTER] = "counter",
-+    [CF_DATA_TYPE_NONE] = "none"
- };
- 
- DataType DataTypeFromString(const char *name)
- {
--    for (int i = 0; i < DATA_TYPE_NONE; i++)
-+    for (int i = 0; i < CF_DATA_TYPE_NONE; i++)
-     {
-         if (strcmp(datatype_strings[i], name) == 0)
-         {
-@@ -302,12 +302,12 @@ DataType DataTypeFromString(const char *name)
-         }
-     }
- 
--    return DATA_TYPE_NONE;
-+    return CF_DATA_TYPE_NONE;
- }
- 
- const char *DataTypeToString(DataType type)
- {
--    assert(type < DATA_TYPE_NONE);
-+    assert(type < CF_DATA_TYPE_NONE);
-     return datatype_strings[type];
- }
- 
-@@ -323,7 +323,7 @@ DataType ConstraintSyntaxGetDataType(const ConstraintSyntax *body_syntax, const
-         }
-     }
- 
--    return DATA_TYPE_NONE;
-+    return CF_DATA_TYPE_NONE;
- }
- 
- /****************************************************************************/
-diff --git a/libpromises/env_context.c b/libpromises/env_context.c
-index db85f53..4203cee 100644
---- a/libpromises/env_context.c
-+++ b/libpromises/env_context.c
-@@ -1194,7 +1194,7 @@ char *EvalContextStackPath(const EvalContext *ctx)
- 
- bool EvalContextVariablePut(EvalContext *ctx, VarRef lval, Rval rval, DataType type)
- {
--    assert(type != DATA_TYPE_NONE);
-+    assert(type != CF_DATA_TYPE_NONE);
- 
-     if (lval.lval == NULL || lval.scope == NULL)
-     {
-@@ -1320,7 +1320,7 @@ bool EvalContextVariableGet(const EvalContext *ctx, VarRef lval, Rval *rval_out,
-         }
-         if (type_out)
-         {
--            *type_out = DATA_TYPE_NONE;
-+            *type_out = CF_DATA_TYPE_NONE;
-         }
-         return false;
-     }
-@@ -1345,7 +1345,7 @@ bool EvalContextVariableGet(const EvalContext *ctx, VarRef lval, Rval *rval_out,
-             }
-             if (type_out)
-             {
--                *type_out = DATA_TYPE_NONE;
-+                *type_out = CF_DATA_TYPE_NONE;
-             }
-             return false;
-         }
-@@ -1386,7 +1386,7 @@ bool EvalContextVariableGet(const EvalContext *ctx, VarRef lval, Rval *rval_out,
-         }
-         if (type_out)
-         {
--            *type_out = DATA_TYPE_NONE;
-+            *type_out = CF_DATA_TYPE_NONE;
-         }
-         return false;
-     }
-@@ -1400,7 +1400,7 @@ bool EvalContextVariableGet(const EvalContext *ctx, VarRef lval, Rval *rval_out,
-         }
-         if (type_out)
-         {
--            *type_out = DATA_TYPE_NONE;
-+            *type_out = CF_DATA_TYPE_NONE;
-         }
-         return false;
-     }
-@@ -1412,7 +1412,7 @@ bool EvalContextVariableGet(const EvalContext *ctx, VarRef lval, Rval *rval_out,
-     if (type_out)
-     {
-         *type_out = assoc->dtype;
--        assert(*type_out != DATA_TYPE_NONE);
-+        assert(*type_out != CF_DATA_TYPE_NONE);
-     }
- 
-     return true;
-diff --git a/libpromises/evalfunction.c b/libpromises/evalfunction.c
-index a1773dc..1d314cb 100644
---- a/libpromises/evalfunction.c
-+++ b/libpromises/evalfunction.c
-@@ -227,7 +227,7 @@ static FnCallResult FnCallAnd(EvalContext *ctx, FnCall *fp, Rlist *finalargs)
- /* We need to check all the arguments, ArgTemplate does not check varadic functions */
-     for (arg = finalargs; arg; arg = arg->next)
-     {
--        SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, DATA_TYPE_STRING, "", 1);
-+        SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, CF_DATA_TYPE_STRING, "", 1);
-         if (err != SYNTAX_TYPE_MATCH_OK && err != SYNTAX_TYPE_MATCH_ERROR_UNEXPANDED)
-         {
-             FatalError(ctx, "in %s: %s", id, SyntaxTypeMatchToString(err));
-@@ -634,7 +634,7 @@ static FnCallResult FnCallConcat(EvalContext *ctx, FnCall *fp, Rlist *finalargs)
- /* We need to check all the arguments, ArgTemplate does not check varadic functions */
-     for (arg = finalargs; arg; arg = arg->next)
-     {
--        SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, DATA_TYPE_STRING, "", 1);
-+        SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, CF_DATA_TYPE_STRING, "", 1);
-         if (err != SYNTAX_TYPE_MATCH_OK && err != SYNTAX_TYPE_MATCH_ERROR_UNEXPANDED)
-         {
-             FatalError(ctx, "in %s: %s", id, SyntaxTypeMatchToString(err));
-@@ -683,7 +683,7 @@ static FnCallResult FnCallIfElse(EvalContext *ctx, FnCall *fp, Rlist *finalargs)
-     /* We need to check all the arguments, ArgTemplate does not check varadic functions */
-     for (arg = finalargs; arg; arg = arg->next)
-     {
--        SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, DATA_TYPE_STRING, "", 1);
-+        SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, CF_DATA_TYPE_STRING, "", 1);
-         if (err != SYNTAX_TYPE_MATCH_OK && err != SYNTAX_TYPE_MATCH_ERROR_UNEXPANDED)
-         {
-             FatalError(ctx, "in %s: %s", id, SyntaxTypeMatchToString(err));
-@@ -1610,7 +1610,7 @@ static FnCallResult FnCallGetFields(EvalContext *ctx, FnCall *fp, Rlist *finalar
-             for (rp = newlist; rp != NULL; rp = rp->next)
-             {
-                 snprintf(name, CF_MAXVARSIZE - 1, "%s[%d]", array_lval, vcount);
--                EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, name }, (Rval) { RlistScalarValue(rp), RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
-+                EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, name }, (Rval) { RlistScalarValue(rp), RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-                 Log(LOG_LEVEL_VERBOSE, "getfields: defining '%s' => '%s'", name, RlistScalarValue(rp));
-                 vcount++;
-             }
-@@ -1794,12 +1794,12 @@ static FnCallResult FnCallMapArray(EvalContext *ctx, FnCall *fp, Rlist *finalarg
- 
-             if (strlen(index) > 0)
-             {
--                ScopeNewSpecial(ctx, "this", "k", index, DATA_TYPE_STRING);
-+                ScopeNewSpecial(ctx, "this", "k", index, CF_DATA_TYPE_STRING);
- 
-                 switch (assoc->rval.type)
-                 {
-                 case RVAL_TYPE_SCALAR:
--                    ScopeNewSpecial(ctx, "this", "v", assoc->rval.item, DATA_TYPE_STRING);
-+                    ScopeNewSpecial(ctx, "this", "v", assoc->rval.item, CF_DATA_TYPE_STRING);
-                     ExpandScalar(ctx, PromiseGetBundle(fp->caller)->name, map, expbuf);
- 
-                     if (strstr(expbuf, "$(this.k)") || strstr(expbuf, "${this.k}") ||
-@@ -1818,7 +1818,7 @@ static FnCallResult FnCallMapArray(EvalContext *ctx, FnCall *fp, Rlist *finalarg
-                 case RVAL_TYPE_LIST:
-                     for (rp = assoc->rval.item; rp != NULL; rp = rp->next)
-                     {
--                        ScopeNewSpecial(ctx, "this", "v", rp->item, DATA_TYPE_STRING);
-+                        ScopeNewSpecial(ctx, "this", "v", rp->item, CF_DATA_TYPE_STRING);
-                         ExpandScalar(ctx, PromiseGetBundle(fp->caller)->name, map, expbuf);
- 
-                         if (strstr(expbuf, "$(this.k)") || strstr(expbuf, "${this.k}") ||
-@@ -1896,13 +1896,13 @@ static FnCallResult FnCallMapList(EvalContext *ctx, FnCall *fp, Rlist *finalargs
-         return (FnCallResult) { FNCALL_FAILURE };
-     }
- 
--    retype = DATA_TYPE_NONE;
-+    retype = CF_DATA_TYPE_NONE;
-     if (!EvalContextVariableGet(ctx, (VarRef) { NULL, scopeid, lval }, &rval, &retype))
-     {
-         return (FnCallResult) { FNCALL_FAILURE };
-     }
- 
--    if (retype != DATA_TYPE_STRING_LIST && retype != DATA_TYPE_INT_LIST && retype != DATA_TYPE_REAL_LIST)
-+    if (retype != CF_DATA_TYPE_STRING_LIST && retype != CF_DATA_TYPE_INT_LIST && retype != CF_DATA_TYPE_REAL_LIST)
-     {
-         return (FnCallResult) { FNCALL_FAILURE };
-     }
-@@ -1910,7 +1910,7 @@ static FnCallResult FnCallMapList(EvalContext *ctx, FnCall *fp, Rlist *finalargs
-     for (const Rlist *rp = RvalRlistValue(rval); rp != NULL; rp = rp->next)
-     {
-         const char *current_value = RlistScalarValue(rp);
--        ScopeNewSpecial(ctx, "this", "this", current_value, DATA_TYPE_STRING);
-+        ScopeNewSpecial(ctx, "this", "this", current_value, CF_DATA_TYPE_STRING);
- 
-         ExpandScalar(ctx, "this", map, expbuf);
- 
-@@ -2050,7 +2050,7 @@ static FnCallResult FnCallSelectServers(EvalContext *ctx, FnCall *fp, Rlist *fin
-             {
-                 Log(LOG_LEVEL_VERBOSE, "Host '%s' is alive and responding correctly", RlistScalarValue(rp));
-                 snprintf(buffer, CF_MAXVARSIZE - 1, "%s[%d]", array_lval, count);
--                EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, buffer }, (Rval) { rp->item, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
-+                EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, buffer }, (Rval) { rp->item, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-                 count++;
-             }
-         }
-@@ -2058,7 +2058,7 @@ static FnCallResult FnCallSelectServers(EvalContext *ctx, FnCall *fp, Rlist *fin
-         {
-             Log(LOG_LEVEL_VERBOSE, "Host '%s' is alive", RlistScalarValue(rp));
-             snprintf(buffer, CF_MAXVARSIZE - 1, "%s[%d]", array_lval, count);
--            EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, buffer }, (Rval) { rp->item, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
-+            EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, buffer }, (Rval) { rp->item, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
- 
-             if (IsDefinedClass(ctx, CanonifyName(rp->item), PromiseGetNamespace(fp->caller)))
-             {
-@@ -2091,14 +2091,14 @@ static FnCallResult FnCallShuffle(EvalContext *ctx, FnCall *fp, Rlist *finalargs
-     const char *seed_str = RlistScalarValue(finalargs->next);
- 
-     Rval list_rval;
--    DataType list_dtype = DATA_TYPE_NONE;
-+    DataType list_dtype = CF_DATA_TYPE_NONE;
- 
-     if (!GetListReferenceArgument(ctx, fp, RlistScalarValue(finalargs), &list_rval, &list_dtype))
-     {
-         return (FnCallResult) { FNCALL_FAILURE };
-     }
- 
--    if (list_dtype != DATA_TYPE_STRING_LIST)
-+    if (list_dtype != CF_DATA_TYPE_STRING_LIST)
-     {
-         Log(LOG_LEVEL_ERR, "Function '%s' expected a variable that resolves to a string list, got '%s'", fp->name, DataTypeToString(list_dtype));
-         return (FnCallResult) { FNCALL_FAILURE };
-@@ -2716,7 +2716,7 @@ static FnCallResult FnCallSort(EvalContext *ctx, FnCall *fp, Rlist *finalargs)
- {
-     VarRef list_var_lval = VarRefParseFromBundle(RlistScalarValue(finalargs), PromiseGetBundle(fp->caller));
-     Rval list_var_rval;
--    DataType list_var_dtype = DATA_TYPE_NONE;
-+    DataType list_var_dtype = CF_DATA_TYPE_NONE;
- 
-     if (!EvalContextVariableGet(ctx, list_var_lval, &list_var_rval, &list_var_dtype))
-     {
-@@ -2726,7 +2726,7 @@ static FnCallResult FnCallSort(EvalContext *ctx, FnCall *fp, Rlist *finalargs)
- 
-     VarRefDestroy(list_var_lval);
- 
--    if (list_var_dtype != DATA_TYPE_STRING_LIST)
-+    if (list_var_dtype != CF_DATA_TYPE_STRING_LIST)
-     {
-         return (FnCallResult) { FNCALL_FAILURE };
-     }
-@@ -2747,7 +2747,7 @@ static FnCallResult FnCallFormat(EvalContext *ctx, FnCall *fp, Rlist *finalargs)
- /* We need to check all the arguments, ArgTemplate does not check varadic functions */
-     for (const Rlist *arg = finalargs; arg; arg = arg->next)
-     {
--        SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, DATA_TYPE_STRING, "", 1);
-+        SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, CF_DATA_TYPE_STRING, "", 1);
-         if (err != SYNTAX_TYPE_MATCH_OK && err != SYNTAX_TYPE_MATCH_ERROR_UNEXPANDED)
-         {
-             FatalError(ctx, "in %s: %s", id, SyntaxTypeMatchToString(err));
-@@ -3550,7 +3550,7 @@ static FnCallResult FnCallRegExtract(EvalContext *ctx, FnCall *fp, Rlist *finala
-             else
-             {
-                 snprintf(var, CF_MAXVARSIZE - 1, "%s[%s]", arrayname, assoc->lval);
--                EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, var }, assoc->rval, DATA_TYPE_STRING);
-+                EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, var }, assoc->rval, CF_DATA_TYPE_STRING);
-             }
-         }
-     }
-@@ -3760,14 +3760,14 @@ static FnCallResult FnCallRRange(EvalContext *ctx, FnCall *fp, Rlist *finalargs)
- static FnCallResult FnCallReverse(EvalContext *ctx, FnCall *fp, Rlist *finalargs)
- {
-     Rval list_rval;
--    DataType list_dtype = DATA_TYPE_NONE;
-+    DataType list_dtype = CF_DATA_TYPE_NONE;
- 
-     if (!GetListReferenceArgument(ctx, fp, RlistScalarValue(finalargs), &list_rval, &list_dtype))
-     {
-         return (FnCallResult) { FNCALL_FAILURE };
-     }
- 
--    if (list_dtype != DATA_TYPE_STRING_LIST)
-+    if (list_dtype != CF_DATA_TYPE_STRING_LIST)
-     {
-         Log(LOG_LEVEL_ERR, "Function '%s' expected a variable that resolves to a string list, got '%s'", fp->name, DataTypeToString(list_dtype));
-         return (FnCallResult) { FNCALL_FAILURE };
-@@ -3837,7 +3837,7 @@ static FnCallResult FnCallOr(EvalContext *ctx, FnCall *fp, Rlist *finalargs)
- /* We need to check all the arguments, ArgTemplate does not check varadic functions */
-     for (arg = finalargs; arg; arg = arg->next)
-     {
--        SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, DATA_TYPE_STRING, "", 1);
-+        SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, CF_DATA_TYPE_STRING, "", 1);
-         if (err != SYNTAX_TYPE_MATCH_OK && err != SYNTAX_TYPE_MATCH_ERROR_UNEXPANDED)
-         {
-             FatalError(ctx, "in %s: %s", id, SyntaxTypeMatchToString(err));
-@@ -4117,10 +4117,10 @@ static FnCallResult ReadList(EvalContext *ctx, FnCall *fp, Rlist *finalargs, Dat
- 
-     switch (type)
-     {
--    case DATA_TYPE_STRING:
-+    case CF_DATA_TYPE_STRING:
-         break;
- 
--    case DATA_TYPE_INT:
-+    case CF_DATA_TYPE_INT:
-         for (rp = newlist; rp != NULL; rp = rp->next)
-         {
-             if (IntFromString(RlistScalarValue(rp)) == CF_NOINT)
-@@ -4132,7 +4132,7 @@ static FnCallResult ReadList(EvalContext *ctx, FnCall *fp, Rlist *finalargs, Dat
-         }
-         break;
- 
--    case DATA_TYPE_REAL:
-+    case CF_DATA_TYPE_REAL:
-         for (rp = newlist; rp != NULL; rp = rp->next)
-         {
-             double real_value = 0;
-@@ -4164,17 +4164,17 @@ static FnCallResult ReadList(EvalContext *ctx, FnCall *fp, Rlist *finalargs, Dat
- 
- static FnCallResult FnCallReadStringList(EvalContext *ctx, FnCall *fp, Rlist *args)
- {
--    return ReadList(ctx, fp, args, DATA_TYPE_STRING);
-+    return ReadList(ctx, fp, args, CF_DATA_TYPE_STRING);
- }
- 
- static FnCallResult FnCallReadIntList(EvalContext *ctx, FnCall *fp, Rlist *args)
- {
--    return ReadList(ctx, fp, args, DATA_TYPE_INT);
-+    return ReadList(ctx, fp, args, CF_DATA_TYPE_INT);
- }
- 
- static FnCallResult FnCallReadRealList(EvalContext *ctx, FnCall *fp, Rlist *args)
- {
--    return ReadList(ctx, fp, args, DATA_TYPE_REAL);
-+    return ReadList(ctx, fp, args, CF_DATA_TYPE_REAL);
- }
- 
- /*********************************************************************/
-@@ -4229,9 +4229,9 @@ static FnCallResult ReadArray(EvalContext *ctx, FnCall *fp, Rlist *finalargs, Da
- 
-     switch (type)
-     {
--    case DATA_TYPE_STRING:
--    case DATA_TYPE_INT:
--    case DATA_TYPE_REAL:
-+    case CF_DATA_TYPE_STRING:
-+    case CF_DATA_TYPE_INT:
-+    case CF_DATA_TYPE_REAL:
-         break;
- 
-     default:
-@@ -4250,28 +4250,28 @@ static FnCallResult ReadArray(EvalContext *ctx, FnCall *fp, Rlist *finalargs, Da
- 
- static FnCallResult FnCallReadStringArray(EvalContext *ctx, FnCall *fp, Rlist *args)
- {
--    return ReadArray(ctx, fp, args, DATA_TYPE_STRING, false);
-+    return ReadArray(ctx, fp, args, CF_DATA_TYPE_STRING, false);
- }
- 
- /*********************************************************************/
- 
- static FnCallResult FnCallReadStringArrayIndex(EvalContext *ctx, FnCall *fp, Rlist *args)
- {
--    return ReadArray(ctx, fp, args, DATA_TYPE_STRING, true);
-+    return ReadArray(ctx, fp, args, CF_DATA_TYPE_STRING, true);
- }
- 
- /*********************************************************************/
- 
- static FnCallResult FnCallReadIntArray(EvalContext *ctx, FnCall *fp, Rlist *args)
- {
--    return ReadArray(ctx, fp, args, DATA_TYPE_INT, false);
-+    return ReadArray(ctx, fp, args, CF_DATA_TYPE_INT, false);
- }
- 
- /*********************************************************************/
- 
- static FnCallResult FnCallReadRealArray(EvalContext *ctx, FnCall *fp, Rlist *args)
- {
--    return ReadArray(ctx, fp, args, DATA_TYPE_REAL, false);
-+    return ReadArray(ctx, fp, args, CF_DATA_TYPE_REAL, false);
- }
- 
- /*********************************************************************/
-@@ -4328,9 +4328,9 @@ static FnCallResult ParseArray(EvalContext *ctx, FnCall *fp, Rlist *finalargs, D
- 
-     switch (type)
-     {
--    case DATA_TYPE_STRING:
--    case DATA_TYPE_INT:
--    case DATA_TYPE_REAL:
-+    case CF_DATA_TYPE_STRING:
-+    case CF_DATA_TYPE_INT:
-+    case CF_DATA_TYPE_REAL:
-         break;
- 
-     default:
-@@ -4349,28 +4349,28 @@ static FnCallResult ParseArray(EvalContext *ctx, FnCall *fp, Rlist *finalargs, D
- 
- static FnCallResult FnCallParseStringArray(EvalContext *ctx, FnCall *fp, Rlist *args)
- {
--    return ParseArray(ctx, fp, args, DATA_TYPE_STRING, false);
-+    return ParseArray(ctx, fp, args, CF_DATA_TYPE_STRING, false);
- }
- 
- /*********************************************************************/
- 
- static FnCallResult FnCallParseStringArrayIndex(EvalContext *ctx, FnCall *fp, Rlist *args)
- {
--    return ParseArray(ctx, fp, args, DATA_TYPE_STRING, true);
-+    return ParseArray(ctx, fp, args, CF_DATA_TYPE_STRING, true);
- }
- 
- /*********************************************************************/
- 
- static FnCallResult FnCallParseIntArray(EvalContext *ctx, FnCall *fp, Rlist *args)
- {
--    return ParseArray(ctx, fp, args, DATA_TYPE_INT, false);
-+    return ParseArray(ctx, fp, args, CF_DATA_TYPE_INT, false);
- }
- 
- /*********************************************************************/
- 
- static FnCallResult FnCallParseRealArray(EvalContext *ctx, FnCall *fp, Rlist *args)
- {
--    return ParseArray(ctx, fp, args, DATA_TYPE_REAL, false);
-+    return ParseArray(ctx, fp, args, CF_DATA_TYPE_REAL, false);
- }
- 
- /*********************************************************************/
-@@ -4855,16 +4855,16 @@ static int BuildLineArray(EvalContext *ctx, const Bundle *bundle, char *array_lv
- 
-             switch (type)
-             {
--            case DATA_TYPE_STRING:
-+            case CF_DATA_TYPE_STRING:
-                 strncpy(this_rval, rp->item, CF_MAXVARSIZE - 1);
-                 break;
- 
--            case DATA_TYPE_INT:
-+            case CF_DATA_TYPE_INT:
-                 ival = IntFromString(rp->item);
-                 snprintf(this_rval, CF_MAXVARSIZE, "%d", (int) ival);
-                 break;
- 
--            case DATA_TYPE_REAL:
-+            case CF_DATA_TYPE_REAL:
-                 {
-                     double real_value = 0;
-                     if (!DoubleFromString(rp->item, &real_value))
-@@ -5029,7 +5029,7 @@ void ModuleProtocol(EvalContext *ctx, char *command, char *line, int print, cons
-         if (CheckID(name))
-         {
-             Log(LOG_LEVEL_VERBOSE, "Defined variable '%s' in context '%s' with value '%s'", name, context, content);
--            EvalContextVariablePut(ctx, (VarRef) { NULL, context, name }, (Rval) { content, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING);
-+            EvalContextVariablePut(ctx, (VarRef) { NULL, context, name }, (Rval) { content, RVAL_TYPE_SCALAR }, CF_DATA_TYPE_STRING);
-         }
-         break;
- 
-@@ -5044,7 +5044,7 @@ void ModuleProtocol(EvalContext *ctx, char *command, char *line, int print, cons
-             list = RlistParseString(content);
-             Log(LOG_LEVEL_VERBOSE, "Defined variable '%s' in context '%s' with value '%s'", name, context, content);
- 
--            EvalContextVariablePut(ctx, (VarRef) { NULL, context, name }, (Rval) { list, RVAL_TYPE_LIST }, DATA_TYPE_STRING_LIST);
-+            EvalContextVariablePut(ctx, (VarRef) { NULL, context, name }, (Rval) { list, RVAL_TYPE_LIST }, CF_DATA_TYPE_STRING_LIST);
-         }
-         break;
- 
-@@ -5096,728 +5096,728 @@ FnCallResult CallFunction(EvalContext *ctx, const FnCallType *function, FnCall *
- 
- FnCallArg ACCESSEDBEFORE_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Newer filename"},
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Older filename"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "Newer filename"},
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "Older filename"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg ACCUM_ARGS[] =
- {
--    {"0,1000", DATA_TYPE_INT, "Years"},
--    {"0,1000", DATA_TYPE_INT, "Months"},
--    {"0,1000", DATA_TYPE_INT, "Days"},
--    {"0,1000", DATA_TYPE_INT, "Hours"},
--    {"0,1000", DATA_TYPE_INT, "Minutes"},
--    {"0,40000", DATA_TYPE_INT, "Seconds"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {"0,1000", CF_DATA_TYPE_INT, "Years"},
-+    {"0,1000", CF_DATA_TYPE_INT, "Months"},
-+    {"0,1000", CF_DATA_TYPE_INT, "Days"},
-+    {"0,1000", CF_DATA_TYPE_INT, "Hours"},
-+    {"0,1000", CF_DATA_TYPE_INT, "Minutes"},
-+    {"0,40000", CF_DATA_TYPE_INT, "Seconds"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg AND_ARGS[] =
- {
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg AGO_ARGS[] =
- {
--    {"0,1000", DATA_TYPE_INT, "Years"},
--    {"0,1000", DATA_TYPE_INT, "Months"},
--    {"0,1000", DATA_TYPE_INT, "Days"},
--    {"0,1000", DATA_TYPE_INT, "Hours"},
--    {"0,1000", DATA_TYPE_INT, "Minutes"},
--    {"0,40000", DATA_TYPE_INT, "Seconds"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {"0,1000", CF_DATA_TYPE_INT, "Years"},
-+    {"0,1000", CF_DATA_TYPE_INT, "Months"},
-+    {"0,1000", CF_DATA_TYPE_INT, "Days"},
-+    {"0,1000", CF_DATA_TYPE_INT, "Hours"},
-+    {"0,1000", CF_DATA_TYPE_INT, "Minutes"},
-+    {"0,40000", CF_DATA_TYPE_INT, "Seconds"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg LATERTHAN_ARGS[] =
- {
--    {"0,1000", DATA_TYPE_INT, "Years"},
--    {"0,1000", DATA_TYPE_INT, "Months"},
--    {"0,1000", DATA_TYPE_INT, "Days"},
--    {"0,1000", DATA_TYPE_INT, "Hours"},
--    {"0,1000", DATA_TYPE_INT, "Minutes"},
--    {"0,40000", DATA_TYPE_INT, "Seconds"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {"0,1000", CF_DATA_TYPE_INT, "Years"},
-+    {"0,1000", CF_DATA_TYPE_INT, "Months"},
-+    {"0,1000", CF_DATA_TYPE_INT, "Days"},
-+    {"0,1000", CF_DATA_TYPE_INT, "Hours"},
-+    {"0,1000", CF_DATA_TYPE_INT, "Minutes"},
-+    {"0,40000", CF_DATA_TYPE_INT, "Seconds"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg CANONIFY_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "String containing non-identifier characters"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "String containing non-identifier characters"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg CHANGEDBEFORE_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Newer filename"},
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Older filename"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "Newer filename"},
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "Older filename"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg CLASSIFY_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Input string"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Input string"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg CLASSMATCH_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg CONCAT_ARGS[] =
- {
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg COUNTCLASSESMATCHING_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg COUNTLINESMATCHING_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"},
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Filename"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression"},
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "Filename"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg DIRNAME_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "File path"},
--    {NULL, DATA_TYPE_NONE, NULL},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "File path"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL},
- };
- 
- FnCallArg DISKFREE_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File system directory"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "File system directory"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg ESCAPE_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "IP address or string to escape"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "IP address or string to escape"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg EXECRESULT_ARGS[] =
- {
--    {CF_PATHRANGE, DATA_TYPE_STRING, "Fully qualified command path"},
--    {"useshell,noshell,powershell", DATA_TYPE_OPTION, "Shell encapsulation option"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_PATHRANGE, CF_DATA_TYPE_STRING, "Fully qualified command path"},
-+    {"useshell,noshell,powershell", CF_DATA_TYPE_OPTION, "Shell encapsulation option"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- // fileexists, isdir,isplain,islink
- 
- FnCallArg FILESTAT_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File object name"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "File object name"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg FILESTAT_DETAIL_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File object name"},
--    {"size,gid,uid,ino,nlink,ctime,atime,mtime,mode,modeoct,permstr,permoct,type,devno,dev_minor,dev_major,basename,dirname", DATA_TYPE_OPTION, "stat() field to get"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "File object name"},
-+    {"size,gid,uid,ino,nlink,ctime,atime,mtime,mode,modeoct,permstr,permoct,type,devno,dev_minor,dev_major,basename,dirname", CF_DATA_TYPE_OPTION, "stat() field to get"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg FILESEXIST_ARGS[] =
- {
--    {CF_NAKEDLRANGE, DATA_TYPE_STRING, "Array identifier containing list"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_NAKEDLRANGE, CF_DATA_TYPE_STRING, "Array identifier containing list"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg FILTER_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression or string"},
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"},
--    {CF_BOOL, DATA_TYPE_OPTION, "Match as regular expression if true, as exact string otherwise"},
--    {CF_BOOL, DATA_TYPE_OPTION, "Invert matches"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of matches to return"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression or string"},
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine list identifier"},
-+    {CF_BOOL, CF_DATA_TYPE_OPTION, "Match as regular expression if true, as exact string otherwise"},
-+    {CF_BOOL, CF_DATA_TYPE_OPTION, "Invert matches"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum number of matches to return"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg GETFIELDS_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression to match line"},
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Filename to read"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression to split fields"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Return array name"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression to match line"},
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "Filename to read"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression to split fields"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Return array name"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg GETINDICES_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine array identifier"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine array identifier"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg GETUSERS_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Comma separated list of User names"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Comma separated list of UserID numbers"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Comma separated list of User names"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Comma separated list of UserID numbers"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg GETENV_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "Name of environment variable"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of characters to read "},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "Name of environment variable"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum number of characters to read "},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg GETGID_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Group name in text"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Group name in text"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg GETUID_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "User name in text"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "User name in text"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg GREP_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"},
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression"},
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine list identifier"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg GROUPEXISTS_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Group name or identifier"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Group name or identifier"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg HASH_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Input text"},
--    {"md5,sha1,sha256,sha512,sha384,crypt", DATA_TYPE_OPTION, "Hash or digest algorithm"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Input text"},
-+    {"md5,sha1,sha256,sha512,sha384,crypt", CF_DATA_TYPE_OPTION, "Hash or digest algorithm"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg HASHMATCH_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Filename to hash"},
--    {"md5,sha1,crypt,cf_sha224,cf_sha256,cf_sha384,cf_sha512", DATA_TYPE_OPTION, "Hash or digest algorithm"},
--    {CF_IDRANGE, DATA_TYPE_STRING, "ASCII representation of hash for comparison"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "Filename to hash"},
-+    {"md5,sha1,crypt,cf_sha224,cf_sha256,cf_sha384,cf_sha512", CF_DATA_TYPE_OPTION, "Hash or digest algorithm"},
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "ASCII representation of hash for comparison"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg HOST2IP_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Host name in ascii"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Host name in ascii"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg IP2HOST_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "IP address (IPv4 or IPv6)"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "IP address (IPv4 or IPv6)"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg HOSTINNETGROUP_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Netgroup name"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Netgroup name"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg HOSTRANGE_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Hostname prefix"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Enumerated range"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Hostname prefix"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Enumerated range"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg HOSTSSEEN_ARGS[] =
- {
--    {CF_VALRANGE, DATA_TYPE_INT, "Horizon since last seen in hours"},
--    {"lastseen,notseen", DATA_TYPE_OPTION, "Complements for selection policy"},
--    {"name,address", DATA_TYPE_OPTION, "Type of return value desired"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Horizon since last seen in hours"},
-+    {"lastseen,notseen", CF_DATA_TYPE_OPTION, "Complements for selection policy"},
-+    {"name,address", CF_DATA_TYPE_OPTION, "Type of return value desired"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg HOSTSWITHCLASS_ARGS[] =
- {
--    {"[a-zA-Z0-9_]+", DATA_TYPE_STRING, "Class name to look for"},
--    {"name,address", DATA_TYPE_OPTION, "Type of return value desired"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {"[a-zA-Z0-9_]+", CF_DATA_TYPE_STRING, "Class name to look for"},
-+    {"name,address", CF_DATA_TYPE_OPTION, "Type of return value desired"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg IFELSE_ARGS[] =
- {
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg IPRANGE_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "IP address range syntax"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "IP address range syntax"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg IRANGE_ARGS[] =
- {
--    {CF_INTRANGE, DATA_TYPE_INT, "Integer"},
--    {CF_INTRANGE, DATA_TYPE_INT, "Integer"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_INTRANGE, CF_DATA_TYPE_INT, "Integer"},
-+    {CF_INTRANGE, CF_DATA_TYPE_INT, "Integer"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg ISGREATERTHAN_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Larger string or value"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Smaller string or value"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Larger string or value"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Smaller string or value"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg ISLESSTHAN_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Smaller string or value"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Larger string or value"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Smaller string or value"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Larger string or value"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg ISNEWERTHAN_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Newer file name"},
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Older file name"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "Newer file name"},
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "Older file name"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg ISVARIABLE_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "Variable identifier"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "Variable identifier"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg JOIN_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Join glue-string"},
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Join glue-string"},
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine list identifier"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg LASTNODE_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Input string"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Link separator, e.g. /,:"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Input string"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Link separator, e.g. /,:"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg LDAPARRAY_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Array name"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "URI"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Distinguished name"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Filter"},
--    {"subtree,onelevel,base", DATA_TYPE_OPTION, "Search scope policy"},
--    {"none,ssl,sasl", DATA_TYPE_OPTION, "Security level"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Array name"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "URI"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Distinguished name"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Filter"},
-+    {"subtree,onelevel,base", CF_DATA_TYPE_OPTION, "Search scope policy"},
-+    {"none,ssl,sasl", CF_DATA_TYPE_OPTION, "Security level"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg LDAPLIST_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "URI"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Distinguished name"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Filter"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Record name"},
--    {"subtree,onelevel,base", DATA_TYPE_OPTION, "Search scope policy"},
--    {"none,ssl,sasl", DATA_TYPE_OPTION, "Security level"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "URI"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Distinguished name"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Filter"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Record name"},
-+    {"subtree,onelevel,base", CF_DATA_TYPE_OPTION, "Search scope policy"},
-+    {"none,ssl,sasl", CF_DATA_TYPE_OPTION, "Security level"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg LDAPVALUE_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "URI"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Distinguished name"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Filter"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Record name"},
--    {"subtree,onelevel,base", DATA_TYPE_OPTION, "Search scope policy"},
--    {"none,ssl,sasl", DATA_TYPE_OPTION, "Security level"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "URI"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Distinguished name"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Filter"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Record name"},
-+    {"subtree,onelevel,base", CF_DATA_TYPE_OPTION, "Search scope policy"},
-+    {"none,ssl,sasl", CF_DATA_TYPE_OPTION, "Security level"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg LSDIRLIST_ARGS[] =
- {
--    {CF_PATHRANGE, DATA_TYPE_STRING, "Path to base directory"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression to match files or blank"},
--    {CF_BOOL, DATA_TYPE_OPTION, "Include the base path in the list"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_PATHRANGE, CF_DATA_TYPE_STRING, "Path to base directory"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression to match files or blank"},
-+    {CF_BOOL, CF_DATA_TYPE_OPTION, "Include the base path in the list"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg MAPLIST_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Pattern based on $(this) as original text"},
--    {CF_IDRANGE, DATA_TYPE_STRING, "The name of the list variable to map"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Pattern based on $(this) as original text"},
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "The name of the list variable to map"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg MAPARRAY_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Pattern based on $(this.k) and $(this.v) as original text"},
--    {CF_IDRANGE, DATA_TYPE_STRING, "The name of the array variable to map"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Pattern based on $(this.k) and $(this.v) as original text"},
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "The name of the array variable to map"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg NOT_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Class value"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Class value"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg NOW_ARGS[] =
- {
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg OR_ARGS[] =
- {
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg SUM_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "A list of arbitrary real values"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "A list of arbitrary real values"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg PRODUCT_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "A list of arbitrary real values"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "A list of arbitrary real values"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg DATE_ARGS[] =
- {
--    {"1970,3000", DATA_TYPE_INT, "Year"},
--    {"1,12", DATA_TYPE_INT, "Month"},
--    {"1,31", DATA_TYPE_INT, "Day"},
--    {"0,23", DATA_TYPE_INT, "Hour"},
--    {"0,59", DATA_TYPE_INT, "Minute"},
--    {"0,59", DATA_TYPE_INT, "Second"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {"1970,3000", CF_DATA_TYPE_INT, "Year"},
-+    {"1,12", CF_DATA_TYPE_INT, "Month"},
-+    {"1,31", CF_DATA_TYPE_INT, "Day"},
-+    {"0,23", CF_DATA_TYPE_INT, "Hour"},
-+    {"0,59", CF_DATA_TYPE_INT, "Minute"},
-+    {"0,59", CF_DATA_TYPE_INT, "Second"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg PEERS_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File name of host list"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Comment regex pattern"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Peer group size"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "File name of host list"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Comment regex pattern"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Peer group size"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg PEERLEADER_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File name of host list"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Comment regex pattern"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Peer group size"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "File name of host list"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Comment regex pattern"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Peer group size"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg PEERLEADERS_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File name of host list"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Comment regex pattern"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Peer group size"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "File name of host list"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Comment regex pattern"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Peer group size"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg RANDOMINT_ARGS[] =
- {
--    {CF_INTRANGE, DATA_TYPE_INT, "Lower inclusive bound"},
--    {CF_INTRANGE, DATA_TYPE_INT, "Upper inclusive bound"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_INTRANGE, CF_DATA_TYPE_INT, "Lower inclusive bound"},
-+    {CF_INTRANGE, CF_DATA_TYPE_INT, "Upper inclusive bound"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg READFILE_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File name"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of bytes to read"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "File name"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum number of bytes to read"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg READSTRINGARRAY_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "Array identifier to populate"},
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File name to read"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regex matching comments"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to split data"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of entries to read"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum bytes to read"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "Array identifier to populate"},
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "File name to read"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regex matching comments"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regex to split data"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum number of entries to read"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum bytes to read"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg PARSESTRINGARRAY_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "Array identifier to populate"},
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "A string to parse for input data"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regex matching comments"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to split data"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of entries to read"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum bytes to read"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "Array identifier to populate"},
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "A string to parse for input data"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regex matching comments"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regex to split data"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum number of entries to read"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum bytes to read"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg READSTRINGARRAYIDX_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "Array identifier to populate"},
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "A string to parse for input data"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regex matching comments"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to split data"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of entries to read"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum bytes to read"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "Array identifier to populate"},
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "A string to parse for input data"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regex matching comments"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regex to split data"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum number of entries to read"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum bytes to read"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg PARSESTRINGARRAYIDX_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "Array identifier to populate"},
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "A string to parse for input data"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regex matching comments"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to split data"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of entries to read"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum bytes to read"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "Array identifier to populate"},
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "A string to parse for input data"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regex matching comments"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regex to split data"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum number of entries to read"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum bytes to read"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg READSTRINGLIST_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File name to read"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regex matching comments"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to split data"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of entries to read"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum bytes to read"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "File name to read"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regex matching comments"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regex to split data"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum number of entries to read"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum bytes to read"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg READTCP_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Host name or IP address of server socket"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Port number"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Protocol query string"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of bytes to read"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Host name or IP address of server socket"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Port number"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Protocol query string"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum number of bytes to read"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg REGARRAY_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine array identifier"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine array identifier"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg REGCMP_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Match string"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Match string"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg REGEXTRACT_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Match string"},
--    {CF_IDRANGE, DATA_TYPE_STRING, "Identifier for back-references"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Match string"},
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "Identifier for back-references"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg REGISTRYVALUE_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Windows registry key"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Windows registry value-id"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Windows registry key"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Windows registry value-id"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg REGLINE_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Filename to search"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Filename to search"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg REGLIST_ARGS[] =
- {
--    {CF_NAKEDLRANGE, DATA_TYPE_STRING, "CFEngine list identifier"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_NAKEDLRANGE, CF_DATA_TYPE_STRING, "CFEngine list identifier"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg REGLDAP_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "URI"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Distinguished name"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Filter"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Record name"},
--    {"subtree,onelevel,base", DATA_TYPE_OPTION, "Search scope policy"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to match results"},
--    {"none,ssl,sasl", DATA_TYPE_OPTION, "Security level"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "URI"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Distinguished name"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Filter"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Record name"},
-+    {"subtree,onelevel,base", CF_DATA_TYPE_OPTION, "Search scope policy"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regex to match results"},
-+    {"none,ssl,sasl", CF_DATA_TYPE_OPTION, "Security level"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg REMOTESCALAR_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "Variable identifier"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Hostname or IP address of server"},
--    {CF_BOOL, DATA_TYPE_OPTION, "Use enryption"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "Variable identifier"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Hostname or IP address of server"},
-+    {CF_BOOL, CF_DATA_TYPE_OPTION, "Use enryption"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg HUB_KNOWLEDGE_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "Variable identifier"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "Variable identifier"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg REMOTECLASSESMATCHING_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Server name or address"},
--    {CF_BOOL, DATA_TYPE_OPTION, "Use encryption"},
--    {CF_IDRANGE, DATA_TYPE_STRING, "Return class prefix"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Server name or address"},
-+    {CF_BOOL, CF_DATA_TYPE_OPTION, "Use encryption"},
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "Return class prefix"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg RETURNSZERO_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Fully qualified command path"},
--    {"useshell,noshell,powershell", DATA_TYPE_OPTION, "Shell encapsulation option"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "Fully qualified command path"},
-+    {"useshell,noshell,powershell", CF_DATA_TYPE_OPTION, "Shell encapsulation option"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg RRANGE_ARGS[] =
- {
--    {CF_REALRANGE, DATA_TYPE_REAL, "Real number"},
--    {CF_REALRANGE, DATA_TYPE_REAL, "Real number"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_REALRANGE, CF_DATA_TYPE_REAL, "Real number"},
-+    {CF_REALRANGE, CF_DATA_TYPE_REAL, "Real number"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg SELECTSERVERS_ARGS[] =
- {
--    {CF_NAKEDLRANGE, DATA_TYPE_STRING, "The identifier of a cfengine list of hosts or addresses to contact"},
--    {CF_VALRANGE, DATA_TYPE_INT, "The port number"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "A query string"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "A regular expression to match success"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of bytes to read from server"},
--    {CF_IDRANGE, DATA_TYPE_STRING, "Name for array of results"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_NAKEDLRANGE, CF_DATA_TYPE_STRING, "The identifier of a cfengine list of hosts or addresses to contact"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "The port number"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "A query string"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "A regular expression to match success"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum number of bytes to read from server"},
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "Name for array of results"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg SPLAYCLASS_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Input string for classification"},
--    {"daily,hourly", DATA_TYPE_OPTION, "Splay time policy"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Input string for classification"},
-+    {"daily,hourly", CF_DATA_TYPE_OPTION, "Splay time policy"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg SPLITSTRING_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "A data string"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to split on"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of pieces"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "A data string"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regex to split on"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum number of pieces"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg STRCMP_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "String"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "String"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "String"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "String"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg STRFTIME_ARGS[] =
- {
--    {"gmtime,localtime", DATA_TYPE_OPTION, "Use GMT or local time"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "A format string"},
--    {CF_VALRANGE, DATA_TYPE_INT, "The time as a Unix epoch offset"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {"gmtime,localtime", CF_DATA_TYPE_OPTION, "Use GMT or local time"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "A format string"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "The time as a Unix epoch offset"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg SUBLIST_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"},
--    {"head,tail", DATA_TYPE_OPTION, "Whether to return elements from the head or from the tail of the list"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of elements to return"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine list identifier"},
-+    {"head,tail", CF_DATA_TYPE_OPTION, "Whether to return elements from the head or from the tail of the list"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Maximum number of elements to return"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg TRANSLATEPATH_ARGS[] =
- {
--    {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Unix style path"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ABSPATHRANGE, CF_DATA_TYPE_STRING, "Unix style path"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg USEMODULE_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Name of module command"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Argument string for the module"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Name of module command"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Argument string for the module"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg UNIQUE_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine list identifier"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg NTH_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"},
--    {CF_VALRANGE, DATA_TYPE_INT, "Offset of element to return"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine list identifier"},
-+    {CF_VALRANGE, CF_DATA_TYPE_INT, "Offset of element to return"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg EVERY_SOME_NONE_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression or string"},
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Regular expression or string"},
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine list identifier"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg USEREXISTS_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "User name or identifier"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "User name or identifier"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg SORT_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"},
--    {"lex", DATA_TYPE_STRING, "Sorting method: lex"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine list identifier"},
-+    {"lex", CF_DATA_TYPE_STRING, "Sorting method: lex"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg REVERSE_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine list identifier"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg SHUFFLE_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"},
--    {CF_ANYSTRING, DATA_TYPE_STRING, "Any seed string"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine list identifier"},
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "Any seed string"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg LENGTH_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine list identifier"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg SETOP_ARGS[] =
- {
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine base list identifier"},
--    {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine filter list identifier"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine base list identifier"},
-+    {CF_IDRANGE, CF_DATA_TYPE_STRING, "CFEngine filter list identifier"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- FnCallArg FORMAT_ARGS[] =
- {
--    {CF_ANYSTRING, DATA_TYPE_STRING, "CFEngine format string"},
--    {NULL, DATA_TYPE_NONE, NULL}
-+    {CF_ANYSTRING, CF_DATA_TYPE_STRING, "CFEngine format string"},
-+    {NULL, CF_DATA_TYPE_NONE, NULL}
- };
- 
- /*********************************************************/
-@@ -5828,119 +5828,119 @@ FnCallArg FORMAT_ARGS[] =
- 
- const FnCallType CF_FNCALL_TYPES[] =
- {
--    FnCallTypeNew("accessedbefore", DATA_TYPE_CONTEXT, ACCESSEDBEFORE_ARGS, &FnCallIsAccessedBefore, "True if arg1 was accessed before arg2 (atime)", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL),
--    FnCallTypeNew("accumulated", DATA_TYPE_INT, ACCUM_ARGS, &FnCallAccumulatedDate, "Convert an accumulated amount of time into a system representation", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL),
--    FnCallTypeNew("ago", DATA_TYPE_INT, AGO_ARGS, &FnCallAgoDate, "Convert a time relative to now to an integer system representation", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL),
--    FnCallTypeNew("and", DATA_TYPE_STRING, AND_ARGS, &FnCallAnd, "Calculate whether all arguments evaluate to true", true, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL),
--    FnCallTypeNew("canonify", DATA_TYPE_STRING, CANONIFY_ARGS, &FnCallCanonify, "Convert an abitrary string into a legal class name", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL),
--    FnCallTypeNew("concat", DATA_TYPE_STRING, CONCAT_ARGS, &FnCallConcat, "Concatenate all arguments into string", true, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL),

@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the devel mailing list