Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/teraterm/teraterm/vtterm.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4421 by doda, Fri Apr 8 03:53:59 2011 UTC revision 4472 by doda, Tue May 24 13:20:08 2011 UTC
# Line 798  void PrnParseControl(BYTE b) // printer Line 798  void PrnParseControl(BYTE b) // printer
798        ICount = 0;        ICount = 0;
799        FirstPrm = TRUE;        FirstPrm = TRUE;
800        NParam = 1;        NParam = 1;
801        Param[1] = -1;        Param[1] = 0;
802        Prv = 0;        Prv = 0;
803        ParseMode = ModeCSI;        ParseMode = ModeCSI;
804        WriteToPrnFile(0,TRUE); // flush prn buff        WriteToPrnFile(0,TRUE); // flush prn buff
# Line 942  void ParseControl(BYTE b) Line 942  void ParseControl(BYTE b)
942        ESCFlag = FALSE;        ESCFlag = FALSE;
943        ICount = 0;        ICount = 0;
944        NParam = 1;        NParam = 1;
945        Param[1] = -1;        Param[1] = 0;
946        Prv = 0;        Prv = 0;
947        ParseMode = ModeDCS;        ParseMode = ModeDCS;
948        break;        break;
# Line 954  void ParseControl(BYTE b) Line 954  void ParseControl(BYTE b)
954        ICount = 0;        ICount = 0;
955        FirstPrm = TRUE;        FirstPrm = TRUE;
956        NParam = 1;        NParam = 1;
957        Param[1] = -1;        Param[1] = 0;
958        Prv = 0;        Prv = 0;
959        ParseMode = ModeCSI;        ParseMode = ModeCSI;
960        break;        break;
# Line 1185  void PrnParseEscape(BYTE b) // printer m Line 1185  void PrnParseEscape(BYTE b) // printer m
1185            ICount = 0;            ICount = 0;
1186            FirstPrm = TRUE;            FirstPrm = TRUE;
1187            NParam = 1;            NParam = 1;
1188            Param[1] = -1;            Param[1] = 0;
1189            Prv = 0;            Prv = 0;
1190            WriteToPrnFile(ESC,FALSE);            WriteToPrnFile(ESC,FALSE);
1191            WriteToPrnFile('[',FALSE);            WriteToPrnFile('[',FALSE);
# Line 1287  void ParseEscape(BYTE b) /* b is the fin Line 1287  void ParseEscape(BYTE b) /* b is the fin
1287          case 'P': /* DCS */          case 'P': /* DCS */
1288            ESCFlag = FALSE;            ESCFlag = FALSE;
1289            NParam = 1;            NParam = 1;
1290            Param[1] = -1;            Param[1] = 0;
1291            ParseMode = ModeDCS;            ParseMode = ModeDCS;
1292            return;            return;
1293          case 'X': /* SOS */          case 'X': /* SOS */
# Line 1299  void ParseEscape(BYTE b) /* b is the fin Line 1299  void ParseEscape(BYTE b) /* b is the fin
1299            ICount = 0;            ICount = 0;
1300            FirstPrm = TRUE;            FirstPrm = TRUE;
1301            NParam = 1;            NParam = 1;
1302            Param[1] = -1;            Param[1] = 0;
1303            Prv = 0;            Prv = 0;
1304            ParseMode = ModeCSI;            ParseMode = ModeCSI;
1305            return;            return;
# Line 1445  void EscapeSequence(BYTE b) Line 1445  void EscapeSequence(BYTE b)
1445    
1446  void CSScreenErase()  void CSScreenErase()
1447  {  {
         if (Param[1] == -1) Param[1] = 0;  
1448          BuffUpdateScroll();          BuffUpdateScroll();
1449          switch (Param[1]) {          switch (Param[1]) {
1450          case 0:          case 0:
# Line 1480  void CSScreenErase() Line 1479  void CSScreenErase()
1479    
1480  void CSQSelScreenErase()  void CSQSelScreenErase()
1481  {  {
         if (Param[1] == -1) Param[1] = 0;  
1482          BuffUpdateScroll();          BuffUpdateScroll();
1483          switch (Param[1]) {          switch (Param[1]) {
1484          case 0:          case 0:
# Line 1519  void CSQSelScreenErase() Line 1517  void CSQSelScreenErase()
1517    
1518    void CSLineErase()    void CSLineErase()
1519    {    {
     if (Param[1] == -1) Param[1] = 0;  
1520      BuffUpdateScroll();      BuffUpdateScroll();
1521      switch (Param[1]) {      switch (Param[1]) {
1522        /* erase char from cursor to end of line */        /* erase char from cursor to end of line */
# Line 1539  void CSQSelScreenErase() Line 1536  void CSQSelScreenErase()
1536    
1537    void CSQSelLineErase()    void CSQSelLineErase()
1538    {    {
     if (Param[1] == -1) Param[1] = 0;  
1539      BuffUpdateScroll();      BuffUpdateScroll();
1540      switch (Param[1]) {      switch (Param[1]) {
1541        /* erase char from cursor to end of line */        /* erase char from cursor to end of line */
# Line 1619  void CSQSelScreenErase() Line 1615  void CSQSelScreenErase()
1615    {    {
1616      if (Param[1]<1) Param[1] = 1;      if (Param[1]<1) Param[1] = 1;
1617      Param[1]--;      Param[1]--;
     if (Param[1] < 0) Param[1] = 0;  
1618      if (Param[1] > NumOfColumns-1) Param[1] = NumOfColumns-1;      if (Param[1] > NumOfColumns-1) Param[1] = NumOfColumns-1;
1619      MoveCursor(Param[1],CursorY);      MoveCursor(Param[1],CursorY);
1620    }    }
# Line 1686  void CSQSelScreenErase() Line 1681  void CSQSelScreenErase()
1681    
1682    void CSDeleteTabStop()    void CSDeleteTabStop()
1683    {    {
     if (Param[1]==-1) Param[1] = 0;  
1684      ClearTabStop(Param[1]);      ClearTabStop(Param[1]);
1685    }    }
1686    
# Line 1724  void CSQSelScreenErase() Line 1718  void CSQSelScreenErase()
1718    
1719    void CS_i_Mode()              // MC    void CS_i_Mode()              // MC
1720    {    {
     if (Param[1]==-1) Param[1] = 0;  
1721      switch (Param[1]) {      switch (Param[1]) {
1722        /* print screen */        /* print screen */
1723          //  PrintEX --  TRUE: print screen          //  PrintEX --  TRUE: print screen
# Line 1810  void CSSetAttr()               // SGR Line 1803  void CSSetAttr()               // SGR
1803          for (i=1 ; i<=NParam ; i++)          for (i=1 ; i<=NParam ; i++)
1804          {          {
1805                  P = Param[i];                  P = Param[i];
                 if (P<0) P = 0;  
1806                  switch (P) {                  switch (P) {
1807                  case   0:       /* Clear all */                  case   0:       /* Clear all */
1808                          if (CharAttr.Attr2 & Attr2Protect) {                          if (CharAttr.Attr2 & Attr2Protect) {
# Line 1881  void CSSetAttr()               // SGR Line 1873  void CSSetAttr()               // SGR
1873                                  i++;                                  i++;
1874                                  if (i < NParam) {                                  if (i < NParam) {
1875                                          P = Param[++i];                                          P = Param[++i];
                                         if (P<0) {  
                                                 P = 0;  
                                         }  
1876                                          CharAttr.Attr2 |= Attr2Fore;                                          CharAttr.Attr2 |= Attr2Fore;
1877                                          CharAttr.Fore = P;                                          CharAttr.Fore = P;
1878                                          BuffSetCurCharAttr(CharAttr);                                          BuffSetCurCharAttr(CharAttr);
# Line 1915  void CSSetAttr()               // SGR Line 1904  void CSSetAttr()               // SGR
1904                                  i++;                                  i++;
1905                                  if (i < NParam) {                                  if (i < NParam) {
1906                                          P = Param[++i];                                          P = Param[++i];
                                         if (P<0) {  
                                                 P = 0;  
                                         }  
1907                                          CharAttr.Attr2 |= Attr2Back;                                          CharAttr.Attr2 |= Attr2Back;
1908                                          CharAttr.Back = P;                                          CharAttr.Back = P;
1909                                          BuffSetCurCharAttr(CharAttr);                                          BuffSetCurCharAttr(CharAttr);
# Line 2418  void CSSetAttr()               // SGR Line 2404  void CSSetAttr()               // SGR
2404    
2405      void CSQ_i_Mode()           // DECMC      void CSQ_i_Mode()           // DECMC
2406      {      {
       if (Param[1]==-1) Param[1] = 0;  
2407        switch (Param[1]) {        switch (Param[1]) {
2408          case 1:          case 1:
2409            if (ts.TermFlag&TF_PRINTERCTRL) {            if (ts.TermFlag&TF_PRINTERCTRL) {
# Line 2634  void CSSetAttr()               // SGR Line 2619  void CSSetAttr()               // SGR
2619          break;          break;
2620    
2621        case 'q': // DECSCA        case 'q': // DECSCA
         if (Param[1] < 0)  
           Param[1] = 0;  
2622          switch (Param[1]) {          switch (Param[1]) {
2623            case 0:            case 0:
2624            case 2:            case 2:
# Line 2730  void CSSetAttr()               // SGR Line 2713  void CSSetAttr()               // SGR
2713          break;          break;
2714    
2715        case 'z': // Enable DEC Locator reporting (DECELR)        case 'z': // Enable DEC Locator reporting (DECELR)
         if (Param[1] < 0) {  
           Param[1] = 0;  
         }  
2716          switch (Param[1]) {          switch (Param[1]) {
2717          case 0:          case 0:
2718            if (MouseReportMode == IdMouseTrackDECELR) {            if (MouseReportMode == IdMouseTrackDECELR) {
# Line 2762  void CSSetAttr()               // SGR Line 2742  void CSSetAttr()               // SGR
2742    
2743        case '{': // Select Locator Events (DECSLE)        case '{': // Select Locator Events (DECSLE)
2744          for (i=1; i<=NParam; i++) {          for (i=1; i<=NParam; i++) {
           if (Param[i] < 0) {  
             Param[i] = 0;  
           }  
2745            switch (Param[i]) {            switch (Param[i]) {
2746            case 0:            case 0:
2747              DecLocatorFlag &= ~(DecLocatorButtonUp | DecLocatorButtonDown | DecLocatorFiltered);              DecLocatorFlag &= ~(DecLocatorButtonUp | DecLocatorButtonDown | DecLocatorFiltered);
# Line 2796  void CSSetAttr()               // SGR Line 2773  void CSSetAttr()               // SGR
2773        case 'q':        case 'q':
2774          if (ts.WindowFlag & WF_CURSORCHANGE) {          if (ts.WindowFlag & WF_CURSORCHANGE) {
2775            if (NParam > 0) {            if (NParam > 0) {
             if (Param[1] < 0) Param[1] = 0;  
2776              switch (Param[1]) {              switch (Param[1]) {
2777                case 0:                case 0:
2778                case 1:                case 1:
# Line 2982  void ControlSequence(BYTE b) Line 2958  void ControlSequence(BYTE b)
2958      }      }
2959      else if ((b>=0x30) && (b<=0x39))      else if ((b>=0x30) && (b<=0x39))
2960      {      {
2961        if (Param[NParam] < 0)        Param[NParam] = Param[NParam]*10 + b - 0x30;
         Param[NParam] = 0;  
       if (Param[NParam]<10000)  
        Param[NParam] = Param[NParam]*10 + b - 0x30;  
2962      }      }
2963      else if (b==0x3B)      else if (b==0x3B)
2964      {      {
2965        if (NParam < NParamMax)        if (NParam < NParamMax)
2966        {        {
2967          NParam++;          NParam++;
2968          Param[NParam] = -1;          Param[NParam] = 0;
2969        }        }
2970      }      }
2971      else if ((b>=0x3C) && (b<=0x3F))      else if ((b>=0x3C) && (b<=0x3F))
# Line 3222  void DeviceControl(BYTE b) Line 3195  void DeviceControl(BYTE b)
3195                          IntChar[ICount] = b;                          IntChar[ICount] = b;
3196                  }                  }
3197                  else if ((b>=0x30) && (b<=0x39)) {                  else if ((b>=0x30) && (b<=0x39)) {
3198                          if (Param[NParam] < 0) Param[NParam] = 0;                          Param[NParam] = Param[NParam]*10 + b - 0x30;
                         if (Param[NParam]<1000)  
                                 Param[NParam] = Param[NParam]*10 + b - 0x30;  
3199                  }                  }
3200                  else if (b==0x3B) {                  else if (b==0x3B) {
3201                          if (NParam < NParamMax) {                          if (NParam < NParamMax) {
3202                                  NParam++;                                  NParam++;
3203                                  Param[NParam] = -1;                                  Param[NParam] = 0;
3204                          }                          }
3205                  }                  }
3206                  else if ((b>=0x40) && (b<=0x7E)) {                  else if ((b>=0x40) && (b<=0x7E)) {
# Line 3431  void XSequence(BYTE b) Line 3402  void XSequence(BYTE b)
3402          switch (XsParseMode) {          switch (XsParseMode) {
3403            case ModeXsFirst:            case ModeXsFirst:
3404                  if (isdigit(b)) {                  if (isdigit(b)) {
3405                          if (Param[1] < 1000) {                          Param[1] = Param[1]*10 + b - '0';
                                 Param[1] = Param[1]*10 + b - '0';  
                         }  
3406                  }                  }
3407                  else if (b == ';') {                  else if (b == ';') {
3408                          StrBuff[0] = '\0';                          StrBuff[0] = '\0';
# Line 3448  void XSequence(BYTE b) Line 3417  void XSequence(BYTE b)
3417                  }                  }
3418                  else {                  else {
3419                          // Invalid Sequence. Ignore.                          // Invalid Sequence. Ignore.
3420                          Param[1] = -1;                          Param[1] = 0xFFFFFFFF;
3421                          StrBuff[0] = '\0';                          StrBuff[0] = '\0';
3422                          StrLen = 0;                          StrLen = 0;
3423                          XsParseMode = ModeXsString;                          XsParseMode = ModeXsString;
# Line 3496  void XSequence(BYTE b) Line 3465  void XSequence(BYTE b)
3465                          StrLen = 0;                          StrLen = 0;
3466                  }                  }
3467                  else {                  else {
3468                          Param[1] = -1;                          Param[1] = 0xFFFFFFFF;
3469                          StrBuff[0] = '\0';                          StrBuff[0] = '\0';
3470                          StrLen = 0;                          StrLen = 0;
3471                          XsParseMode = ModeXsString;                          XsParseMode = ModeXsString;

Legend:
Removed from v.4421  
changed lines
  Added in v.4472

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26