mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
1.8 KiB
95 lines
1.8 KiB
/*++
|
|
|
|
Copyright (c) 1993 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Subset.c
|
|
|
|
Abstract:
|
|
|
|
This module contains functions for dealing with the subset of characters
|
|
which are common to the ANSI and OEM codepages. Hopefully, these are
|
|
temporary kludges until the Unicode font is available and the rest of
|
|
NT fully suppports Unicode.
|
|
|
|
Author:
|
|
|
|
JR (John Rogers, JohnRo@Microsoft) 15-Apr-1993
|
|
|
|
Environment:
|
|
|
|
Portable to any flat, 32-bit environment. (Uses Win32 typedefs.)
|
|
Requires ANSI C extensions: slash-slash comments, long external names.
|
|
|
|
Revision History:
|
|
|
|
15-Apr-1993 JohnRo
|
|
Created for RAID 6113 ("PortUAS: dangerous handling of Unicode").
|
|
|
|
--*/
|
|
|
|
|
|
// These must be included first:
|
|
|
|
#include <windows.h> // IN, LPSTR, VOID, etc.
|
|
|
|
// These can be in any order:
|
|
|
|
#include <netdebug.h> // NetpAssert().
|
|
#include <tstring.h> // My prototype.
|
|
|
|
|
|
VOID
|
|
NetpSubsetStr(
|
|
IN OUT LPSTR StringToSubset,
|
|
IN DWORD MaxStringSize // size in bytes (incl null char)
|
|
)
|
|
{
|
|
|
|
#if DBG
|
|
BOOL OK;
|
|
#endif
|
|
|
|
NetpAssert( StringToSubset != NULL );
|
|
NetpAssert( MaxStringSize != 0 );
|
|
|
|
//
|
|
// Convert OEM to ANSI, which gets rid of any chars not in common
|
|
// subset. (They get translated into chars which are.) For instance,
|
|
// greek alpha (in some code pages) becomes lower case 'a' here.
|
|
//
|
|
|
|
#if DBG
|
|
OK =
|
|
#else
|
|
(VOID)
|
|
#endif
|
|
OemToCharBuffA(
|
|
StringToSubset, // src
|
|
StringToSubset, // dest (overlaps src)
|
|
MaxStringSize ); // byte count
|
|
|
|
#if DBG
|
|
NetpAssert( OK );
|
|
#endif
|
|
|
|
//
|
|
// Convert back to OEM.
|
|
//
|
|
|
|
#if DBG
|
|
OK =
|
|
#else
|
|
(VOID)
|
|
#endif
|
|
CharToOemBuffA(
|
|
StringToSubset, // src
|
|
StringToSubset, // dest (overlaps src)
|
|
MaxStringSize ); // byte count
|
|
|
|
#if DBG
|
|
NetpAssert( OK );
|
|
#endif
|
|
|
|
}
|