lisa006.c

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

C
1,685
字号
//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 ** );

⌨️ 快捷键说明

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