summaryrefslogtreecommitdiff
path: root/elksemu
diff options
context:
space:
mode:
authorRobert de Bath <rdebath@poboxes.com>1998-02-12 22:41:49 +0100
committerLubomir Rintel <lkundrak@v3.sk>2013-10-23 23:40:21 +0200
commit2f828530e36a02c5b4c534e42ab812370c2bf7d9 (patch)
treec26ea035d122f5374ed4c9ef39c6748742541ef5 /elksemu
parent48f0b3eb836162d41622cedc1eb5f5168168fb8e (diff)
downloaddev86-2f828530e36a02c5b4c534e42ab812370c2bf7d9.tar.gz
Import Dev86src-0.14.0.tar.gzv0.14.0
Diffstat (limited to 'elksemu')
-rw-r--r--elksemu/elks_sys.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/elksemu/elks_sys.c b/elksemu/elks_sys.c
index 16a3cec..4b8187f 100644
--- a/elksemu/elks_sys.c
+++ b/elksemu/elks_sys.c
@@ -117,12 +117,14 @@ static int elks_read(int bx,int cx,int dx,int di,int si)
#define sys_write elks_write
static int elks_write(int bx,int cx,int dx,int di,int si)
{
+#ifdef TESTING
if( dx > 1024 || dx < 0 )
{
dx = 1024;
dbprintf(("write(%d, %d, >%d)\n",bx,cx,dx));
}
else
+#endif
{
dbprintf(("write(%d, %d, %d)\n",bx,cx,dx));
}
@@ -449,8 +451,8 @@ static int elks_execve(int bx,int cx,int dx,int di,int si)
if( is_elks )
{
argp[0]="/lib/elksemu";
- argp[1]=ELKS_PTR(char, bx);
- ct=2;
+ /* argp[1]=ELKS_PTR(char, bx); */
+ ct=1;
}
while(*bp)
argp[ct++]=ELKS_PTR(char, cx+ *bp++);
@@ -461,7 +463,10 @@ static int elks_execve(int bx,int cx,int dx,int di,int si)
envp[ct++]=ELKS_PTR(char, cx+ *bp++);
envp[ct]=0;
if( is_elks )
+ {
+ argp[1]=ELKS_PTR(char, bx);
execve(argp[0],argp,envp);
+ }
else
execve(ELKS_PTR(char, bx),argp,envp);
if( errno == ENOEXEC || errno == EACCES ) return -1;