From 39a841cecf616098c9c8cf63bbfea5ea2922097c Mon Sep 17 00:00:00 2001 From: "Vladimir N. Oleynik" Date: Thu, 29 Sep 2005 16:18:57 +0000 Subject: change interface to bb_xasprintf() - more perfect for me. ln.c: error_msg(str)->error_msg(%s, str) - remove standart "feature" for hackers reduce 100 bytes don't care in sum --- archival/tar.c | 8 ++------ coreutils/expr.c | 2 +- coreutils/ln.c | 8 ++++---- e2fsprogs/fsck.c | 13 ++++++------- e2fsprogs/mke2fs.c | 5 +---- include/libbb.h | 3 +-- libbb/bb_asprintf.c | 8 +++++--- libbb/concat_path_file.c | 5 +---- libbb/run_shell.c | 7 ++----- loginutils/adduser.c | 2 +- miscutils/less.c | 7 ++----- miscutils/mountpoint.c | 4 ++-- modutils/insmod.c | 4 ++-- networking/ifupdown.c | 2 +- procps/sysctl.c | 2 +- shell/cmdedit.c | 2 +- 16 files changed, 33 insertions(+), 49 deletions(-) diff --git a/archival/tar.c b/archival/tar.c index 7a82b44..f6750ae 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -695,12 +695,8 @@ int tar_main(int argc, char **argv) } /* Prepend '-' to the first argument if required */ - if (argv[1][0] != '-') { - char *tmp; - - bb_xasprintf(&tmp, "-%s", argv[1]); - argv[1] = tmp; - } + if (argv[1][0] != '-') + argv[1] = bb_xasprintf("-%s", argv[1]); /* Initialise default values */ tar_handle = init_handle(); diff --git a/coreutils/expr.c b/coreutils/expr.c index 3f052d9..969d9ff 100644 --- a/coreutils/expr.c +++ b/coreutils/expr.c @@ -147,7 +147,7 @@ static int null (VALUE *v) static void tostring (VALUE *v) { if (v->type == integer) { - bb_xasprintf (&(v->u.s), "%d", v->u.i); + v->u.s = bb_xasprintf ("%d", v->u.i); v->type = string; } } diff --git a/coreutils/ln.c b/coreutils/ln.c index 274e0d0..6751e90 100644 --- a/coreutils/ln.c +++ b/coreutils/ln.c @@ -74,17 +74,17 @@ extern int ln_main(int argc, char **argv) src_name = src; } if (!(flag & LN_SYMLINK) && stat(*argv, &statbuf)) { - bb_perror_msg(*argv); + bb_perror_msg("%s", *argv); status = EXIT_FAILURE; free(src_name); continue; } if (flag & LN_BACKUP) { - char *backup = NULL; - bb_xasprintf(&backup, "%s%s", src, suffix); + char *backup; + backup = bb_xasprintf("%s%s", src, suffix); if (rename(src, backup) < 0 && errno != ENOENT) { - bb_perror_msg(src); + bb_perror_msg("%s", src); status = EXIT_FAILURE; free(backup); continue; diff --git a/e2fsprogs/fsck.c b/e2fsprogs/fsck.c index bb334e3..93514a3 100644 --- a/e2fsprogs/fsck.c +++ b/e2fsprogs/fsck.c @@ -363,7 +363,6 @@ static char *find_fsck(char *type) { char *s; const char *tpl; - char *prog; char *p = string_copy(fsck_path); struct stat st; @@ -371,12 +370,12 @@ static char *find_fsck(char *type) tpl = (strncmp(type, "fsck.", 5) ? "%s/fsck.%s" : "%s/%s"); for(s = strtok(p, ":"); s; s = strtok(NULL, ":")) { - bb_xasprintf(&prog, tpl, s, type); - if (stat(prog, &st) == 0) break; - free(prog); + s = bb_xasprintf(tpl, s, type); + if (stat(s, &st) == 0) break; + free(s); } free(p); - return(s ? prog : NULL); + return(s); } static int progress_active(void) @@ -410,7 +409,7 @@ static int execute(const char *type, const char *device, const char *mntpt, return ENOMEM; memset(inst, 0, sizeof(struct fsck_instance)); - bb_xasprintf(&prog, "fsck.%s", type); + prog = bb_xasprintf("fsck.%s", type); argv[0] = prog; argc = 1; @@ -1189,7 +1188,7 @@ int fsck_main(int argc, char *argv[]) /* Update our search path to include uncommon directories. */ if (oldpath) { - bb_xasprintf(&fsck_path, "%s:%s", fsck_prefix_path, oldpath); + fsck_path = bb_xasprintf("%s:%s", fsck_prefix_path, oldpath); } else { fsck_path = string_copy(fsck_prefix_path); } diff --git a/e2fsprogs/mke2fs.c b/e2fsprogs/mke2fs.c index 017fb53..6cd5bd4 100644 --- a/e2fsprogs/mke2fs.c +++ b/e2fsprogs/mke2fs.c @@ -794,10 +794,7 @@ static int PRS(int argc, char *argv[]) /* Update our PATH to include /sbin */ if (oldpath) { - char *newpath; - - bb_xasprintf(&newpath, "%s:%s", PATH_SET, oldpath); - putenv(newpath); + putenv (bb_xasprintf("%s:%s", PATH_SET, oldpath)); } else putenv (PATH_SET); diff --git a/include/libbb.h b/include/libbb.h index c92d972..02bdb58 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -408,8 +408,7 @@ void reset_ino_dev_hashtable(void); extern size_t bb_strlen(const char *string); #define strlen(x) bb_strlen(x) -void bb_xasprintf(char **string_ptr, const char *format, ...) __attribute__ ((format (printf, 2, 3))); - +char *bb_xasprintf(const char *format, ...) __attribute__ ((format (printf, 1, 2))); #define FAIL_DELAY 3 extern void change_identity ( const struct passwd *pw ); diff --git a/libbb/bb_asprintf.c b/libbb/bb_asprintf.c index a3ba424..8658a54 100644 --- a/libbb/bb_asprintf.c +++ b/libbb/bb_asprintf.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2002 Vladimir Oleynik + Copyright (C) 2002,2005 Vladimir Oleynik */ #include @@ -7,16 +7,18 @@ #include #include "libbb.h" -void bb_xasprintf(char **string_ptr, const char *format, ...) +char *bb_xasprintf(const char *format, ...) { va_list p; int r; + char *string_ptr; va_start(p, format); - r = vasprintf(string_ptr, format, p); + r = vasprintf(&string_ptr, format, p); va_end(p); if (r < 0) { bb_perror_msg_and_die("bb_xasprintf"); } + return string_ptr; } diff --git a/libbb/concat_path_file.c b/libbb/concat_path_file.c index 00233ad..029c232 100644 --- a/libbb/concat_path_file.c +++ b/libbb/concat_path_file.c @@ -30,7 +30,6 @@ extern char *concat_path_file(const char *path, const char *filename) { - char *outbuf; char *lc; if (!path) @@ -38,7 +37,5 @@ extern char *concat_path_file(const char *path, const char *filename) lc = last_char_is(path, '/'); while (*filename == '/') filename++; - bb_xasprintf(&outbuf, "%s%s%s", path, (lc==NULL ? "/" : ""), filename); - - return outbuf; + return bb_xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename); } diff --git a/libbb/run_shell.c b/libbb/run_shell.c index 67ff2a5..6d084ee 100644 --- a/libbb/run_shell.c +++ b/libbb/run_shell.c @@ -84,11 +84,8 @@ void run_shell ( const char *shell, int loginshell, const char *command, const c args [0] = bb_get_last_path_component ( bb_xstrdup ( shell )); - if ( loginshell ) { - char *args0; - bb_xasprintf ( &args0, "-%s", args [0] ); - args [0] = args0; - } + if ( loginshell ) + args [0] = bb_xasprintf ("-%s", args [0]); if ( command ) { args [argno++] = "-c"; diff --git a/loginutils/adduser.c b/loginutils/adduser.c index eb98901..1630c72 100644 --- a/loginutils/adduser.c +++ b/loginutils/adduser.c @@ -117,7 +117,7 @@ static void addgroup_wrapper(const char *login, gid_t gid) { char *cmd; - bb_xasprintf(&cmd, "addgroup -g %d %s", gid, login); + cmd = bb_xasprintf("addgroup -g %d %s", gid, login); system(cmd); free(cmd); } diff --git a/miscutils/less.c b/miscutils/less.c index 7b1b96c..189b886 100644 --- a/miscutils/less.c +++ b/miscutils/less.c @@ -208,7 +208,7 @@ static void add_linenumbers(void) { for (i = 0; i <= num_flines; i++) { safe_strncpy(current_line, flines[i], 256); - bb_xasprintf(&flines[i],"%5d %s", i + 1, current_line); + flines[i] = bb_xasprintf("%5d %s", i + 1, current_line); } } @@ -618,11 +618,8 @@ static void colon_process(void) { static char *insert_highlights (char *line, int start, int end) { - char *new_line; - - bb_xasprintf(&new_line, "%.*s%s%.*s%s%s", start, line, HIGHLIGHT, + return bb_xasprintf("%.*s%s%.*s%s%s", start, line, HIGHLIGHT, end - start, line + start, NORMAL, line + end); - return new_line; } static char *process_regex_on_line(char *line, regex_t *pattern) { diff --git a/miscutils/mountpoint.c b/miscutils/mountpoint.c index 46b2d4e..771df55 100644 --- a/miscutils/mountpoint.c +++ b/miscutils/mountpoint.c @@ -46,8 +46,8 @@ int mountpoint_main(int argc, char **argv) if (S_ISDIR(st.st_mode)) { dev_t st_dev = st.st_dev; ino_t st_ino = st.st_ino; - char *p; - bb_xasprintf(&p, "%s/..", arg); + char *p = bb_xasprintf("%s/..", arg); + if (stat(p, &st) == 0) { short ret = (st_dev != st.st_dev) || (st_dev == st.st_dev && st_ino == st.st_ino); diff --git a/modutils/insmod.c b/modutils/insmod.c index 232a6e6..94e66f4 100644 --- a/modutils/insmod.c +++ b/modutils/insmod.c @@ -3756,10 +3756,10 @@ extern int insmod_main( int argc, char **argv) #if defined(CONFIG_FEATURE_2_6_MODULES) if (k_version > 4) - bb_xasprintf(&m_fullName, "%s.ko", tmp); + m_fullName = bb_xasprintf("%s.ko", tmp); else #endif - bb_xasprintf(&m_fullName, "%s.o", tmp); + m_fullName = bb_xasprintf("%s.o", tmp); if (!m_name) { m_name = tmp; diff --git a/networking/ifupdown.c b/networking/ifupdown.c index c735294..d23c9f7 100644 --- a/networking/ifupdown.c +++ b/networking/ifupdown.c @@ -1010,7 +1010,7 @@ static int execute_all(struct interface_defn_t *ifd, execfn *exec, const char *o } } - bb_xasprintf(&buf, "run-parts /etc/network/if-%s.d", opt); + buf = bb_xasprintf("run-parts /etc/network/if-%s.d", opt); if ((*exec)(buf) != 1) { return 0; } diff --git a/procps/sysctl.c b/procps/sysctl.c index 359dcc0..dbb82e6 100644 --- a/procps/sysctl.c +++ b/procps/sysctl.c @@ -209,7 +209,7 @@ int sysctl_write_setting(const char *setting, int output) return -2; } - bb_xasprintf(&tmpname, "%s%.*s", PROC_PATH, (equals - name), name); + tmpname = bb_xasprintf("%s%.*s", PROC_PATH, (equals - name), name); outname = bb_xstrdup(tmpname + strlen(PROC_PATH)); while ((cptr = strchr(tmpname, '.')) != NULL) diff --git a/shell/cmdedit.c b/shell/cmdedit.c index c4cb9d9..edfa016 100644 --- a/shell/cmdedit.c +++ b/shell/cmdedit.c @@ -621,7 +621,7 @@ static char **username_tab_completion(char *ud, int *num_matches) /* Null usernames should result in all users as possible completions. */ if ( /*!userlen || */ !strncmp(ud, entry->pw_name, userlen)) { - bb_xasprintf(&temp, "~%s/", entry->pw_name); + temp = bb_xasprintf("~%s/", entry->pw_name); matches = xrealloc(matches, (nm + 1) * sizeof(char *)); matches[nm++] = temp; -- cgit v1.1