g_char(a
,alen
,b
) char *a
,*b
; ftnlen alen
;
{ char *x
=a
+alen
-1,*y
=b
+alen
-1;
for(;x
>=a
&& *x
==' ';x
--) *y
--=0;
b_char(a
,b
,blen
) char *a
,*b
; ftnlen blen
;
for(i
=0;i
<blen
&& *a
!=0;i
++) *b
++= *a
++;
for(;i
<blen
;i
++) *b
++=' ';
if(stat(a
,&x
)<0) return(-1);
#define DONE {*bufpos++=0; close(file); return;}
#define INTBOUND sizeof(int)-1
mvgbt(n
,len
,a
,b
) char *a
,*b
;
{ register int num
=n
*len
;
if( ((int)a
&INTBOUND
)==0 && ((int)b
&INTBOUND
)==0 && (num
&INTBOUND
)==0 )
{ register int *x
=(int *)a
,*y
=(int *)b
;
if(x
>y
) for(;num
>0;num
--) *y
++= *x
++;
else for(num
--;num
>=0;num
--) *(y
+num
)= *(x
+num
);
{ register char *x
=a
,*y
=b
;
if(x
>y
) for(;num
>0;num
--) *y
++= *x
++;
else for(num
--;num
>=0;num
--) *(y
+num
)= *(x
+num
);
{ char name
[256],*bufpos
= name
;
if((file
=open("..",0))<0) goto done
;
{ if(read(file
,&y
,sizeof(y
))<sizeof(y
)) goto done
;
} while(y
.d_ino
!=x
.st_ino
);
if(stat(y
.d_name
,&x
)<0 || chdir("/")<0
|| (file
=open("/",0))<0) goto done
;
{ if(read(file
,&y
,sizeof(y
))<sizeof(y
)) goto done
;
if(stat(y
.d_name
,&x
)<0) goto done
;
} while(x
.st_dev
!=i
|| (x
.st_mode
&S_IFMT
)!=S_IFDIR
);
if(strcmp(".",y
.d_name
) || strcmp("..",y
.d_name
))
bufpos
=calloc(strlen(name
)+1,1);
fullpath(a
,b
,errflag
) char *a
,*b
;
char *a1
,*a2
,*npart
,*dpart
,*p
;