partly working mac build settings from last update
[feisty_meow.git] / nucleus / tools / clam_tools / value_tagger.cpp
index 0975186e5e54f1e46fa0637415fa8f5570a5f6f0..d90dac3e809e3e4547feaa9f26aa1ba2bc32e2f8 100644 (file)
@@ -24,7 +24,6 @@
 * Please send any updates to: fred@gruntose.com                               *
 \*****************************************************************************/
 
-#include <algorithms/shell_sort.h>
 #include <application/application_shell.h>
 #include <application/command_line.h>
 #include <application/hoople_main.h>
@@ -46,6 +45,8 @@
 #include <textual/parser_bits.h>
 
 #include <sys/stat.h>
+
+#include "../../library/algorithms/sorts.h"
 #ifdef __WIN32__
   #include <io.h>
 #endif
@@ -100,7 +101,7 @@ class search_record
 {
 public:
   search_record(const astring &search = astring::empty_string(),
-      bool is_link = false, search_record *link = NIL)
+      bool is_link = false, search_record *link = NULL_POINTER)
   : _search(search), _no_modify(false), _is_link(is_link), _our_link(link),
     _current_value(0), _value_increment(1) {}
 
@@ -165,6 +166,8 @@ public:
   simple_sorter(int index = 0, int value = 0) : _index(index), _value(value) {}
   bool operator < (const simple_sorter &to_compare) const
     { return _value < to_compare._value; }
+  bool operator > (const simple_sorter &to_compare) const
+    { return _value > to_compare._value; }
   bool operator == (const simple_sorter &to_compare) const
     { return _value == to_compare._value; }
 };
@@ -200,7 +203,7 @@ private:
   ini_configurator *_ini;  // the configuration for what we'll scan.
   string_table _dirs;  // the list of directories.
   string_table _dirs_seen;  // full list of already processed directories.
-  astring _manifest_filename;  // the name of the manifest we'll create.
+  filename _manifest_filename;  // the name of the manifest we'll create.
   byte_filer _manifest;  // the actual file we're building.
   active_searches _search_list;  // tracks our progress in scanning files.
   int_array _search_ordering;
@@ -215,7 +218,7 @@ private:
 
 value_tagger::value_tagger()
 : application_shell(),
-  _ini(NIL),
+  _ini(NULL_POINTER),
   _dirs_seen(10)
 {
 }
@@ -229,6 +232,7 @@ int value_tagger::print_instructions_and_exit()
 {
   LOG(a_sprintf("%s usage:", filename(_global_argv[0]).basename().raw().s()));
   LOG("");
+
   LOG("\
 This utility scans a code base for outcome and filter definitions.  It will\n\
 only scan the header files (*.h) found in the directories specified.  The\n\
@@ -327,17 +331,17 @@ int value_tagger::execute()
 
   log(time_stamp::notarize(true) + "value_tagger started.", basis::ALWAYS_PRINT);
 
-  astring test_repository = environment::get("FEISTY_MEOW_DIR");
+  astring test_repository = environment::get("FEISTY_MEOW_APEX");
   if (!test_repository) {
     astring msg = "\
 There is a problem with a required build precondition.  The following\r\n\
 variables must be set before the build is run:\r\n\
 \r\n\
-  FEISTY_MEOW_DIR    This should point at the root of the build tree.\r\n\
+  FEISTY_MEOW_APEX    This should point at the root of the build tree.\r\n\
 \r\n\
 There are also a few variables only required for CLAM-based compilation:\r\n\
 \r\n\
-  MAKEFLAGS         This should be set to \"-I $FEISTY_MEOW_DIR/clam\".\r\n\
+  MAKEFLAGS         This should be set to \"-I $FEISTY_MEOW_APEX/clam\".\r\n\
 \r\n\
 Note that on Win32 platforms, these should be set in the System or User\r\n\
 variables before running a build.\r\n";
@@ -352,8 +356,8 @@ variables before running a build.\r\n";
   _ini = new ini_configurator(ini_file, ini_configurator::RETURN_ONLY);
 
   // read the name of the manifest file to create.
-  _manifest_filename = _ini->load("manifest", "output", "");
-  if (!_manifest_filename) {
+  _manifest_filename = filename(_ini->load("manifest", "output", ""));
+  if (!_manifest_filename.raw().length()) {
     non_continuable_error(class_name(), ini_file, "The 'output' file entry is missing");
   }
   _manifest_filename = parser_bits::substitute_env_vars(_manifest_filename);
@@ -373,14 +377,14 @@ variables before running a build.\r\n";
   }
   for (int i = 0; i < temp_dirs.symbols(); i++) {
 //log(astring("curr is ") + current);
-    astring current = parser_bits::substitute_env_vars(temp_dirs.name(i));
+    filename current = filename(parser_bits::substitute_env_vars(temp_dirs.name(i)));
     _dirs.add(current, "");
   }
 
   LOG(astring("Directories to scan..."));
   LOG(_dirs.text_form());
 
-  astring rdir = environment::get("FEISTY_MEOW_DIR");
+  astring rdir = environment::get("FEISTY_MEOW_APEX");
   astring fname;
   astring parmfile = environment::get("BUILD_PARAMETER_FILE");
   if (parmfile.t()) fname = parmfile;
@@ -410,7 +414,7 @@ variables before running a build.\r\n";
     {
       // check for whether this section is linked to another or not.
       astring linked = _ini->load(curr_name, "link", "");
-      search_record *our_link_found = NIL;
+      search_record *our_link_found = NULL_POINTER;
       if (linked.t()) {
         // we found that this should be linked to another item.
         our_link_found = _search_list.find(linked);
@@ -481,8 +485,8 @@ variables before running a build.\r\n";
 
   byte_filer build_file(fname, "r");
   if (!build_file.good()) {
-    non_continuable_error(class_name(), build_file.filename(),
-        "Could not find the build configuration; is FEISTY_MEOW_DIR set?");
+    non_continuable_error(class_name(), build_file.name(),
+        "Could not find the build configuration; is FEISTY_MEOW_APEX set?");
   }
   byte_array full_config;
   build_file.read(full_config, 100000);  // a good chance to be big enough.
@@ -501,7 +505,7 @@ variables before running a build.\r\n";
   build_number += ".";
   build_number += temp_ini.load("version", "build", "");
   if (build_number.equal_to("...")) {
-    non_continuable_error(class_name(), build_file.filename(),
+    non_continuable_error(class_name(), build_file.name(),
         "Could not read the build number; is build parameter file malformed?");
   }
 
@@ -957,6 +961,7 @@ HOOPLE_MAIN(value_tagger, )
   // static dependencies found by buildor_gen_deps.sh:
   #include <application/application_shell.cpp>
   #include <application/command_line.cpp>
+  #include <application/windoze_helper.cpp>
   #include <basis/astring.cpp>
   #include <basis/common_outcomes.cpp>
   #include <basis/environment.cpp>
@@ -973,10 +978,10 @@ HOOPLE_MAIN(value_tagger, )
   #include <filesystem/directory.cpp>
   #include <filesystem/directory_tree.cpp>
   #include <filesystem/file_info.cpp>
+  #include <filesystem/file_time.cpp>
   #include <filesystem/filename.cpp>
   #include <filesystem/filename_list.cpp>
   #include <filesystem/filename_tree.cpp>
-  #include <filesystem/file_time.cpp>
   #include <filesystem/huge_file.cpp>
   #include <loggers/combo_logger.cpp>
   #include <loggers/console_logger.cpp>