README file for TFMan class and TFMTest test application.

Copyright 2025-2026 by The Software Samurai
on the web:  http://www.SoftwareSam.us/
Software released under GPL3+, and documentation released under FDL1.3+
=======================================================================

Unpack this archive using the following command:
              tar -xjvf tfman-x.x.xx.tar.bz2

  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
This package contains the TFMan class source, demo application and documentation. 
You will need to build the application binary for your target system (see below).


  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
Files included in this package:

TFMan/                  // Source code directory
   TFMTest.cpp          // Application source code.
   TFMan.hpp            // TFMan class definition and implementation
   gString.hpp          // Class definition for text formatting and internationalization
   gString.cpp          // Implementation of gString class
   tfmtest              // demo app executable file (for x86_64 only)
   Makefile             // Build the tfmTest application
   tfman.info           // Documentation in 'info' format
   tfman.html           // Documentation in HTML format
   infodoc-styles.css   // CSS style definitions for HTML documentation
   README               // Package description, release notes (this file)

To read the full Texinfo documentation for this package, type: 
                   info -f tfman.info
or even better, open the 'tfman.html' file in your favorite browser.


  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -

-- =============================================
-- NOTES on the current release of TFMan class =
-- =============================================

-- Build requires the GNU C++ compiler, version 8.1 or higher. 
   Current development version is v:15.2.1 20260123 (Red Hat 15.2.1-7)
   -- FULL C++17 SUPPORT IS REQUIRED for a successful build.
   -- See below for a summary description of building the test application.

-- Build and testing are done on both Fedora Linux and Ubuntu Linux on 64-bit 
   Wintel hardware. Gnometerm  and Konsole terminals (Bash shell), as well as
   XTerm (under Wayland) are used during testing and validation. 
   If your system is configured differently from these, please post us a 
   message about your experiences.

-- Documentation source (Texinfo format) is not included with this package.
   The '.texi' source is included in the larger AnsiCmd Library package.

-- Current Release
   -- Programmers always believe that our work is totally bug-free, and we 
      are always wrong. Please report all bugs or suspected bugs via the 
      website.
   -- Documentation is quite simple, primarily because the source code itself
      is simple. If there is a point that lacks clarity, please send a 
      message describing the problem.

   -- ============================
   -- Known bugs and other issues:
   -- ============================
   -- None at this time. 


-- =====================================
-- Building the 'tfmtest' application: =
-- =====================================
   This is just a quick reference.
   See the documentation for full details.
   Open a terminal window and navigate to the documentation 
   directory.
            Example:  cd TFMan/Texinfo
   Then open the documentation file to the 'Building from Source' chapter.
            info -f tfman.info -n 'Building from Source'
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

   1) Open a terminal window.

   2) Navigate to the directory where you want to unpack the archive.
            Example: cd ~/sam/SoftwareDesign

   3) Copy the compressed archive to the target directory.
            Example: cp ~/Downloads/tfman-0.0.02.tar.bz2

   4) Unpack the archive:
      a) If your target directory already contains a 'TFMan' directory, 
         then rename it before unpacking the new archive.
            Example:  mv TFMan TFMan_OLD
      b) All contents of the compressed archive will be unpacked into a tree 
         whose base directory is 'TFMan'. 
      c) Unpack the archive.
            tar -xjvf tfman-0.0.02.tar.bz2

   5) Navigate to the directory which contains the source code.
            cd TFMan

   7) Build the 'tfmtest' application.
      a) Be sure that your compiler version is 8.1 or greater (or Clang v:5).
            g++ --version
      b) Build the application.
            gmake clean
            gmake
      c) The build should be clean with no errors and no warnings.
         If there are errors, then the most likely cause would be that the 
         compiler cannot find a necessary header file or library.
         Check your LIB_PATH and other environment variables.

   8) Once you have a clean build, invoke with a request for version number.
            ./tfmtest --version
      a) If the application successfully reports the version number and 
         copyright notice, then the application has been built correctly.
      b) If the application does not run, then verify that all necessary libraries 
         are installed on your system. Run the 'ldd' command to list the 
         necessary libraries. The needed libraries should look something like 
         the following. These are all standard libraries which should be 
         installed on your system by default.

         [TFMan]$ ldd tfmtest
            linux-vdso.so.1 (0x00007f9ca33f5000)
            libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f9ca3000000)
            libm.so.6 => /lib64/libm.so.6 (0x00007f9ca32ef000)
            libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f9ca32c0000)
            libc.so.6 => /lib64/libc.so.6 (0x00007f9ca2e0d000)
            /lib64/ld-linux-x86-64.so.2 (0x00007f9ca33f7000)

-- =====================================
-- Version History (most recent first) =
-- =====================================
v: 0.00.02 20-Dec-2025
   -- Source and documentation copied from the AnsiCmd library package to 
      create a stand-alone distribution package.
   -- The TFMan class leverages the author's gString (text management) class 
      for handling text analysis and formatting.
      -- The gString class code is also available as a seperate download.
   -- Added a const char* tmfVersion(void); method to report the class 
      version number.
   -- Create a simple demo application, 'tfmtest' to demonstrate class 
      functionality. The demo app is based on the 'Test_Tfman() method 
      in the AnsiCmdTest.cpp source of the AnsiCmd class library.
   -- First stand-alone release posted to website: 12-Apr-2026.

v: 0.00.01 24-Mar-2025
   -- The TFMan functionality was developed as a subset of file management 
      within the AnsiCmd-class library. When the code was fully functional, 
      it was collected as the TFMan class and implemented in TFMan.hpp.
      -- Class functionality has undergone significant testing within the 
         parent library, although at the application level, the methods 
         of the TFMan class are not directly accessible. Instead, a layer 
         of AnsiCmd methods isolate TFMan from direct application access.
      -- Note that the TFMan class is used directly by the AcEdit application 
         during startup as a means of validating and parsing the configuration 
         file. Then direct access is closed before the application window 
         (ACWin) is created.
   -- First released as part of the AnsiCmd library package v:0.0.06.


