Public API Reference

csAnsiParser Class Reference

Helper to parse a string for ANSI codes. More...

#include <csutil/ansiparse.h>

List of all members.

Public Types

enum  Command {
  cmdUnknown, cmdFormatAttrReset, cmdFormatAttrEnable, cmdFormatAttrDisable,
  cmdFormatAttrForeground, cmdFormatAttrBackground, cmdClearScreen, cmdClearLine,
  cmdCursorSetPosition, cmdCursorMoveRelative
 Identifier for the ANSI command. More...
enum  CommandClass {
  classNone, classUnknown, classFormat, classClear,
 Classification of the command sequence. More...
enum  FormatAttr {
  attrBold, attrItalics, attrUnderline, attrBlink,
  attrReverse, attrStrikethrough, attrDim, attrInvisible
 Types of attributes in the cmdFormatAttrEnable/cmdFormatAttrBackground command. More...
enum  FormatColor {
  colNone = -1, colBlack, colRed, colGreen,
  colYellow, colBlue, colMagenta, colCyan,
 Values for foreground/background color. More...

Static Public Member Functions

static bool DecodeCommand (const char *&cmd, size_t &cmdLen, Command &command, CommandParams &commandParams)
 Decode an ANSI code sequence.
static bool ParseAnsi (const char *str, size_t &ansiCommandLen, CommandClass &cmdClass, size_t &textLen)
 Parse a string for ANSI codes.


struct  CommandParams
 Parameters to ANSI command. More...
struct  CursorParams

Detailed Description

Helper to parse a string for ANSI codes.

Definition at line 33 of file ansiparse.h.

Member Enumeration Documentation

Identifier for the ANSI command.

cmdUnknown  Command was unrecognized.
cmdFormatAttrReset  Reset all attributes.
cmdFormatAttrEnable  'Enable attribute'
cmdFormatAttrDisable  'Disable attribute'
cmdFormatAttrForeground  'Set foreground color'
cmdFormatAttrBackground  'Set background color'
cmdClearScreen  'Clear screen'
cmdClearLine  'Clear end of line'
cmdCursorSetPosition  'Set cursor position'
cmdCursorMoveRelative  Move cursor specified number of lines and columns relative to current position.

Definition at line 37 of file ansiparse.h.

Classification of the command sequence.

classNone  No ANSI sequence was found.
classUnknown  An ANSI sequence was found, but not recognized.
classFormat  A formatting sequence was found.
classClear  A screen clear sequence was found.
classCursor  A cursor movement sequence was found.

Definition at line 61 of file ansiparse.h.

Types of attributes in the cmdFormatAttrEnable/cmdFormatAttrBackground command.

attrBold  'Bold' attribute
attrItalics  'Italics' attribute
attrUnderline  'Underline' attribute
attrBlink  'Blink' attribute
attrReverse  'Reverse' attribute
attrStrikethrough  'Strikethrough' attribute
attrDim  'Dim' attribute
attrInvisible  'Invisible' attribute

Definition at line 78 of file ansiparse.h.

Values for foreground/background color.

colNone  None specified.
colBlack  Black.
colRed  Red.
colGreen  Green.
colYellow  Yellow.
colBlue  Blue.
colMagenta  Magenta.
colCyan  Cyan.
colWhite  White.

Definition at line 98 of file ansiparse.h.

Member Function Documentation

static bool csAnsiParser::DecodeCommand ( const char *&  cmd,
size_t &  cmdLen,
Command command,
CommandParams commandParams 
) [static]

Decode an ANSI code sequence.

Decodes a part of an ANSI code sequence, if known.

Multiple sequences might occur, repeated call this function until false is returned.
cmd String to decode. Updated to point to the start of the next sequence part.
cmdLen Returns length of the command in chars.
command The decoded command.
commandParams Parameters for the decoded command.
Whether the decoding was successful.

static bool csAnsiParser::ParseAnsi ( const char *  str,
size_t &  ansiCommandLen,
CommandClass cmdClass,
size_t &  textLen 
) [static]

Parse a string for ANSI codes.

Looks if a string contains an ANSI code sequence at the beginning. If yes, the ansiCommandLen parameter is filled with the length of the sequence.

str String to parse.
ansiCommandLen Returns number of chars that the ANSI command takes up.
cmdClass Returns the ANSI command class.
textLen Contains the number of chars up to the next ANSI sequence or the end of the string of no sequence was found.
Whether the parsing was successful.

The documentation for this class was generated from the following file:
Generated for Crystal Space 1.2.1 by doxygen 1.5.3