summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xapplets/install.sh6
-rw-r--r--coreutils/dd.c5
-rw-r--r--coreutils/mkdir.c14
-rw-r--r--dd.c5
-rwxr-xr-xinstall.sh6
-rw-r--r--mkdir.c14
-rw-r--r--utility.c8
7 files changed, 35 insertions, 23 deletions
diff --git a/applets/install.sh b/applets/install.sh
index 4c2a4f1..458e65c 100755
--- a/applets/install.sh
+++ b/applets/install.sh
@@ -12,11 +12,11 @@ h=`sort busybox.links | uniq`
for i in $h ; do
mypath=`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\1/g' `;
myapp=`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' `;
- mkdir -p $1$mypath
echo " $1$mypath$myapp -> /bin/busybox"
- (cd $1$mypath ; rm -f $1$mypath$myapp ; ln -s /bin/busybox $1$mypath$myapp )
+ mkdir -p $1$mypath
+ (cd $1$mypath && rm -f $1$mypath$myapp && ln -s /bin/busybox $1$mypath$myapp )
done
rm -f $1/bin/busybox
install -m 755 busybox $1/bin/busybox
-
+exit 0
diff --git a/coreutils/dd.c b/coreutils/dd.c
index 6494857..a2dc1c3 100644
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -29,10 +29,15 @@
#include "internal.h"
+#include <features.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
+#if (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)
#include <inttypes.h>
+#else
+typedef unsigned long long int uintmax_t;
+#endif
static const char dd_usage[] =
"dd [if=name] [of=name] [bs=n] [count=n]\n\n"
diff --git a/coreutils/mkdir.c b/coreutils/mkdir.c
index 2cd1788..9ea3b4e 100644
--- a/coreutils/mkdir.c
+++ b/coreutils/mkdir.c
@@ -80,17 +80,21 @@ extern int mkdir_main(int argc, char **argv)
while (argc > 0) {
int status;
struct stat statBuf;
- status=stat(*argv, &statBuf);
+ char buf[NAME_MAX];
+
+ strcpy (buf, *argv);
+ status=stat(buf, &statBuf);
if (status != -1 && status != ENOENT ) {
- fprintf(stderr, "%s: File exists\n", *argv);
+ fprintf(stderr, "%s: File exists\n", buf);
exit( FALSE);
}
if (parentFlag == TRUE) {
- createPath(*argv, mode);
+ strcat( buf, "/");
+ createPath(buf, mode);
}
else {
- if (mkdir (*argv, mode) != 0) {
- perror(*argv);
+ if (mkdir (buf, mode) != 0) {
+ perror(buf);
exit( FALSE);
}
}
diff --git a/dd.c b/dd.c
index 6494857..a2dc1c3 100644
--- a/dd.c
+++ b/dd.c
@@ -29,10 +29,15 @@
#include "internal.h"
+#include <features.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
+#if (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)
#include <inttypes.h>
+#else
+typedef unsigned long long int uintmax_t;
+#endif
static const char dd_usage[] =
"dd [if=name] [of=name] [bs=n] [count=n]\n\n"
diff --git a/install.sh b/install.sh
index 4c2a4f1..458e65c 100755
--- a/install.sh
+++ b/install.sh
@@ -12,11 +12,11 @@ h=`sort busybox.links | uniq`
for i in $h ; do
mypath=`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\1/g' `;
myapp=`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' `;
- mkdir -p $1$mypath
echo " $1$mypath$myapp -> /bin/busybox"
- (cd $1$mypath ; rm -f $1$mypath$myapp ; ln -s /bin/busybox $1$mypath$myapp )
+ mkdir -p $1$mypath
+ (cd $1$mypath && rm -f $1$mypath$myapp && ln -s /bin/busybox $1$mypath$myapp )
done
rm -f $1/bin/busybox
install -m 755 busybox $1/bin/busybox
-
+exit 0
diff --git a/mkdir.c b/mkdir.c
index 2cd1788..9ea3b4e 100644
--- a/mkdir.c
+++ b/mkdir.c
@@ -80,17 +80,21 @@ extern int mkdir_main(int argc, char **argv)
while (argc > 0) {
int status;
struct stat statBuf;
- status=stat(*argv, &statBuf);
+ char buf[NAME_MAX];
+
+ strcpy (buf, *argv);
+ status=stat(buf, &statBuf);
if (status != -1 && status != ENOENT ) {
- fprintf(stderr, "%s: File exists\n", *argv);
+ fprintf(stderr, "%s: File exists\n", buf);
exit( FALSE);
}
if (parentFlag == TRUE) {
- createPath(*argv, mode);
+ strcat( buf, "/");
+ createPath(buf, mode);
}
else {
- if (mkdir (*argv, mode) != 0) {
- perror(*argv);
+ if (mkdir (buf, mode) != 0) {
+ perror(buf);
exit( FALSE);
}
}
diff --git a/utility.c b/utility.c
index 004864a..011c0cf 100644
--- a/utility.c
+++ b/utility.c
@@ -481,14 +481,8 @@ extern void createPath (const char *name, int mode)
char *cpOld;
char buf[NAME_MAX];
- strcpy (buf, name);
- if (buf[strlen(buf)]!='/') {
- buf[strlen(buf)] = '/';
- buf[strlen(buf)+1] = '\0';
- }
-
+ strcpy( buf, name);
cp = strchr (buf, '/');
-
while (cp) {
cpOld = cp;
cp = strchr (cp + 1, '/');