ansiprsr.h
上传用户:tigerk9
上传日期:2020-03-10
资源大小:237k
文件大小:2k
源码类别:

Telnet客户端

开发平台:

Visual C++

  1. #ifndef __ANSIPRSR_H
  2. #define __ANSIPRSR_H
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <ctype.h>
  6. #include <string.h>
  7. #include "tnconfig.h"
  8. #include "tparser.h"
  9. // added this color table to make things go faster (Paul Branann 5/8/98)
  10. enum Colors {BLACK=0, BLUE, GREEN, CYAN, RED, MAGENTA, YELLOW, WHITE};
  11. static const int ANSIColors[] = {BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE};
  12. // This should be greater than the largest conceivable window size
  13. // 200 should suffice
  14. #define MAX_TAB_POSITIONS 200
  15. // Added by Frediano Ziglio 6/2/2000
  16. // Include Meridian Emulator support
  17. // undefine it to remove support
  18. #define MTE_SUPPORT 1
  19. // TANSIParser is now properly no longer a base class for TTelnetParser.
  20. // Screen output is handled in TConsole.cpp.
  21. // (Paul Brannan 6/15/98)
  22. class TANSIParser : public TParser {
  23. private:
  24. char* ParseEscapeANSI(char* pszBuffer, char* pszBufferEnd);
  25. char* ParseANSIBuffer(char* pszBuffer, char* pszBufferEnd);
  26. char* ParseEscape(char* pszBuffer, char* pszBufferEnd);
  27. // Added by I.Ioannou 06/04/97
  28. char* PrintBuffer(char* pszBuffer, char* pszBufferEnd);
  29. char* PrintGoodChars(char * pszHead, char * pszTail);
  30. #ifdef MTE_SUPPORT
  31.     // Added by Frediano Ziglio, 5/31/2000
  32.     char* ParseEscapeMTE(char* pszBuffer, char* pszBufferEnd);
  33. short int mteRegionXF,mteRegionYF;
  34. #endif
  35. void ConSetAttribute(unsigned char wAttr);
  36. char *GetTerminalID();
  37. void ConSetCursorPos(int x, int y);
  38. void ResetTerminal();
  39. void Init();
  40. void SaveCurX(int iX);
  41. void SaveCurY(int iY);
  42. void resetTabStops();
  43. int iSavedCurX;
  44. int iSavedCurY;
  45. unsigned char iSavedAttributes;
  46. FILE * dumpfile;
  47. // Added by I.Ioannou 06 April 1997
  48. FILE * printfile;
  49. char InPrintMode;
  50. int inGraphMode;
  51. char last_char;                 // TITUS++: 2. November 98
  52. char map_G0, map_G1;
  53. int current_map;
  54. bool vt52_mode;
  55. bool print_ctrl;
  56. bool ignore_margins;
  57. bool fast_write;
  58. bool newline_mode;
  59. int tab_stops[MAX_TAB_POSITIONS];
  60. public:
  61. // Changed by Paul Brannan 5/13/98
  62. TANSIParser(TConsole &Console, KeyTranslator &RefKeyTrans,
  63. TScroller &RefScroller, TNetwork &NetHandler, TCharmap &RefCharmap);
  64. ~TANSIParser();
  65. char* ParseBuffer(char* pszBuffer, char* pszBufferEnd);
  66. static int StripBuffer(char* pszBuffer, char* pszBufferEnd, int width);
  67. };
  68. #endif