166 lines
6 KiB
C
166 lines
6 KiB
C
|
/***********************************************************************
|
||
|
// INTERNAT.H
|
||
|
//
|
||
|
// Copyright (c) 1992, 1993 - Microsoft Corp.
|
||
|
// All rights reserved.
|
||
|
// Microsoft Confidential
|
||
|
//
|
||
|
// Include file for international specific options.
|
||
|
//
|
||
|
// Johnhe 03-10-92
|
||
|
// TABS = 3
|
||
|
***********************************************************************/
|
||
|
|
||
|
#ifndef INTERNAT_INC
|
||
|
#define INTERNAT_INC 1 // INTERNAT.H signature
|
||
|
|
||
|
|
||
|
#ifdef DBCS
|
||
|
#define SkipDBCSLeadByte( x ) {if IsDBCLeadByte( szPtr ) szPtr++;}
|
||
|
#else
|
||
|
#define SkipDBCSLeadByte( x )
|
||
|
#endif
|
||
|
|
||
|
//**********************************************************************
|
||
|
// BUGBUG - need to move to resource file
|
||
|
//**********************************************************************
|
||
|
|
||
|
#define AM_PM_STRINGS { "A", "AM", "P", "PM", NULL }
|
||
|
#define PM_CHAR 'P'
|
||
|
#define AM_CHAR 'A'
|
||
|
#define AMPM_TRAIL_CHAR 'M'
|
||
|
|
||
|
#define DATE_DELIMITER_STR "-/." // Date seperators ('-' is replaced)
|
||
|
|
||
|
//**********************************************************************
|
||
|
// Command line delimiters
|
||
|
//**********************************************************************
|
||
|
|
||
|
#define CHAR_COMMA ','
|
||
|
#define CHAR_EOL '\0'
|
||
|
#define CHAR_PLUS '+'
|
||
|
#define CHAR_MINUS '-'
|
||
|
#define CHAR_SIMICOLON ';'
|
||
|
#define CHAR_SRCHSTR '"'
|
||
|
#define CHAR_SWITCH '/'
|
||
|
#define CHAR_QUOTE '"'
|
||
|
#define CHAR_SPC ' '
|
||
|
#define CHAR_TAB '\t'
|
||
|
|
||
|
#define DOUBLE_SLASH 0x2f2f // Double slash chars "//"
|
||
|
#define UNC_WORD 0x5c5c // UNC specifier ("\\\\")
|
||
|
|
||
|
#define CUR_DIR_STR "."
|
||
|
#define PARENT_DIR_STR ".."
|
||
|
|
||
|
|
||
|
#define PATH_CHAR_STR "\\"
|
||
|
#define PATH_CHAR '\\'
|
||
|
#define DRIVE_DELIMITER ':'
|
||
|
|
||
|
#define WILD_NAME_CHAR '*' // All remaining wildcarc
|
||
|
#define WILD_CHAR '?' // Single wildcard character
|
||
|
#define MULTI_WILDCARDS 1 // Allow multiple wildcards filenames
|
||
|
|
||
|
#define FILE_EXT_CHAR '.' // File extension seperator
|
||
|
#define CHAR_NOT_ATTRIB '-' // Invert attribute switch
|
||
|
|
||
|
//***********************************************************************
|
||
|
//***********************************************************************
|
||
|
|
||
|
#define GET_EXTINFO 1 // Fill in extended info structure
|
||
|
#define GET_CASEMAP 2 // Get ptr to case map table
|
||
|
#define GET_FNCASEMAP 4 // Get ptr to filename case map table
|
||
|
#define GET_FNAME_CHARS 5 // Get ptr to filename character table
|
||
|
#define GET_COLLATE 6 // Get ptr to collate table
|
||
|
#define GET_DBYTE_SET 7 // Get ptr to double-byte char set
|
||
|
|
||
|
#define DEFAULT_CODEPAGE 0xffff
|
||
|
#define DEFAULT_COUNTRY 0xffff
|
||
|
|
||
|
#define USA_CNTRY_ID 1 // Default country ID
|
||
|
#define USA_CODE_PAGE 437 // Default country code page
|
||
|
|
||
|
#define ASCII_LEN 256 // # of ASCII characters
|
||
|
#define NON_EXT_LEN (ASCII_LEN / 2) // # of non-ext ASCII chars
|
||
|
#define EXT_ASCII_LEN (ASCII_LEN / 2) // # of ext ASCII chars
|
||
|
#define COLLATE_TABLE_LEN ASCII_LEN
|
||
|
|
||
|
//***********************************************************************
|
||
|
// CntryTable_s is a structure which is filled in by DOS function 65xxh
|
||
|
//***********************************************************************
|
||
|
|
||
|
#ifndef CntryTable_s
|
||
|
typedef struct CntryTable_s
|
||
|
{
|
||
|
char IdByte;
|
||
|
unsigned char far *fpAddr;
|
||
|
} CNTRY_TABLE;
|
||
|
|
||
|
#endif
|
||
|
|
||
|
//**********************************************************************
|
||
|
// COUNTRY_INFO is the structure of the data returned by DOS function
|
||
|
// 0x38.
|
||
|
//**********************************************************************
|
||
|
|
||
|
#ifndef COUNTRY_DEFINED
|
||
|
struct COUNTRY_INFO
|
||
|
{
|
||
|
char ccSetCountryInfo; // SetCountryInfo
|
||
|
unsigned ccCountryInfoLen; // length of country info
|
||
|
unsigned ccDosCountry; // active country code id
|
||
|
unsigned ccDosCodePage; // active code page id
|
||
|
|
||
|
unsigned ccDFormat; // date format
|
||
|
char ccCurSymbol[ 5 ]; // 5 byte of (currency symbol+0)
|
||
|
char cc1000Sep[ 2 ]; // 2 byte of (1000 sep. + 0)
|
||
|
char ccDecSep[ 2 ]; // 2 byte of (Decimal sep. + 0)
|
||
|
char ccDateSep[ 2 ]; // 2 byte of (date sep. + 0)
|
||
|
char ccTimeSep[ 2 ]; // 2 byte of (time sep. + 0)
|
||
|
char ccCFormat; // currency format flags
|
||
|
char ccCSigDigits; // # of digits in currency
|
||
|
char ccTFormat; // time format
|
||
|
char far *ccMono_Ptr; // monocase routine entry point
|
||
|
char ccListSep[ 2 ]; // data list separator
|
||
|
unsigned ccReserved_area[ 5 ]; // reserved
|
||
|
};
|
||
|
#define COUNTRY_DEFINED 1
|
||
|
#endif
|
||
|
|
||
|
//**********************************************************************
|
||
|
// Global country specific tables.
|
||
|
//**********************************************************************
|
||
|
|
||
|
extern unsigned char near CollateTable[ ASCII_LEN ];
|
||
|
extern unsigned char near CaseMap[ ASCII_LEN ];
|
||
|
extern unsigned char near FnameCharTable[ ASCII_LEN ];
|
||
|
extern unsigned char near DBCSLeadByteTable[ ASCII_LEN ];
|
||
|
extern struct COUNTRY_INFO near Cntry; // DOS country info structure
|
||
|
|
||
|
//**********************************************************************
|
||
|
// Function prototypes.
|
||
|
//**********************************************************************
|
||
|
|
||
|
extern void GetCountryInfo ( struct COUNTRY_INFO *Cntry );
|
||
|
extern int GetExtCountryInfo( unsigned InfoType, unsigned CodePage,
|
||
|
unsigned CountryCode,
|
||
|
struct COUNTRY_INFO *pTable );
|
||
|
extern void InitCountryInfo ( void );
|
||
|
|
||
|
#ifdef DBCS
|
||
|
int IsDBCSLeadByte ( unsigned char c );
|
||
|
int CheckDBCSTailByte( unsigned char *str, unsigned char *point );
|
||
|
unsigned char *DBCSstrupr ( unsigned char *str );
|
||
|
unsigned char *DBCSstrchr( unsigned char *str, unsigned char c );
|
||
|
#endif
|
||
|
|
||
|
|
||
|
//***************************************************************************
|
||
|
//
|
||
|
// End of INTERNAT.H
|
||
|
//
|
||
|
//***************************************************************************
|
||
|
|
||
|
#endif // INTERNAT_INC
|