mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-29 07:29:15 +00:00
62 lines
1.9 KiB
C
62 lines
1.9 KiB
C
|
/************************************************************
|
|||
|
|
|||
|
Created: Wednesday, July 16, 1991 at 2:05 PM
|
|||
|
Unmangler.h
|
|||
|
C Interface to the Macintosh Libraries
|
|||
|
|
|||
|
|
|||
|
Copyright Apple Computer, Inc. 1988-1991
|
|||
|
All rights reserved
|
|||
|
This file is used in these builds: ROM System
|
|||
|
|
|||
|
|
|||
|
Change History (most recent first):
|
|||
|
|
|||
|
<2> 8/8/91 JL Standardized header
|
|||
|
|
|||
|
To Do:
|
|||
|
************************************************************/
|
|||
|
|
|||
|
#ifndef __UNMANGLER__
|
|||
|
#define __UNMANGLER__
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C" {
|
|||
|
#endif
|
|||
|
|
|||
|
int unmangle(char *dst, char *src, int limit);
|
|||
|
/*
|
|||
|
This function unmangles C++ mangled symbols (i.e. a symbol with a type signature). The
|
|||
|
mangled C string is passed in <EFBFBD>src<EFBFBD> and the unmangled C string is returned in <EFBFBD>dst<EFBFBD>. Up
|
|||
|
to <EFBFBD>limit<EFBFBD> characters (not including terminating null) may be retured in <EFBFBD>dst<EFBFBD>.
|
|||
|
|
|||
|
The function returns,
|
|||
|
|
|||
|
-1 ==> error, probably because symbol was not mangled, but looked like it was
|
|||
|
0 ==> symbol wasn't mangled; not copied either
|
|||
|
1 ==> symbol was mangled; unmangled result fit in buffer
|
|||
|
2 ==> symbol was mangled; unmangled result truncated to fit in buffer (null written)
|
|||
|
*/
|
|||
|
|
|||
|
|
|||
|
pascal int Unmangle(char *dst, char *src, int limit);
|
|||
|
/*
|
|||
|
This function unmangles C++ mangled symbols (i.e. a symbol with a type signature). The
|
|||
|
mangled Pascal string is passed in <EFBFBD>src<EFBFBD> and the unmangled Pascal string is returned in
|
|||
|
<EFBFBD>dst<EFBFBD>. Up to <EFBFBD>limit<EFBFBD> characters may be retured in <EFBFBD>dst<EFBFBD>.
|
|||
|
|
|||
|
The function returns,
|
|||
|
|
|||
|
-1 ==> error, probably because symbol was not mangled, but looked like it was
|
|||
|
0 ==> symbol wasn't mangled; not copied either
|
|||
|
1 ==> symbol was mangled; unmangled result fit in buffer
|
|||
|
2 ==> symbol was mangled; unmangled result truncated to fit in buffer (null written)
|
|||
|
|
|||
|
This function is identical to unmangle() above except that all the strings are Pascal
|
|||
|
instead of C strings.
|
|||
|
*/
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
}
|
|||
|
#endif
|
|||
|
#endif
|