forked from FDOS/freecom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpushd.c
37 lines (30 loc) · 807 Bytes
/
pushd.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/* $Id$
* DSTACK.C - Directory stack PUSHD/POPD support, compatible with 4/NDOS
*
* PUSHD <dir>
*
* Pushes the current directory onto the stack. If the length of
* the directory string exceeds the remainer of the stack, it pops the first
* entry, adjusts, and proceeds with the push.
* Also: changes to the directory specified on the command line.
*/
#include "../config.h"
#include <stdlib.h>
#include "../include/context.h"
#include "../include/command.h"
#include "../include/misc.h"
int cmd_pushd(char *param)
{ char *curdir;
if((curdir = cwd(0)) != 0) {
int rc;
rc = ctxtPush(CTXT_TAG_DIRSTACK, curdir);
free(curdir);
if(rc == E_None) {
/* Change to directory specified on command line */
if(param && *param)
return cmd_cdd(param);
return 0;
}
}
return 1;
}