sj4/include/sj3rkcv/wchar16.h
2026-06-19 01:49:53 +09:00

363 lines
9.9 KiB
C

/*
* Copyright (c) 1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: wchar16.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:03:52 $
*/
#ifndef _WCHARH
#define _WCHARH
#if defined(__sony_news) && defined(SVR4)
#define _WCHAR_T
typedef unsigned short wchar_t;
#include <stdlib.h>
#include <ctype.h>
#include <widec.h>
#include <wctype.h>
typedef wchar_t wchar16_t;
#else
#include <stdlib.h>
#include <ctype.h>
typedef unsigned short wchar16_t;
#endif
#include "key.h"
#ifndef SS2
#define SS2 0x8e
#define SS3 0x8f
#endif
#if !defined(__sony_news) || (defined(__sony_news) && !defined(SVR4))
#ifdef iswcntrl
#undef iswcntrl
#endif
#define iswcntrl(wc) sj3_iswcntrl16(wc)
#ifdef iswupper
#undef iswupper
#endif
#define iswupper(wc) sj3_iswupper16(wc)
#ifdef iswdigit
#undef iswdigit
#endif
#define iswdigit(wc) sj3_iswdigit16(wc)
#ifdef iswxdigit
#undef iswxdigit
#endif
#define iswxdigit(wc) sj3_iswxdigit16(wc)
#ifdef wslen
#undef wslen
#endif
#define wslen(ws) sj3_wslen16(ws)
#ifdef wscmp
#undef wscmp
#endif
#define wscmp(ws1, ws2) sj3_wscmp16(ws1, ws2)
#ifdef wsncmp
#undef wsncmp
#endif
#define wsncmp(ws1, ws2, n) sj3_wsncmp16(ws1, ws2, n)
#ifdef wscpy
#undef wscpy
#endif
#define wscpy(ws1, ws2) sj3_wscpy16(ws1, ws2)
#ifdef wsncpy
#undef wsncpy
#endif
#define wsncpy(ws1, ws2, n) sj3_wsncpy16(ws1, ws2, n)
#ifdef wscat
#undef wscat
#endif
#define wscat(ws1, ws2) sj3_wscat16(ws1, ws2)
#ifdef mbstowcs
#undef mbstowcs
#endif
#define mbstowcs(mb, ws, n) sj3_mbstowcs16(mb, ws, n)
#ifdef wcstombs
#undef wcstombs
#endif
#define wcstombs(ws, mb, n) sj3_wcstombs16(ws, mb, n)
#endif
#define LC_CTYPE_SHIFTJIS 1
#define LC_CTYPE_EUC 2
#define IsEUCHojo(x) (((unsigned char)(x)) == SS3)
#define WcX0208MASK 0xffff
#define WcX0212MASK 0xff7f
#define WcJISMASK 0x7f7f
#define WcLowMASK 0x00ff
#define WcHighMASK 0xff00
#define WcASCIIFLAG 0x0000
#define WcX0208FLAG 0x8080
#define WcX0212FLAG 0x8000
#define WcX0201FLAG 0x0080
#define WcLowByte(w) ((w) & 0xff)
#define WcHighByte(w) (((w) >> 8) & 0xff)
#define WcIsASCII(w) ((((wchar16_t)(w)) & WcX0208FLAG) == WcASCIIFLAG)
#define WcIsX0208(w) ((((wchar16_t)(w)) & WcX0208FLAG) == WcX0208FLAG)
#define WcIsX0201(w) ((((wchar16_t)(w)) & WcX0208FLAG) == WcX0201FLAG)
#define WcIsX0212(w) ((((wchar16_t)(w)) & WcX0208FLAG) == WcX0212FLAG)
#define WcIsZENKAKU(w) ((((wchar16_t)(w)) & WcX0212FLAG) == WcX0212FLAG)
#define WcIsHANKAKU(w) ((((wchar16_t)(w)) & WcX0212FLAG) == WcASCIIFLAG)
#define WcIsKANJI(w) WcIsZENKAKU(w)
#define WcIsKANA(w) WcIsX0201(w)
#define WcSetX0212(c1, c2) ((((c1) & 0xff) << 8) + ((c2) & 0x7f))
#define WcJIS2X0208(w) ((w) | WcX0208FLAG)
#define WcJIS2X0212(w) ((w) | WcX0212FLAG)
#define Wc2JIS(w) ((w) & WcJISMASK)
#define WCSJrun WcMessages[0]
#define WCMode_buff WcMessages[1]
#define WCMode_unbuff WcMessages[2]
#define WCMode_Zhira WcMessages[3]
#define WCMode_Zkata WcMessages[4]
#define WCMode_Hkata WcMessages[5]
#define WCMode_Zalpha WcMessages[6]
#define WCMode_Halpha WcMessages[7]
#define WCGmode WcMessages[8]
#define WCGEtc WcMessages[9]
#define WCGetc WcMessages[10]
#define WCGHelp WcMessages[11]
#define WCMHelp WcMessages[12]
#define WCGCshift WcMessages[13]
#define WCGCeuc WcMessages[14]
#define WCGCeuc2 WcMessages[15]
#define WCGCjis WcMessages[16]
#define WCGCjis2 WcMessages[17]
#define WCGCkuten WcMessages[18]
#define WCGCkuten2 WcMessages[19]
#define WCGtoroku WcMessages[20]
#define WCMhani WcMessages[21]
#define WCMyomi WcMessages[22]
#define WCTOUROKU_OK WcMessages[23]
#define WCSYOUKYO_OK WcMessages[24]
#define WCTOUROKU_HIN WcMessages[25]
#define WCTOUROKU_SUCC WcMessages[26]
#define WCYomi WcMessages[27]
#define WCOne WcMessages[28]
#define WCY WcMessages[29]
#define WCExist WcMessages[30]
#define WCYomiTouroku WcMessages[31]
#define WCKanjiTouroku WcMessages[32]
#define WCOnajiTouroku WcMessages[33]
#define WCUserTouroku WcMessages[34]
#define WCJishoLock WcMessages[35]
#define WCSystemError WcMessages[36]
#define WCKanma WcMessages[37]
#define WCGsyoukyo WcMessages[38]
#define WCSYOUKYO_SUCC WcMessages[39]
#define WCNotExist WcMessages[40]
#define WCUserLock WcMessages[41]
#define WCYomiShokyo WcMessages[42]
#define WCKanjiShokyo WcMessages[43]
#define WCShokyoError WcMessages[44]
#define WCSUCCsjrc WcMessages[45]
#define WCFAILsjrc WcMessages[46]
#define WCNOTHsjrc WcMessages[47]
#define WCWeight_mes WcMessages[48]
#define WCGrcon WcMessages[49]
#define WCRserv WcMessages[50]
#define WCRserv_OK WcMessages[51]
#define WCDiscon WcMessages[52]
#define WCSpace WcMessages[53]
#define WCSpace2 WcMessages[54]
#define WCContinue WcMessages[55]
#define WCServer_Dead WcMessages[56]
#define WCConnected WcMessages[57]
#define WCNconnect WcMessages[58]
#define WCNopen_Mdic WcMessages[59]
#define WCNmake_Udir WcMessages[60]
#define WCNmake_Udic WcMessages[61]
#define WCNopen_Udic WcMessages[62]
#define WCNmake_Study WcMessages[63]
#define WCNopen_Study WcMessages[64]
#define WCGedit WcMessages[65]
#define WCTooLong WcMessages[67]
#define WCDollar WcMessages[68]
#define WCOn WcMessages[69]
#define WCOff WcMessages[70]
#define WCMeishi WcMessages[71]
#define WCMyouji WcMessages[72]
#define WCNamae WcMessages[73]
#define WCTimei WcMessages[74]
#define WCSahen WcMessages[75]
#define WCKara WcMessages[76]
#define WCF1 WcMessages[77]
#define WCF2 WcMessages[78]
#define WCF3 WcMessages[79]
#define WCF4 WcMessages[80]
#define WCF5 WcMessages[81]
#define WCF6 WcMessages[82]
#define WCF7 WcMessages[83]
#define WCF8 WcMessages[84]
#define WCF9 WcMessages[85]
#define WCF10 WcMessages[86]
#define WCF11 WcMessages[87]
#define WCF12 WcMessages[88]
#define WCF13 WcMessages[89]
#define WCF14 WcMessages[90]
#define WCF15 WcMessages[91]
#define WCF16 WcMessages[92]
#define WCF17 WcMessages[93]
#define WCF18 WcMessages[94]
#define WCF19 WcMessages[95]
#define WCF20 WcMessages[96]
#define WCSelect WcMessages[97]
#define WCKanji WcMessages[98]
#define WCCancel WcMessages[99]
#define WCExecute WcMessages[100]
#define WCUp WcMessages[101]
#define WCDown WcMessages[102]
#define WCRight WcMessages[103]
#define WCLeft WcMessages[104]
#define WCStart WcMessages[105]
#define WCHenkan WcMessages[106]
#define WCMuhen WcMessages[107]
#define WCKettei WcMessages[108]
#define WCHira WcMessages[109]
#define WCHalpha WcMessages[110]
#define WCZalpha WcMessages[111]
#define WCHkata WcMessages[112]
#define WCZkata WcMessages[113]
#define WCCode WcMessages[114]
#define WCEtc WcMessages[115]
#define WCRightl WcMessages[116]
#define WCLeftl WcMessages[117]
#define WCKaku WcMessages[118]
#define WCSyuku WcMessages[119]
#define WCEdit WcMessages[120]
#define WCToggle WcMessages[121]
#define WCWrapback WcMessages[122]
#define WCWrap WcMessages[123]
#define WCSjrc WcMessages[124]
#define WCBuffer WcMessages[125]
#define WCToroku WcMessages[126]
#define WCSyoukyo WcMessages[127]
#define WCHelp WcMessages[128]
#define WCHaKettei WcMessages[129]
#define WCFlush WcMessages[130]
#define WCDebug WcMessages[131]
#define WCCancell WcMessages[132]
#define WCSaihenkan WcMessages[133]
#define WCIgnore WcMessages[134]
#define WCTop WcMessages[135]
#define WCEnd WcMessages[136]
#define WCReconnect WcMessages[137]
#define WCKill WcMessages[138]
#define WCKey WcMessages[139]
#define WCEscape WcMessages[140]
#define WCSjxkey WcMessages[141]
#define WCEtckey WcMessages[142]
#define WCIntr WcMessages[143]
#define WCBskey WcMessages[144]
#define WCDelkey WcMessages[145]
#define WCSetnormal WcMessages[146]
#define WCThroughnext WcMessages[147]
#define WCInitialmode WcMessages[148]
#define WCHelpmode WcMessages[149]
#define WCDefaultcode WcMessages[150]
#define WCMuhenkanmode WcMessages[151]
#define WCMuhenkaninedit WcMessages[152]
#define WCMuhenkantoggle WcMessages[153]
#define WCGuide WcMessages[154]
#define WCForkshell WcMessages[155]
#define WCExecshell WcMessages[156]
#define WCDictionary WcMessages[157]
#define WCUserdic WcMessages[158]
#define WCMaindic WcMessages[159]
#define WCRomaji WcMessages[160]
#define WCBstudy WcMessages[161]
#define WCSilent WcMessages[162]
#define WCFlushafterconversion WcMessages[163]
#define WCRkerrbell WcMessages[164]
#define WCServer WcMessages[165]
#define WCShiftjis WcMessages[166]
#define WCSjis WcMessages[167]
#define WCEuc WcMessages[168]
#define WCEuc2 WcMessages[169]
#define WCJis WcMessages[170]
#define WCJis2 WcMessages[171]
#define WCKuten WcMessages[172]
#define WCKuten2 WcMessages[173]
#define WCBuff WcMessages[174]
#define WCUnbuff WcMessages[175]
#define WCDirect WcMessages[176]
#define WCSj2 WcMessages[177]
#define WCShift WcMessages[178]
#define WCFunction WcMessages[179]
#define WCUnbuffer WcMessages[180]
#define WCFuncetc WcMessages[181]
extern wchar16_t* WcMessages[];
struct wcvtkey {
wchar16_t* key_word;
wchar16_t key_seq[SEQLEN];
};
struct functbl {
wchar16_t* keyword;
int (*func)();
};
#endif