int chngd(), shift(), doset(), goodbye(), await(), dozip();
int rewind(), doalias(), unalias(), dotimes(), doalloc();
int dointerp(), uninterp(), noquit(), quit(), abort();
"chdir", &chngd
, 0, 1, 0,
"shift", &shift
, 0, 1, 0,
"rewind", &rewind
, 0, 0, 0,
"set", &doset
, 0, INF
, 0,
"unset", &unset
, 1, INF
, 0,
"alias", &doalias
, 0, 2, 0,
"unalias", &unalias
, 1, INF
, 0,
"interp", &dointerp
, 0, 2, 0,
"uninterp", &uninterp
, 1, INF
, 0,
"logout", &goodbye
, 0, 0, 0,
"noquit", &noquit
, 0, 0, 0,
"alloc", &doalloc
, 0, 0, 0,
"abort", &abort
, 0, 0, 0,
"tyme", &dotimes
, 0, INF
, FRET
,
register struct biltins
*bp
;
if (strcmp(bp
->bname
, t
[DCOM
]) == 0)
for (tp
= &t
[DCOM
+1]; *tp
; tp
++)
bferr(": Too few arguments");
bferr(": Too many arguments");
i
= (*bp
->bfunct
)(&t
[DCOM
]);
return (bp
->flags
& FRET
? i
: 1);
bferr2(dp
, ": Not a directory");
bferr2(dp
, ": No such file or directory");
bferr2(dp
, ": No execute access");
bferr2(dp
, ": bad directory !?!");
register struct shvar *vp;
if (col + strlen(vp->name) + strlen(cp) + 1 > 79) {
for (cp
= s
; c
= *cp
++;) {
if (c
== '"' || (*cp
& QUOTE
) == 0)
while ((c
= *cp
) && (c
& QUOTE
)) {
s2
= calloc(1, strlen(s
) + i
+ 1);
for (dp
= s2
, cp
= s
; c
= *cp
++;) {
if (c
== '"' || (*cp
& QUOTE
) == 0) {
while ((c
= *cp
) && (c
& QUOTE
)) {
register struct shvar
*vp
;
set1(p
, savestr(*v
), &aliases
);
set1(p
, savestr(*v
), &interps
);
register struct shvar
*vp
;
for (vp
= interps
.next
; vp
!= 0; vp
= vp
->next
)
register struct shvar
*vp
;
for (vp
= vp
->next
; vp
!= 0; vp
= vp
->next
) {
register struct shvar
*ap
;
for (ap
= aliases
.next
; ap
!= 0; ap
= ap
->next
)
if (strcmp(ap
->name
, *t
) == 0) {
bferr2(*t
, ": Restricted");