2025-04-27 07:49:33 -04:00

196 lines
5.4 KiB
C

/*
** Copyright 1992, Silicon Graphics, Inc.
** All Rights Reserved.
**
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
** the contents of this file may not be disclosed to third parties, copied or
** duplicated in any form, in whole or in part, without the prior written
** permission of Silicon Graphics, Inc.
**
** RESTRICTED RIGHTS LEGEND:
** Use, duplication or disclosure by the Government is subject to restrictions
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
** rights reserved under the Copyright Laws of the United States.
**
*/
#include <stdlib.h>
#include <setjmp.h>
struct JumpBuffer {
jmp_buf buf;
};
#define mysetjmp(x) setjmp((x)->buf)
#define mylongjmp(x,y) longjmp((x)->buf, y)
/* <<AT&T USL C++ Language System <3.0.1> 02/03/92>> */
/* < ../core/sorter.c++ > */
void *__vec_new (void *, int , int , void *);
void __vec_ct (void *, int , int , void *);
void __vec_dt (void *, int , int , void *);
void __vec_delete (void *, int , int , void *, int , int );
typedef int (*__vptp)(void);
struct __mptr {short d; short i; __vptp f; };
typedef unsigned int size_t ;
// extern void *malloc (size_t );
// extern void free (void *);
struct Sorter;
struct Sorter {
int es__6Sorter ;
struct __mptr *__vptr__6Sorter ;
};
extern struct __mptr* __gl__ptbl_vec_____core_sorter0[];
struct Sorter *__gl__ct__6SorterFi (struct Sorter *__0this , int __1_es )
{
void *__1__Xp00uzigaiaa ;
if (__0this || (__0this = (struct Sorter *)( (__1__Xp00uzigaiaa = malloc ( (sizeof (struct Sorter))) ), (__1__Xp00uzigaiaa ?(((void *)__1__Xp00uzigaiaa )):(((void *)__1__Xp00uzigaiaa )))) )){
__0this -> __vptr__6Sorter = (struct __mptr *) __gl__ptbl_vec_____core_sorter0[0];
__0this -> es__6Sorter = __1_es ;
} return __0this ;
}
void __glqs1__6SorterFPcT1 (struct Sorter *, char *, char *);
void __glqsort__6SorterFPvi (struct Sorter *__0this , void *__1a , int __1n )
{
__glqs1__6SorterFPcT1 ( __0this , ((char *)__1a ), (((char *)__1a ))+ (__1n *
__0this -> es__6Sorter )) ;
}
int __glqscmp__6SorterFPcT1 (struct Sorter *__0this , char *__1__A3 , char *__1__A4 )
{
( 0 ) ;
return 0 ;
}
void __glqsexc__6SorterFPcT1 (struct Sorter *__0this , char *__1__A5 , char *__1__A6 )
{
( 0 ) ;
}
void __glqstexc__6SorterFPcN21 (struct Sorter *__0this , char *__1__A7 , char *__1__A8 , char *__1__A9 )
{
( 0 ) ;
}
void __glqs1__6SorterFPcT1 (struct Sorter *__0this , char *__1a , char *__1l )
{
char *__1i ;
char *__1j ;
char *__1lp ;
char *__1hp ;
int __1c ;
unsigned int __1n ;
start :
if ((__1n = (__1l - __1a ))<= __0this -> es__6Sorter )
return ;
__1n = (__0this -> es__6Sorter * (__1n / (2 * __0this -> es__6Sorter )));
__1hp = (__1lp = (__1a + __1n ));
__1i = __1a ;
__1j = (__1l - __0this -> es__6Sorter );
while (1 ){
if (__1i < __1lp ){
if ((__1c = ((*(((int (*)(struct Sorter *, char *, char *))(__0this ->
__vptr__6Sorter [1]).f))))( ((struct Sorter *)((((char *)__0this ))+ (__0this -> __vptr__6Sorter [1]).d)), __1i , __1lp ) )== 0 ){
((*(((void (*)(struct Sorter *, char
*, char *))(__0this -> __vptr__6Sorter [2]).f))))( ((struct Sorter *)((((char *)__0this ))+ (__0this -> __vptr__6Sorter [2]).d)), __1i , __1lp -= __0this -> es__6Sorter ) ;
continue ;
}
if (__1c < 0 ){
__1i += __0this -> es__6Sorter ;
continue ;
}
}
loop :
if (__1j > __1hp ){
if ((__1c = ((*(((int (*)(struct Sorter *, char *, char *))(__0this -> __vptr__6Sorter [1]).f))))( ((struct
Sorter *)((((char *)__0this ))+ (__0this -> __vptr__6Sorter [1]).d)), __1hp , __1j ) )== 0 ){
((*(((void (*)(struct Sorter *, char *, char
*))(__0this -> __vptr__6Sorter [2]).f))))( ((struct Sorter *)((((char *)__0this ))+ (__0this -> __vptr__6Sorter [2]).d)), __1hp += __0this -> es__6Sorter , __1j ) ;
goto loop ;
}
if (__1c > 0 ){
if (__1i == __1lp ){
((*(((void (*)(struct Sorter *, char *, char *, char
*))(__0this -> __vptr__6Sorter [3]).f))))( ((struct Sorter *)((((char *)__0this ))+ (__0this -> __vptr__6Sorter [3]).d)), __1i , __1hp += __0this -> es__6Sorter , __1j ) ;
__1i = (__1lp += __0this -> es__6Sorter );
goto loop ;
}
((*(((void (*)(struct Sorter *, char *, char *))(__0this -> __vptr__6Sorter [2]).f))))( ((struct Sorter *)((((char *)__0this ))+ (__0this -> __vptr__6Sorter [2]).d)), __1i ,
__1j ) ;
__1j -= __0this -> es__6Sorter ;
__1i += __0this -> es__6Sorter ;
continue ;
}
__1j -= __0this -> es__6Sorter ;
goto loop ;
}
if (__1i == __1lp ){
if ((__1lp - __1a )>= (__1l - __1hp )){
__glqs1__6SorterFPcT1 ( __0this , __1hp + __0this -> es__6Sorter , __1l )
;
__1l = __1lp ;
}
else
{
__glqs1__6SorterFPcT1 ( __0this , __1a , __1lp ) ;
__1a = (__1hp + __0this -> es__6Sorter );
}
goto start ;
}
((*(((void (*)(struct Sorter *, char *, char *, char *))(__0this -> __vptr__6Sorter [3]).f))))( ((struct Sorter *)((((char *)__0this ))+ (__0this ->
__vptr__6Sorter [3]).d)), __1j , __1lp -= __0this -> es__6Sorter , __1i ) ;
__1j = (__1hp -= __0this -> es__6Sorter );
}
}
struct __mptr __gl__vtbl__6Sorter[] = {0,0,0,
0,0,(__vptp)__glqscmp__6SorterFPcT1 ,
0,0,(__vptp)__glqsexc__6SorterFPcT1 ,
0,0,(__vptp)__glqstexc__6SorterFPcN21 ,
0,0,0};
struct __mptr* __gl__ptbl_vec_____core_sorter0[] = {
__gl__vtbl__6Sorter,
};
/* the end */