aboutsummaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
authorMark Whitley <markw@lineo.com>2001-04-17 17:47:33 +0000
committerMark Whitley <markw@lineo.com>2001-04-17 17:47:33 +0000
commit3828dbed57fc9f6b620faf29445c43aefcf541c7 (patch)
tree4a9bc24baf90df6a8651a40ad626000745f4d88a /coreutils
parent31868b85be4e9da11a20e367f32db1df317a52d1 (diff)
downloadbusybox-w32-3828dbed57fc9f6b620faf29445c43aefcf541c7.tar.gz
busybox-w32-3828dbed57fc9f6b620faf29445c43aefcf541c7.tar.bz2
busybox-w32-3828dbed57fc9f6b620faf29445c43aefcf541c7.zip
Applied patch from I.Q. to fix problem with sort -n.
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/sort.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/coreutils/sort.c b/coreutils/sort.c
index 9707efa51..b84453d3a 100644
--- a/coreutils/sort.c
+++ b/coreutils/sort.c
@@ -33,7 +33,8 @@ static int compare_ascii(const void *x, const void *y)
33 33
34static int compare_numeric(const void *x, const void *y) 34static int compare_numeric(const void *x, const void *y)
35{ 35{
36 return atoi(*(char **)x) - atoi(*(char **)y); 36 int z = atoi(*(char **)x) - atoi(*(char **)y);
37 return z ? z : strcmp(*(char **)x, *(char **)y);
37} 38}
38 39
39int sort_main(int argc, char **argv) 40int sort_main(int argc, char **argv)
@@ -70,6 +71,7 @@ int sort_main(int argc, char **argv)
70 71
71 while ((line = get_line_from_file(fp)) != NULL) { 72 while ((line = get_line_from_file(fp)) != NULL) {
72 lines = xrealloc(lines, sizeof(char *) * (nlines + 1)); 73 lines = xrealloc(lines, sizeof(char *) * (nlines + 1));
74 line[strlen(line) - 1] = '\0';
73 lines[nlines++] = line; 75 lines[nlines++] = line;
74 } 76 }
75 } 77 }
@@ -81,10 +83,10 @@ int sort_main(int argc, char **argv)
81#ifdef BB_FEATURE_SORT_REVERSE 83#ifdef BB_FEATURE_SORT_REVERSE
82 if (reverse) 84 if (reverse)
83 for (i = nlines - 1; 0 <= i; i--) 85 for (i = nlines - 1; 0 <= i; i--)
84 fputs(lines[i], stdout); 86 puts(lines[i]);
85 else 87 else
86#endif 88#endif
87 for (i = 0; i < nlines; i++) 89 for (i = 0; i < nlines; i++)
88 fputs(lines[i], stdout); 90 puts(lines[i]);
89 return EXIT_SUCCESS; 91 return EXIT_SUCCESS;
90} 92}