Ignore:
Timestamp:
Feb 23, 2007, 11:00:24 PM (17 years ago)
Author:
イグトランス (egtra)
Message:

Unicode (#50) 前準備
Byte→Char (#51) 型名は殆ど完了、ただし中身までは手を付けていないものが多い

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Include/basic/prompt.sbp

    r110 r119  
    9999
    100100                temporary[0]=_PromptSys_Buffer[i][i2]
     101#ifdef UNICODE
     102                If _System_IsSurrogatePair(_PromptSys_Buffer[i][i2], _PromptSys_Buffer[i][i2+1]) Then
     103#else
    101104                If IsDBCSLeadByte(temporary[0]) Then
     105#endif
    102106                    temporary[1]=_PromptSys_Buffer[i][i2+1]
    103107                    temporary[2]=0
     108                    i2++
    104109                Else
    105110                    temporary[1]=0
     
    107112                TextOut(hDC,i2*_PromptSys_FontSize.cx,i*_PromptSys_FontSize.cy,_
    108113                    temporary,lstrlen(temporary))
    109 
    110                 If IsDBCSLeadByte(temporary[0]) Then i2++
    111114            Next
    112115        End If
     
    172175    Dim CompForm As COMPOSITIONFORM
    173176    Dim hGlobal As HGLOBAL
    174     Dim pTemp As BytePtr
    175177
    176178    Select Case message
     
    246248                    hGlobal=GetClipboardData(CF_TEXT)
    247249                    If hGlobal=0 Then PromptProc=0:Exit Function
    248                     pTemp=GlobalLock(hGlobal) As *Byte
    249 
     250                    Dim pTemp=GlobalLock(hGlobal) As *Byte
     251#ifdef UNICODE
     252                    Dim tempSizeW = MultiByteToWideChar(CP_ACP, 0, pTemp, -1, 0, 0) + 1
     253                    TempStr=ZeroString(tempSizeW)
     254                    MultiByteToWideChar(CP_ACP, 0, pTemp, -1, StrPtr(TempStr), tempSizeW)
     255#else
    250256                    TempStr=ZeroString(lstrlen(pTemp)+1)
    251257                    lstrcpy(StrPtr(TempStr),pTemp)
    252 
     258#endif
    253259                    lstrcpy((VarPtr(_PromptSys_InputStr[0])+_PromptSys_InputLen) As *Byte,pTemp)
    254260                    _PromptSys_InputLen=_PromptSys_InputLen+lstrlen(pTemp)
     
    337343    _PromptSys_hWnd=CreateWindowEx(WS_EX_CLIENTEDGE,"PROMPT","BASIC PROMPT",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,0,0,GetModuleHandle(0),0)
    338344    ShowWindow(_PromptSys_hWnd,SW_SHOW)
     345    UpdateWindow(_PromptSys_hWnd)
    339346
    340347    Dim msg As MSG, iResult As Long
     
    455462            Case _System_Type_Integer,_System_Type_Word
    456463                SetWord(_System_InputDataPtr[i],Val(buf))
    457             Case _System_Type_Char,_System_Type_Byte
     464            Case _System_Type_SByte,_System_Type_Byte
    458465                SetByte(_System_InputDataPtr[i],Val(buf))
    459 
     466            Case _System_Type_Char
     467#ifdef UNICODE
     468                SetWord(_System_InputDataPtr[i], buf[0])
     469#else
     470                SetByte(_System_InputDataPtr[i], buf[0])
     471#endif
    460472            Case _System_Type_String
     473            *INPUT_FromPrompt_Type_String
    461474                Dim pTempStr As *String
    462475                pTempStr=_System_InputDataPtr[i] As *String
     
    464477                memcpy(pTempStr->Chars, buf.Chars, pTempStr->Length)
    465478                pTempStr->Chars[pTempStr->Length] = 0
     479            Case 13
     480                Goto *INPUT_FromPrompt_Type_String
    466481        End Select
    467482
Note: See TracChangeset for help on using the changeset viewer.