aboutsummaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-03-17 08:42:43 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-03-17 08:42:43 +0000
commitcdf62770af9e8bf7d5bb2344ddef8acb3216cfe2 (patch)
treef3c72eba4318ead484dfb36c6e21d55f443c5f6b /coreutils
parent107fe7c081c2e0ab96628b431d9d812cdf9c82b2 (diff)
downloadbusybox-w32-cdf62770af9e8bf7d5bb2344ddef8acb3216cfe2.tar.gz
busybox-w32-cdf62770af9e8bf7d5bb2344ddef8acb3216cfe2.tar.bz2
busybox-w32-cdf62770af9e8bf7d5bb2344ddef8acb3216cfe2.zip
dos2unix: tiny shrink
login,su: fix setup_environment() so that it works as intended (parameter names were a bit misleading) fdisk: shrink help text: shrink function old new delta login_main 1658 1701 +43 setup_environment 206 203 -3 dos_compatible_flag 4 1 -3 dos2unix_main 383 375 -8 get_boot 1724 1702 -22 fdisk_main 2949 2889 -60 packed_usage 24250 23948 -302 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/6 up/down: 43/-398) Total: -355 bytes text data bss dec hex filename 798768 661 7428 806857 c4fc9 busybox_old 798327 658 7428 806413 c4e0d busybox_unstripped
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/dos2unix.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/coreutils/dos2unix.c b/coreutils/dos2unix.c
index 7776133f4..2db7e11a1 100644
--- a/coreutils/dos2unix.c
+++ b/coreutils/dos2unix.c
@@ -24,19 +24,19 @@ static void convert(char *fn, int conv_type)
24{ 24{
25 FILE *in, *out; 25 FILE *in, *out;
26 int i; 26 int i;
27#define name_buf bb_common_bufsiz1 27 char *name_buf = name_buf; /* for compiler */
28 28
29 in = stdin; 29 in = stdin;
30 out = stdout; 30 out = stdout;
31 if (fn != NULL) { 31 if (fn != NULL) {
32 in = xfopen(fn, "rw"); 32 in = xfopen(fn, "r");
33 /* 33 /*
34 The file is then created with mode read/write and 34 The file is then created with mode read/write and
35 permissions 0666 for glibc 2.0.6 and earlier or 35 permissions 0666 for glibc 2.0.6 and earlier or
36 0600 for glibc 2.0.7 and later. 36 0600 for glibc 2.0.7 and later.
37 */ 37 */
38 snprintf(name_buf, sizeof(name_buf), "%sXXXXXX", fn); 38 name_buf = xasprintf("%sXXXXXX", fn);
39 i = mkstemp(&name_buf[0]); 39 i = mkstemp(name_buf);
40 if (i == -1 40 if (i == -1
41 || fchmod(i, 0600) == -1 41 || fchmod(i, 0600) == -1
42 || !(out = fdopen(i, "w+")) 42 || !(out = fdopen(i, "w+"))
@@ -48,12 +48,9 @@ static void convert(char *fn, int conv_type)
48 while ((i = fgetc(in)) != EOF) { 48 while ((i = fgetc(in)) != EOF) {
49 if (i == '\r') 49 if (i == '\r')
50 continue; 50 continue;
51 if (i == '\n') { 51 if (i == '\n')
52 if (conv_type == CT_UNIX2DOS) 52 if (conv_type == CT_UNIX2DOS)
53 fputc('\r', out); 53 fputc('\r', out);
54 fputc('\n', out);
55 continue;
56 }
57 fputc(i, out); 54 fputc(i, out);
58 } 55 }
59 56
@@ -62,7 +59,9 @@ static void convert(char *fn, int conv_type)
62 unlink(name_buf); 59 unlink(name_buf);
63 bb_perror_nomsg_and_die(); 60 bb_perror_nomsg_and_die();
64 } 61 }
62// TODO: destroys symlinks. See how passwd handles this
65 xrename(name_buf, fn); 63 xrename(name_buf, fn);
64 free(name_buf);
66 } 65 }
67} 66}
68 67