3 * (C) Copyright Dec 20 1998, Edmond J. Breen.
5 * This code may be copied for personal, non-profit use only.
8 /* This file is broken into 2 parts
9 * the first part defines the interface routines
10 * and the 2nd part adds the interface routine
11 * to EiC's look up tables.
17 #include <sys/types.h>
30 #include "stdliblocal.h"
33 long telldir(DIR *dir);
34 void seekdir(DIR *dir, long offset);
38 val_t eic_opendir(void)
41 v.p.sp = v.p.p = opendir(arg(0,getargs(),ptr_t).p);
42 /*setEp( v.p, sizeof(DIR) );*/
43 setEp( v.p, 3*sizeof(int) + sizeof(void*));
47 val_t eic_readdir(void)
51 v.p.sp = v.p.p = readdir(arg(0,getargs(),ptr_t).p);
53 #if defined(_SOLARIS) || defined (_IRIX)
56 setEp( v.p, sizeof(struct dirent) + strlen(((struct dirent*)v.p.p)->d_name) + 1 );
61 setEp( v.p, sizeof(struct dirent) );
70 val_t eic_telldir(void)
73 v.lval = telldir(arg(0,getargs(),ptr_t).p);
77 val_t eic_seekdir(void)
80 seekdir(arg(0,getargs(),ptr_t).p,
81 arg(1,getargs(),long));
86 val_t eic_rewinddir(void)
89 rewinddir(arg(0,getargs(),ptr_t).p);
92 val_t eic_closedir(void)
95 v.ival = closedir(arg(0,getargs(),ptr_t).p);
104 /**************************************************/
110 EiC_add_builtinfunc("opendir",eic_opendir);
111 EiC_add_builtinfunc("readdir",eic_readdir);
112 EiC_add_builtinfunc("telldir",eic_telldir);
113 EiC_add_builtinfunc("seekdir",eic_seekdir);
114 EiC_add_builtinfunc("rewinddir",eic_rewinddir);
115 EiC_add_builtinfunc("closedir",eic_closedir);