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 5318 by doda, Wed Jun 12 05:34:03 2013 UTC revision 5320 by doda, Thu Jun 13 05:05:08 2013 UTC
# Line 2868  void CSSetAttr()               // SGR Line 2868  void CSSetAttr()               // SGR
2868      }      }
2869    }    }
2870    
2871      void CSDolRequestMode()
2872      {
2873        char buff[256];
2874        char *pp;
2875        int len, resp = 0;
2876    
2877        if (NParam == 0)
2878          Param[1] = 0;
2879    
2880        switch (Prv) {
2881          case 0: /* ANSI Mode */
2882            resp = 4;
2883            pp = "";
2884            switch (Param[1]) {
2885              case 2:       // KAM
2886                if (KeybEnabled)
2887                  resp = 2;
2888                else
2889                  resp = 1;
2890                break;
2891              case 4:       // IRM
2892                if (InsertMode)
2893                  resp = 1;
2894                else
2895                  resp = 2;
2896                break;
2897              case 12:      // SRM
2898                if (ts.LocalEcho)
2899                  resp = 2;
2900                else
2901                  resp = 1;
2902                break;
2903              case 20:      // LNM
2904                if (LFMode)
2905                  resp = 1;
2906                else
2907                  resp = 2;
2908                break;
2909              case 33:      // WYSTCURM
2910                if (ts.NonblinkingCursor)
2911                  resp = 1;
2912                else
2913                  resp = 2;
2914                if ((ts.WindowFlag & WF_CURSORCHANGE) == 0)
2915                  resp += 2;
2916                break;
2917              case 34:      // WYULCURM
2918                if (ts.CursorShape == IdHCur)
2919                  resp = 1;
2920                else
2921                  resp = 2;
2922                if ((ts.WindowFlag & WF_CURSORCHANGE) == 0)
2923                  resp += 2;
2924                break;
2925            }
2926            break;
2927    
2928          case '?': /* DEC Mode */
2929            pp = "?";
2930            switch (Param[1]) {
2931              case 1:       // DECCKM
2932                if (AppliCursorMode)
2933                  resp = 1;
2934                else
2935                  resp = 2;
2936                break;
2937              case 3:       // DECCOLM
2938                if (NumOfColumns == 132)
2939                  resp = 1;
2940                else
2941                  resp = 2;
2942                break;
2943              case 5:       // DECSCNM
2944                if (ts.ColorFlag & CF_REVERSEVIDEO)
2945                  resp = 1;
2946                else
2947                  resp = 2;
2948                break;
2949              case 6:       // DECOM
2950                if (RelativeOrgMode)
2951                  resp = 1;
2952                else
2953                  resp = 2;
2954                break;
2955              case 7:       // DECAWM
2956                if (AutoWrapMode)
2957                  resp = 1;
2958                else
2959                  resp = 2;
2960                break;
2961              case 8:       // DECARM
2962                if (AutoRepeatMode)
2963                  resp = 1;
2964                else
2965                  resp = 2;
2966                break;
2967              case 9:       // XT_MSE_X10 -- X10 Mouse Tracking
2968                if (!ts.MouseEventTracking)
2969                  resp = 4;
2970                else if (MouseReportMode == IdMouseTrackX10)
2971                  resp = 1;
2972                else
2973                  resp = 2;
2974                break;
2975              case 12:      // XT_CBLINK -- att610 cursor blinking
2976                if (ts.NonblinkingCursor)
2977                  resp = 2;
2978                else
2979                  resp = 1;
2980                if ((ts.WindowFlag & WF_CURSORCHANGE) == 0)
2981                  resp += 2;
2982                break;
2983              case 19:      // DECPEX
2984                if (PrintEX)
2985                  resp = 1;
2986                else
2987                  resp = 2;
2988                break;
2989              case 25:      // DECTCEM
2990                if (IsCaretEnabled())
2991                  resp = 1;
2992                else
2993                  resp = 2;
2994                break;
2995              case 38:      // DECTEK
2996                resp = 4;
2997                break;
2998              case 47:      // XT_ALTSCRN -- Alternate Screen / (DECGRPM)
2999                if ((ts.TermFlag & TF_ALTSCR) == 0)
3000                  resp = 4;
3001                else if (AltScr)
3002                  resp = 1;
3003                else
3004                  resp = 2;
3005                break;
3006              case 59:      // DECKKDM
3007                if (ts.Language!=IdJapanese)
3008                  resp = 0;
3009                else if ((ts.KanjiCode == IdJIS) && (!ts.JIS7Katakana))
3010                  resp = 4;
3011                else
3012                  resp = 3;
3013                break;
3014              case 66:      // DECNKM
3015                if (AppliKeyMode)
3016                  resp = 1;
3017                else
3018                  resp = 2;
3019                break;
3020              case 67:      // DECBKM
3021                if (ts.BSKey==IdBS)
3022                  resp = 1;
3023                else
3024                  resp = 2;
3025                break;
3026              case  1000:   // XT_MSE_X11
3027                if (!ts.MouseEventTracking)
3028                  resp = 4;
3029                else if (MouseReportMode == IdMouseTrackVT200)
3030                  resp = 1;
3031                else
3032                  resp = 2;
3033                break;
3034              case 1001:    // XT_MSE_HL
3035    #if 0
3036                if (!ts.MouseEventTracking)
3037                  resp = 4;
3038                else if (MouseReportMode == IdMouseTrackVT200Hl)
3039                  resp = 1;
3040                else
3041                  resp = 2;
3042    #else
3043                resp = 4;
3044    #endif
3045                break;
3046              case 1002:    // XT_MSE_BTN
3047                if (!ts.MouseEventTracking)
3048                  resp = 4;
3049                else if (MouseReportMode == IdMouseTrackBtnEvent)
3050                  resp = 1;
3051                else
3052                  resp = 2;
3053                break;
3054              case 1003:    // XT_MSE_ANY
3055                if (!ts.MouseEventTracking)
3056                  resp = 4;
3057                else if (MouseReportMode == IdMouseTrackAllEvent)
3058                  resp = 1;
3059                else
3060                  resp = 2;
3061                break;
3062              case 1004:    // XT_MSE_WIN
3063                if (!ts.MouseEventTracking)
3064                  resp = 4;
3065                else if (FocusReportMode)
3066                  resp = 1;
3067                else
3068                  resp = 2;
3069                break;
3070              case 1005:    // XT_MSE_UTF
3071                if (!ts.MouseEventTracking)
3072                  resp = 4;
3073                else if (MouseReportExtMode == IdMouseTrackExtUTF8)
3074                  resp = 1;
3075                else
3076                  resp = 2;
3077                break;
3078              case 1006:    // XT_MSE_SGR
3079                if (!ts.MouseEventTracking)
3080                  resp = 4;
3081                else if (MouseReportExtMode == IdMouseTrackExtSGR)
3082                  resp = 1;
3083                else
3084                  resp = 2;
3085                break;
3086              case 1015:    // urxvt-style extended mouse tracking
3087                if (!ts.MouseEventTracking)
3088                  resp = 4;
3089                else if (MouseReportExtMode == IdMouseTrackExtURXVT)
3090                  resp = 1;
3091                else
3092                  resp = 2;
3093                break;
3094              case 1047:    // XT_ALTS_47
3095                if ((ts.TermFlag & TF_ALTSCR) == 0)
3096                  resp = 4;
3097                else if (AltScr)
3098                  resp = 1;
3099                else
3100                  resp = 2;
3101                break;
3102              case 1048:
3103                if ((ts.TermFlag & TF_ALTSCR) == 0)
3104                  resp = 4;
3105                else
3106                  resp = 1;
3107                break;
3108              case 1049:    // XT_EXTSCRN
3109                if ((ts.TermFlag & TF_ALTSCR) == 0)
3110                  resp = 4;
3111                else if (AltScr)
3112                  resp = 1;
3113                else
3114                  resp = 2;
3115                break;
3116              case 2004:    // RL_BRACKET
3117                if (BracketedPaste)
3118                  resp = 1;
3119                else
3120                  resp = 2;
3121                break;
3122              case 7727:    // MinTTY Application Escape Mode
3123                if (AppliEscapeMode)
3124                  resp = 1;
3125                else
3126                  resp = 2;
3127                break;
3128              case 7786:    // MinTTY Mousewheel reporting
3129                if (!ts.TranslateWheelToCursor)
3130                  resp = 4;
3131                else if (AcceptWheelToCursor)
3132                  resp = 1;
3133                else
3134                  resp = 2;
3135                break;
3136              case 14001:   // NetTerm Mouse Reporting (TT)
3137                if (!ts.MouseEventTracking)
3138                  resp = 4;
3139                else if (MouseReportMode == IdMouseTrackNetTerm)
3140                  resp = 1;
3141                else
3142                  resp = 2;
3143                break;
3144            }
3145            break;
3146        }
3147    
3148        len = _snprintf_s(buff, sizeof(buff), _TRUNCATE, "%s%d;%d$y", pp, Param[1], resp);
3149        SendCSIstr(buff, len);
3150      }
3151    
3152    void CSDol(BYTE b)    void CSDol(BYTE b)
3153    {    {
3154      TCharAttr attr, mask;      TCharAttr attr, mask;
# Line 2875  void CSSetAttr()               // SGR Line 3156  void CSSetAttr()               // SGR
3156      mask = DefCharAttr;      mask = DefCharAttr;
3157    
3158      switch (b) {      switch (b) {
3159          case 'p': // DECRQM
3160            CSDolRequestMode();
3161            break;
3162        case 'r': // DECCARA        case 'r': // DECCARA
3163        case 't': // DECRARA        case 't': // DECRARA
3164          if (Param[1] < 1 || NParam < 1) Param[1] = 1;          if (Param[1] < 1 || NParam < 1) Param[1] = 1;
# Line 3002  void CSSetAttr()               // SGR Line 3286  void CSSetAttr()               // SGR
3286      }      }
3287    }    }
3288    
3289      void CSQDol(BYTE b)
3290      {
3291        switch (b) {
3292          case 'p':
3293            CSDolRequestMode();
3294            break;
3295        }
3296      }
3297    
3298    void CSQuote(BYTE b)    void CSQuote(BYTE b)
3299    {    {
3300      int i, x, y;      int i, x, y;
# Line 3246  void ParseCS(BYTE b) /* b is the final c Line 3539  void ParseCS(BYTE b) /* b is the final c
3539                            case '\'': CSQuote(b); break; /* intermediate char = '\'' */                            case '\'': CSQuote(b); break; /* intermediate char = '\'' */
3540                          }                          }
3541                          break; /* end of case Prv=0 */                          break; /* end of case Prv=0 */
3542                      case '?':
3543                            switch (IntChar[1]) {
3544                              case '$': CSQDol(b); break;    /* intermediate char = '$' */
3545                            }
3546                            break; /* end of case Prv=0 */
3547                  } /* end of switch (Prv) */                  } /* end of switch (Prv) */
3548                  break; /* end of one intermediate char */                  break; /* end of one intermediate char */
3549          } /* end of switch (Icount) */          } /* end of switch (Icount) */

Legend:
Removed from v.5318  
changed lines
  Added in v.5320

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