"Fossies" - the Fresh Open Source Software Archive

Member "ansifilter-2.18/src/cmdlineoptions.h" (30 Jan 2021, 5876 Bytes) of package /linux/privat/ansifilter-2.18.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "cmdlineoptions.h" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 2.16_vs_2.17.

    1 /***************************************************************************
    2                           cmdlineoptions.h  -  description
    3                              -------------------
    4     begin                : Sun Oct 13 2007
    5     copyright            : (C) 2007-2018 by Andre Simon
    6     email                : a.simon@mailbox.org
    7  ***************************************************************************/
    8 
    9 /*
   10 This file is part of ANSIFilter.
   11 
   12 ANSIFilter is free software: you can redistribute it and/or modify
   13 it under the terms of the GNU General Public License as published by
   14 the Free Software Foundation, either version 3 of the License, or
   15 (at your option) any later version.
   16 
   17 ANSIFilter is distributed in the hope that it will be useful,
   18 but WITHOUT ANY WARRANTY; without even the implied warranty of
   19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
   20 GNU General Public License for more details.
   21 
   22 You should have received a copy of the GNU General Public License
   23 along with ANSIFilter.  If not, see <http://www.gnu.org/licenses/>.
   24 */
   25 
   26 #ifndef CMDLINEOPTIONS_H
   27 #define CMDLINEOPTIONS_H
   28 
   29 #include <string>
   30 #include <map>
   31 #include <cstdlib>
   32 #include <iostream>
   33 #include <fstream>
   34 #include <vector>
   35 #include "enums.h"
   36 
   37 
   38 using namespace std;
   39 
   40 /// handle command line options
   41 
   42 class CmdLineOptions
   43 {
   44 public:
   45 
   46     /**Constructor
   47      \param argc Argument count
   48      \param argv Argument strings
   49     */
   50     CmdLineOptions( const int argc, const char *argv[] );
   51     ~CmdLineOptions();
   52 
   53     /** \return Single output file name*/
   54     string getSingleOutFilename();
   55 
   56     /** \return Single input file name*/
   57     string getSingleInFilename() const;
   58 
   59     /** \return Output directory*/
   60     string getOutDirectory() ;
   61 
   62     /** \return Character encoding*/
   63     string getEncoding() const;
   64 
   65     /** \return font name*/
   66     string getFont() const;
   67 
   68     /** \return font size*/
   69     string getFontSize() const;
   70 
   71     /** \return path to color map*/
   72     string getMapPath() const;
   73     
   74     /** \return True if version information should be printed*/
   75     bool printVersion() const;
   76 
   77     /** \return True if help information should be printed*/
   78     bool printHelp() const;
   79 
   80     /** \return True if output should be fragmented*/
   81     bool fragmentOutput() const;
   82 
   83     /** \return output file suffix */
   84     string getOutFileSuffix() const;
   85 
   86     /** \return Output file format */
   87     ansifilter::OutputType getOutputType() const;
   88 
   89     /** \return True if encoding specification should be omitted in output*/
   90     bool omitEncoding() const;
   91 
   92     /** \return True if formatting infotmation should not be outputted */
   93     bool plainOutput() const;
   94 
   95     /** \return True if input files should be raed after EOF occoured */
   96     bool ignoreInputEOF() const;
   97 
   98     /** \return True if line numbers should be printed */
   99     bool showLineNumbers() const;
  100 
  101     /** \return True if anchors should be added to line numbers */
  102     bool addAnchors() const;
  103 
  104     /** \return True if line numbers should be printed */
  105     bool wrapNoNumbers() const;
  106 
  107     /** \return True if input should be treated as codepage 437 ASCII art */
  108     bool parseCP437() const;
  109     
  110     /** \return True if input should be treated as BIN ASCII art */
  111     bool parseAsciiBin() const;
  112 
  113     /** \return True if input should be treated as Tundra ASCII art */
  114     bool parseAsciiTundra() const;
  115    
  116      /** \return True if output should not be terminated with carriage return */
  117     bool omitTrailingCR() const;
  118 
  119     /** \return True if output should not contain a version info comment */
  120     bool omitVersionInfo() const;
  121     
  122     /** \return True if clear sequences (ESC K) should be ignored */
  123     bool ignoreClearSeq() const;
  124 
  125         /** \return True if CSI sequences should be ignored */
  126     bool ignoreCSISeq() const;
  127     
  128     /** \return True if output should contain dynamic style classes instead of inline styles */
  129     bool applyDynStyles() const;
  130     
  131     /** \return True if dynamic styles should be saved to a file */
  132     bool genDynStyles() const;
  133     
  134     bool addFunnyAnchors() const;
  135 
  136     /** \return Document title */
  137     string getDocumentTitle() const ;
  138 
  139     /** \return Document title */
  140     string getStyleSheetPath() const ;
  141 
  142     /** \return List of input file names*/
  143     const vector <string> & getInputFileNames() const;
  144 
  145     int getWrapLineLength() const;
  146 
  147     /** \return XBIN width */
  148     int getAsciiArtWidth() const;
  149 
  150     /** \return XBIN height */
  151     int getAsciiArtHeight() const;
  152 
  153     /** \return SVG width */
  154     string getWidth() const;
  155 
  156     /** \return SVG height */
  157     string getHeight() const;
  158 
  159     /** \return Allowed input file size */
  160     off_t getMaxFileSize() const;
  161 
  162 private:
  163     ansifilter::OutputType outputType;
  164 
  165     bool opt_help;
  166     bool opt_version ;
  167     bool opt_fragment;
  168     bool opt_plain;
  169     bool opt_ignoreEOF;
  170     bool opt_linenum;
  171     bool opt_wrapNoNum;
  172     bool opt_anchors;
  173     bool opt_cp437;
  174     bool opt_asciiBin;
  175     bool opt_asciiTundra;
  176 
  177     bool opt_omit_trailing_cr;
  178     bool opt_omit_version_info;
  179     bool opt_ignoreClear;
  180     bool opt_ignoreCSI;
  181     
  182     bool opt_applyDynStyles;
  183     bool opt_genDynStyles;
  184     bool opt_funny_anchors;
  185 
  186     // name of single output file
  187     string outFilename;
  188     string docTitle;
  189     string encodingName;
  190     string outDirectory;
  191     string font;
  192     string fontSize;
  193     string styleSheetPath;
  194     string colorMapPath;
  195     string width;
  196     string height;
  197 
  198     int wrapLineLen;
  199     int asciiArtWidth;
  200     int asciiArtHeight;
  201     
  202     off_t maxFileSize;
  203 
  204     /** list of all input file names */
  205     vector <string> inputFileNames;
  206 
  207     /** \return Valid path name */
  208     string validateDirPath(const string & path);
  209 
  210     /** \return directory name of path */
  211     string getDirName( const string & path);
  212 
  213     void parseRuntimeOptions( const int argc, const char *argv[], bool readInputFilenames=true);
  214 };
  215 
  216 #endif