added hooks for sort
authorJohn Beppu <beppu@lbox.org>
Wed, 22 Dec 1999 17:57:31 +0000 (17:57 -0000)
committerJohn Beppu <beppu@lbox.org>
Wed, 22 Dec 1999 17:57:31 +0000 (17:57 -0000)
applets/busybox.c
busybox.c
busybox.def.h
coreutils/sort.c
internal.h
sort.c

index 895accd93be7fa44e82efaf0914ee537ba95b35e..cd4ab8fcd9675f2a0b224a3d27712421da8e73e6 100644 (file)
@@ -184,6 +184,9 @@ static const struct Applet applets[] = {
 #ifdef BB_SLEEP                        //bin
     {"sleep", sleep_main},
 #endif
+#ifdef BB_SORT                 //bin
+    {"sort", sort_main},
+#endif
 #ifdef BB_SYNC                 //bin
     {"sync", sync_main},
 #endif
index 895accd93be7fa44e82efaf0914ee537ba95b35e..cd4ab8fcd9675f2a0b224a3d27712421da8e73e6 100644 (file)
--- a/busybox.c
+++ b/busybox.c
@@ -184,6 +184,9 @@ static const struct Applet applets[] = {
 #ifdef BB_SLEEP                        //bin
     {"sleep", sleep_main},
 #endif
+#ifdef BB_SORT                 //bin
+    {"sort", sort_main},
+#endif
 #ifdef BB_SYNC                 //bin
     {"sync", sync_main},
 #endif
index 3a64c1a5429e38dbe3dfa3282828108b5f7dc82e..3c290f7a47bb7bd9d8f401d83b007706c6de3e04 100644 (file)
@@ -64,6 +64,7 @@
 //#define BB_SFDISK
 #define BB_SED
 #define BB_SLEEP
+#define BB_SORT
 #define BB_SWAPONOFF
 #define BB_SYNC
 #define BB_SYSLOGD
index d82351797640f479aea3090aad2fae562dd16a1c..f3f9fca1d671a9b249a6c97b4f1b8165edfc85c7 100644 (file)
@@ -90,6 +90,17 @@ line_newFromFile(FILE *src)
     return NULL;
 }
 
+/* Line destructor */
+static Line *
+line_release(Line *self)
+{
+    if (self->data) { 
+       free(self->data); 
+       free(self);
+    }
+    return self;
+}
+
 
 /* Comparison */
 
@@ -148,7 +159,16 @@ list_writeToFile(List *self, FILE* dst)
 static List *
 list_release(List *self)
 {
-    return self;
+    Line *i;
+    Line *die;
+
+    i = self->head;
+    while (i) {
+       die = i;
+       i = die->next;
+       line_delete(die);
+    }
+    return self; /* bad poetry? */
 }
 
 
@@ -195,4 +215,4 @@ sort_main(int argc, char **argv)
     exit(0);
 }
 
-/* $Id: sort.c,v 1.2 1999/12/22 00:30:29 beppu Exp $ */
+/* $Id: sort.c,v 1.3 1999/12/22 17:57:31 beppu Exp $ */
index 6bb9341ef7a6b75f83434d28769185bb6089bc61..05e3904e64b70113464185f06dedf704d9ad849c 100644 (file)
@@ -113,6 +113,7 @@ extern int sh_main(int argc, char** argv);
 extern int sfdisk_main(int argc, char** argv);
 extern int sed_main(int argc, char** argv);
 extern int sleep_main(int argc, char** argv);
+extern int sort_main(int argc, char** argv);
 extern int swap_on_off_main(int argc, char** argv);
 extern int sync_main(int argc, char** argv);
 extern int syslogd_main(int argc, char **argv);
diff --git a/sort.c b/sort.c
index d82351797640f479aea3090aad2fae562dd16a1c..f3f9fca1d671a9b249a6c97b4f1b8165edfc85c7 100644 (file)
--- a/sort.c
+++ b/sort.c
@@ -90,6 +90,17 @@ line_newFromFile(FILE *src)
     return NULL;
 }
 
+/* Line destructor */
+static Line *
+line_release(Line *self)
+{
+    if (self->data) { 
+       free(self->data); 
+       free(self);
+    }
+    return self;
+}
+
 
 /* Comparison */
 
@@ -148,7 +159,16 @@ list_writeToFile(List *self, FILE* dst)
 static List *
 list_release(List *self)
 {
-    return self;
+    Line *i;
+    Line *die;
+
+    i = self->head;
+    while (i) {
+       die = i;
+       i = die->next;
+       line_delete(die);
+    }
+    return self; /* bad poetry? */
 }
 
 
@@ -195,4 +215,4 @@ sort_main(int argc, char **argv)
     exit(0);
 }
 
-/* $Id: sort.c,v 1.2 1999/12/22 00:30:29 beppu Exp $ */
+/* $Id: sort.c,v 1.3 1999/12/22 17:57:31 beppu Exp $ */