lisa006.cpp

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C++ 代码 · 共 1,729 行 · 第 1/5 页

CPP
1,729
字号
//Bug: used to core dump
//Status: fixed in 10.6 and 11.0
//Result: gives ambiguity error message
//        Microsoft also calls it ambiguous
extern "C" {
extern "C" {
typedef long char wchar_t;
typedef wchar_t wint_t;
typedef wchar_t wctype_t;
   extern int	isalnum(int);
   extern int	isalpha(int);
   extern int	iscntrl(int);
   extern int	isdigit(int);
   extern int	isgraph(int);
   extern int	islower(int);
   extern int	isprint(int);
   extern int	ispunct(int);
   extern int	isspace(int);
   extern int	isupper(int);
   extern int	isxdigit(int);
   extern int	isleadbyte(int);
   extern int	tolower(int);
   extern int	_tolower(int);
   extern int	toupper(int);
   extern int	_toupper(int);
   extern int	__iscsymf(int);
   extern int	__iscsym(int);
   extern int	iswalpha(wint_t);
   extern int	iswalnum(wint_t);
   extern int	iswascii(wint_t);
   extern int	iswcntrl(wint_t);
   extern int	iswprint(wint_t);
   extern int	iswgraph(wint_t);
   extern int	iswdigit(wint_t);
   extern int	iswxdigit(wint_t);
   extern int	iswlower(wint_t);
   extern int	iswupper(wint_t);
   extern int	iswspace(wint_t);
   extern int	iswpunct(wint_t);
   extern wctype_t wctype(const char *);
   extern int	iswctype(wint_t,wctype_t);
   extern wint_t	towlower(wint_t);
   extern wint_t	towupper(wint_t);
    extern int	isascii(int);
    extern int	__isascii(int);
    extern const char  __near  _IsTable[257];
};
extern "C" {
typedef unsigned size_t;
   extern void *memchr( const void *__s, int __c, size_t __n );
   extern int memcmp( const void *__s1, const void *__s2, size_t __n );
   extern void *memcpy( void *__s1, const void *__s2, size_t __n );
   extern void *memmove( void *__s1, const void *__s2, size_t __n );
extern void *memset( void *__s, int __c, size_t __n );
   extern char *strcat( char *__s1, const char *__s2 );
   extern char *strchr( const char *__s, int __c );
extern int strcmp( const char *__s1, const char *__s2 );
   extern int strcoll( const char *__s1, const char *__s2 );
   extern int _stricoll( const char *__s1, const char *__s2 );
   extern int _strncoll( const char *__s1, const char *__s2, size_t __n );
   extern int _strnicoll( const char *__s1, const char *__s2, size_t __n );
   extern size_t strxfrm( char *__s1, const char *__s2, size_t __n );
   extern char *strcpy( char *__s1, const char *__s2 );
   extern size_t strcspn( const char *__s1, const char *__s2 );
   extern char *strerror( int __errnum );
   extern size_t strlen( const char *__s );
   extern char *strncat( char *__s1, const char *__s2, size_t __n );
   extern int strncmp( const char *__s1, const char *__s2, size_t __n );
   extern char *strncpy( char *__s1, const char *__s2, size_t __n );
   extern char *strpbrk( const char *__s1, const char *__s2 );
   extern char *strrchr( const char *__s, int __c );
   extern size_t strspn( const char *__s1, const char *__s2 );
   extern char *strspnp( const char *__s1, const char *__s2 );
   extern char *strstr( const char *__s1, const char *__s2 );
   extern char *strtok( char *__s1, const char *__s2 );
   extern void  __far  *_fmemccpy( void  __far  *__s1, const void  __far  *__s2, int __c, size_t __n );
   extern void  __far  *_fmemchr( const void  __far  *__s, int __c, size_t __n );
   extern void  __far  *_fmemcpy( void  __far  *__s1, const void  __far  *__s2, size_t __n );
   extern void  __far  *_fmemmove( void  __far  *__s1, const void  __far  *__s2, size_t __n );
   extern void  __far  *_fmemset( void  __far  *__s, int __c, size_t __n );
   extern int _fmemcmp( const void  __far  *__s1, const void  __far  *__s2, size_t __n );
   extern int _fmemicmp( const void  __far  *__s1, const void  __far  *__s2, size_t __n );
   extern char  __far  *_fstrcat( char  __far  *__s1, const char  __far  *__s2 );
   extern char  __far  *_fstrchr( const char  __far  *__s, int __c );
   extern int _fstrcmp( const char  __far  *__s1, const char  __far  *__s2 );
   extern char  __far  *_fstrcpy( char  __far  *__s1, const char  __far  *__s2 );
   extern size_t _fstrcspn( const char  __far  *__s1, const char  __far  *__s2 );
   extern char  __far  *_fstrdup( const char  __far  *__string );
   extern int _fstricmp( const char  __far  *__s1, const char  __far  *__s2 );
   extern char  __far  *_fstrncat( char  __far  *__s1, const char  __far  *__s2, size_t __n );
   extern size_t _fstrlen( const char  __far  *__s );
   extern char  __far  *_fstrlwr( char  __far  *__string );
   extern int _fstrncmp( const char  __far  *__s1, const char  __far  *__s2, size_t __n );
   extern char  __far  *_fstrncpy( char  __far  *__s1, const char  __far  *__s2, size_t __n );
   extern int _fstrnicmp( const char  __far  *__s1, const char  __far  *__s2, size_t __n );
   extern char  __far  *_fstrnset( char  __far  *__string, int __c, size_t __len );
   extern char  __far  *_fstrpbrk( const char  __far  *__s1, const char  __far  *__s2 );
   extern char  __far  *_fstrrchr( const char  __far  *__s, int __c );
   extern char  __far  *_fstrrev( char  __far  *__string );
   extern char  __far  *_fstrset( char  __far  *__string, int __c );
   extern size_t _fstrspn( const char  __far  *__s1, const char  __far  *__s2 );
   extern char  __far  *_fstrspnp( const char  __far  *__s1, const char  __far  *__s2 );
   extern char  __far  *_fstrstr( const char  __far  *__s1, const char  __far  *__s2 );
   extern char  __far  *_fstrtok( char  __far  *__s1, const char  __far  *__s2 );
   extern char  __far  *_fstrupr( char  __far  *__string );
   extern void movedata( unsigned __srcseg, unsigned __srcoff, unsigned __tgtseg, unsigned __tgtoff, unsigned __len );
   extern void *memccpy( void *__s1, const void *__s2, int __c, size_t __n );
   extern int memicmp( const void *__s1, const void *__s2, size_t __n );
   extern int _memicmp( const void *__s1, const void *__s2, size_t __n );
   extern int strcmpi( const char *__s1, const char *__s2 );
   extern char *strdup( const char *__string );
   extern char *_strdup( const char *__string );
   extern int stricmp( const char *__s1, const char *__s2 );
   extern int _stricmp( const char *__s1, const char *__s2 );
   extern char *strlwr( char *__string );
   extern char *_strlwr( char *__string );
   extern int strnicmp( const char *__s1, const char *__s2, size_t __n );
   extern int _strnicmp( const char *__s1, const char *__s2, size_t __n );
   extern char *strnset( char *__string, int __c, size_t __len );
   extern char *strrev( char *__string );
   extern char *_strrev( char *__string );
   extern char *strset( char *__string, int __c );
   extern char *strupr( char *__string );
   extern char *_strupr( char *__string );
   extern size_t wcslen( const wchar_t * );
   extern wchar_t *_wcsnset( wchar_t *, int, size_t );
   extern wchar_t *wcsnset( wchar_t *, int, size_t );
   extern size_t wcsspn( const wchar_t *, const wchar_t * );
   extern wchar_t *_wcsspnp( const wchar_t *__s1, const wchar_t *__s2 );
   extern size_t wcscspn( const wchar_t *, const wchar_t * );
   extern wchar_t *wcsncat( wchar_t *, const wchar_t *, size_t );
   extern int wcsncmp( const wchar_t *, const wchar_t *, size_t );
   extern wchar_t *wcsncpy( wchar_t *, const wchar_t *, size_t );
   extern int _wcsnicmp( const wchar_t *, const wchar_t *, size_t );
   extern int wcsnicmp( const wchar_t *, const wchar_t *, size_t );
   extern wchar_t *wcschr( const wchar_t *, wint_t );
   extern wchar_t *_wcsdup( const wchar_t * );
   extern wchar_t *wcsdup( const wchar_t * );
   extern wchar_t *wcscat( wchar_t *, const wchar_t * );
   extern wchar_t *_wcslwr( wchar_t * );
   extern wchar_t *wcslwr( wchar_t * );
   extern wchar_t *_wcsupr( wchar_t * );
   extern wchar_t *wcsupr( wchar_t * );
   extern wchar_t *wcscpy( wchar_t *, const wchar_t * );
   extern int wcscmp( const wchar_t *, const wchar_t * );
   extern int _wcsicmp( const wchar_t *, const wchar_t * );
   extern int wcsicmp( const wchar_t *, const wchar_t * );
   extern int wcscoll( const wchar_t *__s1, const wchar_t *__s2 );
   extern int _wcsicoll( const wchar_t *__s1, const wchar_t *__s2 );
   extern int _wcsncoll( const wchar_t *__s1, const wchar_t *__s2, size_t __n );
   extern int _wcsnicoll( const wchar_t *__s1, const wchar_t *__s2, size_t __n );
   extern size_t wcsxfrm( wchar_t *__s1, const wchar_t *__s2, size_t __n );
   extern wchar_t *wcsstr( const wchar_t *, const wchar_t * );
   extern wchar_t *wcspbrk( const wchar_t *, const wchar_t * );
   extern wchar_t *wcstok( wchar_t *, const wchar_t *, wchar_t ** );
   extern wchar_t *_wcsrev( wchar_t * );
   extern wchar_t *wcsrev( wchar_t * );
   extern wchar_t *_wcsset( wchar_t *, wchar_t );
   extern wchar_t *wcsset( wchar_t *, wchar_t );
   extern wchar_t *wcsrchr( const wchar_t *, wint_t );
   extern int wcscmpi( const wchar_t *, const wchar_t * );
   extern wchar_t *wcserror( int );
   extern void *_wmemccpy( void *__s1, const void *__s2, int __c, size_t __n );
   extern void *_wmemchr( const void *, int, size_t );
   extern int _wmemcmp( const void *, const void *, size_t );
   extern void *_wmemcpy( void *, const void *, size_t );
   extern int _wmemicmp( const void *__s1, const void *__s2, size_t __n );
   extern void *_wmemmove( void *, const void *, size_t );
   extern size_t _ustrlen( const wchar_t * );
   extern wchar_t *_ustrnset( wchar_t *, int, size_t );
   extern size_t _ustrspn( const wchar_t *, const wchar_t * );
   extern size_t _ustrcspn( const wchar_t *, const wchar_t * );
   extern wchar_t *_ustrncat( wchar_t *, const wchar_t *, size_t );
   extern int _ustrncmp( const wchar_t *, const wchar_t *, size_t );
   extern wchar_t *_ustrncpy( wchar_t *, const wchar_t *, size_t );
   extern int _ustrnicmp( const wchar_t *, const wchar_t *, size_t );
   extern wchar_t *_ustrchr( const wchar_t *, int );
   extern wchar_t *_ustrdup( const wchar_t * );
   extern wchar_t *_ustrcat( wchar_t *, const wchar_t * );
   extern wchar_t *_ustrlwr( wchar_t * );
   extern wchar_t *_ustrupr( wchar_t * );
   extern wchar_t *_ustrcpy( wchar_t *, const wchar_t * );
   extern int _ustrcmp( const wchar_t *, const wchar_t * );
   extern int _ustricmp( const wchar_t *, const wchar_t * );
   extern int _ustrcoll( const wchar_t *__s1, const wchar_t *__s2 );
   extern wchar_t *_ustrstr( const wchar_t *, const wchar_t * );
   extern wchar_t *_ustrpbrk( const wchar_t *, const wchar_t * );
   extern wchar_t *_ustrtok( wchar_t *, const wchar_t * );
   extern wchar_t *_ustrrev( wchar_t * );
   extern wchar_t *_ustrset( wchar_t *, wchar_t );
   extern wchar_t *_ustrrchr( const wchar_t *, int );
   extern int _ustrcmpi( const wchar_t *, const wchar_t * );
   extern wchar_t *_ustrerror( int );
};
extern "C" {
typedef int ptrdiff_t;
    extern int *__threadid(void);  
};
extern "C" {
  #pragma pack(__push,1);
typedef struct	{
	int	quot;
	int	rem;
} div_t;
typedef struct	{
	long	quot;
	long	rem;
} ldiv_t;
   extern void	 abort( void );
   extern int	 abs( int __j );
	  extern int	 atexit( register void ( *__func )( void ) );
   extern double	 atof( const char *__nptr );
   extern int	 atoi( const char *__nptr );
   extern long int atol( const char *__nptr );
   extern void	*bsearch( const void *__key, const void *__base, 
				  size_t __nmemb, size_t __size, 
				  int (*__compar)(const void *__pkey, 
				  		  const void *__pbase) );
   extern void	 break_on( void );
   extern void	 break_off( void );
   extern void	*calloc( size_t __n, size_t __size );
   extern div_t	 div( int __numer, int __denom );
   extern void	 exit( int __status );
   extern void	 free( void *__ptr );
   extern char	*getenv( const char *__name );
   extern long int labs( long int __j );
extern ldiv_t ldiv( long int __numer, long int __denom );
   extern void	*malloc( size_t __size );
   extern int	 mblen( const char *__s, size_t __n );
   extern size_t	 mbstowcs( wchar_t *__pwcs, const char *__s, 
				   size_t __n );
   extern int	 mbtowc( wchar_t *__pwc, const char *__s, size_t __n );
   extern size_t	 wcstombs( char *__s, const wchar_t *__pwcs, 
				   size_t __n );
   extern int	 wctomb( char *__s, wchar_t __wchar );
   extern void	 qsort( void *__base, size_t __nmemb, size_t __size,
				int (*__compar)( const void *, const void * ) );
   extern int	 rand( void );
   extern void	*realloc( void *__ptr, size_t __size );
   extern void	 srand( unsigned int __seed );
   extern double	 strtod( const char *__nptr, char **__endptr );
   extern long int strtol( const char *__nptr, char **__endptr, 
				 int __base );
   extern unsigned long strtoul( const char *__nptr, char **__endptr, 
				       int __base );
   extern int	 system( const char *__string );
   extern void	 _exit( int __status );
   extern char	*ecvt( double __val, int __ndig, int *__dec, 
			       int *__sign );
   extern char	*_ecvt( double __val, int __ndig, int *__dec, 
			       int *__sign );
   extern char	*fcvt( double __val, int __ndig, int *__dec, 
			       int *__sign );
   extern char	*_fcvt( double __val, int __ndig, int *__dec, 
			        int *__sign );
   extern char	*_fullpath( char *__buf, const char *__path, 
			            size_t __size );
   extern char	*gcvt( double __val, int __ndig, char *__buf );
   extern char	*_gcvt( double __val, int __ndig, char *__buf );
   extern char	*itoa( int __value, char *__buf, int __radix );
   extern char	*_itoa( int __value, char *__buf, int __radix );
extern unsigned long _lrotl( unsigned long __value, unsigned int __shift );
extern unsigned long _lrotr( unsigned long __value, unsigned int __shift );
   extern char	*ltoa( long int __value, char *__buf, int __radix );
   extern char	*_ltoa( long int __value, char *__buf, int __radix );
   extern void	 _makepath( char *__path, const char *__drive,
				    const char *__dir, const char *__fname,
				    const char *__ext );
   extern unsigned int _rotl( unsigned int __value, unsigned int __shift );
   extern unsigned int _rotr( unsigned int __value, unsigned int __shift );
   extern int	  _watoi( const wchar_t * );
   extern long int _watol( const wchar_t * );
   extern wchar_t *_witoa( int, wchar_t *, int );
   extern wchar_t *_wltoa( long int, wchar_t *, int );
   extern wchar_t *_wutoa( unsigned int, wchar_t *, int );
   extern wchar_t *_wultoa( unsigned long int, wchar_t *, int );
   extern int	  _wtoi( const wchar_t * );
   extern long int _wtol( const wchar_t * );
   extern wchar_t *_itow( int, wchar_t *, int );
   extern wchar_t *_ltow( long int, wchar_t *, int );
   extern wchar_t *_utow( unsigned int, wchar_t *, int );
   extern wchar_t *_ultow( unsigned long int, wchar_t *, int );
   extern double	 _watof( const wchar_t * );
   extern long int wcstol( const wchar_t *, wchar_t **, int );
   extern double	 wcstod( const wchar_t *, wchar_t ** );
   extern unsigned long int wcstoul( const wchar_t *, wchar_t **, int );
   extern wchar_t *_atouni( wchar_t *, const char * );
   extern wchar_t *_wfullpath( wchar_t *, const wchar_t *, size_t );
   extern void	  _wmakepath( wchar_t *__path, const wchar_t *__drive,
				      const wchar_t *__dir,
				      const wchar_t *__fname,
				      const wchar_t *__ext );
   extern int _wcsicmp( const wchar_t *, const wchar_t * );
   extern wchar_t *_wcsdup( const wchar_t * );
   extern int _wcsnicmp( const wchar_t *, const wchar_t *, size_t );
   extern wchar_t *_wcslwr( wchar_t * );
   extern wchar_t *_wcsupr( wchar_t * );
   extern wchar_t *_wcsrev( wchar_t * );
   extern wchar_t *_wcsset( wchar_t *, wchar_t );
   extern wchar_t *_wcsnset( wchar_t *, int, size_t );
   extern wchar_t *  _wgetenv( const wchar_t *__name );
   extern int	    _wsetenv( const wchar_t *__name,
				      const wchar_t *__newvalue, 
				      int __overwrite );
   extern int	    _wputenv( const wchar_t *__env_string );
   extern void	    _wsearchenv( const wchar_t *__name,
					 const wchar_t *__env_var,
					 wchar_t *__buf );
   extern void	    _wsplitpath2( const wchar_t *__inp,
					  wchar_t *__outp, wchar_t **__drive,
					  wchar_t **__dir, wchar_t **__fn,
					  wchar_t **__ext );
   extern void	    _wsplitpath( const wchar_t *__path,
					 wchar_t *__drive, wchar_t *__dir,
					 wchar_t *__fname, wchar_t *__ext );
   extern int	    _wsystem( const wchar_t *__cmd );
   extern int	 putenv( const char *__string );
   extern void	 _searchenv( const char *__name, const char *__env_var,
				     char *__buf );
   extern void	 _splitpath2( const char *__inp, char *__outp,
		    		      char **__drive, char **__dir, 
				      char **__fn, char **__ext );
   extern void	 _splitpath( const char *__path, char *__drive,
		    		     char *__dir, char *__fname, char *__ext );
   extern void	 swab( char *__src, char *__dest, int __num );
   extern char	*ultoa( unsigned long int __value, char *__buf, 
				int __radix );
   extern char	*utoa( unsigned int __value, char *__buf, int __radix );
   extern int	  _uatoi( const wchar_t * );
   extern long int _uatol( const wchar_t * );
   extern wchar_t *_uitoa( int, wchar_t *, int );
   extern wchar_t *_ultoa( long int, wchar_t *, int );
   extern wchar_t *_uutoa( unsigned int, wchar_t *, int );
   extern wchar_t *_uultoa( unsigned long int, wchar_t *, int );
   extern long int _ustrtol( const wchar_t *, wchar_t **, int );
   extern double	  _uatof( const wchar_t * );
   extern double	  _ustrtod( const wchar_t *, wchar_t ** );
   extern unsigned long int _ustrtoul( const wchar_t *, wchar_t **, int );
   extern wchar_t *_uecvt( double, int, int *, int * );
   extern wchar_t *_ufcvt( double, int, int *, int * );
   extern wchar_t *_ugcvt( double, int, wchar_t * );
   extern wchar_t *_atouni( wchar_t *, const char * );
   extern wchar_t *_ugetenv( const wchar_t * );
   extern wchar_t *_u_fullpath( wchar_t *, const wchar_t *, size_t );
   extern int	  _usystem( const wchar_t * );
   extern void	  _u_makepath( wchar_t *, const wchar_t *, 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?